ਮੇਰਾ ਰੋਬੋਟਿਕਸ ਰਿਸਰਚ ਅਧਿਆਇ
Table of Contents
ਇਸ ਪੋਸਟ ਵਿੱਚ ਮੇਰੀ ਰੋਬੋਟਿਕਸ ਯਾਤਰਾ ਦੀ ਵਰਣਨਾ ਕੀਤੀ ਗਈ ਹੈ, ਜੋ 2015 ਵਿੱਚ FRC ਦੌਰਾਨ ਉੱਚ ਸਕੂਲ ਵਿੱਚ ਰੋਬੋਟਿਕਸ ਲਈ ਮੇਰੇ ਜਜ਼ਬੇ ਦੀ ਖੋਜ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ ਅਤੇ ਫਰਵਰੀ 2021 ਤੋਂ ਸਤੰਬਰ 2021 ਤੱਕ ਮੈਨੂੰ Colorado School of Mines’s ਦੇ ਹਿਊਮਨ ਸੈਂਟਰਡ ਰੋਬੋਟਿਕਸ (HCR) ਲੈਬ ਵਿੱਚ ਰਿਸਰਚ ਅਸਿਸਟੈਂਟ ਦੇ ਤੌਰ ਤੇ ਕੰਮ ਕਰਨ ਦੇ ਸਮੇਂ ਤੱਕ ਪਹੁੰਚਦੀ ਹੈ। ਧਿਆਨ ਰੱਖੋ ਕਿ ਦੇਰ 2022 ਤੋਂ, HCR ਲੈਬ Colorado School of Mines ਤੋਂ University of Massachusetts Amherst ਵੱਲ ਸਥਾਨਾਂਤਰਿਤ ਹੋ ਚੁਕੀ ਹੈ, ਅਤੇ ਇਸਦੀ ਵੈੱਬਸਾਈਟ ਵੀ hcr.mines.edu ਤੋਂ hcr.cs.umass.edu ਤੇ ਸਥਾਨਕ ਹੋ ਗਈ ਹੈ।
ਪਿਛੋਕੜ
ਮੈਂ ਆਪਣੀ ਅੰਡਰਗ੍ਰੈਜੂਏਟ ਪੜ੍ਹਾਈ Colorado School of Mines ਵਿੱਚ Fall 2018 ਸੈਮੇਸਟਰ ਤੋਂ ਸ਼ੁਰੂ ਕੀਤੀ। ਮੇਰਾ ਮੇਜਰ ਕੰਪਿਊਟਰ ਸਾਇੰਸ ਸੀ ਜਿਸਦਾ ਧਿਆਨ ਰੋਬੋਟਿਕਸ ਅਤੇ ਇੰਟੈਲੀਜੈਂਟ ਸਿਸਟਮਾਂ ‘ਤੇ ਸੀ। ਅਤੇ ਮੈਂ Spring 2022 ਵਿੱਚ ਗ੍ਰੈਜੂਏਟ ਕੀਤਾ।
ਮੈਂ ਖੁਸ਼ਕਿਸਮਤ ਸੀ ਕਿ ਆਪਣੇ ਜੀਵਨ ਵਿੱਚ ਜਲਦੀ ਹੀ ਆਪਣਾ ਜੋਸ਼ ਲੱਭ ਲਿਆ। ਉੱਚ ਸਕੂਲ ਦੌਰਾਨ, ਮੈਂ ਕਾਫੀ ਸਮਾਂ ਲਗਾਇਆ ਇਹ ਪਤਾ ਲਗਾਉਣ ਵਿੱਚ ਕਿ ਮੈਨੂੰ ਕੀ ਪਸੰਦ ਹੈ ਅਤੇ ਮੈਂ ਕਿਸ ਚੀਜ਼ ਵਿੱਚ ਵਧੀਆ ਹੋ ਸਕਦਾ ਹਾਂ। ਕੁਝ ਕੋਸ਼ਿਸ਼ਾਂ ਅਤੇ ਗਲਤੀਆਂ ਤੋਂ ਬਾਅਦ, ਮੈਂ ਇਹ ਪਤਾ ਲਗਾ ਲਿਆ ਕਿ ਮੇਰਾ ਜੋਸ਼ ਕੰਪਿਊਟਰ ਸਾਇੰਸ ਹੈ। ਪਰ ਇਸ ਸਮੇਂ ਦੌਰਾਨ ਹੀ ਮੈਨੂੰ ਕੋਡ ਰਾਹੀਂ ਬਨਾਉਣ ਦਾ ਬੇਹੱਦ ਪਿਆਰ ਵੀ ਮਿਲਿਆ।
Mines ਵਿੱਚ, ਮੈਨੂੰ ਡਾ. Hao Zhang ਦੇ ਅਧੀਨ Mines ਦੇ ਹਿਊਮਨ ਸੈਂਟਰਡ ਰੋਬੋਟਿਕਸ (HCR) ਲੈਬ ਵਿੱਚ ਕੰਮ ਕਰਨ ਦਾ ਮੌਕਾ ਮਿਲਿਆ। ਮੈਂ ਸਭ ਤੋਂ ਪਹਿਲਾਂ Spring 2020 ਵਿੱਚ ਉਸਦੀ ਕਲਾਸ “Human Centered Robotics” (CSCI473) ਰਾਹੀਂ ਡਾ. Zhang ਨੂੰ ਮਿਲਿਆ, ਅਤੇ COVID ਅਤੇ ਕਲਾਸਵਰਕ ਦੇ ਹੰਗਾਮੇ ਤੋਂ ਬਾਅਦ, ਮੈਂ ਉਨ੍ਹਾਂ ਦੀ ਲੈਬ ਵਿੱਚ early Spring 2021 ਵਿੱਚ ਕੰਮ ਕਰਨਾ ਸ਼ੁਰੂ ਕੀਤਾ।
ਹਿਊਮਨ ਸੈਂਟਰਡ ਰੋਬੋਟਿਕਸ (CSCI473) ਕਲਾਸ
Mines ਦੀ ਹਿਊਮਨ ਸੈਂਟਰਡ ਰੋਬੋਟਿਕਸ (CSCI473) ਮੇਰੀ ਕਾਲਜ ਦੀਆਂ ਕੁਝ ਕੁ ਕਲਾਸਾਂ ਵਿੱਚੋਂ ਇੱਕ ਸੀ ਜਿਸਦਾ ਮੈਨੂੰ ਡੂੰਘਾ ਪ੍ਰਭਾਵ ਪਿਆ। ਇਹ ਕਲਾਸ ਡਾ. Hao Zhang ਵੱਲੋਂ ਪੜਾਈ ਗਈ ਸੀ। ਇਸ ਕਲਾਸ ਦੀ ਸਾਰੀ ਗਰੇਡਿੰਗ ਸਿਰਫ ਤਿੰਨ ਪ੍ਰोजੈਕਟਾਂ ‘ਤੇ ਆਧਾਰਤ ਸੀ, ਜਿਨ੍ਹਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਇਕ ਚੁਣੌਤੀ ਭਰਿਆ ਸਮੱਸਿਆ ਪੇਸ਼ ਕਰਦਾ ਸੀ ਜੋ ਰੋਬੋਟਿਕਸ ਦੇ ਮੁੱਖ ਸੰਕਲਪਾਂ ਨੂੰ ਰੂਬਰੂ ਕਰਵਾਉਂਦਾ ਸੀ। ਇਹ ਪ੍ਰੋਜੈਕਟ ਇਸ ਤਰ੍ਹਾਂ ਸਨ:
- Robot Operating System (ROS) ਸਿੱਖਣਾ
- ਰੋਬੋਟ ਵੱਲ ਫਾਲੋ ਕਰਨ ਲਈ Reinforcement Learning
- ਕਾਂਧ-ਅਧਾਰਿਤ ਪ੍ਰਤਿਨਿਧੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮਨੁੱਖੀ ਵਿਹਿਵਿਅਰ ਦੀ ਰੋਬੋਟ ਸਮਝ
ਰੋਬੋਟ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ (ROS) ਸਿੱਖਣਾ
ਇਹ ਸਾਨੂੰ ਦਿੱਤਾ ਗਿਆ ਪਹਿਲਾ ਪ੍ਰੋਜੈਕਟ ਸੀ। ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਤਿੰਨ ਕਾਰਜ ਸਨ:
- ਡਿਵੈਲਪਮੈਂਟ ਵਾਤਾਵਰਣ ਸੈਟਅਪ ਕਰਨਾ
- Gazebo ਸਿਮੁਲੇਟਰ ਨੂੰ ਸਮਝਣਾ
- ਇੱਕ ROS “Hello World” ਲਿਖਣਾ
ਕਾਰਜ 1 ਅਤੇ 2 ਲਈ, ਸਾਨੂੰ ਸਿਰਫ ਆਪਣਾ ਡਿਵੈਲਪਮੈਂਟ ਵਾਤਾਵਰਣ ਸੈਟਅਪ ਕਰਨਾ ਸੀ ਅਤੇ Gazebo ਦੇ ਪਰਿਚਯ ਟਿਊਟੋਰਿਅਲ ਨੂੰ ਫਾਲੋ ਕਰਨਾ ਸੀ। ਇਸ ਵਿੱਚ ਸ਼ਾਮਲ ਸੀ:
- ROS Melodic ਸੈਟਅਪ ਕਰਨਾ, ਜੋ ਮੈਂ ਆਪਣੇ 2011 HP ਲੈਪਟਾਪ ‘ਤੇ ਕੀਤਾ ਜੋ ਕਾਫੀ ਬੇਹਤਰ ਸੀ
- ROS ਅਤੇ Gazebo ਨੂੰ ਇੰਸਟਾਲ ਅਤੇ ਸੰਰਚਿਤ ਕਰਨਾ
- gazebosim ਦੀ ਟਿਊਟੋਰਿਅਲ ਅਤੇ e-manual ਦੀ ਟਿਊਟੋਰਿਅਲ ਨੂੰ ਪੜ੍ਹਨਾ।
ਦੂਜੇ ਪਾਸੇ, ਕਾਰਜ 3 ਵਾਕਈ ਇੱਕ ਚੁਣੌਤੀ ਸੀ। ਕਾਰਜ ਸੀ turtlesim ਨੂੰ ਵਰਤ ਕੇ ਟਰਟਲ ਨੂੰ Mines ਦਾ “M” ਲੋਗੋ ਬਣਵਾਉਣਾ:
![]() |
![]() |
ਇਹ ਕਾਰਜ, ਹਾਲਾਂਕਿ ਇਹ ਸਧਾ ਸੁਣਨ ਵਿੱਚ ਸੀ, ਦਰਅਸਲ ਦਿਖਾਈ ਦੇਣ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਮੁਸ਼ਕਲ ਸੀ। ਇਸ ਪ੍ਰੋਜੈਕਟ ਨੇ ਆਖ਼ਿਰਕਾਰ ਮੈਨੂੰ Open-Loop ਅਤੇ Closed-Loop ਸਿਸਟਮਾਂ ਦੇ ਸੰਕਲਪ ਨਾਲ ਜਾਣੂ ਕਰਵਾਇਆ। ਪੂਰੇ ਪ੍ਰੋਜੈਕਟ ਵਰਨਨ ਲਈ, csci473-p1.pdf ਵੇਖੋ ਜਾਂ ਤੁਸੀਂ ਇਸ ਪ੍ਰੋਜੈਕਟ ਅਤੇ ਮੇਰੇ ਹੱਲ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ROS Move Turtle ਪ੍ਰੋਜੈਕਟ ਪੇਜ਼ ‘ਤੇ ਪੜ੍ਹ ਸਕਦੇ ਹੋ।
ਰੋਬੋਟ ਵੱਲ ਫਾਲੋ ਕਰਨ ਲਈ Reinforcement Learning
ਇਹ ਸਾਨੂੰ ਦਿੱਤਾ ਗਿਆ ਦੂਜਾ ਪ੍ਰੋਜੈਕਟ ਸੀ, ਅਤੇ ਇਹ ਮੇਰੀ ਕਾਲਜ ਦੀਆਂ ਸਭ ਤੋਂ ਔਖੀਆਂ ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚੋਂ ਇੱਕ ਸੀ। ਪ੍ਰੋਜੈਕਟ ਵਰਨਨ ਐਵਾਂ ਸੀ:
ਇਸ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ, ਵਿਦਿਆਰਥੀ reinforcement learning الگورਿਦਮ ਡਿਜ਼ਾਈਨ ਅਤੇ ਲਾਗੂ ਕਰਨਗੇ ਤਾਂ ਜੋ ਇੱਕ ਸੁਤੰਤਰ ਮੋਬਾਈਲ ਰੋਬੋਟ ਨੂੰ ਇੱਕ ਕੰਧ ਦਾ ਪਾਲਣ ਕਰਨ ਅਤੇ ਰੁਕਾਵਟਾਂ ਨਾਲ ਟਕਰਾਉਣ ਤੋਂ ਬਚਣ ਦੀ ਸਿੱਖਿਆ ਦਿੱਤੀ ਜਾ ਸਕੇ। ਵਿਦਿਆਰਥੀ ROS Melodic ਵਿੱਚ Gazebo ਸਿਮੁਲੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ omni-directional ਮੋਬਾਈਲ ਰੋਬੋਟ ਜਿਸਦਾ ਨਾਂ Triton ਹੈ ਨੂੰ ਸਿਮੁਲੇਟ ਕਰਨਗੇ, ਅਤੇ ਤੁਹਾਨੂੰ ਦਿੱਤੇ ਗਏ ਇਨਵਾਇਰਨਮੈਂਟ ਮੈਪ ਦੀ ਵਰਤੋਂ ਕਰਨਗੇ। ਵਿਦਿਆਰਥੀ ਰੋਬੋਟ ‘ਤੇ ਇਕ ਲੇਜ਼ਰ ਰੇਂਜ ਸਕੈਨਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੈਂਸਿੰਗ ਅਤੇ ਲਰਨਿੰਗ ਕਰਵਾਉਣਗੇ, ਜਿੱਥੇ ਰੋਬੋਟ ਨੂੰ ਸਟੀਅਰਿੰਗ ਅਤੇ ਵੇਲੋਸਿਟੀ ਕਮਾਂਡਾਂ ਰਾਹੀਂ ਕੰਟਰੋਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਇਹ ਪ੍ਰੋਜੈਕਟ C++ ਜਾਂ Python ਵਿੱਚ ROS Melodic ‘ਤੇ Ubuntu 18.04 LTS ‘ਤੇ ਚਲਾਉਂਦੇ ਹੋਏ പ്രੋਗਰਾਮ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ (ਜਿਵੇਂ ਕਿ ਪ੍ਰੋਜੈਕਟ 1 ਵਿੱਚ ਵਰਤੇ ਗਏ ਇੱਕੋ ਜਿਹਾ ਡਿਵੈਲਪਮੈਂਟ ਵਾਤਾਵਰਣ)। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ IEEE ਰੋਬੋਟਿਕਸ ਕਾਨਫਰੰਸਾਂ ਦੇ ਮਾਨਕ ਫਾਰਮੈਟ ਦੇ ਅਨੁਸਾਰ LATEX ਵਿੱਚ ਇੱਕ ਰਿਪੋਰਟ ਲਿਖਣੀ ਦੀ ਲੋੜ ਹੈ।
Reinforcement learning الگورਿਦਮ ਲਈ, ਸਾਨੂੰ Q-Learning ਵਰਤਣ ਦਾ ਨਿਰਦੇਸ਼ ਦਿੱਤਾ ਗਿਆ ਸੀ। ਅਸੀਂ ਕਲਾਸ ਵਲੋਂ ਪ੍ਰਦਾਨ ਕੀਤੇ Stingray Gazebo ਸਿਮੁਲੇਸ਼ਨ ਵਾਤਾਵਰਣ ਦੀ ਵੀ ਵਰਤੋਂ ਕੀਤੀ। Stingray ਵਿੱਚ Triton ਮਾਡਲ ਅਤੇ ਫਿਜ਼ਿਕਸ ਲਾਜਿਕ ਸ਼ਾਮਲ ਸੀ। ਸਾਨੂੰ ਰੋਬੋਟ ਲਈ ਇੱਕ ਭੂਲਭੁੱਲਿਆ ਦਿੱਤਾ ਗਿਆ ਸੀ ਜਿਸਨੂੰ ਫਾਲੋ ਕਰਨਾ ਸੀ। ਕੁੱਲ ਮਿਲਾ ਕੇ, ਵਾਤਾਵਰਣ ਇਸ ਤਰ੍ਹਾਂ ਦਿਖਦਾ ਸੀ:
ਮੈਂ ਆਪਣਾ ਹੱਲ GitHub ਜਾਂ ਵੈੱਬ ਤੇ ਕਦੇ ਪ੍ਰਕਾਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਕਿਉਂਕਿ ਇਹ ਬਹੁਤ ਚੰਗਾ ਨਹੀਂ ਸੀ ਅਤੇ ਭਾਰੀ ਤਰ੍ਹਾਂ ਖਾਮੀਆਂ ਨਾਲ ਭਰਪੂਰ ਸੀ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਕੋਡ ਨੂੰ ਸਹੀ ਵਾਤਾਵਰਣ ਵਿੱਚ ਚਲਾਉਣਾ ਕਾਫੀ ਮੁਸ਼ਕਲ ਅਤੇ ਰੁਕਾਵਟ ਭਰਿਆ ਹੈ। ਹਾਲਾਂਕਿ, ਮੇਰੇ ਕੋਲ ਇੱਕ ਡੈਮੋ ਵੀਡੀਓ ਹੈ ਜੋ ਮੈਂ ਕਲਾਸ ਨੂੰ ਦਿੱਖਾਇਆ ਸੀ, ਜਿਸ ਵਿੱਚ ਮੇਰਾ ਹੱਲ ਦਿਖਾਇਆ ਗਿਆ ਹੈ। ਤੁਸੀਂ ਇਸ ਨੂੰ ਇੱਥੇ ਵੇਖ ਸਕਦੇ ਹੋ:
ਪੂਰੇ ਪ੍ਰੋਜੈਕਟ ਵੇਰਵੇ ਲਈ, csci473-p2.pdf ਵੇਖੋ
ਕਾਂਧ-ਅਧਾਰਿਤ ਪ੍ਰਤਿਨਿਧੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮਨੁੱਖੀ ਵਿਹਿਵਿਅਰ ਦੀ ਰੋਬੋਟ ਸਮਝ
ਤੀਜੇ ਪ੍ਰੋਜੈਕਟ ਲਈ, ਪ੍ਰੋਜੈਕਟ ਵਰਨਨ ਐਵਾਂ ਸੀ:
ਇਸ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ, ਵਿਦਿਆਰਥੀ ਕਈ ਸਕੈਲੇਟਨ ਅਧਾਰਿਤ ਪ੍ਰਤਿਨਿਧੀਆਂ ਲਾਗੂ ਕਰਨਗੇ (Deliverable 1) ਅਤੇ Support Vector Machines (SVMs) (Deliverable 2) ਦੀ ਵਰਤੋਂ ਕਰਕੇ Kinect V1 ਸੈਂਸਰ ਤੋਂ ਪ੍ਰਾਪਤ ਇਕ ਪਬਲਿਕ ਐਕਟੀਵਿਟੀ ਡੇਟਾਸੈੱਟ ਨੂੰ ਵਰਤਦੇ ਹੋਏ ਮਨੁੱਖੀ ਵਿਹਾਰਾਂ ਦੀ ਵਰਗੀਕਰਨ ਕਰਨਗੇ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ Deliverable 3 ਵਿੱਚ LATEX ਦੀ ਵਰਤੋਂ ਕਰਕੇ IEEE ਰੋਬੋਟਿਕਸ ਕਾਨਫਰੰਸਾਂ ਦੇ ਮਾਨਕ ਫਾਰਮੈਟ ਦੇ ਅਨੁਸਾਰ ਇਕ ਰਿਪੋਰਟ ਲਿਖਣੀ ਲਾਜ਼ਮੀ ਹੈ।
ਇਹ ਪ੍ਰੋਜੈਕਟ ਚੁਣੌਤੀਪੂਰਨ ਸੀ ਪਰ ਦੂਜੇ ਪ੍ਰੋਜੈਕਟ ਵਾਂਗ ਨਹੀਂ ਜਿਹਾ ਔਖਾ। ਮੁੱਖ ਮਕਸਦ Kinect V1 ਸੈਂਸਰ ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, MSR Daily Activity 3D Dataset ਤੋਂ ਡਾਟਾ ਲੈ ਕੇ, ਅਤੇ Support Vector Machines ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੁਝ ਮਨੁੱਖੀ ਕਾਰਵਾਈਆਂ/ਵਿਹਾਰਾਂ ਨੂੰ ਵਰਗੀਕਰਨਾ ਸੀ। ਪੂਰੇ ਪ੍ਰੋਜੈਕਟ ਵਰਨਨ ਲਈ, csci473-p3.pdf ਵੇਖੋ ਜਾਂ ਤੁਸੀਂ ਇਸ ਪ੍ਰੋਜੈਕਟ ਅਤੇ ਮੇਰੇ ਹੱਲ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ Predict Human Actions Using LIBSVM ਬਲੌਗ ਪੋਸਟ ‘ਤੇ ਪੜ੍ਹ ਸਕਦੇ ਹੋ।
CSCI473 ਨਤੀਜਾ
CSCI473 ਉਹਨਾਂ ਵਿੱਚੋਂ ਇੱਕ ਕਲਾਸਾਂ ਵਿੱਚੋਂ ਸੀ ਜੋ ਮੈਂ Mines ਵਿੱਚ ਆਪਣੀ ਅੰਡਰਗ੍ਰੈਜੂਏਟ ਪੜ੍ਹਾਈ ਦੌਰਾਨ ਲਈਆਂ। ਇਹ ਸਾਰੀਆਂ ਪ੍ਰੋਜੈਕਟਾਂ ਨੇ ਮੈਨੂੰ ਬਹੁਤ ਕੁਝ ਸਿਖਾਇਆ ਅਤੇ ਮੈਨੂੰ ਆਪਣੇ ਰੈਜ਼ੂਮੇ ‘ਤੇ ਦਰਸਾਉਣ ਅਤੇ ਰਿਫਰ ਕਰਨ ਲਈ ਇਕ ਬਹੁਤ ਵਧੀਆ ਪ੍ਰੋਜੈਕਟ ਕੈਟਾਲੌਗ ਮੁਹੱਈਆ ਕਰਵਾਇਆ। ਇਹ ਉਹ ਪਹਿਲੀ ਕਲਾਸ ਵੀ ਸੀ ਜਿੱਥੇ ਮੈਨੂੰ ਮਹਿਸੂਸ ਹੋਇਆ ਕਿ ਮੈਂ ਆਪਣੀ ਰੁਚੀ ਵਿੱਚ ਹਾਂ, ਕਿਉਂਕਿ ਮੈਂ ਕਦੇ ਵੀ ਇਕ ਚੰਗਾ ਟੈਸਟ ਟੇਕਰ ਨਹੀਂ ਸੀ ਪਰ ਪ੍ਰੋਜੈਕਟ ਪੂਰੇ ਕਰਨ ਵਿੱਚ ਮਹਾਨ ਤੇਜ ਸੀ। ਇਹ ਕਲਾਸ ਹੀ ਸੀ ਜਿਸ ਰਾਹੀਂ ਮੈਂ ਡਾ. Hao Zhang ਨੂੰ ਮਿਲਿਆ, ਜਿਸ ਨੇ ਆਖ਼ਿਰਕਾਰ ਮੈਨੂੰ Mines ਦੀ ਹਿਊਮਨ-ਸੈਂਟਰਡ ਰੋਬੋਟਿਕਸ (HCR) ਲੈਬ ਵਿੱਚ ਇਕ ਰਿਸਰਚ ਅਸਿਸਟੈਂਟ ਦੀ ਨੌਕਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕੀਤੀ।
CS ਫੀਲਡ ਸੈਸ਼ਨ (ਗਰਮੀਆਂ 2020)
ਗਰਮੀਆਂ 2020 ਵਿੱਚ, CSCI473 ਨੂੰ ਪੂਰਾ ਕਰਨ ਅਤੇ HCR ਲੈਬ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਣ ਦੇ ਵਿਚਕਾਰ, ਮੈਂ Colorado School of Mines ਵਿੱਚ ਆਪਣੇ CS ਅੰਡਰਗ੍ਰੈਜੂਏਟ ਪ੍ਰੋਗਰਾਮ ਦੇ ਹਿੱਸੇ ਵਜੋਂ CSCI370 ਜਾਂ “Advanced Software Engineering” ਲਿਆ। CSCI370 ਇੱਕ ਕੋਰਸ ਹੈ ਜੋ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਕਿਸੇ ਕੰਪਨੀ ਲਈ ਸਾਫਟਵੇਅਰ-ਸਬੰਧੀ ਸਮਾਧਾਨ ਡਿਜ਼ਾਈਨ, ਲਾਗੂ ਅਤੇ ਦਸਤਾਵੇਜ਼ ਕਰਨ ਕਰਵਾਉਂਦਾ ਹੈ। ਇਹ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਆਪਣੇ ਕੋਰਸਵਰਕ ਦੇ ਗਿਆਨ ਨੂੰ ਅਸਲ ਦੁਨੀਆ ਦੇ ਕੰਪਿਊਟਰ ਸਾਇੰਸ ਸਮੱਸਿਆਵਾਂ ‘ਤੇ ਲਾਗੂ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਤੁਸੀਂ ਕੋਰਸ ਬਾਰੇ ਹੋਰ ਜਾਣ ਸਕਦੇ ਹੋ ਇੱਥੇ।
ਇਸ ਕੋਰਸ ਵਿੱਚ, ਤੁਸੀਂ ਇਹ ਫੈਸਲਾ ਕਰ ਸਕਦੇ ਹੋ ਕਿ ਤੁਸੀਂ ਕਿਹੜੇ ਪ੍ਰੋਜੈਕਟ/ਕੰਪਨੀ ‘ਤੇ ਕੰਮ ਕਰੋਗੇ। ਕੋਰਸ ਨੇ ਹਰ ਪ੍ਰੋਜੈਕਟ ਅਤੇ ਕੰਪਨੀ ਦਾ ਵੇਰਵਾ PDFs ਰਾਹੀਂ ਦਿੱਤਾ। ਆਖ਼ਿਰਕਾਰ ਮੈਂ ਇੱਕ ਕੰਪਨੀ Lunar Outpost ਵੱਲੋਂ ਪੋਸਟ ਕੀਤਾ ਗਿਆ ਪ੍ਰੋਜੈਕਟ “Real Time Wheel Slip Detection and Error Corrections for Enhanced Lunar Navigation” ਚੁਣਿਆ। ਚੁੱਕੇ ਨਾਂ ਲੰਬਾ ਹੈ, ਆਓ ਇਸ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਇੱਕ ਉਪਨਾਮ “Wheel Slippage Detection” ਦੇ ਦਿੰਦਿਆਂ ਹਾਂ।
ਸਮੱਸਿਆ
Lunar Outpost ਇੱਕ ਸਟਾਰਟਅਪ ਹੈ ਜੋ ਸੁਤੰਤਰ ਲੂਨਰ ਰੋਵਰ ਬਣਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ। ਚੰਨ ਤੇ ਕਾਫੀ ਲੂਨਰ ਧੂੜ ਹੈ ਜੋ ਚੱਕਿਆਂ ਦੀ ਸਲਿਪੇਜ ਦਾ ਕਾਰਨ ਬਣਦੀ ਹੈ। ਇਹ ਆਇਡਿਲ ਨਹੀਂ ਹੈ ਕਿਉਂਕਿ ਚੱਕਾ ਸਲਿਪੇਜ ਦੇ ਕਾਰਨ ਸੁਤੰਤਰ ਸਿਸਟਮ ਆਪਣੀ ਅਸਲ ਦੁਨੀਆ ਦੀ ਸਥਿਤੀ ਖੋ ਸਕਦੇ ਹਨ। ਧਰਤੀ ‘ਤੇ, ਇਸ ਨੂੰ GPS ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਿਸੇ ਵੀ ਓਫਸੈੱਟ ਨੂੰ ਸਹੀ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜੋ ਚੱਕਾ ਸਲਿਪੇਜ ਕਾਰਨ ਹੁੰਦਾ ਹੈ। ਪਰ GPS ਦੀ ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ ਇਹ ਸਿਰਫ਼ ਉਨ੍ਹਾਂ ਸਥਿਤੀਆਂ ਵਿੱਚ ਹੀ ਕੰਮ ਕਰਦਾ ਹੈ ਜਿੱਥੇ 30+ ਨੈਵੀਗੇਸ਼ਨ ਸੈਟੇਲਾਈਟ ਧਰਤੀ ਦੇ ਕੱਖ ਵਿੱਚ ਸਤਤ ਘੁੰਮ ਰਹੀਆਂ ਹੁੰਦੀਆਂ ਹਨ ਅਤੇ ਵਿਲੱਖਣ ਸੰਕੇਤ ਸ੍ਰਾਵਿਤ ਕਰਦੀਆਂ ਹਨ ਜੋ ਕੰਪਿਊਟਰਾਂ ਨੂੰ ਉਹਨਾਂ ਦੀ ਸਥਿਤੀ ਦੀ ਗਣਨਾ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ। ਪਰ ਚੰਨ ‘ਤੇ, ਇਸ ਵੇਲੇ GPS ਵਰਗੀ ਕੋਈ ਵਿਵਸ੍ਥਾ ਨਹੀਂ ਹੈ। ਇਹ ਜਾਣਦੇ ਹੋਏ, GPS ਤੋਂ ਇਲਾਵਾ ਹੋਰ ਕਿਸੇ ਵਿਧੀ ਦੀ ਲੋੜ ਹੈ ਜੋ ਚੱਕਾ ਸਲਿਪੇਜ ਦੀ ਪਛਾਣ ਕਰ ਸਕੇ। ਪ੍ਰੋਜੈਕਟ ਦੀ ਸਮੱਸਿਆ ਦੀ ਜਾਂਚ ਦਾ ਵਿਸਥਾਰਿਤ ਰਿਪੋਰਟ ਤੁਸੀਂ ਇੱਥੇ ਵੇਖ ਸਕਦੇ ਹੋ।
ਟੀਮ
ਇਹ ਪ੍ਰੋਜੈਕਟ ਸਧਾਰਣ ਨਹੀਂ ਸੀ, ਇਸ ਲਈ ਇਹ ਟੀਮ ਵਿੱਚ ਕੀਤਾ ਜਾਣਾ ਲਾਜ਼ਮੀ ਸੀ। ਟੀਮ ਵਿੱਚ ਪੰਜ Colorado School of Mines ਦੇ ਵਿਦਿਆਰਥੀ ਸ਼ਾਮਲ ਸਨ:
ਇਹ ਪ੍ਰੋਜੈਕਟ ਸਧਾਰਣ ਨਹੀਂ ਸੀ, ਇਸ ਲਈ ਇਹ ਟੀਮ ਵਿੱਚ ਕੀਤਾ ਜਾਣਾ ਲਾਜ਼ਮੀ ਸੀ। ਇਸ ਟੀਮ ਵਿੱਚ Mehmet Yilmaz (ਮੈਂ), Kane Bruce, Braedon O’Callaghan, Liam Williams, ਅਤੇ Kevin Grant ਸ਼ਾਮਲ ਸਨ।
ਪ੍ਰੋਜੈਕਟ ਲਈ ਸਾਨੂੰ ਕੁਝ ROS, C++, Python, Linux, Raspberry Pi, ਅਤੇ Arduino ਦੀ ਜਾਣਕਾਰੀ ਹੋਣੀ ਲੋੜੀਂਦੀ ਸੀ। ਸਾਡੇ ਵਿੱਚੋਂ ਜ਼ਿਆਦਾਤਰ ਨੂੰ ਇਨ੍ਹਾਂ ਤਕਨੀਕਾਂ ਵਿੱਚੋਂ ਇਕ ਜਾਂ ਅਧਿਕ ਦਾ ਅਨੁਭਵ ਸੀ ਪਰ ਮੈਂ ਇੰਦਰਾਜ਼ ਹੀ ਉਹ ਇਕਲੌਤਾ ਸੀ ਜਿਸਨੂੰ ROS ਦਾ ਅਨੁਭਵ ਸੀ ਕਿਉਂਕਿ ਮੈਂ Spring 2020 ਸੈਮੇਸਟਰ ਦੌਰਾਨ ਆਪਣੀ Human Centered Robotics (CSCI473) ਕਲਾਸ ਵਿੱਚ ROS ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਸੀ। ਇਸ ਕਾਰਨ, ਸ਼ੁਰੂਆਤੀ ਦਿਨਾਂ ਵਿੱਚ, ਮੈਂ ਸਭ ਨੂੰ ROS ਅਤੇ ਇਸ ਤੇ ਵਿਕਾਸ ਕਰਨ ਬਾਰੇ ਅਪ-ਟੂ-ਸਪીડ ਲਿਆਉਣ ਵਿੱਚ ਮਦਦ ਕੀਤੀ।
ਚੁਣੌਤੀਆਂ
ਇਸ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਬਹੁਤ ਸਾਰੀਆਂ ਚੁਣੌਤੀਆਂ ਸਨ। ਪਰ ਸਭ ਤੋਂ ਵੱਡੀ ਚੁਣੌਤੀ ਸਾਡੇ ਸਾਹਮਣੇ ਇਹ ਸੀ ਕਿ ਪਰੀਖਿਆ ਲਈ ਸਾਡੇ ਕੋਲ ਅਸਲ ਦੁਨੀਆ ਦਾ ਰੋਬੋਟ ਉਪਲਬਧ ਨਹੀਂ ਸੀ। ਇਹ ਕੋਵਿਡ ਦੇ ਕਾਰਨ ਹਰ ਚੀਜ਼ ਨੂੰ ਰਿਮੋਟ ਕਰ ਦੇਣ ਨਾਲ ਅਤੇ ਲੂਨਰ ਆਉਟਪੋਸਟ ਦੇ ਲੈਬ/ਭਵਨਾਂ ਵਿੱਚ ਕੰਮ ਕਰਨ ਤੋਂ ਰੋਕਣ ਨਾਲ ਹੋਇਆ ਸੀ। ਇਸ ਕਾਰਨ ਸਾਨੂੰ ਸਿਮੂਲੇਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਪਈ।
ਇਸ ਤੋਂ ਇਲਾਵਾ, ਅਸੀਂ WVU ਨੈਵੀਗੇਸ਼ਨ ਲੈਬ ਦੇ ਕੁਝ ਅਕਾਦਮਿਕ ਅਨੁਸੰਧਾਨਾਂ ਦਾ ਅਧਿਐਨ ਕੀਤਾ ਤਾਂ ਜੋ ਇਹ ਸਮਝ ਆ ਸਕੇ ਕਿ Wheel Slippage ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਲੂਨਰ ਆਉਟਪੋਸਟ ਦੇ ਉਪਯੋਗ ਮਾਮਲੇ ਲਈ ਕਿਵੇਂ ਹੱਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜੋ ਸਾਡੇ ਲਈ, ਦੂਜੇ ਅਤੇ ਤੀਜੇ ਸਾਲ ਦੇ ਅੰਡਰਗ੍ਰੈਜੂਏਟ ਵਿਦਿਆਰਥੀਆਂ ਵਜੋਂ, ਉਮੀਦ ਤੋਂ ਵੱਧ ਮੁਸ਼ਕਲ ਸੀ।
ਇਕ ਹੋਰ ਚੁਣੌਤੀ ਜੋ ਸਾਡੇ ਸਾਹਮਣੇ ਸੀ ਉਹ ਇਸ ਪ੍ਰੋਜੈਕਟ ‘ਤੇ ਕੰਮ ਕਰਨ ਲਈ ਸਾਡੇ ਕੋਲ ਮੌਜੂਦ ਸਮੇਂ ਦੀ ਮਾਤਰਾ ਸੀ। CSCI370 ਇੱਕ ਇੱਕ ਮਹੀਨੇ ਦੀ ਕਲਾਸ ਹੈ। ਪਰ ਸਮੱਸਿਆ ਖੁਦ ਇੱਕ ਭਾਰੀ ਸਮੱਸਿਆ ਹੈ ਜਿਸ ਨੂੰ ਕਈ ਕੰਪਨੀਆਂ ਅਤੇ ਅਕਾਦਮਿਕ ਲੋਕ ਦਹਾਕਿਆਂ ਤੋਂ ਹੱਲ/ਸੁਧਾਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਹਨ। ਇਸ ਲਈ ਇੱਕ ਮਹੀਨਾ ਇਸ ਮਸਲੇ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਕਾਫ਼ੀ ਨਹੀਂ ਹੈ। ਪਰ, ਸਾਰੀਆਂ ਚੁਣੌਤੀਆਂ ਦੇ ਬਾਵਜੂਦ ਅਸੀਂ ਅੱਗੇ ਵਧੇ ਅਤੇ ਸਪੁਰਦਗੀ ਯਕੀਨੀ ਬਣਾਈ।
ਨਤੀਜਾ
ਸਾਰੇ ਅਨੁਸੰਧਾਨ ਅਤੇ ਵਿਕਾਸ ਦੇ ਕੰਮਾਂ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਨਤੀਜਾ ਕੱਢਿਆ ਕਿ ਚੰਦਰਮਾ ਦੀ ਭੌਤਿਕੀ ਵਿਵਸਥਾ ਨੂੰ ਡਿਜਿਟਲ ਰੂਪ ਵਿੱਚ ਠੀਕ ਤਰ੍ਹਾਂ ਸਿਮੂਲੇਟ ਕਰਨਾ ਲਗਭਗ ਅਸੰਭਵ ਹੈ, ਇਸ ਲਈ ਅਸਲ ਵਿਚ ਇਸ ਅਲਗੋਰਿਦਮ ਨੂੰ ਸਿਮੂਲੇਸ਼ਨ ਵਿੱਚ ਆਜ਼ਮਾਉਣਾ ਕੋਈ ਚੰਗੀ ਗੱਲ ਨਹੀਂ ਹੈ ਅਤੇ ਇਹ ਚੰਦਰਮਾ ‘ਤੇ ਅਤੇ ਅੰਤਰਿਕਸ਼ ਵਿੱਚ ਚੱਕਰਾਂ ਦੇ ਫਿਸਲਣ ਦੀ ਪਛਾਣ ਵਿੱਚ ਕੋਈ ਕੋਈ ਅਰਥਪੂਰਨ ਅਨੁਸੰਧਾਨ ਨਹੀਂ ਦੇਵੇਗਾ। ਅਸੀਂ ਨਤੀਜਾ ਕਢਿਆ ਕਿ ਰੇਤ ਵਰਗੀਆਂ ਵਸਤਾਂ ਅਤੇ ਅਸਲੀ ਹਾਰਡਵੇਅਰ ਵਰਗੀਆਂ ਚੀਜ਼ਾਂ (ਉਦਾਹਰਨ ਲਈ Husky ਰੋਬੋਟ) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਢੰਗ ਦਾ ਟੈਸਟ ਵਾਤਾਵਰਣ ਸੈੱਟਅਪ ਕਰਨਾ ਇਸ ਕਿਸਮ ਦੇ ਅਨੁਸੰਧਾਨ ਲਈ ਕਾਫ਼ੀ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਅਸੀਂ ਵ੍ਹੀਲ ਸਲਿਪੇਜ ਪਛਾਣ ਕੋਡ ਨੂੰ ROS ਨੋਡ ਵਜੋਂ ਕੰਮ ਕਰਨ ਲਈ ਅਪਡੇਟ ਕੀਤਾ ਅਤੇ ਇਹ ਠੀਕ ਤਰ੍ਹਾਂ ਕੰਮ ਕੀਤਾ ਅਤੇ ਆਸਾਨੀ ਨਾਲ ਅਸਲੀ ਹਾਰਡਵੇਅਰ ਵਿੱਚ ਆਜ਼ਮਾਇਸ਼ ਲਈ ਕ_import_ ਕੀਤਾ ਜਾ ਸਕਦਾ ਸੀ। ਇਸ ਪ੍ਰੋਜੈਕਟ ਨੇ ਮੈਨੂੰ ਨੇਤૃતਵ ਭੂਮਿਕਾ ਨਿਭਾਣ ਦਾ ਮੌਕਾ ਦਿੱਤਾ, ਮੇਰੇ ਸਾਥੀਆਂ ਨੂੰ ROS ਵਿਕਾਸ ਬਾਰੇ ਸਿੱਖਾਇਆ, ਅਤੇ Python, ROS, ਅਤੇ Gazebo ਨਾਲ ਅਨੁਭਵ ਪ੍ਰਾਪਤ ਕਰਨ ਦਾ ਮੌਕਾ ਦਿੱਤਾ ਜਦੋਂ ਕਿ ਮੈਂ ਇੱਕ ਜਟਿਲ ਸਮੱਸਿਆ ਨਾਲ ਨਿਬਟ ਰਿਹਾ ਸੀ ਜਿਸ ਨਾਲ ਮੈਂ ਪਹਿਲਾਂ ਕਦੇ ਸਾਹਮਣਾ ਨਹੀਂ ਕੀਤਾ ਸੀ। ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਗੱਲ ਇਹ ਹੈ ਕਿ ਇਸ ਅਨੁਭਵ ਨੇ ਮੇਰੇ ਰੋਬੋਟਿਕਸ ਲਈ ਚਾਹ ਨੂੰ ਹੋਰ ਮਜ਼ਬੂਤ ਕੀਤਾ ਅਤੇ ਖੇਤਰ ਵਿੱਚ ਅਨੁਸੰਧਾਨ ਕਰਨ ਦੀ ਮੇਰੀ ਇੱਛਾ ਨੂੰ ਹੋਰ ਸਥਿਰ ਕੀਤਾ, ਜਿਸ ਨੇ ਮੇਰੇ ਰੋਬੋਟਿਕਸ ਯਾਤਰਾ ਲਈ ਅੱਗੇ ਦੇ ਰਸਤੇ ਦੀ ਬੁਨਿਆਦ ਰੱਖੀ।
HCR ਲੈਬ ਵਿੱਚ ਸ਼ੁਰੂਆਤ
CSCI473 ਪੂਰਾ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਗਰਮੀ 2020 ਵਿੱਚ ਮੇਰਾ CS Field Session ਅਤੇ ਮੇਰਾ ਫਾਲ 2020 ਸੈਮੇਸਟਰ ਪੂਰਾ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਮੈਂ ਰੋਬੋਟਿਕਸ ਵਿੱਚ ਅਨੁਸੰਧਾਨ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕੀਤਾ। ਮੈਨੂੰ CSCI473 ਅਤੇ CS Field Session ਦੋਹਾਂ ਨਾਲ ਇੰਨੇ ਚੰਗੇ ਅਨੁਭਵ ਹੋਏ ਕਿ ਮੈਂ ਫੈਸਲਾ ਕੀਤਾ ਕਿ ਮੈਂ HCR ਲੈਬ ਲਈ ਅਨੁਸੰਧਾਨ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹਾਂ। ਕਿਉਂਕਿ ਮੈਂ ਪਿਛਲੇ ਸਾਲ Dr. Zhang ਨੂੰ ਮਿਲਿਆ ਸੀ, ਮੈਂ ਜਨਵਰੀ 2021 ਵਿੱਚ ਉਨ੍ਹਾਂ ਨੂੰ ਈਮੇਲ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕੀਤਾ ਅਤੇ ਲੈਬ ਵਿੱਚ ਕਿਸੇ ਵੀ ਮੌਕਿਆਂ ਬਾਰੇ ਪੁੱਛਿਆ। ਲਗਭਗ 2 ਹਫ਼ਤੇ ਦੇ ਅੰਦਰ, Dr. Zhang ਨੇ ਦਿਲਚਸਪੀ ਦਿਖਾਈ, ਮੈਨੂੰ ਅਨੁਸੰਧਾਨ ਵਿਕਲਪ ਪੇਸ਼ ਕੀਤੇ, ਅਤੇ ਲੈਬ ਵਿੱਚ ਇਕ ਭੂਮਿਕਾ ਦੀ ਪੇਸ਼ਕਸ਼ ਕੀਤੀ। ਫਿਰ ਮੈਂ ਫਰਵਰੀ 2021 ਵਿੱਚ ਲੈਬ ਲਈ ਕੰਮ ਕਰਨਾ ਸ਼ੁਰੂ ਕੀਤਾ।
ਜਾਣਪਛਾਣ ਵੀਡੀਓ
ਇਹ ਮੇਰੀ ਜਾਣਪਛਾਣ ਵੀਡੀਓ ਹੈ ਜੋ ਮੈਂ HCR ਲੈਬ ਵਿੱਚ ਆਪਣੇ ਸਮੇਂ ਦੇ ਕੁਝ ਮਹੀਨੇ ਬਾਅਦ ਰਿਕਾਰਡ ਕੀਤੀ ਸੀ। ਇਹ ਮਈ 2021 ਵਿੱਚ ਰਿਕਾਰਡ ਕੀਤੀ ਗਈ ਸੀ ਅਤੇ ਇਸ ਵਿੱਚ ਉਹ ਅਨੁਸੰਧਾਨ ਕਵਰ ਕੀਤਾ ਗਿਆ ਹੈ ਜਿਸ ‘ਤੇ ਮੈਂ ਗਰਮੀ 2021 ਦੌਰਾਨ HCR ਲੈਬ ਵਿੱਚ ਧਿਆਨ ਕੇਂਦਰਤ ਕਰਾਂਗਾ:
ਮੇਰਾ ਪ੍ਰੋਜੈਕਟ
ਮੇਰੇ HCR ਲੈਬ ਵਿੱਚ ਰਹਿਣ ਦੇ ਸਮੇਂ ਦੌਰਾਨ, ਮੈਂ ਮੁੱਖ ਤੌਰ ‘ਤੇ ਟ੍ਰਾਇਟਨ ਪ੍ਰੋਜੈਕਟ ‘ਤੇ ਧਿਆਨ ਕੇਂਦਰਤ ਕੀਤਾ। ਟ੍ਰਾਇਟਨ ਪ੍ਰੋਜੈਕਟ ਇੱਕ ਮੋਬਾਈਲ ਰੋਬੋਟ ਹੈ ਜੋ ਮਨੁੱਖ-ਕੇਂਦਰਤ ਰੋਬੋਟਿਕਸ ਲੈਬ ਵੱਲੋਂ Colorado School of Mines ‘ਚ ਵਿਕਸਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਇੱਕ ਤਿਕੋਣਾਕਾਰ ਓਮਨੀ-ਵ੍ਹੀਲ ਗ੍ਰਾਊਂਡ ਰੋਬੋਟ ਹੈ ਜੋ NVIDIA ਦੇ Jetson Nano ਨਾਲ ਸਮਰਥਿਤ ਹੈ।
ਟ੍ਰਾਇਟਨ, ਇੱਕ ਸਧਾਰਣ ਜਾਇਜ਼ੇ ਵਿੱਚ, ਹੇਠ ਲਿਖੇ ਹਿੱਸਿਆਂ ‘ਤੇ ਬਣਿਆ ਹੋਇਆ ਸੀ:
- NVIDIA Jetson Nano
- NVIDIA ਦੀ Seed Studio A205 Carrier Board
- Arduino Mega
- 64 GB ਮਾਈਕਰੋ SD ਕਾਰਡ
- ਕਸਟਮ 3D ਪ੍ਰਿੰਟ ਕੀਤਾ ਗਿਆ ਬਾਡੀ
- 3 ਮੇਕਾਨਮ ਵ੍ਹੀਲ
- 1 AR ਬੈਟਰੀ
- ਪਾਵਰ ਵੰਡ ਅਤੇ ਵਾਇਰਿੰਗ ਨੂੰ ਆਪਟੀਮਾਈਜ਼ ਕਰਨ ਲਈ ਕਸਟਮ ਸਰਕਿਟ
- Intel ਦਾ Realsense D435 ਕੈਮਰਾ
- ਕੁਝ LEDs
ਇਹ 2018-2020 ਦੇ ਆਟੇ-ਆਲੇ ਦੌਰਾਨ ਇੱਕ ਸਿਖਿਆਤਮਕ ਉਦੇਸ਼ ਲਈ ਡਿਜ਼ਾਈਨ, ਬਣਾਇਆ ਅਤੇ ਉਤਪਾਦਿਤ ਕੀਤਾ ਗਿਆ ਸੀ। ਜਦੋਂ ਮੈਂ ਸ਼ਾਮਿਲ ਹੋਇਆ, ਟ੍ਰਾਇਟਨ ਕਾਫੀ ਸਥਾਪਤ ਸੀ, ਅਤੇ ਲੈਬ ਇਸ ਦਾ ਨਵਾਂ ਸੰਸਕਰਣ ਬਣਾਉਣ ‘ਤੇ ਵਿਚਾਰ ਕਰ ਰਹੀ ਸੀ। ਹਾਲਾਂਕਿ, ਟ੍ਰਾਇਟਨ ਦੀ ਮੁੱਖ ਸਮੱਸਿਆ ਇਸਦਾ ਸਾਫਟਵੇਅਰ ਸੀ। ਟ੍ਰਾਇਟਨ ਬੁਨਿਆਦੀ ਅਰਥ ਵਿੱਚ ਹਿਲ ਸਕਦਾ ਸੀ, ਚਾਰਜ ਹੋ ਸਕਦਾ ਸੀ, ਅਤੇ ਕੰਮ ਕਰ ਸਕਦਾ ਸੀ ਪਰ ਇਹ ਵਾਸਤਵ ਵਿੱਚ ਕੁਝ ਵੀ ਬੁੱਧਿਮਾਨੀ ਨਾਲ ਨਹੀਂ ਕਰਦਾ ਸੀ। ਇਸ ਵਿੱਚ ਅੱਗੇ ਦੀਆਂ ਹੋਰ ਅਡਵਾਂਸ ਮੁਵਮੈਂਟਾਂ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਵੀ ਘੱਟ ਸੀ।
![]() |
![]() |
![]() |
![]() |
ਇਸ ਦਾ ਹੱਲ ਸ਼ੁਰੂ ਕਰਨ ਲਈ, ਲੈਬ ਨੇ ਇੱਕ ਖੇਤਰ ਬਣਾਇਆ ਜਿੱਥੇ ਅਸੀਂ ਟ੍ਰਾਇਟਨ ਨੂੰ ਟ੍ਰੈਕ ਕਰ ਸਕਦੇ ਸੀਂ। ਇਸ ਲਈ, ਉਨ੍ਹਾਂ ਨੇ ਫਰਸ਼ ਤੋਂ ਲਗਭਗ 6-7 ਫੁੱਟ ਉੱਚਾਈ ‘ਤੇ ਲਗਭਗ ਵਰਗਾਕਾਰ ਆਕਾਰ ਵਿੱਚ 8 Optitrack Flex (Infrared Red) ਕੈਮਰਿਆਂ ਨਾਲ 2 ਮੀਟਰ ਬਾਇ 2 ਮੀਟਰ ਦਾ ਖੇਤਰ ਬਣਾਇਆ।
![]() |
![]() |
ਇਸ ਖੇਤਰ ਦੇ ਬਣਨ ਦੇ ਨਾਲ-ਨਾਲ, ਹਰ ਟ੍ਰਾਇਟਨ ਦੇ ਬਾਡੀ ਦੇ ਸਿਖਰ ‘ਤੇ ਤਿੰਨ ਸਲੇਟੀ ਗੋਲ ਗੇਂਦਾਂ ਜੁੜੀਆਂ ਹੋਈਆਂ ਸਨ।
ਇਸ ਸੈਟਅਪ ਨਾਲ, ਅਸੀਂ ਪ੍ਰਭਾਵੀ ਤੌਰ ‘ਤੇ ਆਪਣੀ ਛੋਟੀ ਪੈਮਾਨੇ ਦੀ GPS ਪ੍ਰਣਾਲੀ ਬਣਾਈ ਜੋ ਸਾਡੇ ਖੇਤਰ ਵਿੱਚ ਇੱਕ ਟ੍ਰਾਇਟਨ ਦੇ ਮੀਟਰਾਂ ਵਿੱਚ ਬਿਲਕੁਲ ਸਹੀ ਕੋਆਰਡੀਨਟ ਪ੍ਰਦਾਨ ਕਰਦੀ ਸੀ। Optitrack ਇਨਫ੍ਰਾ-ਰੈੱਡ ਕੈਮਰਿਆਂ ਅਤੇ Optitrack ਦੀਆਂ ਸਲੇਟੀ ਗੇਂਦਾਂ ਨੂੰ ਤਿਕੋਣਕਾਰੀ ਰੂਪ ਵਿੱਚ ਵਰਤ ਕੇ ਅਸੀਂ ਆਪਣੇ ਖੇਤਰ ਵਿੱਚ ਟ੍ਰਾਇਟਨ ਦੇ ਬਿਲਕੁਲ ਸਹੀ ਕੋਆਰਡੀਨਟ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੇ ਸੀ। ਇਸ ਨਾਲ ਸਾਨੂੰ ਚਲਣ ਵਿੱਚ ਬੇਹਤਰ ਸਟੀਕਤਾ ਲਈ ਇੱਕ ਬੰਦ-ਲੂਪ ਸਿਸਟਮ ਲਾਗੂ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲੀ।
Optitrack ਸਿਸਟਮ ਨੇ ਸਹੀ ਕੈਲੀਬਰੇਸ਼ਨ ਹੋਣ ‘ਤੇ ਲਗਭਗ 120Hz ‘ਤੇ ਪੋਜ਼ੀਸ਼ਨ ਅਤੇ ਓਰੀਏਂਟੇਸ਼ਨ ਡੇਟਾ ਦਿੱਤਾ, ਜਿਸ ਦੀ ਸਬ-ਮਿਲੀਮੀਟਰ ਸਟੀਕਤਾ ਸੀ। ਹਰ ਟ੍ਰਾਇਟਨ ਦੇ ਤਿੰਨ ਰਿਫਲੇਕਟਿਵ ਮਾਰਕਰਾਂ ਨੇ ਇੱਕ ਵਿਲੱਖਣ ਤਿਕੋਣਾਕਾਰ ਪੈਟਰਨ ਬਣਾਇਆ ਜੋ ਸਿਸਟਮ ਇਕ ਠੋਸ ਬਾਡੀ ਵਜੋਂ ਟ੍ਰੈਕ ਕਰ ਸਕਦਾ ਸੀ। ਕੋਆਰਡੀਨੈਟ ਸਿਸਟਮ ਐਸਾ ਕੈਲੀਬਰੇਟ ਕੀਤਾ ਗਿਆ ਸੀ ਕਿ (0,0) ਟ੍ਰੈਕਿੰਗ ਖੇਤਰ ਦੇ ਕੇਂਦਰ ‘ਤੇ ਸੀ, ਅਤੇ X ਅਤੇ Y ਅਕਸ ਕਮਰੇ ਦੀ ਜਯਾਮਿਤੀ ਦੇ ਅਨੁਸਾਰ ਸਮਰੂਪ ਸਨ। ਪਰ ਇਸ ਬਹੁਤ ਨਿਰਧਾਰਤ ਪੋਜ਼ੀਸ਼ਨਿੰਗ ਡੇਟਾ ਦੇ ਬਾਵਜੂਦ ਵੀ ਟ੍ਰਾਇਟਨ ਨੂੰ ਹਿਲਣ-ਡੁਲਣ ਵਿੱਚ ਮੁਸ਼ਕਲ ਆ ਰਹੀ ਸੀ।
ਇਸ ਸੈਟਅਪ ਨਾਲ, ਇੱਕ ਮੁੱਖ ਫੀਚਰ ਜੋ ਅਸੀਂ ਟ੍ਰਾਇਟਨ ਨੂੰ ਦੇਣਾ ਚਾਹੁੰਦੇ ਸਾਂ ਉਹ ਸੀ ਕਿ ਉਹ ਕਿਸੇ ਨਿਰਧਾਰਤ ਕੋਆਰਡੀਨਟ ਤੱਕ ਹਿਲ ਸਕੇ। ਯੂਜ਼ਰ, ਜਾਂ ਉਹਨਾਂ ਦਾ ਸਾਫਟਵੇਅਰ, ਆਪਣੇ ਖੇਤਰ ਵਿੱਚ ਇੱਕ (x, y) ਕੋਆਰਡੀਨਟ ਦੇ ਸਕਦੇ ਸਨ। ਫਿਰ ਰੋਬੋਟ ਉਸ ਕੋਆਰਡੀਨਟ ਤੱਕ ਜਿੱਤਨਾ ਤੇਜ਼, ਸਹੀ ਅਤੇ ਬਿਨਾਂ ਰੁਕਾਵਟਾਂ ਦੇ ਹੋ ਸਕੇ ਪਹੁੰਚ ਜਾਵੇ। ਜਦੋਂ ਮੈਂ ਸ਼ਾਮਿਲ ਹੋਇਆ, ਇਹ ਫੀਚਰ ਮੌਜੂਦ ਸੀ ਪਰ ਇਹ ਬਹੁਤ ਵਧੀਆ ਤਰੀਕੇ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ। ਇੱਥੇ ਇੱਕ ਸਧਾਰਨ ਐਨੀਮੇਸ਼ਨ ਹੈ ਜੋ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਅਸਲ ਮੂਵਿੰਗ ਲੌਜਿਕ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਸੀ:
ਮੈਂ ਅਸਲ ਹੱਲ ਨੂੰ ਕਾਰਵਾਈ ਵਿੱਚ ਰਿਕਾਰਡ ਨਹੀਂ ਕੀਤਾ ਸੀ, ਇਸ ਲਈ ਮੈਂ ਇਹ ਸਧਾਰਨ ਐਨੀਮੇਸ਼ਨ ਬਣਾਈ ਜੋ ਤੁਹਾਨੂੰ ਪੁਰਾਣੀ ਮੂਵਿੰਗ ਲੌਜਿਕ ਕਾਰਵਾਈ ਵਿੱਚ ਦਿਖਾਉਂਦੀ ਹੈ। ਇਸ ਨੂੰ ਜਾਨਦੇ ਹੋਏ, ਇਸ ਵਿਧੀ ਨਾਲ ਕੀ ਮੁੱਦੇ ਹਨ?
- ਇਹ ਬਹੁਤ ਧੀਮਾ ਹੈ
- ਇਹ ਰੋਬੋਟ ਨੂੰ ਇੱਕ ਨਿਰਧਾਰਤ ਬਿੰਦੂ ਤੱਕ ਜਾਣ ਲਈ ਬਹੁਤ ਜ਼ਿਆਦਾ ਜਗ੍ਹਾ ਲੈਣ ਕਰਾਉਂਦੀ। ਇਸ ਨਾਲ ਅਸੀਂ ਇਸ ਹੱਲ ਨੂੰ ਉਪਯੋਗ ਨਹੀਂ ਕਰ ਸਕਦੇ ਜਦੋਂ ਕਈ ਟ੍ਰਾਇਟਨ ਇੱਕੋ ਸਮੇਂ ਹਿਲ ਰਹੇ ਹੋਣ।
ਤਾਂ ਇਹ ਵਿਹਾਰ ਕਿਉਂ ਹੋ ਰਿਹਾ ਸੀ? ਸਮੱਸਿਆ ਇਹ ਸੀ ਕਿ ਟ੍ਰਾਇਟਨ ਪਹਿਲਾਂ ਮੋੜਦਾ ਸੀ, ਆਪਣੀ alpha ਬਦਲਦਾ ਸੀ, ਜਦ ਤਕ ਕਿ ਇਹ ਨਿਰਧਾਰਤ ਮਾਰਜਿਨ ਆਫ਼ ਐਰਰ ਦੇ ਅੰਦਰ ਲਕਸ਼ ਬਿੰਦੂ ਵੱਲ ਇਸ਼ਾਰਾ ਨਾ ਕਰਦਾ। ਫਿਰ ਇਹ ਅੱਗੇ ਤੇਜ਼ ਦੌੜਦਾ, ਅਤੇ ਜਦੋਂ ਇਸ ਦਾ theta ਟਾਰਗਟ ਤੋਂ ਇੱਕ ਨਿਰਧਾਰਤ ਮਾਤਰਾ ਤੱਕ ਹੱਟ ਜਾਂਦਾ ਤਾਂ ਇਹ ਰੁਕ ਜਾਦਾ ਅਤੇ ਮੁੜ ਮੋੜਣਾ ਸ਼ੁਰੂ ਕਰ ਦਿੰਦਾ ਜਦ ਤਕ alpha ਟਾਰਗਟ ਲਕਸ਼ ਲਈ ਉਸ ਮਨਜ਼ੂਰ ਕੀਤੇ ਗਏ ਰੇਂਜ ਵਿੱਚ ਨਾ ਆ ਜਾਵੇ। ਫਿਰ ਇਹ ਫਿਰ ਤੋਂ ਦੌੜਦਾ ਅਤੇ ਇਹ ਤਰੀਕਾ ਇਸ ਤਰ੍ਹਾਂ ਜari ਰਹਿੰਦਾ ਜਦ ਤਕ ਇਹ ਬਿੰਦੂ ਤੱਕ ਨਾ ਪਹੁਂਚੇ। ਨਾਲ ਹੀ, ਜਿਵੇਂ ਜਿਵੇਂ ਇਹ ਲਕਸ਼ ਬਿੰਦੂ ਦੇ ਨੇੜੇ ਜਾਂਦਾ, ਮੋੜਨ ਅਤੇ ਦੌੜਨ ਦੀ ਗਤੀ ਕਾਫ਼ੀ ਧੀਮੀ ਹੋ ਜਾਂਦੀ ਤਾਂ ਜੋ ਇਹ ਓਵਰਸ਼ੂਟ ਨਾ ਕਰੇ। ਇਸ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਟ੍ਰਾਇਟਨ ਦਾ ਮੂਵਮੈਂਟ ਅਸਭਿਆਕਰ ਹੋ ਜਾਂਦਾ, ਲਕਸ਼ ਬਿੰਦੂ ਤੱਕ ਪਹੁੰਚਣ ਵਿੱਚ ਬਹੁਤ ਸਮਾਂ ਲੱਗਦਾ, ਅਤੇ ਕਿਸੇ ਨਿਰਧਾਰਤ ਟਾਰਗਟ ਬਿੰਦੂ ਤੱਕ ਪਹੁੰਚਣ ਲਈ ਬਹੁਤ ਜਗ੍ਹਾ ਦੀ ਲੋੜ ਪੈਂਦੀ। ਤਾਂ ਇਹ ਸਾਰੀਆਂ ਸਮੱਸਿਆਵਾਂ ਦੇ ਨਾਲ, ਅਤੇ ਇਹ ਫੀਚਰ ਟ੍ਰਾਇਟਨ ਪ੍ਰੋਜੈਕਟ ਦੇ ਵਿਕਾਸ ਲਈ ਕਿੰਨੀ ਜ਼ਰੂਰੀ ਸੀ ਦੇਖਦੇ ਹੋਏ, ਜਦੋਂ ਮੈਂ HCR ਲੈਬ ‘ਚ ਕੰਮ ਸ਼ੁਰੂ ਕੀਤਾ, ਮੇਰਾ ਪਹਿਲਾ ਕੰਮ ਇਹ ਸੀ ਕਿ ਅਹਿਮ ਤਰੀਕੇ ਵਿਕਸਿਤ ਕਰਾਂ ਜੋ ਟ੍ਰਾਇਟਨ ਨੂੰ ਲਕਸ਼ ਬਿੰਦੂ ਵੱਲ ਵਧੀਆ ਤਰੀਕੇ ਨਾਲ ਨੈਵੀਗੇਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦੇ ਸਕਣ।
ਇਸ ਜਾਣਕਾਰੀ ਦੇ ਨਾਲ, ਮੈਂ ਇਸ ਸਮੱਸਿਆ ਦੇ ਹੱਲ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕਿਆਂ ਬਾਰੇ ਬਹੁਤ ਸਮਾਂ ਰਿਸਰਚ ਕਰਨ ਵਿੱਚ ਲਗਾਇਆ। ਵਿਡੰਤੀ ਤੌਰ ‘ਤੇ, ਮੈਂ Mines ਵਿੱਚ ਫੀਡਬੈਕ ਕੰਟਰੋਲ ਸਿਸਟਮਾਂ ਦਾ ਪਰਿਚਯ (EENG307) ਨਾਮਕ ਇਕ ਕਲਾਸ ਲੈ ਰਹਿਆ ਸੀ। ਉਸ ਕਲਾਸ ਦੀ ਸ਼ੁਰੂਆਤ ਵਿੱਚ, ਅਸੀਂ ਖੁੱਲ੍ਹੇ-ਲੂਪ ਕੰਟਰੋਲਰਾਂ ਅਤੇ ਬੰਦ-ਲੂਪ ਕੰਟਰੋਲਰਾਂ ਦੇ ਸੰਕਲਪ ਬਾਰੇ ਸਿੱਖਿਆ। ਇਹ ਜਾਣ ਕੇ, ਅਤੇ ਉਸ ਕਲਾਸ ਦੇ ਪ੍ਰੋਫ਼ੈਸਰ ਅਤੇ ਮੇਰੇ ਚਤੁਰ ਰੂਮਮੇਟ ਨਾਲ ਹੋਈ ਚਰਚਾ ਤੋਂ ਬਾਅਦ, ਇਹ ਸਾਫ਼ ਹੋ ਗਿਆ ਕਿ ਟ੍ਰਾਇਟਨ ਨੂੰ ਲਕਸ਼ ਬਿੰਦੂ ਤੱਕ ਪੁਚਾਉਣ ਦਾ ਇਹ ਲਕਸ਼ ਬੰਦ-ਲੂਪ ਸਿਸਟਮ ਦੀ ਸਮੱਸਿਆ ਹੈ।
ਹੁਣ, ਵਿਸਤ੍ਰਿਤ ਟੈਸਟਿੰਗ ਅਤੇ ਰਿਸਰਚ ਤੋਂ ਬਾਅਦ, ਮੈਂ ਟ੍ਰਾਇਟਨਾਂ ਲਈ ਦੋ ਵੱਖ-ਵੱਖ ਕੰਟਰੋਲਰ ਪਹੁੰਚਾਂ ਵਿਕਸਿਤ ਕੀਤੀਆਂ:
ਤਰੀਕਾ 1: ਦੂਰੀ-ਥੀਟਾ ਕੰਟਰੋਲਰ
ਇਸ ਪਹੁੰਚ ਨੇ ਇਕੱਠੇ ਚੱਲ ਰਹੇ ਦੋ ਵੱਖਰੇ ਅਨੁਪਾਤਿਕ ਕੰਟਰੋਲਰਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ:
- ਦੂਰੀ ਕੰਟਰੋਲਰ: ਟਾਰਗਟ ਤੱਕ ਦੀ ਯੂਕਲੀਡੀਅਨ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕੀਤਾ ਅਤੇ ਆਢੇ-ਪੂਰਬੀ ਗੇਨ ਲਾਗੂ ਕਰਕੇ ਅੱਗੇ/ਪਿੱਛੇ ਦੀ ਰਫ਼ਤਾਰ ਨਿਰਧਾਰਤ ਕੀਤੀ
- ਥੀਟਾ ਕੰਟਰੋਲਰ: ਰੋਬੋਟ ਦੀ ਮੌਜੂਦਾ ਸਿਰ-ਦਿਸ਼ਾ ਅਤੇ ਟਾਰਗਟ ਵੱਲ ਦੀ ਇੱਛਿਤ ਦਿਸ਼ਾ ਦਰਮਿਆਨ ਦੇ ਕੋਣੀ ਤ੍ਰੁੱਟੀ ਦੀ ਗਣਨਾ ਕੀਤੀ, ਅਤੇ ਘੁੰਮਣ ਦੀ ਰਫ਼ਤਾਰ ਲਈ ਅਲੱਗ ਅਨੁਪਾਤਿਕ ਗੇਨ ਲਾਗੂ ਕੀਤਾ
ਅਲਗੋਰਿਦਮ ਲਗਾਤਾਰ ਟਾਰਗਟ ਤੱਕ ਦੀ ਯੂਕਲੀਡੀਅਨ ਦੂਰੀ ਅਤੇ ਰੋਬੋਟ ਦੇ ਮੌਜੂਦਾ ਸਿਰ-ਦਿਸ਼ਾ ਅਤੇ ਇੱਛਿਤ ਦਿਸ਼ਾ ਦਰਮਿਆਨ ਕੋਣੀ ਤ੍ਰੁੱਟੀ ਦੀ ਗਣਨਾ ਕਰਦਾ ਰਿਹਾ। ਲੀਨੀਂਅਰ ਅਤੇ ਕੋਣੀਕ ਰਫ਼ਤਾਰਾਂ ਲਈ ਵੱਖ-ਵੱਖ ਅਨੁਪਾਤਿਕ ਗੇਨ ਲਾਗੂ ਕੀਤੇ ਗਏ।
ਇਸ ਦਾ ਨਤੀਜਾ ਇਹ ਹੋਇਆ ਕਿ ਟ੍ਰਾਇਟਨ ਸੁਭਾਅਕ੍ਰਿਤ ਰੂਪ ਵਿੱਚ ਲਕਸ਼ ਵੱਲ ਮੋੜਦਾ ਹੋਇਆ ਇੱਕੇ ਸਮੇਂ ਅੱਗੇ ਵੀ ਵਧਦਾ ਰਿਹਾ, ਜਿਸ ਨਾਲ ਨਰਮ ਤੇ ਵੱਕਰੇ ਰਾਸਤੇ ਬਣੇ। ਮੁੱਖ ਫਾਇਦਾ ਇਹ ਸੀ ਕਿ ਰੋਬੋਟ ਹਮੇਸ਼ਾਂ ਆਪਣਾ ਅੱਗੇ ਵਾਲਾ ਸਾਮ੍ਹਣਾ ਦਿਸਾਈ ਦੇਸ਼ਨ ਵੱਲ ਰੱਖਦਾ ਰਹਿੰਦਾ ਸੀ, ਜੋ ਕਿ ਕੈਮਰਾ-ਆਧਾਰਿਤ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਬਹੁਤ ਜ਼ਰੂਰੀ ਸੀ।
ਤਰੀਕਾ 2: X-Y ਕੋਆਰਡੀਨੇਟ ਕੰਟਰੋਲਰ
ਇਹ ਪਹੁੰਚ ਰੋਬੋਟ ਨੂੰ ਇੱਕ 2D ਪਲੋਟਰ ਵਾਂਗ ਸਮਝਦੀ ਸੀ, ਜਿਸ ਵਿੱਚ X ਅਤੇ Y ਗਤਿਵਿਧੀ ਦੇ ਸੁਤੰਤਰ ਕੰਟਰੋਲ ਸਨ:
- X ਕੰਟਰੋਲਰ: X-ਕੋਆਰਡੀਨੇਟ ਦੀ ਗਲਤੀ ਦੇ ਆਧਾਰ ‘ਤੇ ਪੂਰਬ-ਪੱਛਮ ਹਿਲਚਲ ਨੂੰ ਸਿੱਧੇ ਤੌਰ ‘ਤੇ ਕੰਟਰੋਲ ਕੀਤਾ ਗਿਆ
- Y ਕੰਟਰੋਲਰ: Y-ਕੋਆਰਡੀਨੇਟ ਦੀ ਗਲਤੀ ਦੇ ਆਧਾਰ ‘ਤੇ ਉੱਤਰੀ-ਦੱਖਣ ਹਿਲਚਲ ਨੂੰ ਸਿੱਧੇ ਤੌਰ ‘ਤੇ ਕੰਟਰੋਲ ਕੀਤਾ ਗਿਆ
ਇੰਪਲੀਮੇਨਟੇਸ਼ਨ ਨੇ X ਅਤੇ Y ਕੋਆਰਡੀਨੇਟ ਦੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਅਲੱਗ-ਅਲੱਗ ਗਿਣਿਆ, ਵੱਖ-ਵੱਖ ਪ੍ਰੋਪੋਰਸ਼ਨਲ ਗੇਨ ਲਗਾਏ, ਅਤੇ ਫਿਰ ਇਹ ਗਲੋਬਲ ਵੇਲੋਸਿਟੀ ਕੰਪੋਨੇਟਾਂ ਰੋਟੇਸ਼ਨ ਮੈਟ੍ਰਿਕਸਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੋਬੋਟ ਦੇ ਸਥਾਨਕ ਕੋਆਰਡੀਨੇਟ ਫਰੇਮ ਵਿੱਚ ਰੂਪਾਂਤਰੀਤ ਕੀਤੇ। ਇਹ ਰੂਪਾਂਤਰਣ ਜ਼ਰੂਰੀ ਸੀ ਕਿਉਂਕਿ ਰੋਬੋਟ ਦਾ ਓਮਨੀ-ਵ੍ਹੀਲ ਡ੍ਰਾਈਵਟ੍ਰੇਨ ਆਪਣੇ ਰਿਫਰੈਂਸ ਫਰੇਮ ਵਿੱਚ ਵੇਲੋਸਿਟੀਆਂ ਦੀ ਮੰਗ ਕਰਦਾ ਸੀ, ਗਲੋਬਲ ਕੋਆਰਡੀਨੇਟਾਂ ਵਿੱਚ ਨਹੀਂ। ਇਸ ਤਰੀਕੇ ਨੇ ਟਾਰਗਟਾਂ ਤੱਕ ਸਭ ਤੋਂ ਸਿੱਧੇ ਰੱਸਤੇ ਪੈਦਾ ਕੀਤੇ ਅਤੇ ਕਾਫੀ ਤੇਜ਼ ਸੀ, ਪਰ ਰੋਬੋਟ ਦਾ ਹੈਡਿੰਗ ਡ੍ਰਿਫਟ ਕਰਦਾ ਸੀ ਕਿਉਂਕਿ ਕੋਈ ਵਿਆਖਿਆਤ ਦਿਸ਼ਾ ਨਿਯੰਤਰਣ ਨਹੀਂ ਸੀ।
ਤਰੀਕਾ #1 ਲਈ, ਮੈਂ ਇਸ ਤਰੀਕੇ ਦੀ ਪੂਰੀ ਵਿਸਥਾਰ ਨਾਲ ਚਰਚਾ ਆਪਣੇ ਟਰਟਲ ਨੂੰ ਹਿਲਾਓ (TurtleSim) ਬਲੌਗ ਵਿੱਚ ਕੀਤੀ ਸੀ। ਮੈਂ ਤੁਹਾਨੂੰ ਬਹੁਤ ਸਲਾਹ ਦਿੰਦਾ ਹਾਂ ਕਿ ਤੁਸੀਂ ਇਹ ਬਲੌਗ ਪੜ੍ਹੋ ਤਾਂ ਜੋ PID ਕੰਟਰੋਲਰ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ ਦੇ ਸਮੂਹਿਕ ਵਿਵਰਣ ਅਤੇ ਤਰੀਕਾ #1 ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ, ਇਹ ਸਾਰੀਆਂ ਜਾਣਕਾਰੀਆਂ ਮਿਲ ਜਾਣ। ਮੈਂ ਤਰੀਕਾ #1 ਨੂੰ ROS ਦਾ TurtleSim ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਿਕਸਤ ਕੀਤਾ, ਫਿਰ ਉਸ ਕੋਡ ਨੂੰ Triton ‘ਤੇ ਟ੍ਰਾਂਸਫਰ ਕੀਤਾ ਅਤੇ ਹਕੀਕਤੀ ਦੁਨੀਆਂ ਦੇ ਵਾਤਾਵਰਣ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਦੇ ਹੋਏ ਅਪਡੇਟ ਕੀਤਾ।
ਤਰੀਕੇ #2 ਨੇ ਇਕ ਕਾਫੀ ਵੱਖਰਾ ਪਰ ਬਰਾਬਰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਵਰਤਿਆ। ਰੋਬੋਟ ਦੀ ਦਿਸ਼ਾ ਅਤੇ ਲਕੜੀ ਤੱਕ ਦੀ ਦੂਰੀ ਬਾਰੇ ਸੋਚਣ ਦੀ ਥਾਂ, ਇਹ ਤਰੀਕਾ ਹਿਲਚਲ ਨੂੰ ਇੱਕ ਕੋਆਰਡੀਨੇਟ ਸਮਤਲ ਦੀ ਸਮੱਸਿਆ ਵਾਂਗ ਦੇਖਦਾ ਹੈ। ਕੰਟਰੋਲਰ ਲਗਾਤਾਰ X ਅਤੇ Y ਦਿੱਕਾਂ ਵਿੱਚ ਗਲਤੀ ਨੂੰ ਅਲੱਗ-ਅਲੱਗ ਗਿਣਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਜੋਂ, ਜੇ ਰੋਬੋਟ ਨੂੰ (0,0) ਤੋਂ (2,3) ਤੱਕ ਹਿਲਨਾ ਹੋਵੇ, ਤਾਂ ਇਹ ਇਸ ਨੂੰ X ਵਿੱਚ 2 ਮੀਟਰ ਦੀ ਗਲਤੀ ਅਤੇ Y ਵਿੱਚ 3 ਮੀਟਰ ਦੀ ਗਲਤੀ ਠੀਕ ਕਰਨ ਵਾਲੀ ਗੱਲ ਵਜੋਂ ਵੇਖਦਾ ਹੈ। ਦੋ ਪ੍ਰੋਪੋਰਸ਼ਨਲ ਕੰਟਰੋਲਰ ਇਕੱਠੇ ਕੰਮ ਕਰਦੇ ਸਨ: ਇਕ X-ਗਲਤੀ ਦੇ ਆਧਾਰ ‘ਤੇ ਰੋਬੋਟ ਦੀ X ਦਿਸ਼ਾ ਵਿੱਚ ਵੇਲੋਸਿਟੀ ਨੂੰ ਐਡਜਸਟ ਕਰਦਾ, ਜਦਕਿ ਦੂਜਾ Y-ਗਲਤੀ ਦੇ ਆਧਾਰ ‘ਤੇ Y-ਦਿਸ਼ਾ ਦੀ ਹਿਲਚਲ ਸੰਭਾਲਦਾ। ਇਸ ਨੇ ਟਾਰਗਟ ਤੱਕ ਇੱਕ ਸਿੱਧਾ ਰਸਤਾ ਬਣਾਇਆ, ਜਿਵੇਂ 3D ਪ੍ਰਿੰਟਰ ਦਾ ਹੈਡ ਹਿਲਦਾ ਹੈ, ਅਤੇ ਸਧਾਰਨ ਤਿਕੋਣੀ ਹਿਲਚਲਾਂ ਲਈ ਸਹੂਲਤ ਦਿੱਤੀ। ਰੋਬੋਟ ਨੂੰ ਆਪਣੇ ਟਾਰਗਟ ਵੱਲ ਖੁਦ ਮੁੜਨ ਦੀ ਲੋੜ ਨਹੀਂ ਸੀ, ਇਸ ਲਈ ਇਹ ਤਰੀਕਾ ਤੰਗ ਜਗ੍ਹਾਂ ਜਾਂ ਜਦੋਂ ਨਿਰਦੇਸ਼ਕ ਪੂਰੀ ਸਥਿਤੀ ਦੀ ਲੋੜ ਹੋਵੇ ਬਹੁਤ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸਿੱਧ ਹੋਇਆ।
ਦੋਹਾਂ ਤਰੀਕਿਆਂ ਨੇ ਮੂਲ ਪਹੁੰਚ ਨਾਲੋਂ ਕਾਫੀ ਤੇਜ਼ ਅਤੇ ਜ਼ਿਆਦਾ ਭਰੋਸੇਯੋਗ ਪ੍ਰਦਰਸ਼ਨ ਦਿਖਾਇਆ। ਨਵੇਂ ਤਰੀਕਿਆਂ ਨੂੰ ਏਕੜੇ ਵੇਖਣ ਲਈ, Tritons in Action Playlist ਨੂੰ ਵੇਖੋ, ਜੋ ਸਾਰੇ Triton ਨਵੇਂ ਤਰੀਕਿਆਂ ਨਾਲ ਕਾਰਗਰਤਾਂ ਦਿਖਾਉਂਦਾ ਹੈ।
ਜੋ ਕਦੇ ਇੱਕ ਸਧਾਰਨ ਪੁਆਇੰਟ-ਟੂ-ਪੁਆਇੰਟ ਹਿਲਚਲ ਲਈ 30-45 ਸਕਿੰਟ ਲੱਗਦੇ ਸਨ, ਹੁਣ ਲਗਭਗ 8-12 ਸਕਿੰਟ ਲੱਗਣ ਲੱਗੇ। ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਗੱਲ ਇਹ ਸੀ ਕਿ Triton ਹੁਣ ਤੰਗ ਜਗ੍ਹਾਂ ਵਿੱਚ ਜ਼ਿਆਦਾ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕੇ ਨਾਲ ਨੇਵੀਗੇਟ ਕਰਨ ਲੱਗੇ, ਜੋ ਸਾਡੇ ਮਲਟੀ-ਰੋਬੋਟ ਪਰਿਬੇਸ਼ਾਂ ਲਈ ਬਹੁਤ ਹੀ ਲਾਭਦਾਇਕ ਸਾਬਿਤ ਹੋਇਆ।
ਵਿਕਾਸੀ ਚੁਣੌਤੀਆਂ ਅਤੇ ਡੀਬੱਗਿੰਗ
ਇਹ ਕੰਟਰੋਲਰ ਲਾਗੂ ਕਰਨਾ ਸਿੱਧਾ ਨਹੀਂ ਸੀ ਅਤੇ ਇਸ ਵਿੱਚ ਕਈ ਮਹੱਤਵਪੂਰਨ ਡੀਬੱਗਿੰਗ ਚੁਣੌਤੀਆਂ ਸ਼ਾਮਿਲ ਸਨ:
Coordinate System Transformations: ਸਭ ਤੋਂ ਮੁਸ਼ਕਲ ਪਹਲੂਆਂ ਵਿੱਚੋਂ ਇੱਕ ਕੋਆਰਡੀਨੇਟ ਰੂਪਾਂਤਰਣ ਨੂੰ ਠੀਕ ਕਰਨਾ ਸੀ। Optitrack ਸਿਸਟਮ ਆਪਣੀ ਕੋਆਰਡੀਨੇਟ ਫਰੇਮ ਵਿੱਚ ਡੇਟਾ ਦਿੱਤਾ, ਰੋਬੋਟ ਦੇ ਆਪਣੇ ਸਥਾਨਕ ਕੋਆਰਡੀਨੇਟ ਫਰੇਮ ਸਨ, ਅਤੇ ਮੈਨੂੰ ਉਨ੍ਹਾਂ ਦੇ ਵਿਚਕਾਰ ਸਹੀ ਢੰਗ ਨਾਲ ਤਬਦੀਲੀ ਕਰਨ ਦੀ ਲੋੜ ਸੀ। ਸ਼ੁਰੂਆਤੀ ਇੰਪਲੀਮੇਨਟੇਸ਼ਨਾਂ ਵਿੱਚ ਰੋਬੋਟਗਲਤ ਦਿਸ਼ਾਵਾਂ ਵੱਲ ਹਿੱਲ ਰਹੇ ਸਨ ਕਿਉਂਕਿ ਮੈਂ ਰੋਟੇਸ਼ਨ ਮੈਟ੍ਰਿਕਸ ਦੀਆਂ ਗਣਨਾਵਾਂ ਨੂੰ ਗਲਤ ਮਿਲਾ ਦਿੱਤਾ ਸੀ।
Real-World vs. Ideal Behavior: ਸਭ ਤੋਂ ਵੱਡੀ ਚੁਣੌਤੀ ਹਕੀਕਤੀ ਦੁਨੀਆਂ ਦੇ ਕਾਰਕਾਂ ਦਾ ਖਿਆਲ ਰੱਖਣਾ ਸੀ ਜੋ ਕਿਤਾਬੀ ਕੰਟਰੋਲ ਸਿਧਾਂਤ ਵਿੱਚ ਨਹੀਂ ਦਿਖਦੇ। ਰੋਬੋਟ ਦੇ ਪਹੀਏਆਂ ਦੀ ਘਰਸ਼ਣ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵੱਖ-ਵੱਖ ਸਨ, ਮੋਟਰ ਇੱਕੋ ਜਿਹਾ ਪ੍ਰਤਿਕਿਰਿਆ ਨਹੀਂ ਕਰਦੇ, ਅਤੇ Optitrack ਤੋਂ ਕੰਟਰੋਲ ਸਾਫਟਵੇਅਰ ਅਤੇ ਫਿਰ ਰੋਬੋਟ ਦੇ Arduino ਤੱਕ ਸੰਚਾਰ ਵਿੱਚ ਹਮੇਸ਼ਾਂ ਕੁਝ ਲੇਟੈਂਸੀ ਹੁੰਦੀ ਸੀ। ਮੈਂ ਪ੍ਰੋਪੋਰਸ਼ਨਲ ਗੇਨਾਂ ਨੂੰ ਟਿਊਨ ਕਰਨ ਅਤੇ ਇਨ੍ਹਾਂ ਭੌਤਿਕ ਹਕੀਕਤਾਂ ਲਈ ਡੈਡਬੈਂਡ ਫਿਲਟਰ ਜੋੜਨ ਵਿੱਚ ਹਫ਼ਤੇ ਲਗਾਏ।
Oscillation and Stability Issues: ਮੇਰੀਆਂ ਪਹਿਲੀਆਂ ਇੰਪਲੀਮੇਨਟੇਸ਼ਨਾਂ ਵਿੱਚ ਓਸਿਲੇਸ਼ਨ ਦੀ ਸਮੱਸਿਆ ਆਈ ਜਿੱਥੇ ਰੋਬੋਟ ਆਪਣੇ ਟਾਰਗਟਾਂ ਤੋਂ ਅਧਿਕ ਚਲੇ ਜਾਂਦੇ ਅਤੇ ਅੱਗੇ-ਪਿੱਛੇ ਹਿਲਦੇ ਰਹਿੰਦੇ। ਇਸ ਨੇ ਮੈਨੂੰ PID ਕੰਟਰੋਲਰਾਂ ਵਿੱਚ ਡੈਰੀਵੇਟਿਵ ਟਰਮਾਂ ਦੀ ਮਹੱਤਤਾ ਅਤੇ ਸਹੀ ਗੇਨ ਟਿਊਨਿੰਗ ਦੀ ਲੋੜ ਦਿਖਾਈ। ਅੰਤ ਵਿੱਚ ਮੈਂ ਮੁੱਖ ਤੌਰ ‘ਤੇ ਪ੍ਰੋਪੋਰਸ਼ਨਲ ਕੰਟਰੋਲ ਤੇ ਰੁਕਿਆ, ਧਿਆਨ ਨਾਲ ਟਿਊਨ ਕੀਤੇ ਗੇਨਾਂ ਦੇ ਨਾਲ, ਕਿਉਂਕਿ ਸਿਸਟਮ ਦੀ ਆਪਣੀ ਡੈਂਪਿੰਗ ਜ਼ਿਆਦਾਤਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਕਾਫੀ ਸੀ।
Multi-Robot Interference: ਜਦੋਂ ਬਹੁਤ ਸਾਰੇ ਰੋਬੋਟ ਇਕੱਠੇ ਚੱਲ ਰਹੇ ਸਨ, ਮੈਂ ਅਣਉਮੀਦਿਤ ਅੰਤਰਫੇਰੇਂਸ ਪੈਟਰਨ ਦੇਖੇ। ਰੋਬੋਟ ਕਦੇ-ਕਦੇ ਇੱਕੋ ਜਗ੍ਹਾ ਲਈ “ਲੜਾਈ” ਕਰਦੇ ਜਾਂ ਡੈਡਲਾਕ ਸਥਿਤੀਆਂ ਬਣ ਜਾਂਦੀਆਂ ਜਿੱਥੇ ਉਹ ਇਕ ਦੂਜੇ ਨੂੰ ਅਨੰਤਕਾਲ ਲਈ ਰੋਕ ਦੇਂਦੇ। ਇਸ ਨੇ ਮੈਨੂੰ ਕੋਆਰਡੀਨੇਸ਼ਨ ਮਿਕੈਨਿਜ਼ਮ ਅਤੇ ਟਕਰਾਅ-ਰੋਕਥਾਮ ਅਲਗੋਰਿਦਮਜ਼ ਲਾਗੂ ਕਰਨ ਲਈ ਪ੍ਰੇਰਿਤ ਕੀਤਾ।
ਮਲਟੀ-ਟ੍ਰਾਇਟਨ ਕੰਟਰੋਲ ਸਿਸਟਮ
ਜਿਵੇਂ ਹੀ ਮੈਂ ਸਿੰਗਲ Triton ਮੂਵਮੈਂਟ ਸਮੱਸਿਆ ਦਾ ਹੱਲ ਕੱਢ ਲਿਆ, ਲੈਬ ਦੀ ਅਗਲੀ ਚੁਣੌਤੀ ਇਹ ਸੀ ਕਿ ਕਈ Triton ਇੱਕਸਾਥੀ ਇਕੱਠੇ ਕੰਮ ਕਰਨ। ਇਹ ਮੇਰੇ ਮੁੱਖ ਫੋਕਸ ਵਿਸ਼ਿਆਂ ਵਿੱਚੋਂ ਇੱਕ ਬਣ ਗਿਆ ਅਤੇ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਯੋਗਦਾਨ ਸਾਬਿਤ ਹੋਇਆ।
ਮੂਲ ਸਿਸਟਮ ਇੱਕ ਸਮੇਂ ਵਿੱਚ ਸਿਰਫ ਇੱਕ Triton ਨੂੰ ਕੰਟਰੋਲ ਕਰ ਸਕਦਾ ਸੀ, ਜਿਸ ਨਾਲ ਰਿਸਰਚ ਦੀਆਂ ਸੰਭਾਵਨਾਵਾਂ ਬਹੁਤ ਸੀਮਿਤ ਹੋ ਗਈਆਂ। ਲੈਬ ਇਨ੍ਹਾਂ ਸਹੀ scénਰੀਓਆਂ ਨੂੰ ਸਿਮੂਲੇਟ ਕਰਨਾ ਚਾਹੁੰਦਾ ਸੀ ਜਿੱਥੇ ਕਈ ਆਟੋਨੋਮਸ ਵਾਹਨ ਇਕੱਠੇ ਆਪਣੇ ਮੂਵਮੈਂਟਾਂ ਦਾ ਕੋਆਰਡੀਨੇਸ਼ਨ ਕਰਨ, ਜਿਵੇਂ ਸਵੈ-ਚਾਲਿਤ ਕਾਰਾਂ ਇਕ ਦੂਜੇ ਨਾਲ ਸੰਚਾਰ ਕਰਕੇ ਟ੍ਰੈਫਿਕ ਫਲੋ ਨੂੰ ਅਨੁਕੂਲ ਕਰਦੀਆਂ ਅਤੇ ਬਿਹਤਰ SLAM ਨਕਸ਼ੇ ਬਣਾਉਂਦੀਆਂ।
ਇਸ ਦਾ ਹੱਲ ਕਰਨ ਲਈ, ਮੈਂ Python ਦੀ multiprocessing ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਕਰਦਿਆਂ ਇੱਕ ਮਲਟੀ-ਪ੍ਰੋਸੈਸਿੰਗ ਪਹੁੰਚ ਲਾਗੂ ਕੀਤੀ। ਹਰ Triton ਨੂੰ ਆਪਣਾ ਸਮਰਪਿਤ ਪ੍ਰੋਸੈਸ ਮਿਲਿਆ ਜੋ ਸੁਤੰਤਰ ਤੌਰ ‘ਤੇ ਚਲ ਸਕਦਾ ਸੀ ਫਿਰ ਵੀ ਕੇਂਦਰੀ ਕੰਟਰੋਲ ਸਿਸਟਮ ਦੁਆਰਾ ਸਮਨੁਵਿਆਜਿਤ ਰਹਿੰਦਾ ਸੀ। ਇਸ ਨਾਲ ਕਈ Triton ਇਕੱਠੇ ਚੱਲ ਸਕਦੇ ਸਨ ਬਿਨਾਂ ਇਕ ਦੂਜੇ ਦੇ ਕੰਟਰੋਲ ਲੂਪਾਂ ‘ਤੇ ਅਸਰ ਪਾਉਣ ਦੇ।
ਮਲਟੀ-ਰੋਬੋਟ ਆਰਕੀਟੈਕਚਰ ਡਿਜ਼ਾਈਨ
ਮੈਂ ਜੋ ਸਿਸਟਮ ਆਰਕੀਟੈਕਚਰ ਵਿਕਸਤ ਕੀਤਾ, ਉਹ ਕਈ ਮੁੱਖ ਘਟਕਾਂ ਤੇ ਆਧਾਰਿਤ ਸੀ:
ਮੁੱਖ ਕੰਟਰੋਲਰ ਪ੍ਰੋਸੈਸ: ਇਹ ਕੇਂਦਰੀ ਕੋਆਰਡੀਨੇਟਰ ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਸੀ, ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਇੰਟਰੈਕਸ਼ਨਾਂ, ਪਾਥ ਪਲੈਨਿੰਗ, ਅਤੇ ਰੋਬੋਟਾਂ ਵਿਚਕਾਰ ਉੱਚ-ਸਤਰ ਕੋਆਰਡੀਨੇਸ਼ਨ ਨੂੰ ਹینڈਲ ਕਰਦਾ ਸੀ। ਇਹ ਗਲੋਬਲ ਸਟੇਟ ਨੂੰ ਮੇਨਟੇਨ ਕਰਦਾ ਅਤੇ ਵਿਅਕਤੀਗਤ ਰੋਬੋਟ ਪ੍ਰੋਸੈਸਾਂ ਨੂੰ ਕਮਾਂਡਾਂ ਵੰਡਦਾ ਸੀ।
ਵਿਅਕਤੀਗਤ ਰੋਬੋਟ ਪ੍ਰੋਸੈਸ: ਹਰ Triton ਦਾ ਆਪਣਾ ਸਮਰਪਿਤ Python ਪ੍ਰੋਸੈਸ ਹੁੰਦਾ ਸੀ ਜੋ ਹੇਠਾਂ ਦੀਆਂ ਚੀਜ਼ਾਂ ਸੰਭਾਲਦਾ ਸੀ:
- ਲਗਭਗ ~50Hz ‘ਤੇ ਰੀਅਲ-ਟਾਈਮ PID ਕੰਟਰੋਲ ਗਣਨਾਵਾਂ
- ਰੋਬੋਟ ਦੇ ਹਾਰਡਵੇਅਰ (Arduino/Jetson) ਨਾਲ ਸੰਚਾਰ
- ਸਥਾਨਕ ਪਾਥ ਨਿਰਵਾਹ ਅਤੇ ਰੁਕਾਵਟ-ਟਾਲਣਾ
- ਮੱਖ ਕੰਟਰੋਲਰ ਵੱਲ ਸਥਿਤੀ ਸਬੰਧੀ ਰਿਪੋਰਟਿੰਗ
Shared Memory Communication: ਮੈਂ processes ਵਿਚਕਾਰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸੰਚਾਰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ Python ਦੀ multiprocessing.shared_memory ਅਤੇ Queue ਆਬਜੈਕਟਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ। ਇਸ ਨਾਲ ਨੈਟਵਰਕ ਸੰਚਾਰ ਦੇ ਓਹਲੇ ਬਿਨਾਂ ਰੀਅਲ-ਟਾਈਮ ਕੋਆਰਡੀਨੇਸ਼ਨ ਸੰਭਵ ਹੋ ਗਿਆ।
Synchronization Mechanisms: ਜਦੋਂ ਕਈ ਰੋਬੋਟਾਂ ਨੂੰ ਕੋਆਰਡੀਨੇਟ ਕਰਨ ਦੀ ਲੋੜ ਪਈ (ਜਿਵੇਂ ਟੱਕਰ ਤੋਂ ਬਚਣਾ), ਤਾਂ ਮੈਂ ਸੇਮਾਫੋਰ ਅਤੇ ਲਾਕਸਜ਼ ਲਾਗੂ ਕੀਤੇ ਜੋ ਰੋਬੋਟਾਂ ਨੂੰ ਵਰਕਸਪੇਸ ਦੇ ਕੁਝ ਖੇਤਰਾਂ ਲਈ ਵਿਸ਼ੇਸ਼ ਦਾਖਲਾ ਮੰਗਣ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਸਨ।
ਚੁਣੌਤੀ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਦੀ ਸੀ ਕਿ ਸਾਰੇ ਰੋਬੋਟ ਆਪਣੇ ਕੰਟਰੋਲ ਲੂਪ ਸੁਤੰਤਰ ਤੌਰ ‘ਤੇ ਚਲਾ ਸਕਣ ਪਰ ਫਿਰ ਵੀ ਗਲੋਬਲ ਕੋਆਰਡੀਨੇਸ਼ਨ ਬਣੀ ਰਹੇ। ਹਰ ਰੋਬੋਟ ਪ੍ਰੋਸੈਸ ਆਪਣੇ PID ਗਣਨਾਵਾਂ ਚਲਾਉਂਦਾ ਅਤੇ ਸਿੱਧਾ ਹਾਰਡਵੇਅਰ ਨੂੰ ਮੋਟਰ ਕਮਾਂਡਾਂ ਭੇਜਦਾ ਸੀ, ਜਦਕਿ ਮੁੱਖ ਪ੍ਰੋਸੈਸ ਉੱਚ-ਸਤਰ ਕੋਆਰਡੀਨੇਸ਼ਨ ਜਿਵੇਂ ਟੱਕਰ-ਟਾਲਣਾ ਅਤੇ ਪਾਥ-ਪਲੈਨਿੰਗ ਸੰਭਾਲਦਾ ਸੀ।
![]() |
![]() |
ਮਲਟੀ-Triton ਸਿਸਟਮ ਨੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਨਵੀਆਂ ਰਿਸਰਚ ਸੰਭਾਵਨਾਵਾਂ ਖੋਲ੍ਹ ਦਿੱਤੀਆਂ। ਅਸੀਂ ਹੁਣ ਇਹ ਸਿਮੂਲੇਟ ਕਰ ਸਕਦੇ ਸੀ:
- ਵਾਹਨ-ਤੋਂ-ਵਾਹਨ ਸੰਚਾਰ ਦੇ ਸਕੈਨਰੀਓ
- ਰੁਕਾਵਟ-ਟਾਲਣਾ ਦੇ ਨਾਲ ਸਹ-ਸੰਯੁਕਤ ਪਾਥ ਪਲੈਨਿੰਗ
- ਸਵਾਰਮ ਰੋਬੋਟਿਕਸ ਰਵੱਈਏ
- ਮਲਟੀ-ਏਜੰਟ SLAM ਨਕਸ਼ਾ ਬਣਾਉਣ
- ਫਾਰਮੇਸ਼ਨ ਕੰਟਰੋਲ ਅਤੇ ਫਾਲੋਅਿੰਗ ਵਿਹੇਵਿਅਰ
ਇੱਥੇ ਲੈਬ ਸੈਟਅਪ ਦਾ ਦ੍ਰਿਸ਼ ਸੀ ਜਦੋਂ ਕਈ Triton ਇਕੱਠੇ ਚੱਲ ਰਹੇ ਸਨ:
![]() |
![]() |
ਮੈਂ ਇੱਕ ਯੂਜ਼ਰ-ਫ੍ਰੈਂਡਲੀ ਇੰਟਰਫੇਸ ਵੀ ਵਿਕਸਤ ਕੀਤਾ ਜੋ ਰਿਸਰਚਰਾਂ ਨੂੰ ਹਰ Triton ਲਈ ਵਿਜ਼ੂਅਲ ਤੌਰ ‘ਤੇ ਪਾਥ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਸੀ। ਤੁਸੀਂ ਵਾਸਤਵ ਵਿੱਚ ਉਹ ਪਾਥ ਖਿੱਚ ਸਕਦੇ ਸੀ ਜੋ ਤੁਸੀਂ ਹਰ ਰੋਬੋਟ ਨੂੰ ਫਾਲੋ ਕਰਵਾਉਣਾ ਚਾਹੁੰਦੇ ਸੀ, ਅਤੇ ਉਹ ਇਨ੍ਹਾਂ ਪਾਥਾਂ ਨੂੰ ਪਰਫੈਕਟ ਕੋਆਰਡੀਨੇਸ਼ਨ ਨਾਲ ਐਗਜ਼ੈਕਿਊਟ ਕਰਦੇ। ਇਹ ਜਟਿਲ ਪ੍ਰਯੋਗਾਂ ਨੂੰ ਸੈਟਅਪ ਕਰਨ ਵਿੱਚ ਬਹੁਤ ਲਾਭਦਾਇਕ ਸੀ ਬਿਨਾਂ ਹਰ ਇੱਕ ਹਿਲਚਲ ਨੂੰ ਹੱਥੋਂ ਕੋਡ ਕਰਨ ਦੀ ਲੋੜ ਪੈਂਦੀ।
ਸਿਸਟਮ ਇਕ ਸਮੇਂ ਵਿੱਚ 5 Triton ਤੱਕ ਨੂੰ ਸੰਭਾਲ ਸਕਦਾ ਸੀ, ਹਰ ਇੱਕ ਆਪਣੀਆਂ PID ਕੰਟਰੋਲਰ ਚਲਾ ਰਿਹਾ ਸੀ ਜਦਕਿ ਕੇਂਦਰੀ ਕੰਟਰੋਲ ਸਿਸਟਮ ਰਾਹੀਂ ਕੋਆਰਡੀਨੇਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਸੀ। ਪ੍ਰਦਰਸ਼ਨ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸੀ, ਸਾਰੇ ਰੋਬੋਟ ਆਪਣੀ ਵਿਆਕਤੀਗਤ ਸ਼ੁੱਧਤਾ ਬਣਾਈ ਰੱਖਦੇ ਹੋਏ ਇਕ ਟੀਮ ਵਜੋਂ ਕੰਮ ਕਰ ਰਹੇ ਸਨ।
ਇੱਥੇ ਇੱਕ ਪਲੇਲਿਸਟ ਦਿੱਤੀ ਹੈ ਜੋ Triton ਦੇ ਐਕਸ਼ਨ ਨੂੰ ਦਿਖਾਉਂਦੀ ਹੈ, ਸਿੰਗਲ-ਰੋਬੋਟ ਕੰਟਰੋਲ ਤੋਂ ਲੈ ਕੇ ਮਲਟੀ-ਰੋਬੋਟ ਕੋਆਰਡੀਨੇਸ਼ਨ ਤੱਕ: Tritons in Action Playlist
ਡੈੱਥ ਸੈਂਸਰ ਇੰਟਿਗ੍ਰੇਸ਼ਨ ਅਤੇ ਕੋਆਰਡੀਨੇਟ ਸਹੀਕਰਨ
ਮੈਨੂੰ ਜੋ ਇੱਕ ਹੋਰ ਵੱਡਾ ਉੱਨਤੀਕਰਨ ਕੀਤਾ, ਉਹ ਸੀ Intel RealSense D435 ਡੈੱਥ ਕੈਮਰਿਆਂ ਦੀ ਵਰਤੋਂ ਜੋ ਹਰ Triton ‘ਤੇ ਮਾਊਂਟ ਕੀਤੀਆਂ ਗਈਆਂ ਸਨ। ਜਦ ਕਿ Optitrack ਸਿਸਟਮ ਸਾਨੂੰ ਬੇਹਤ ਨਿਰੰਤਰ ਪੋਜ਼ਿਸ਼ਨਿੰਗ ਡੇਟਾ ਦਿੰਦਾ ਸੀ, ਮੈਂ ਇਹ ਜਾਣਚ ਕਰਨਾ ਚਾਹੁੰਦਾ ਸੀ ਕਿ ਰੋਬੋਟ ਆਪਣੇ ਓਨਬੋਰਡ ਸੈਂਸਰਾਂ ਦੀ ਵਰਤੋਂ ਕਿੱਤੇ ਜਾਵੇ ਤਾਂ ਕਿਵੇਂ ਉਹ ਆਪਣੇ ਸਪੇਸ਼ਲ ਜਾਗਰੂਕਤਾ ਨੂੰ ਸੁਧਾਰ ਸਕਦੇ ਹਨ ਅਤੇ ਕੋਆਰਡੀਨੇਟ ਗਲਤੀਆਂ ਨੂੰ ਸਹੀ ਕਰ ਸਕਦੇ ਹਨ।
ਸੋਚ ਇਹ ਸੀ ਕਿ Triton ਆਪਣੇ ਡੈੱਥ ਸੈਂਸਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ ਆਸਪਾਸ ਹੋਰ Triton ਦੀਆਂ ਪਹਿਚਾਨ ਕਰ ਸਕਦੇ ਹਨ ਅਤੇ ਆਪਣੀਆਂ ਪੋਜ਼ਿਸ਼ਨਾਂ ਦੀ ਸਾਂਝੀ-ਤੁਲਨਾ ਕਰ ਸਕਦੇ ਹਨ। ਇਹ ਕਈ ਉਦੇਸ਼ਾਂ ਲਈ ਕੰਮ ਆਉਂਦਾ:
-
ਗਲਤੀ ਸਹੀਕਰਨ: ਜੇ Optitrack ਸਿਸਟਮ ਵਿੱਚ ਕੋਈ ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਡ੍ਰਿਫਟ ਜਾਂ ਅਸਥਾਈ ਰੋਕਾਵਟ ਹੋਵੇ, ਤਾਂ ਰੋਬੋਟ ਇੱਕ ਦੂਜੇ ਦੀਆਂ ਪੋਜ਼ਿਸ਼ਨਾਂ ਦੀ ਵਿਜ਼ੂਅਲ ਪੁਸ਼ਟੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੋਆਰਡੀਨੇਟ ਸਿਸਟਮਾਂ ਦੀ ਸੁਚਿਤਾ ਬਰਕਰਾਰ ਰੱਖ ਸਕਦੇ ਹਨ।
-
ਸੁਧਰੀ ਹੋਈ SLAM: ਕਈ ਰੋਬੋਟਾਂ ਕੋਲ ਡੈੱਥ ਸੈਂਸਰ ਹੋਣ ਨਾਲ ਇੱਕੱਠੇ ਕੰਮ ਕਰਕੇ ਅਸੀਂ ਵਾਤਾਵਰਣ ਦੇ ਕਾਫੀ ਜ਼ਿਆਦਾ ਰਿਚ ਨਕਸ਼ੇ ਬਣਾ ਸਕਦੇ ਸੀ ਜਿਸ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਰੈਡੰਡੈਂਟ ਡੇਟਾ ਪੌਇੰਟ ਹੋਣ।
-
Collision Avoidance: ਰੀਅਲ-ਟਾਈਮ ਡੈਪਥ ਸੈਨਸਿੰਗ ਰੋਬੋਟਾਂ ਨੂੰ ਇਕ ਦੂਜੇ ਦਾ ਪਤਾ ਲਗਾਉਣ ਅਤੇ ਇੱਕ ਦੂਜੇ ਤੋਂ ਬਚਣ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ, ਭਾਵੇਂ ਕੇਂਦਰੀ ਕੰਟਰੋਲ ਸਿਸਟਮ ਵਿੱਚ ਸੰਪਰਕ ਵਿੱਚ ਦੇਰੀ ਹੋਵੇ।
ਮੈਂ ਐਲਗੋਰਿਦਮਾਂ ‘ਤੇ ਪ੍ਰਯੋਗ ਕਰਨਾ ਸ਼ੁਰੂ ਕੀਤਾ ਜੋ Tritons ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਣਗੇ:
- ਉਹਨਾਂ ਦੇ ਵਿਲੱਖਣ ਤਿਕੋਣੀ ਆਕਾਰ ਅਤੇ ਪਰਾਵਰਤੀ ਗੋਲਾਕਾਰ ਮਾਰਕਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੋਰ Tritons ਦੀ ਪਛਾਣ ਕਰਨਾ
- ਡੈਪਥ ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਬੰਧਤ ਸਥਿਤੀਆਂ ਅਤੇ ਅਭਿਮੁਖਤਾਵਾਂ ਦੀ ਗਣਨਾ ਕਰਨਾ
- ਇਨ੍ਹਾਂ ਮਾਪਾਂ ਨੂੰ Optitrack ਡੇਟਾ ਨਾਲ ਤੁਲਨਾ ਕਰਕੇ ਅੰਤਰਾਂ ਦੀ ਪਛਾਣ ਕਰਨਾ
- ਨਿਰਧਾਰਤ ਸਥਿਰਤਾ ਬਣਾਈ ਰੱਖਣ ਲਈ ਸੰਭਵ ਤੌਰ ‘ਤੇ ਰੀਅਲ-ਟਾਈਮ ਵਿੱਚ ਆਪਣਾ ਕੋਆਰਡੀਨੇਟ ਸਿਸਟਮ ਐਡਜਸਟ ਕਰਨਾ
Computer Vision Experiments
ਮੈਂ ਇੱਕ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਪਾਈਪਲਾਈਨ ‘ਤੇ ਕਾਫੀ ਸਮਾਂ ਲਗਾਇਆ ਜੋ ਕਈ ਪੜਾਅਾਂ ਵਿੱਚ ਕੰਮ ਕਰਦੀ ਸੀ:
![]() |
![]() |
![]() |
![]() |
![]() |
Depth Data Processing: Intel RealSense D435 ਦੋਹਾਂ RGB ਅਤੇ ਡੈਪਥ ਡੇਟਾ ਸਟ੍ਰੀਮ ਮੁਹੱਈਆ ਕਰਵਾਂਦਾ ਸੀ। ਮੈਂ ਮੁੱਖ ਤੌਰ ‘ਤੇ ਡੈਪਥ ਡੇਟਾ ਨਾਲ ਕੰਮ ਕੀਤਾ, ਜੋ 30Hz ‘ਤੇ ਦੂਰੀ ਮਾਪਾਂ ਦਾ 640x480 ਐਰੇ ਆ ਰਿਹਾ ਸੀ। ਪਹਿਲੀ ਚੁਣੌਤੀ ਇਸ ਸ਼ੋਰ ਵਾਲੇ ਡੈਪਥ ਡੇਟਾ ਨੂੰ ਫਿਲਟਰ ਕਰਕੇ ਮੈਣਿੰਗਫੁਲ ਜੀਓਮੀਟ੍ਰਿਕ ਜਾਣਕਾਰੀ ਕੱਢਣਾ ਸੀ।
Object Detection Attempts: ਮੈਂ ਬਹੁ-ਪੜਾਅੀ ਡਿਟੈਕਸ਼ਨ ਐਲਗੋਰਿਦਮਾਂ ‘ਤੇ ਪ੍ਰਯੋਗ ਕੀਤਾ। ਮੈਨੂੰ ਫਲੋਰ ਪੱਧਰ ‘ਤੇ ਵਸਤੂਆਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਡੈਪਥ ਇਮੇਜ ਨੂੰ ਸੈਗਮੈਂਟ ਕਰਨ ਵਿੱਚ ਕੁਝ ਸਫਲਤਾ ਮਿਲੀ (ਦੀਵਾਰਾਂ, ਛੱਤ ਆਦਿ ਨੂੰ ਫਿਲਟਰ ਕਰਕੇ) ਅਤੇ ਲੋੜੀਂਦੇ ਆਕਾਰ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਾਲੀਆਂ ਵਸਤੂਆਂ ਦੀ ਤਲਾਸ਼ ਕੀਤੀ, ਲਗਭਗ 0.3x0.3 ਮੀਟਰ ਫੁੱਟਪ੍ਰਿੰਟ। ਮੈਂ ਐਜ਼ ਡਿਟੈਕਸ਼ਨ ਅਤੇ ਜੀਓਮੇਟ੍ਰਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਦੀ ਵਰਤੋਂ ਕਰਕੇ Triton ਦੀ ਵਿਲੱਖਣ ਪ੍ਰੋਫਾਇਲ ਦੀ ਪਛਾਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ, ਜਿਸਦੇ ਨਤੀਜੇ ਮਿਲੇ-ਜੁਲੇ ਰਹੇ।
Marker Recognition Experiments: ਹਰ Triton ‘ਤੇ ਮੌਜੂਦ ਤਿੰਨ ਪਰਾਵਰਤੀ ਗੋਲਾਕਾਰ ਲੱਕੜੀਆਂ ਸਭ ਤੋਂ ਵਾਅਦਾ ਵਾਅਦੇਯੋਗ ਡਿਟੈਕਸ਼ਨ ਫੀਚਰ ਲੱਗੀਆਂ। ਮੈਂ ਡੈਪਥ ਇਮੇਜ ਵਿੱਚ ਤਿੰਨ ਤੇਜ਼ ਚਮਕੀਲੇ ਬਿੰਦੂਆਂ ਦੇ ਲੱਕੜੀ ਤਿਕੋਣੀ ਪੈਟਰਨ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਬਲਾਬ ਡਿਟੈਕਸ਼ਨ ਐਲਗੋਰਿਦਮਾਂ ‘ਤੇ ਪ੍ਰਯੋਗ ਕੀਤਾ। ਨਿਯੰਤਰਿਤ ਰੌਸ਼ਨੀ ਹਾਲਾਤ ਵਿੱਚ ਮੈਨੂੰ ਕੁਝ ਉਮੀਦਵਰ ਨਤੀਜੇ ਮਿਲੇ, ਹਾਲਾਂਕਿ ਇਹ ਲਗਾਤਾਰ ਭਰੋਸੇਯੋਗ ਨਹੀਂ ਸੀ।
Coordinate Fusion Research: ਮੈਂ ਵਿਜ਼ਨ-ਆਧਾਰਿਤ ਸਥਿਤੀ ਅਨੁਮਾਨਾਂ ਨੂੰ Optitrack ਡੇਟਾ ਨਾਲ ਜੋੜਨ ਦੇ ਤਰੀਕਿਆਂ ‘ਤੇ ਖੋਜ ਕੀਤੀ, ਜਿਸ ਵਿੱਚ ਬੁਨਿਆਦੀ Kalman filter ਨਿਰੀਆਂਸ਼ ਸ਼ਾਮਲ ਸਨ। ਸੋਚ ਇਹ ਸੀ ਕਿ Optitrack ਡੇਟਾ ਉਪਲਬਧ ਹੋਣ ‘ਤੇ ਉਸ ਨੂੰ ਵੱਧ ਵਜ਼ਨ ਦਿੱਤਾ ਜਾਵੇ ਪਰ ਜ਼ਰੂਰਤ ਪੈਣ ‘ਤੇ ਵਿਜ਼ਨ ਵੱਲ ਮੁੜਿਆ ਜਾਵੇ; ਹਾਲਾਂਕਿ ਮੇਰੇ ਲੈਬ ਵਿੱਚ ਰਹਿਣ ਦੇ ਸਮੇਂ ਤੋਂ ਪਹਿਲਾਂ ਮੈਂ ਇਸਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦਾ ਨਹੀਂ ਬਣਾਇਆ।
Performance Challenges: ਇਹ ਸਾਰਾ ਪ੍ਰੋਸੈਸਿੰਗ ਰੀਅਲ-ਟਾਈਮ ਵਿੱਚ ਰੋਬੋਟ ਦੇ ਕੰਟਰੋਲ ਲੂਪਾਂ ਨਾਲ ਇਕੱਠੇ ਚਲਾਉਣਾ ਚੁਣੌਤੀਭਰਿਆ ਸਾਬਿਤ ਹੋਇਆ। ਮੈਂ ਐਲਗੋਰਿਦਮਾਂ ਨੂੰ ਲਗਭਗ 10-15Hz ‘ਤੇ ਚਲਾਉਣ ਲਈ ਅਪਟੀਮਾਈਜ਼ੇਸ਼ਨ ਤਰੀਕਿਆਂ ‘ਤੇ ਪ੍ਰਯੋਗ ਕੀਤਾ ਤਾਂ ਜੋ Jetson Nano ਦੀ ਪ੍ਰੋਸੈਸਿੰਗ ਸਮਰੱਥਾ ‘ਤੇ ਭਾਰ ਨਾ ਪਵੇ।
ਬਦਕਿਸਮਤੀ ਨਾਲ, ਮੈਂ ਲੈਬ ਛੱਡਣ ਤੋਂ ਪਹਿਲਾਂ ਇਸ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਕੰਮ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਮੁਕੰਮਲ ਨਹੀਂ ਕਰ ਸਕਿਆ। ਜਦੋਂ ਕਿ ਮੈਨੂੰ ਕੁਝ ਉਮੀਦਵਰ ਸ਼ੁਰੂਆਤੀ ਨਤੀਜੇ ਮਿਲੇ ਅਤੇ ਡੈਪਥ ਸੈਂਸਰ ਪ੍ਰੋਸੈਸਿੰਗ ਬਾਰੇ ਬਹੁਤ ਕੁਝ ਸਿੱਖਣ ਨੂੰ ਮਿਲਿਆ, ਪਰ ਮੈਂ ਸਿਸਟਮ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਭਰੋਸੇਯੋਗ ਹਾਲਤ ਵਿੱਚ ਨਹੀਂ ਲੈ ਕੇ ਆ ਸਕਿਆ। ਇਹ ਇੱਕ ਦਿਲਚਸਪ ਖੋਜ ਦਿਸ਼ਾ ਰਹੀ ਜੋ ਹੋਰ ਲੋਕ ਅੱਗੇ ਵਧਾ ਸਕਦੇ ਹਨ।
ਇਹ ਮੇਰੀ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਐਲਗੋਰਿਦਮਾਂ ਦੀ ਟੈਸਟਿੰਗ ਦਾ ਵੀਡੀਓ ਹੈ:
ਇਹ ਦੌਰਾਨ ਮੇਰੇ ਪ੍ਰਯੋਗਾਂ ਵੇਲੇ ਡੈਪਥ ਸੈਂਸਰ ਦੇ ਦ੍ਰਿਸ਼ ਦਾ ਰੂਪ ਇਸ ਤਰ੍ਹਾਂ ਦੇਖਿਆ ਜਾ ਰਿਹਾ ਸੀ:
ਜਦੋਂ ਕਿ ਮੈਂ ਡੈਪਥ ਸੈਂਸਰ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਦਾ ਕੰਮ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ, ਪਰ ਇਹ ਧਾਰਣਾ ਆਪਣੇ ਆਪ ਵਿੱਚ ਉਮੀਦਵਰ ਸੀ, ਉਦਾਹਰਨ ਵਜੋਂ ਆਤਮ-ਚਲਿਤ ਗੱਡੀਆਂ ਦੀਆਂ ਸਿਮੂਲੇਸ਼ਨ ਸਥਿਤੀਆਂ ਲਈ, ਜਿਥੇ ਵਾਹਨ ਇਕ ਦੂਜੇ ਦੇ ਬਾਰੇ ਜਾਨਕਾਰੀ ਰੱਖਣ ਦੀ ਲੋੜ ਹੈ ਬਿਨਾਂ ਸਿਰਫ ਬਾਹਰੀ ਇੰਫਰਾਸਟਰੱਕਚਰ ‘ਤੇ ਨਿਰਭਰ ਰਹਿਣ ਦੇ। ਮੈਂ ਜਿਹੀ ਖੋਜ ਦਿਸ਼ਾ ਸ਼ੁਰੂ ਕੀਤੀ, ਉਹ ਲੈਬ ਵਿੱਚ ਭਵਿੱਖ ਦੇ ਕੰਮ ਲਈ ਯੋਗਦਾਨ ਦੇ ਸਕਦੀ ਹੈ।
Documentation and Knowledge Preservation
HCR Lab ਵਿੱਚ ਮੇਰੇ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਯੋਗਦਾਨਾਂ ਵਿੱਚੋਂ ਇੱਕ, ਅਤੇ ਸ਼ਾਇਦ ਜਿਸ ‘ਤੇ ਮੈਂ ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਗਰਵ ਮਹਿਸੂਸ ਕਰਦਾ ਹਾਂ, ਉਹ ਸਾਰੇ ਪ੍ਰੋਜੈਕਟ ਡਾਕਯੂਮੈਂਟੇਸ਼ਨ ਨੂੰ ਸੁੰਗਠਿਤ ਅਤੇ ਸੰਭਾਲ ਕੇ ਰੱਖਣਾ ਸੀ। ਜਦੋਂ ਮੈਂ ਲੈਬ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਇਆ/ਹੋਈ, Triton ਪ੍ਰੋਜੈਕਟ ਦੀ ਜਾਣਕਾਰੀ ਕਈ ਪਲੇਟਫਾਰਮਾਂ ਅਤੇ ਫਾਰਮੈਟਾਂ ਵਿੱਚ ਖੰਡ-ਖੰਡ ਹੋਈ ਹੋਈ ਸੀ। ਆਵਸ਼ਕ ਜਾਣਕਾਰੀਆਂ ਇਹਨਾਂ ਥਾਵਾਂ ਵਿੱਚ ਫੈਲੀ ਹੋਈਆਂ ਸਨ:
- ਵੱਖ-ਵੱਖ Google Drive ਖਾਤੇ ਜੋ ਵੱਖ-ਵੱਖ ਵਿਦਿਆਰਥੀਆਂ ਦੇ ਸਨ ਜੋ ਗ੍ਰੈਜੂਏਟ ਹੋ ਚੁੱਕੇ ਸਨ
- ਇਨਬੌਕਸ ਵਿੱਚ ਦੱਬੀਆਂ ਪੁਰਾਣੀਆਂ ਈਮੇਲਾਂ
- ਬੇਰੋਜ਼ਗਾਰ Dropbox ਫੋਲਡਰ
- ਕਈ GitHub ਰਿਪੋਜ਼ਟਰੀਜ਼
- GitLab ਰਿਪੋਜ਼ਟਰੀਜ਼ ਜੋ ਅਸਮਰੂਪਤਾ ਨਾਲ ਸੰਗਠਿਤ ਸਨ
- ਹੱਥ ਨਾਲ ਲਿਖੀਆਂ ਨੋਟਸ ਜੋ ਸਿਰਫ਼ ਖ਼ਾਸ ਲੋਕ ਹੀ ਸਮਝ ਸਕਦੇ ਸਨ
ਇਹ ਖੰਡਤ ਡਾਕਯੂਮੈਂਟੇਸ਼ਨ ਇਕ ਵੱਡੀ ਸਮੱਸਿਆ ਸੀ। ਨਵੇਂ ਵਿਦਿਆਰਥੀ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਕੇਵਲ ਸ਼ੁਰੂਆਤ ਜਾਣਨ ਵਿੱਚ ਹਫ਼ਤੇ ਖਰਚ ਕਰਦੇ ਸਨ, ਅਤੇ ਕੀਮਤੀ ਗਿਆਨ ਲਗਾਤਾਰ ਖੋ ਗਿਆ ਕਰਦਾ ਜਦੋਂ ਲੋਕ ਗ੍ਰੈਜੂਏਟ ਜਾਂ ਲੈਬ ਛੱਡ ਦਿੰਦੇ।
ਮੈਂ ਨੇ ਇਹ ਸਮੱਸਿਆ ਪ੍ਰਣਾਲੀਤ ਤਰੀਕੇ ਨਾਲ ਹੱਲ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕੀਤਾ। ਮੈਂ Triton ਪ੍ਰੋਜੈਕਟ ਨਾਲ ਸੰਬੰਧਿਤ ਹਰ ਇੱਕ ਡਾਕੂਮੈਂਟੇਸ਼ਨ, ਕੋਡ, ਵੀਡੀਓ ਅਤੇ ਨੋਟ ਦੀ ਪੂਰੀ ਜਾਂਚ ਕਰਨ ਵਿੱਚ ਬੇਅੰਤ ਘੰਟੇ ਲਗਾਏ। ਫਿਰ ਮੈਂ ਸਾਰਾ ਕੁਝ ਇੱਕ ਕੇਂਦਰੀ GitLab ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਸਪਸ਼ਟ, ਤਰਤੀਬਵਾਰ ਢਾਂਚੇ ਨਾਲ ਸੰਚਿਤ ਕੀਤਾ।
![]() |
![]() |
ਕੇਂਦਰੀ ਡਾਕਯੂਮੈਂਟੇਸ਼ਨ ਵਿੱਚ ਸ਼ਾਮਲ ਸੀ:
- Build Guides: Tritons ਨੂੰ ਮੁੱਢ ਤੋਂ ਇਕੱਠਾ ਕਰਨ ਲਈ ਕਦਮ-ਬੁ-ਕਦਮ ਨਿਰਦੇਸ਼
- Software Setup: ਵਿਕਾਸੀ ਮਾਹੌਲ ਸੈਟਅੱਪ ਕਰਨ ਲਈ ਪੂਰੇ ਗਾਈਡ
- Code Documentation: ਚੰਗੀ ਤਰ੍ਹਾਂ ਟਿੱਪਣੀ ਕੀਤੇ ਹੋਏ ਕੋਡ ਨਾਲ ਸਪਸ਼ਟ ਵਿਆਖਿਆਵਾਂ
- Hardware Specifications: ਵਿਸਥਾਰਪੂਰਵਕ ਹਿੱਸਿਆਂ ਦੀ ਸੂਚੀ, ਵਾਇਰਿੰਗ ਡਾਇਅਗ੍ਰਾਮ, ਅਤੇ PCB ਡਿਜ਼ਾਈਨ
- Troubleshooting Guides: ਆਮ ਸਮੱਸਿਆਵਾਂ ਅਤੇ ਉਹਨਾਂ ਦੇ ਹੱਲ
- Video Tutorials: ਮੈਂ YouTube ‘ਤੇ ਸਿਖਲਾਈ ਵੀਡੀਓ ਬਣਾਈਆਂ ਅਤੇ ਅਪਲੋਡ ਕੀਤੀਆਂ, ਜਿਸ ਵਿੱਚ ਓਪਟੀਟਰੈਕ ਕੈਲੀਬਰੇਸ਼ਨ ਦੇ ਵਿਸਥਾਰਪੂਰਵਕ ਟਿਊਟੋਰਿਅਲ ਵੀ ਸ਼ਾਮਲ ਸਨ:
ਮੈਂ ਭਵਿੱਖ ਦੀਆਂ ਯੋਗਦਾਨਾਂ ਲਈ ਪੱਕੇ ਤਰੀਕੇ ਸਥਾਪਤ ਕਰਨ ਲਈ ਡਾਕਯੂਮੈਂਟੇਸ਼ਨ ਮਿਆਰ ਵੀ ਸਥਾਪਤ ਕੀਤੇ। ਜਿਸ ਰਿਪੋਜ਼ਟਰੀ ਢਾਂਚੇ ਨੂੰ ਮੈਂ ਬਣਾਇਆ ਉਹ ਲੈਬ ਵਿੱਚ ਹੋਣ ਵਾਲੇ ਸਾਰੇ ਅਗਲੇ ਕੰਮਾਂ ਲਈ ਨੀਂਹ ਬਣ ਗਿਆ।
ਕੇਵਲ ਮੌਜੂਦਾ ਡਾਕਯੂਮੈਂਟੇਸ਼ਨ ਨੂੰ ਠੀਕ ਕਰਨ ਤੋਂ ਇਲਾਵਾ, ਮੈਂ ਕਈ ਮੂਲ ਗਾਈਡਾਂ ਅਤੇ ਟਿਊਟੋਰਿਅਲ ਵੀ ਬਣਾਏ ਜੋ ਗਿਆਨ ਆਧਾਰ ਵਿੱਚ ਆਵਸ਼ਕ ਖ਼ਾਲੀਆਂ ਭਰਦੇ ਸਨ। ਇਨ੍ਹਾਂ ਵਿੱਚ ਨਵੇਂ ਲੈਬ ਮੈਂਬਰਾਂ ਲਈ ਵਿਸਥਾਰਪੂਰਵਕ ਸੈਟਅੱਪ ਨਿਰਦੇਸ਼, ਸਮੁੱਚੇ ਟ੍ਰਬਲਸ਼ੂਟਿੰਗ ਗਾਈਡ ਅਤੇ ਜਟਿਲ ਪ੍ਰਕਿਰਿਆਵਾਂ ਦੀ ਵੀਡੀਓ ਵਾਕਥਰੂ ਸ਼ਾਮਲ ਸਨ।
ਇਸਦਾ ਨਤੀਜਾ ਤੁਰੰਤ ਅਤੇ ਲੰਬੇ ਸਮੇਂ ਲਈ ਰਹਿਣ ਵਾਲਾ ਸੀ। ਨਵੇਂ ਵਿਦਿਆਰਥੀ ਹੁਣ ਦਿਨਾਂ ਵਿੱਚ ਸੈੱਟਅੱਪ ਹੋ ਸਕਦੇ ਸਨ ਨਾ ਕਿ ਹਫ਼ਤਿਆਂ ਵਿੱਚ। ਜਿਸ ਡਾਕਯੂਮੈਂਟੇਸ਼ਨ ਰਿਪੋਜ਼ਟਰੀ ਨੂੰ ਮੈਂ ਬਣਾਇਆ ਉਹ ਅੱਜ ਵੀ ਲੈਬ ਦੁਆਰਾ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ, ਸਾਲਾਂ ਬਾਅਦ ਵੀ ਜਦੋਂ ਮੈਂ ਛੱਡ ਚੁੱਕਾ/ਛੱਡ ਚੁੱਕੀ। ਇਹ Triton ਪ੍ਰੋਜੈਕਟ ਲਈ ਸੱਚਾਈ ਦਾ ਇਕੱਲਾ ਸਰੋਤ ਬਣ ਗਿਆ ਅਤੇ ਭਵਿੱਖ ਦੇ ਖੋਜਕਰਤਿਆਂ ਲਈ ਗਿਣਤੀ ਰਹਿਤ ਘੰਟੇ/ਦਿਨਾਂ ਦੀ ਬਚਤ ਕਰਵਾਈ।
Mentoring and Knowledge Transfer
HCR Lab ਵਿੱਚ ਮੇਰੇ ਸਮੇਂ ਦਾ ਸਭ ਤੋਂ ਸਨਮਾਨਜਨਕ ਪਹਿਲੂ ਇਹ ਸੀ ਕਿ ਮੈਂ ਹੋਰਾਂ ਨੂੰ ਮੈਨਟੋਰ ਕਰਨ ਅਤੇ ਆਪਣੀ ਪ੍ਰਾਪਤ ਗਿਆਨ ਨੂੰ ਸਾਂਝਾ ਕਰਨ ਦਾ ਮੌਕਾ ਮਿਲਿਆ। ਜਿਵੇਂ-ਜਿਵੇਂ ਮੇਰਾ ਕੰਮ ਅੱਗੇ ਵਧਿਆ ਅਤੇ ਮੈਂ Triton ਸਿਸਟਮਾਂ ਵਿੱਚ ਜ਼ਿਆਦਾ ਅਨੁਭਵੀ ਹੋਇਆ/ਹੋਈ, ਮੈਂ ਨਵੇਂ ਟੀਮ ਮੈਂਬਰਾਂ ਨੂੰ ਪ੍ਰਸ਼ਿਕਸ਼ਣ ਦੇਣ ਦੀ ਵੱਧ ਰਹੀ ਜ਼ਿੰਮੇਵਾਰੀ ਲਿੱਤੀ।
Mentoring Lab Successors
ਜਿਵੇਂ ਮੈਂ ਆਖ਼ਿਰਕਾਰ ਆਪਣੀ ਡਿਗਰੀ ਪੂਰੀ ਕਰਨ ਅਤੇ eBay ‘ਤੇ ਆਪਣੇ ਕੰਮ ‘ਤੇ ਧਿਆਨ ਦੇਣ ਲਈ ਲੈਬ ਛੱਡਣ ਦੀ ਤਿਆਰੀ ਕਰ ਰਿਹਾ/ਰਹੀ ਸੀ, ਮੈਂ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਕਿ ਦੋ ਲੋਕਾਂ ਨੂੰ ਚੰਗੀ ਤਰ੍ਹਾਂ ਸਿਖਾਇਆ ਜਾਵੇ ਜੋ ਮੇਰੇ ਜਾਣ ਤੋਂ ਬਾਅਦ Triton ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਸੰਭਾਲਣਗੇ। ਇਹ ਸਿਰਫ ਇਹ ਦਿਖਾਉਣ ਬਾਰੇ ਨਹੀਂ ਸੀ ਕਿ ਚੀਜ਼ਾਂ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀਆਂ ਹਨ, ਸਗੋਂ ਇਹ ਬਾਰੇ ਸੀ ਕਿ ਉਹਨਾਂ ਨੂੰ ਅਸਲ ਮੂਲ ਸਿਧਾਂਤਾਂ ਦੀ ਪੂਰੀ ਸਮਝ ਹੋਵੇ ਤਾਂ ਜੋ ਉਹ ਅੱਗੇ ਨਵੀਨਤਾ ਅਤੇ ਵਿਕਾਸ ਕਰ ਸਕਣ।
ਮੈਂ ਹਫ਼ਤਿਆਂ ਤੱਕ ਉਨ੍ਹਾਂ ਨਾਲ ਨੇੜੇ ਹੋ ਕੇ ਕੰਮ ਕੀਤਾ, ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਚੀਜ਼ਾਂ ‘ਤੇ ਗੁਜ਼ਰਦੇ ਹੋਏ:
- PID ਕੰਟਰੋਲ ਸਿਸਟਮਾਂ ਦੇ ਗਣਿਤੀਅ ਨੀਵਾਂ
- ਕਈ ਰੋਬੋਟਾਂ ਦੇ ਕੋਆਰਡੀਨੇਸ਼ਨ ਲਈ ਮਲਟੀ-ਪਰੋਸੈਸਿੰਗ ਆਰਕੀਟੈਕਚਰ
- ਡੈਪਥ ਸੈਂਸਰ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਅਤੇ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਐਲਗੋਰਿਦਮ
- ਡਾਕਯੂਮੈਂਟੇਸ਼ਨ ਪ੍ਰਣਾਲੀ ਅਤੇ ਇਸਨੂੰ ਕਿਵੇਂ ਰੱਖ-ਰਖਾਅ ਕਰਨਾ ਹੈ
- ਡੀਬੱਗਿੰਗ ਤਕਨੀਕਾਂ ਅਤੇ ਆਮ ਫੇਲਿਊਰ ਮੋਡ
ਗਿਆਨ ਦਾ ਟ੍ਰਾਂਸਫਰ ਬੇਹੱਦ ਵਿਸਥਾਰਪੂਰਵਕ ਸੀ। ਅਸੀਂ ਇੱਕੱਠੇ ਅਸਲ ਡੀਬੱਗਿੰਗ ਸੈਸ਼ਨਾਂ ‘ਚੋਂ ਗੁਜ਼ਰੇ, ਮੈਂ ਉਨ੍ਹਾਂ ਨੂੰ ਮੌਜੂਦਾ ਕੋਡ ਨੂੰ ਸੋਧਣ ਅਤੇ ਵਧਾਉਣ ਲਈ ਕਿਹਾ, ਅਤੇ ਮੈਂ ਯਕੀਨੀ ਬਣਾਇਆ ਕਿ ਉਹ ਨਿਰਭਲੌਗ ਤੌਰ ‘ਤੇ ਨਵੇਂ Tritons ਨੂੰ ਮੁੱਢ ਤੋਂ ਸੈੱਟਅੱਪ ਕਰ ਸਕਣ।
High School Mentorship Program
ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਸਫਲਦਾਇਕ ਅਨੁਭਵਾਂ ਵਿੱਚੋਂ ਇੱਕ ਮੈਨੂੰ ਹਾਈ ਸਕੂਲ ਦੇ ਇੱਕ ਵਿਦਿਆਰਥੀ ਨੂੰ ਲੈਬ ਦੇ ਰਾਹੀਂ ਮੈਨਟੋਰ ਕਰਨ ਦਾ ਮੌਕਾ ਮਿਲਿਆ। ਇਹ ਰੋਬੋਟਿਕਸ, ਕੰਪਿਊਟਰ ਸਾਇੰਸ ਅਤੇ ਖੋਜ ਵਿੱਚ ਮੂੜਕੱਤਰ ਦੌਰਾਨ ਕਿਸੇ ਨੂੰ ਪਰੀਚਿਤ ਕਰਨ ਦਾ ਬਹੁਤ ਵਧੀਆ ਮੌਕਾ ਸੀ।
ਮੈਂ ਇੱਕ ਵਿਸਥਾਰਪੂਰਵਕ ਪਾਠਕਰਮ ਡਿਜ਼ਾਈਨ ਕੀਤਾ ਜੋ ਇਹ ਕਵਰ ਕਰਦਾ ਸੀ:
Computer Science Fundamentals:
- ਮੁੱਖ ਭਾਸ਼ਾ ਵਜੋਂ Python ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਧਾਰਣਾਵਾਂ
- ਆਬਜੈਕਟ-ਓਰੀਐਂਟਡ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਦਾ ਪਰਿਚয়
- ਐਲਗੋਰਿਦਮਾਂ ਅਤੇ ਡੇਟਾ ਸਟ੍ਰੱਕਚਰਾਂ ਦੀ ਸਮਝ
Robotics Concepts:
- ਸੈਂਸਰ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ ਅਤੇ ਉਹਨਾਂ ਨਾਲ ਇੰਟਰਫੇਸ ਕਿਵੇਂ ਕਰਨਾ ਹੈ
- ਐਕਚੂਏਟਰ ਕੰਟਰੋਲ ਅਤੇ ਮੋਟਰ ਸਿਸਟਮ
- ਸੁਤੰਤਰਕ ਸਿਸਟਮ ਅਤੇ ਫੀਡਬੈਕ ਕੰਟਰੋਲ ਦੇ ਮੂਲ
ROS (ਰੋਬੋਟ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ):
- ਪਬਲਿਸ਼/ਸਬਸਕ੍ਰਾਈਬ ਮੈਸੇਜਿੰਗ ਸਿਸਟਮ ਦੀ ਸਮਝ
- ਨੋਡਸ ਅਤੇ ਸਰਵਿਸز ਬਣਾਉਣਾ
- ਲਾਂਚ ਫਾਇਲਾਂ ਅਤੇ ਪੈਰਾਮੀਟਰ ਸਰਵਰਾਂ ਨਾਲ ਕੰਮ ਕਰਨਾ
Hands-on Project Work:
- ਅਸੀਂ ਮਿਲ ਕੇ ਇੱਕ ROS ਸਰਵਿਸ ਬਣਾਈ ਜਿਸਨੇ Triton ਦੇ ਸਿਰ ‘ਤੇ LED ਸਿਸਟਮ ਨੂੰ ਕੰਟਰੋਲ ਕੀਤਾ
- ਉਸ ਨੇ ਸਾਫ਼, ਦਸਤਾਵੇਜ਼ ਕੀਤੇ ਹੋਏ ਕੋਡ ਲਿਖਣਾ ਸਿੱਖਿਆ ਜੋ ਸਾਡੇ ਮੌਜੂਦਾ ਸਿਸਟਮਾਂ ਨਾਲ ਇੰਟੀਗ੍ਰੇਟ ਹੋ ਸਕਦਾ ਸੀ
- ਉਸ ਵੱਲੋਂ ਬਣਾਈ ਗਈ LED ਕੰਟਰੋਲ ਸਰਵਿਸ Triton ਕੋਡਬੇਸ ਦਾ ਸਥਾਈ ਹਿੱਸਾ ਬਣ ਗਈ
ਇਸ ਮੈਨਟੋਰਸ਼ਿਪ ਨੂੰ ਵਿਸ਼ੇਸ਼ ਬਣਾਉਣ ਵਾਲੀ ਗੱਲ ਇਹ ਦੇਖਣਾ ਸੀ ਕਿ ਉਹ ਕਿਸ ਤਰ੍ਹਾਂ ਗ਼ੈਰ-ਮੌਜੂਦਾ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਜਾਣਕਾਰੀ ਤੋਂ ਅਨੇਕ ਯੋਗਦਾਨ ਦੇਣ ਵਾਲੀ ਕੋਡ ਲਿਖਣ ਵਾਲੀ ਵਿਅੱਤੀ ਬਣ ਗਈ। ਉਹ “ਚਲ” ਸਵਾਲ ਪੁੱਛਣ ਤੋਂ ਲੈ ਕੇ ਸੁਤੰਤਰ ਤोर ‘ਤੇ ROS ਸੰਚਾਰ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਅਤੇ ਆਪਣੀਆਂ ਸਰਵਿਸ ਇੰਪਲੀਮੈਂਟੇਸ਼ਨ ਲਿਖਣ ਤੱਕ ਪਹੁੰਚ ਗਿਆ/ਗਈ।
ਉਸ ਨੇ ਜੋ LED ਕੰਟਰੋਲ ਸਿਸਟਮ ਵਿਕਸਤ ਕੀਤਾ ਉਸ ਨਾਲ ਖੋਜਕਰਤਾ ਆਸਾਨੀ ਨਾਲ ਸਧਾਰਨ ROS ਕਮਾਂਡਾਂ ਰਾਹੀਂ Triton ਦੇ ਸਿਰ ਦੀਆਂ ਰੰਗ-ਪੈਟਰਨ ਬਦਲ ਸਕਦੇ ਹਨ। ਇਹ ਸੁਣਨ ਵਿੱਚ ਸਧਾਰਣ ਲੱਗ ਸਕਦਾ ਹੈ, ਪਰ ਇਸ ਲਈ ROS ਆਰਕੀਟੈਕਚਰ, ਹਾਰਡਵੇਅਰ ਇੰਟਰਫੇਸਿੰਗ ਅਤੇ ਢੰਗ ਚੰਗੇ ਸਾਫਟਵੇਅਰ ਡਿਜ਼ਾਈਨ ਪੈਟਰਨ ਦੀ ਸਮਝ ਦੀ ਲੋੜ ਸੀ। ਉਸ ਦਾ ਯੋਗਦਾਨ ਅੱਜ ਵੀ ਲੈਬ ਵਿੱਚ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ।
ਮੈਂਟੋਰਸ਼ਿਪ ਮੇਰੇ ਲਈ ਉਸਦੇ ਵਾਂਗ ਹੀ ਸਿੱਖਿਆਦਾਇਕ ਸੀ। ਇਸ ਨੇ ਮੈਨੂੰ ਜਟਿਲ ਧਾਰਨਾਵਾਂ ਨੂੰ ਹਜ਼ਮ ਕਰਨਯੋਗ ਟੁਕੜਿਆਂ ਵਿੱਚ ਵੰਡਣ ਅਤੇ ਅਸਲ ਗੱਲਾਂ ਬਾਰੇ ਗਹਿਰਾਈ ਨਾਲ ਸੋਚਣ ਲਈ ਮਜ਼ਬੂਰ ਕੀਤਾ ਜੋ ਅਸੀਂ ਕਰ ਰਹੇ ਸੀ। ਕਿਸੇ ਹੋਰ ਨੂੰ ਸਿਖਾਣ ਨਾਲ ਮੈਂ ਇੱਕ ਵਧੀਆ ਇੰਜੀਨੀਅਰ ਅਤੇ ਖੋਜਕਾਰ ਬਣਿਆ।
PhD ਖੋਜ ਨਾਲ ਸਹਿਯੋਗ
ਮੇਰੇ ਲਈ ਲੈਬ ਵਿੱਚ ਸਮੇਂ ਦੇ ਸਭ ਤੋਂ ਪੇਸ਼ੇਵਰ ਤੌਰ ‘ਤੇ ਸਹਾਇਕ ਪਹਲੂਆਂ ਵਿੱਚੋਂ ਇੱਕ ਪੇਂਗ ਨਾਲ ਨੇੜੇ ਤੋਂ ਕੰਮ ਕਰਨਾ ਸੀ, ਇੱਕ PhD ਵਿਦਿਆਰਥੀ ਜਿਸਦੀ ਖੋਜ ਸੈਲਫ-ਡ੍ਰਾਈਵਿੰਗ ਕਾਰ ਅਲਗੋਰਿਦਮਾਂ ‘ਤੇ ਕੇਂਦ੍ਰਿਤ ਸੀ। ਟ੍ਰਾਈਟਨ ਸਿਸਟਮ ਵਿੱਚ ਮੈਂ ਕੀਤੀਆਂ ਸੌਫਟਵੇਅਰ ਸੁਧਾਰਾਂ ਨੇ ਉਸਦੇ ਡਾਕਟੋਰਲ ਖੋਜ ਨੂੰ ਸਮਰਥਨ ਦਿਤਾ।
ਪੇਂਗ ਦੀ ਖੋਜ ਨੂੰ ਸੈਲਫ-ਡ੍ਰਾਈਵਿੰਗ ਕਾਰ ਸਥਿਤੀਆਂ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਸਹੀ, ਭਰੋਸੇਯੋਗ ਮਲਟੀ-ਰੋਬੋਟ ਸਹਯੋਗ ਦੀ ਲੋੜ ਸੀ। ਮੇਰੀ ਹਿਲਚਲ ਨਿਯੰਤਰਣ ਅਤੇ ਮਲਟੀ-ਰੋਬੋਟ ਸਿਸਟਮਾਂ ਵਿੱਚ ਕੀਤੀਆਂ ਸੁਧਾਰਾਂ ਤੋਂ ਪਹਿਲਾਂ, ਇਹ ਪ੍ਰਯੋਗ ਕਰਨਾ ਕਾਫ਼ੀ ਮੁਸ਼ਕਲ ਸੀ। ਰੋਬੋਟ ਹਨੇਰੇ, ਘੱਟ ਸਰਲ ਅਤੇ ਇੱਥੇ-ਉੱਥੇ ਇੰਨਾ ਪ੍ਰਭਾਵਸ਼ালী ਤਰ੍ਹਾਂ ਇਕੱਠੇ ਕੰਮ ਨਹੀਂ ਕਰ ਸਕਦੇ ਸਨ।
ਮੇਰੇ ਯੋਗਦਾਨਾਂ ਨੇ ਪੇਂਗ ਦੀ ਖੋਜ ਨੂੰ ਕਈ ਖੇਤਰਾਂ ਵਿੱਚ ਮਦਦ ਕੀਤੀ:
ਇੰਟਰਸੈਕਸ਼ਨ ਪ੍ਰਬੰਧਨ ਅਧਿਐਨ: ਸੁਧਾਰੇ ਹੋਏ PID ਕੰਟਰੋਲਰਾਂ ਅਤੇ ਮਲਟੀ-ਰੋਬੋਟ ਸਹਯੋਗ ਨਾਲ, ਪੇਂਗ ਐਸੇ ਇੰਟਰਸੈਕਸ਼ਨ ਸਥਿਤੀਆਂ ਦੀ ਨਕਲ ਕਰ ਸਕਦਾ ਸੀ ਜਿੱਥੇ ਕਈ “ਵਾਹਨ” (ਟਰਾਈਟਨ) ਨੂੰ ਆਪਣੀਆਂ ਹਿਲਚਲਾਂ ਸਹਯੋਗ ਨਾਲ ਸਾਂਝੀਆਂ ਕਰਨੀ ਪੈਂਦੀਆਂ ਸਨ। ਬਿਹਤਰ ਸਮਾਂ-ਬੰਦੀ ਅਤੇ ਪੋਜ਼ੀਸ਼ਨਿੰਗ ਨੇ ਇਹ ਅਧਿਐਨ ਹੋਰ ਸੰਭਵ ਬਣਾਏ।
ਵਾਹਨ-ਸੈ ਵਾਹਨ ਸੰਚਾਰ: ਜੋ ਮਲਟੀ-ਪ੍ਰોસੈਸਿੰਗ ਫਰੇਮਵਰਕ ਮੈਂ ਵਿਕਸਿਤ ਕੀਤਾ, ਉਸ ਨੇ ਪੇਂਗ ਨੂੰ ਨਕਲ ਕੀਤੇ ਗਏ ਵਾਹਨਾਂ ਦਰਮਿਆਨ ਸੰਚਾਰ ਪਰੋਟੋਕੋਲਾਂ ਨੂੰ ਲਾਗੂ ਅਤੇ ਟੈਸਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੱਤੀ। ਹਰ ਟ੍ਰਾਈਟਨ ਹੋਰਾਂ ਨਾਲ ਸਹਯੋਗ ਕਰਦਿਆਂ ਫੈਸਲੇ ਲਈ ਸਕਦਾ ਸੀ, ਠੀਕ ਉਦਾਹਰਣ ਵਾਂਗ ਜਿਵੇਂ ਸੈਲਫ-ਡ੍ਰਾਈਵਿੰਗ ਕਾਰਾਂ ਨੂੰ ਕੰਮ ਕਰਨਾ ਪੈ ਸਕਦਾ ਹੈ।
SLAM ਅਤੇ ਮੈਪਿੰਗ ਖੋਜ: ਡੈਪਥ ਸੈਂਸਰ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਦਾ ਕੰਮ ਪੇਂਗ ਨੂੰ ਉਸ ਦੇ ਸਿਮਲਟੇਨੀਅਸ ਲੋਕਲਾਈਜੇਸ਼ਨ ਅਤੇ ਮੈਪਿੰਗ ਖੋਜ ਲਈ ਵਾਧੂ ਡਾਟਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਸੀ। ਸਹਯੋਗੀ ਸੰਵੇਦਨ ਸਮਰੱਥਾਵਾਂ ਵਾਲੇ ਕਈ ਰੋਬੋਟਾਂ ਨਾਲ ਹੋਰ ਵਿਸਤ੍ਰਿਤ ਮੈਪਿੰਗ ਪ੍ਰਯੋਗ ਕੀਤੇ ਜਾ ਸਕਦੇ ਸਨ।
ਸਾਡੇ ਸਹਿਯੋਗ ਨੂੰ ਵਿਸ਼ੇਸ਼ਤੌਰ ‘ਤੇ ਕੀ ਕੀਮਤੀ ਬਣਾਇਆ ਉਹ ਇਹ ਸੀ ਕਿ ਇਹ ਸਿਰਫ਼ ਮੈਂ ਉਸ ਦੀ ਖੋਜ ਦੀ ਮਦਦ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ, ਇਹ ਇਕ ਖਰੇਦਾਰੀਆਂ ਵਾਲੀ ਸਾਂਝ ਸੀ। ਆਟੋਨੋਮਸ ਵਾਹਨਾਂ ਦੇ ਸਿਧਾਂਤਕ ਪੱਖਾਂ ਬਾਰੇ ਪੇਂਗ ਦੀ ਸਮਝ ਨੇ ਮੇਰੀ ਵਿਹਾਰਕ ਲਾਗੂਕਰਨਾਂ ਨੂੰ ਜਾਣੂ ਕਰਵਾਇਆ। ਉਸਦੀ ਫੀਡਬੈਕ ਅਤੇ ਲੋੜਾਂ ਨੇ ਮੈਨੂੰ ਸਿਸਟਮਾਂ ਨੂੰ ਹੋਰ ਮਜ਼ਬੂਤ ਅਤੇ ਸਮਰੱਥ ਬਣਾਉਣ ਲਈ ਪ੍ਰੇਰਿਤ ਕੀਤਾ।
ਅਸੀਂ ਲੈਬ ਵਿੱਚ ਘੰਟਿਆਂ ਬਿਤਾਏ, ਦ੍ਰਿੜਾਂ ਸਥਿਤੀਆਂ ਡੀਬੱਗ ਕਰਦੇ, ਵੱਖ-ਵੱਖ ਨਿਯੰਤਰਣ ਰਣਨੀਤੀਆਂ ‘ਤੇ ਵਿਚਾਰ-ਵਟਾਂਦਰਾ ਕਰਦੇ, ਅਤੇ ਵੇਖਦੇ ਕਿ ਟ੍ਰਾਈਟਨ ਪਲੇਟਫਾਰਮ ਕੀ ਕਰ ਸਕਦਾ ਹੈ। ਪੇਂਗ ਨਾ ਸਿਰਫ਼ ਸਹਕਰਮੀ ਬਣ ਗਿਆ ਬਲਕਿ ਦੋਸਤ ਵੀ ਬਣ ਗਿਆ, ਅਤੇ ਉਸਦੇ ਨਾਲ ਕੰਮ ਕਰਕੇ ਮੈਨੂੰ ਅਕਾਦਮਿਕ ਖੋਜ ਵਾਸਤੇ ਕਾਫ਼ੀ ਕੁਝ ਸਿੱਖਣ ਨੂੰ ਮਿਲਿਆ।
ਮੈਂ ਜੋ ਸਿਸਟਮ ਬਣਾਏ ਉਹ ਪੇਂਗ ਦੇ ਥੀਸਿਸ ਕੰਮ ਦਾ ਇੱਕ ਉਪਯੋਗੀ ਹਿੱਸਾ ਬਣ ਗਏ। ਮੇਰੇ ਵਿਹਾਰਕ ਇੰਜੀਨੀਅਰਿੰਗ ਯੋਗਦਾਨਾਂ ਨੂੰ ਦੇਖ ਕੇ ਜੋ ਆਟੋਨੋਮਸ ਵਾਹਨ ਤਕਨਾਲੋਜੀ ਦੀ ਖੋਜ ਨੂੰ ਸਮਰਥਨ ਦਿੱਤਾ, ਉਹ ਸਚਮੁਚ ਸੰਤੋਸ਼ਜਨਕ ਸੀ। ਇਸ ਨੇ ਮੇਰੇ ਵਿਚ ਕਾਰਜਕੁਸ਼ਲ ਇੰਜੀਨੀਅਰਿੰਗ ਅਤੇ ਖੋਜ ਮਿਲ ਕੇ ਕਿਵੇਂ ਉਪਯੋਗੀ ਨਤੀਜੇ ਪੈਦਾ ਕਰ ਸਕਦੇ ਹਨ, ਬਾਰੇ ਰੁਚੀ ਨੂੰ ਹੋਰ ਮਜ਼ਬੂਤ ਕੀਤਾ।
ਜਦੋਂ ਮੈਂ ਲੈਬ ਛੱਡ ਗਿਆ, ਤਾਂ ਵੀ ਪੇਂਗ ਅਤੇ ਮੈਂ ਸੰਪਰਕ ਵਿੱਚ ਰਹੇ। ਜਾਣ ਕੇ ਕਿ ਮੇਰਾ ਕੰਮ ਮੇਰੇ ਬਿਦਾ ਕਰਨ ਤੋਂ ਬਾਅਦ ਵੀ ਮਹੱਤਵਪੂਰਣ ਖੋਜ ਵਿੱਚ ਯੋਗਦਾਨ ਦੇ ਰਿਹਾ ਸੀ, ਬਹੁਤ ਹੀ ਇਨਾਮ ਵਾਂਗ ਸੀ।
ਨਜ਼ਰੀਆ: ਵਿਕਾਸ ਦਾ ਪ੍ਰੀ-LLM ਯੁੱਗ
ਇਹ ਦੇਖਣ ਯੋਗ ਗੱਲ ਹੈ ਕਿ ਇਹ ਸਾਰਾ ਕੰਮ ਸੌਫਟਵੇਅਰ ਵਿਕਾਸ ਦੇ ਪ੍ਰੀ-LLM ਯੁੱਗ ਦੌਰਾਨ ਕੀਤਾ ਗਿਆ ਸੀ। ਇਹ ਸਾਰਾ ਕੰਮ 2020 ਤੋਂ 2021 (ਮੁੱਖ ਤੌਰ ‘ਤੇ 2021) ਦੇ ਦਰਮਿਆਨ ਹੋਇਆ, ਚੈਟਜੀਪੀਟੀ, ਕਲੌਡ, ਪਰਪਲੈਕਸਿਟੀ, ਜਾਂ ਕਰਸਰ IDE ਵਰਗੇ AI-ਸਮਰੱਥ ਵਿਕਾਸ ਟੂਲਾਂ ਦੇ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ।
ਹਰ ਲਾਈਨ ਕੋਡ صفر ਤੋਂ ਲਿਖੀ ਗਈ ਸੀ, ਹਰ ਅਲਗੋਰਿਦਮ ਅਕਾਦਮਿਕ ਪੇਪਰਾਂ ਅਤੇ ਪਾਠ-ਪੁਸਤਕਾਂ ਰਾਹੀਂ ਖੋਜਿਆ ਗਿਆ ਸੀ, ਅਤੇ ਹਰ ਡੀਬੱਗਿੰਗ ਸੈਸ਼ਨ ਵਿੱਚ ਪਰੰਪਰਾਗਤ ਤਰੀਕੇ ਵਰਤੇ ਜਾਂਦੇ ਸਨ ਜਿਵੇਂ ਪ੍ਰਿੰਟ ਸਟੇਟਮੈਂਟਸ, ਡੀਬੱਗਰ, ਅਤੇ ਵਿਧੀਵਤ ਟੈਸਟਿੰਗ। ਜਦੋਂ ਮੈਂ ਕੋਆਰਡੀਨੇਟ ਤਬਦੀਲੀ ਜਾਂ PID ਟਿਊਨਿੰਗ ਦੀ ਸਮੱਸਿਆ ‘ਤੇ ਅਟਕ ਜਾਂਦਾ, ਤਾਂ ਮੈਂ ਸਿਰਫ਼ ਕਿਸੇ AI ਸਹਾਇਕ ਨੂੰ ਕਾਂਪਲੈਕਸ ਸਮਝਾਉਣ ਜਾਂ ਡੀਬੱਗ ਵਿੱਚ ਮਦਦ ਲਈ ਪੁੱਛ ਨਹੀਂ ਸਕਦਾ ਸੀ।
ਇਸ ਨੇ ਵਿਕਾਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਕਾਫ਼ੀ ਚੁਣੌਤੀਪੂਰਨ ਬਣਾਇਆ ਪਰ ਇੱਕੋ ਸਮੇਂ ਇਹ ਬਹੁਤ ਸਿੱਖਣਯੋਗ ਵੀ ਸੀ। ਮੈਨੂੰ ਇਹ ਕਰਨਾ ਪਿਆ:
ਹਰ ਚੀਜ਼ ਨੂੰ ਹੱਥੋਂ ਖੋਜਣਾ: PID ਕੰਟਰੋਲ ਸਿਧਾਂਤ ਨੂੰ ਸਮਝਣ ਲਈ ਪਾਠ-ਪੁਸਤਕਾਂ ਅਤੇ ਅਕਾਦਮਿਕ ਪੇਪਰਾਂ ਨੂੰ ਪੜ੍ਹਨਾ ਪਿਆ। ਕੋਆਰਡੀਨੇਟ ਤਬਦੀਲੀਆਂ ਦੀ ਸਮਝ ਲਈ ਹਥਿਆਰਾਂ ਨਾਲ ਗਣਿਤ ਕਰਨਾ ਪਿਆ। ਹਰ ਧਾਰਣਾ ਨੂੰ ਲਾਗੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਮਝਣਾ ਲਾਜ਼ਮੀ ਸੀ।
ਬਿਨਾਂ AI ਸਹਾਇਤਾ ਦੇ ਡੀਬੱਗ ਕਰਨਾ: ਜਦੋਂ ਰੋਬੋਟ ਅਣਛੁੱਤੇ ਦਿਸ਼ਾਵਾਂ ਵਿੱਚ ਹਿਲਦੇ ਜਾਂ ਟਾਰਗੇਟਾਂ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਓਸਿਲੇਟ ਕਰਦੇ, ਤਾਂ ਮੈਨੂੰ ਲਾਜ਼ਮੀ ਤੌਰ ‘ਤੇ ਤਰਕ ਦੀ ਪੜਚੋਲ ਕਰਨੀ ਪੈਂਦੀ ਸੀ, ਡੀਬੱਗ ਆਉਟਪੁੱਟ ਜੋੜਣਾ ਪੈਂਦਾ ਸੀ, ਅਤੇ ਇਕ-ਇਕ ਕਰਕੇ ਪਰਿਕਲਪਨਾਵਾਂ ਨੂੰ ਟੈਸਟ ਕਰਨਾ ਪੈਂਦਾ ਸੀ। ਕੋਈ AI ਨਹੀਂ ਸੀ ਜੋ ਸੰਭਾਵੀ ਸਮੱਸਿਆਵਾਂ ਸੁਝਾਇਆ ਜਾਂ ਗਲਤੀ ਨਮੂਨੇ ਦੀ ਵਿਆਖਿਆ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰੇ।
ਮੂਲ ਸਿਧਾਂਤਾਂ ਤੋਂ ਸਿੱਖਣਾ: “ਰੋਬੋਟਿਕਸ ਲਈ Python ਵਿੱਚ ਮਲਟੀ-ਪ੍ਰੋਸੈਸਿੰਗ ਕਿਵੇਂ ਲਾਗੂ ਕਰਾਂ?” ਜਿਹੇ ਸਵਾਲ ਨੂੰ ਤੁਰੰਤ ਪੁੱਛਣ ਦੀ ਸੰਭਾਵਨਾ ਨਾ ਹੋਣ ਕਰਕੇ, ਮੈਂ ਮੂਲ ਧਾਰਨਾਵਾਂ ਨੂੰ ਗਹਿਰਾਈ ਨਾਲ ਸਮਝਣਾ ਪਿਆ। ਇਸ ਨੇ ਮੈਨੂੰ ਕੰਕਰਨਟ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ, ਕੰਟਰੋਲ ਸਿਸਟਮ, ਅਤੇ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਵਿੱਚ ਮਜ਼ਬੂਤ ਬੁਨਿਆਦ ਬਣਾਉਣ ਲਈ ਮਜ਼ਬੂਰ ਕੀਤਾ।
ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਅਤਿ-ਆਵਸ਼ਯਕ ਸੀ: ਚੁੱਕੇ ਕਿ ਬਾਅਦ ਵਿੱਚ ਕੋਡ ਨੂੰ ਸਪਸ਼ਟ ਕਰਨ ਲਈ AI ‘ਤੇ ਭਰੋਸਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਸੀ, ਮੈਨੂੰ ਬਹੁਤ ਹੀ ਸਾਫ਼ ਦਸਤਾਵੇਜ਼ ਅਤੇ ਟਿੱਪਣੀਆਂ ਲਿਖਣੀਆਂ ਪਈਆਂ। ਇਹ ਅਨੁਸ਼ਾਸਨ ਬਾਅਦ ਵਿੱਚ ਗਿਆਨ ਸਾਂਝੇ ਕਰਨ ਸਮੇਂ ਬੇਹੱਦ ਕੀਮਤੀ ਸਾਬਤ ਹੋਇਆ।
ਪਿਛੇ ਮੁੜ ਕੇ ਦੇਖਣ ‘ਤੇ, ਜਦ ਕਿ ਆਧੁਨਿਕ AI ਟੂਲਾਂ ਨੇ ਵਿਕਾਸ ਦੇ ਕਈ ਪਹਲੂਆਂ ਨੂੰ ਤੇਜ਼ ਕਰ ਦਿੱਤਾ ਹੁੰਦਾ, ਬਿਨਾਂ ਉਹਨਾਂ ਦੇ ਕੰਮ ਕਰਨ ਨੇ ਮੈਨੂੰ ਥੱਲੇ-ਥੱਲੇ ਸਮੱਸਿਆ-ਹੱਲ ਕਰਨ ਦੀਆਂ ਕੁਸ਼ਲਤਾਵਾਂ ਵਿਕਸਿਤ ਕਰਨ ਅਤੇ ਮੂਲ ਸਿਸਟਮਾਂ ਦੀ ਹੋਰ ਗਹਿਰਾਈ ਨਾਲ ਸਮਝ ਵਿਕਸਿਤ ਕਰਨ ਲਈ ਮਜ਼ਬੂਰ ਕੀਤਾ। ਸੋਚਣਾ ਦਿਲਚਸਪ ਹੈ ਕਿ ਆਜ ਦੇ ਵਿਕਾਸ ਟੂਲਾਂ ਨਾਲ ਇਹ ਪ੍ਰਾਜੈਕਟ ਕਿੰਨਾ ਵੱਖਰਾ ਹੁੰਦਾ।
ਛੱਡਣ ਦਾ ਮੁਸ਼ਕਲ ਫੈਸਲਾ
ਜਿੰਨਾ ਮੈਂ HCR ਲੈਬ ਵਿੱਚ ਕੰਮ ਕਰਨ ਨੂੰ ਪਿਆਰ ਕਰਦਾ ਸੀ, 2021 ਦੇ ਅਖੀਰ ਵਿੱਚ ਮੈਨੂੰ ਇੱਕ ਮੁਸ਼ਕਲ ਫੈਸਲੇ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪਿਆ ਜੋ ਕਈ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਹੁੰਦਾ ਹੈ: ਕਈ ਮੌਕੇ ਅਤੇ ਜ਼ਿੰਮੇਵਾਰੀਆਂ ਦਾ ਸੰਤੁਲਨ। ਮੈਂ ਇਕੱਠੇ ਤੌਰ ‘ਤੇ eBay ‘ਤੇ ਇੱਕ ਫੁੱਲ-ਟਾਈਮ ਸਾਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰ ਵਜੋਂ ਕੰਮ ਕਰ ਰਿਹਾ ਸੀ, ਮਾਈਨਜ਼ ਵਿੱਚ ਆਪਣੀ ਕੰਪਿਊਟਰ ਸਾਇੰਸ ਡਿਗਰੀ ਪੂਰੀ ਕਰ ਰਿਹਾ ਸੀ, ਅਤੇ HCR ਲੈਬ ਵਿੱਚ ਖੋਜ ਵਿੱਚ ਯੋਗਦਾਨ ਦੇ ਰਿਹਾ ਸੀ।
ਈਬੇ ਦਾ ਮੌਕਾ ਮਹੱਤਵਪੂਰਣ ਸੀ; ਇਹ ਮੇਰੀ ਪਹਿਲੀ ਵੱਡੀ ਸਾਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰਿੰਗ ਭੂਮਿਕਾ ਸੀ, ਜਿਸ ਨੇ ਬੇਮਿਸਾਲ ਉਦਯੋਗੀ ਅਨੁਭਵ ਦਿੱਤਾ ਅਤੇ ਇੱਕ ਠੋਸ ਆਮਦਨ ਪ੍ਰਦਾਨ ਕੀਤੀ। ਹਾਲਾਂਕਿ, ਫੁੱਲ-ਟਾਈਮ ਕੰਮ ਬਣਾਏ ਰੱਖਣਾ, ਆਪਣੀ ਡਿਗਰੀ ਪੂਰੀ ਕਰਨਾ, ਅਤੇ ਖੋਜ ਵਿੱਚ ਮਾਇਨੇਦਾਰ ਯੋਗਦਾਨ ਦੇਣਾ ਸਿਰਫ਼ ਅਨੁਕੂਲ ਨਹੀਂ ਸੀ। ਕੁਝ ਤਿਆਗਣਾ ਪੈਂਦਾ ਸੀ।
ਜਦੋਂ ਮੈਂ ਡਾ. ਜ਼ਾਂਗ ਕੋਲ ਆਪਣਾ ਕੋਰਸ ਲੋਡ ਘਟਾਉਣ ਬਾਰੇ ਪੁੱਛਿਆ ਤਾਂ ਉਹ ਇਸਦੇ ਖ਼ਿਲਾਫ਼ ਸਖ਼ਤੀ ਨਾਲ ਸਲਾਹ ਦਿੱਤੀ। ਉਸ ਦਾ ਕਾਰਨ ਬਹੁਤ ਵਾਜਿਬ ਸੀ: ਆਪਣੀ ਡਿਗਰੀ ਪੂਰੀ ਕਰਨਾ ਪਹਿਲਾਂ ਹੋਣਾ ਚਾਹੀਦਾ ਸੀ, ਅਤੇ eBay ‘ਤੇ ਉਦਯੋਗੀ ਅਨੁਭਵ ਮੇਰੇ ਕੈਰੀਅਰ ਵਿਕਾਸ ਲਈ ਕੀਮਤੀ ਹੋਵੇਗਾ। ਉਹ ਮਹਿਸੂਸ ਕਰਦੇ ਸਨ ਕਿ ਖੋਜ ‘ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਿਤ ਕਰਨ ਲਈ ਕਲਾਸਾਂ ਘਟਾਉਣਾ, ਭਾਵੇਂ ਲੁਭਾਵਣਾ ਹੋਵੇ, ਲੰਬੇ ਸਮੇਂ ਲਈ ਸਭ ਤੋਂ ਚੰਗਾ ਫੈਸਲਾ ਨਹੀਂ ਹੋ ਸਕਦਾ।
ਇਸ ਲਈ ਸਿਤੰਬਰ 2021 ਵਿੱਚ, ਲੈਬ ਵਿੱਚ ਲਗਭਗ 8 ਮਹੀਨੇ ਦੀ ਤੀਬਰ ਮਿਹਨਤ ਤੋਂ ਬਾਅਦ, ਮੈਂ ਆਪਣੀ ਖੋਜ ਸਹਾਇਕ ਭੂਮਿਕਾ ਤੋਂ ਵਾਪਿਸ ਖਿਸਕ ਜਾਣ ਦਾ ਮੁਸ਼ਕਲ ਫੈਸਲਾ ਕੀਤਾ ਤਾਂ ਜੋ ਆਪਣੀ ਡਿਗਰੀ ਪੂਰੀ ਕਰਨ ਅਤੇ eBay ‘ਤੇ ਆਪਣੇ ਕੰਮ ‘ਤੇ ਧਿਆਨ ਦੇ ਸਕਾਂ। ਉਸ ਸਮੇਂ ਇਹ ਮੇਰੇ ਵੱਲੋਂ ਕੀਤੇ ਗਏ ਸਭ ਤੋਂ ਔਖੇ ਪੇਸ਼ੇਵਰ ਫੈਸਲਿਆਂ ਵਿੱਚੋਂ ਇਕ ਸੀ।
ਸਰਕਾਰੀ ਤੌਰ ‘ਤੇ ਲੈਬ ਛੱਡਣ ਦੇ ਬਾਵਜੂਦ, ਜਦੋਂ ਕਿਸੇ ਨੂੰ ਮੇਰੇ ਬਣਾਏ ਸਿਸਟਮਾਂ ਨਾਲ ਸਹਾਇਤਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਸੀ, ਤਾਂ ਮੈਂ ਸਹਾਇਤਾ ਜਾਰੀ ਰੱਖੀ। ਮੈਂ ਜਰੂਰਤ ਮੁਤਾਬਕ ਦਸਤਾਵੇਜ਼ ਅਪਡੇਟ ਕੀਤੇ, ਡੀਬੱਗਿੰਗ ਬਾਰੇ ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਦਿੱਤੇ, ਅਤੇ ਦੂਰੇ ਤੋਂ ਮੁੱਦੇ ਹੱਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕੀਤੀ। ਜੋ ਸੰਪਰਕ ਮੈਂ ਬਣਾਏ ਸਨ ਅਤੇ ਪ੍ਰੋਜੈਕਟ ਦੀ ਸਫਲਤਾ ਵਿੱਚ ਜਿਨ੍ਹਾਂ ਨੇ ਮੇਰਾ ਨਿਵੇਸ਼ ਕੀਤਾ ਉਹ ਸਿਰਫ਼ ਇਸ ਲਈ ਨਹੀਂ ਖਤਮ ਹੋਏ ਕਿ ਮੈਂ ਹੁਣ ਸਰਕਾਰੀ ਤੌਰ ‘ਤੇ ਟੀਮ ਦਾ ਹਿੱਸਾ ਨਹੀਂ ਸੀ।
ਵਿਚਾਰ ਅਤੇ ਮੁੜ ਦੇਖਣਾ
ਹੁਣ, 2025 ਵਿੱਚ, ਚਾਰ ਸਾਲ ਬਾਅਦ, ਮੈਂ ਉਸ ਸਮੇਂ ਬਾਰੇ ਮਿਲੀ-जੁਲੀ ਭਾਵਨਾਵਾਂ ਨਾਲ ਸੋਚਦਾ ਹਾਂ। ਮੇਰਾ ਕੈਰੀਅਰ ਰਸਤਾ ਵੈੱਬ ਡਿਵੈਲਪਮੈਂਟ ਅਤੇ AI/ML ਇੰਜੀਨੀਅਰਿੰਗ ਵੱਲ ਡੂੰਘਾ ਹੋ ਗਿਆ, ਉਹ ਖੇਤਰ ਜਿਨ੍ਹਾਂ ਨੇ ਬੇਅੰਤ ਤਰੀਕੇ ਨਾਲ ਇਨਾਮ ਅਤੇ ਵਿਕਾਸ ਦੇ ਮੌਕੇ ਦਿੱਤੇ।
ਫਿਰ ਵੀ ਮੇਰੇ ਅੰਦਰ ਇੱਕ ਹਿੱਸਾ ਹੈ ਜੋ ਸੋਚਦਾ ਹੈ “ਜੇ ਹੋਇਆ ਤਾਂ?” ਰੋਬੋਟਿਕਸ ਮੇਰਾ ਸੱਚਾ ਜਜ਼ਬਾ ਸੀ ਅਤੇ ਵਾਜਿਬ ਤੌਰ ‘ਤੇ ਅਜੇ ਵੀ ਹੈ। ਭੌਤਿਕ ਪ੍ਰਣਾਲੀਆਂ ਨਾਲ ਕੰਮ ਕਰਨ, ਆਪਣਾ ਕੋਡ ਅਸਲ ਦੁਨੀਆ ਦੀ ਹਰਕਤ ਅਤੇ ਵਿਵਹਾਰ ਵਿੱਚ ਦੇਖਣ ਦਾ ਜੋ ਮਜ਼ਾ ਹੈ, ਉਹ ਵੈੱਬ ਡਿਵੈਲਪਮੈਂਟ ਅਤੇ ਇੱਥੇ ਤੱਕ ਕਿ AI ਕੰਮ ਵੀ ਪੂਰਾ ਤੌਰ ‘ਤੇ ਮੁਹੱਈਆ ਨਹੀਂ ਕਰ ਸਕਦੇ।
ਕਈ ਵਾਰੀ ਮੈਂ ਸੋਚਦਾ ਹਾਂ ਕਿ ਜੇ ਮੈਂ ਵੱਖਰਾ ਰਸਤਾ ਚੁਣਦਾ ਤਾਂ ਕੀ ਹੁੰਦਾ। ਜੇ ਮੈਂ ਰੋਬੋਟਿਕਸ ਖੋਜ ਵਿੱਚ ਰਹਿਣ ਦਾ ਕੋਈ ਰਾਹ ਲੱਭ ਲੈਂਦਾ? ਜੇ ਮੈਂ ਆਪਣੀ ਅੰਡਰਗ੍ਰੈਜੂਏਟ ਡਿਗਰੀ ਤੁਰੰਤ ਬਾਅਦ ਗ੍ਰੈਜੂਏਟ ਸਕੂਲ ਕੀਤਾ ਹੁੰਦਾ? ਜੇ ਮੈਂ ਉਦਯੋਗੀ ਅਨੁਭਵ ਦੀ ਥਾਂ ਲੈਬ ਦੇ ਕੰਮ ਨੂੰ ਪ੍ਰਾਥਮਿਕਤਾ ਦਿੰਦਾ?
ਪਰ ਮੈਂ ਇਹ ਵੀ ਮਨਦਾ ਹਾਂ ਕਿ ਹਰ ਰਸਤੇ ਦੇ ਆਪਣੇ ਤਿਆਗ ਹੁੰਦੇ ਹਨ। ਜਿਸ ਹੁਨਰ ਨੂੰ ਮੈਂ ਵੈੱਬ ਡਿਵੈਲਪਮੈਂਟ ਅਤੇ AI ਵਿੱਚ ਵਿਕਸਿਤ ਕੀਤਾ, ਉਹ ਬੇਹੱਦ ਕੀਮਤੀ ਸਾਬਤ ਹੋਏ। ਉਦਯੋਗੀ ਅਨੁਭਵ ਨੇ ਮੈਨੂੰ ਪੈਮਾਨੇ ‘ਤੇ ਸਾਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰਿੰਗ, ਯੂਜ਼ਰ ਅਨੁਭਵ ਡਿਜ਼ਾਇਨ, ਅਤੇ ਉਹ ਹਕੀਕਤੀ ਚੁਣੌਤੀਆਂ ਬਾਰੇ ਸਿੱਖਾਇਆ ਜੋ ਲੱਖਾਂ ਲੋਕ ਵਰਤਦੇ ਉਤਪਾਦ ਬਣਾਉਣ ਵਿੱਚ ਆਉਂਦੀਆਂ ਹਨ। ਇਹ ਤਜਰਬੇ ਮੈਨੂੰ ਕੁੱਲ ਮਿਲਾ ਕੇ ਇੱਕ ਬਿਹਤਰ ਇੰਜੀਨੀਅਰ ਬਣਾਉਂਦੇ ਹਨ।
ਮੈਂ HCR ਲੈਬ ਵਿੱਚ ਕੀਤਾ ਕੰਮ ਅਜੇ ਵੀ ਇਸ ਗੱਲ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦਾ ਹੈ ਕਿ ਮੈਂ ਅੱਜ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਕਿਵੇਂ ਦੇਖਦਾ ਹਾਂ। PID ਕੰਟਰੋਲ ਸਿਸਟਮਾਂ ਲਈ ਲੋੜੀਂਦੀ ਵਿਧਾਨਕ ਸੋਚ ਉਹਨਾਂ ਫੀਡਬੈਕ ਲੂਪਾਂ ਵਿੱਚ nazar ਆਉਂਦੀ ਹੈ ਜੋ ਮੈਂ ਸਾਫਟਵੇਅਰ ਸਿਸਟਮਾਂ ਵਿੱਚ ਡਿਜ਼ਾਈਨ ਕਰਦਾ ਹਾਂ। ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਅਤੇ ਗਿਆਨ ਸੰਰક્ષણ ਹੁਨਰ ਜੋ ਮੈਂ ਵਿਕਸਿਤ ਕੀਤੇ, ਹਰ ਭੂਮਿਕਾ ਵਿੱਚ ਬੇਮੁੱਲ ਰਿਹਾ ਹੈ। ਮੈਨੂੰ ਗਾਈਡ ਕਰਨ ਅਤੇ ਸਿਖਾਉਣ ਦਾ ਤਜਰਬਾ ਨੇ ਇਹ ਨਿਰਧਾਰਤ ਕੀਤਾ ਕਿ ਮੈਂ ਜੂਨੀਅਰ ਡਿਵੈਲਪਰਾਂ ਨਾਲ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹਾਂ ਅਤੇ ਟੀਮ ਗਿਆਨ ਸਾਂਝਾ ਕਰਨ ਵਿੱਚ ਕਿਵੇਂ ਯੋਗਦਾਨ ਪੈਂਦਾ ਹਾਂ।
ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਗੱਲ, ਇਸ ਤਜਰਬੇ ਨੇ ਮੈਨੂੰ ਸਿਖਾਇਆ ਕਿ ਮੈਂ ਉਨ੍ਹਾਂ ਚੁਣੌਤੀਪੂਰਨ ਤਕਨੀਕੀ ਸਮੱਸਿਆਵਾਂ ‘ਤੇ ਨਿੱਘਾ ਹੁੰਦਾ ਹਾਂ ਜਿਨ੍ਹਾਂ ਦਾ ਅਸਲ ਦੁਨੀਆ ਉੱਤੇ ਪ੍ਰਭਾਵ ਹੁੰਦਾ ਹੈ। ਚਾਹੇ ਉਹ ਰੋਬੋਟ ਮੂਵਮੈਂਟ ਅਲਗੋਰਿਦਮਾਂ ਨੂੰ ਅਪਟੀਮਾਈਜ਼ ਕਰਨਾ ਹੋਵੇ ਜਾਂ ਉਹ AI ਸਿਸਟਮ ਬਣਾਉਣ ਹੋਣ ਜੋ ਯੂਜ਼ਰਾਂ ਨੂੰ ਉਨ੍ਹਾਂ ਦੇ ਲਕੜੇ ਹਾਸਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਨ, ਸੰਤੋਸ਼ ਉਸ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਵਿੱਚ ਆਉਂਦਾ ਹੈ ਜੋ ਮਾਇਨੇ ਰੱਖਦੀ ਹੈ।
ਦਾਇਮੀ ਪ੍ਰਭਾਵ
HCR ਲੈਬ ਦੇ ਤਜ਼ਰਬੇ ਨੂੰ ਪਿੱਛੇ ਮੁੜ ਕੇ ਵੇਖਦਿਆਂ, ਮੈਨੂੰ ਹੈਰਾਨੀ ਹੁੰਦੀ ਹੈ ਕਿ ਮੈਂ ਛੋਟੇ ਸਮੇਂ ਵਿੱਚ ਕਿੰਨਾ ਕੁ ਪ੍ਰਾਪਤ ਕੀਤਾ। ਮੈਂ ਜੋ ਸਿਸਟਮ ਬਣਾਏ, ਉਨ੍ਹਾਂ ਨੇ ਸਮੂਹਿਕ ਤੌਰ ‘ਤੇ ਟ੍ਰਾਈਟਨ ਪਲੇਟਫਾਰਮ ਦੇ ਕੰਮ ਕਰਨ ਦੇ ਢੰਗ ਨੂੰ ਬੁਨਿਆਦੀ ਤੌਰ ‘ਤੇ ਬਦਲ ਦਿੱਤਾ, ਅਤੇ ਉਹਨਾਂ ਵਿੱਚੋਂ ਕਈ ਸੁਧਾਰ ਅੱਜ ਵੀ ਵਰਤੇ ਜਾ ਰਹੇ ਹਨ। ਜਿਸ ਦਸਤਾਵੇਜ਼ ਰੀਪੋਜ਼ਟਰੀ ਮੈਂ ਬਣਾਇਆ ਉਹ ਸਾਰੇ ਪ੍ਰੋਜੈਕਟ ਲਈ ਗਿਆਨ ਭੰਡਾਰ ਬਣ ਗਈ। ਜਿਸ ਮੇਂਟੋਰਸ਼ਿਪ ਸੰਬੰਧ ਮੈਂ ਬਣਾਏ, ਉਹ ਲੋਕਾਂ ‘ਤੇ ਦਰਲ سرمایਾ ਛੱਡ ਗਏ।
ਪਰ ਸ਼ਾਇਦ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਣ ਗੱਲ ਇਹ ਸੀ ਕਿ ਇਸ ਅਨੁਭਵ ਨੇ ਮੈਨੂੰ ਦਿਖਾਇਆ ਕਿ ਜਦੋਂ ਮੈਂ ਉਹ ਕੰਮ ਕਰ ਰਿਹਾ ਹਾਂ ਜਿਸ ਲਈ ਮੈਂ ਸੱਚਮੁਚ ਜਜ਼ਬੇ ਵਾਲਾ ਹਾਂ, ਤਾਂ ਮੈਂ ਕੀ ਕਰ ਸਕਦਾ ਹਾਂ। ਉਹਨਾਂ ਅੱਠ ਮਹੀਨਿਆਂ ਵਿੱਚ, ਮੈਂ:
- ਪਲੇਟਫਾਰਮ ਨੂੰ ਸੀਮਿਤ ਕਰ ਰਹੀ ਰੋਬੋਟ ਗਤੀ ਨਿਯੰਤਰਣ ਪ੍ਰਣਾਲੀ ਵਿੱਚ ਸੁਧਾਰ ਕੀਤਾ
- ਸ਼ੁਰੂ ਤੋਂ ਇੱਕ ਬਹੁ-ਰੋਬੋਟ ਸਮਨਵਯ ਪ੍ਰਣਾਲੀ ਬਣਾਈ
- ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਅਤੇ ਸੈਂਸਰ ਫਿਊਜ਼ਨ ਸਮਰਥਤਾਵਾਂ ਨੂੰ ਇਕਤ੍ਰਿਤ ਕੀਤਾ
- ਇੱਕ ਵਿਆਪਕ ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਅਤੇ ਗਿਆਨ ਪ੍ਰਬੰਧਨ ਪ੍ਰਣਾਲੀ ਬਣਾਈ
- ਕਈ ਲੋਕਾਂ ਦਾ ਮਾਰਗਦਰਸ਼ਨ ਕੀਤਾ ਅਤੇ ਗਿਆਨ ਦੇ ਅਦਾਨ-ਪ੍ਰਦਾਨ ਵਿੱਚ ਮਦਦ ਕੀਤੀ
- ਸਵਤੰਤ੍ਰ ਵਾਹਨਾਂ ਵਿੱਚ ਪੀਐਚਡੀ-ਸਤਹ ਦੇ ਅਨੁਸੰਧਾਨ ਨੂੰ ਸਮਰਥਨ ਦਿੱਤਾ
ਇਹ ਸਿਰਫ ਤਕਨੀਕੀ ਉਪਲਬਧੀਆਂ ਬਾਰੇ ਨਹੀਂ ਸੀ, ਹਾਲਾਂਕਿ ਉਹ ਮੇਰੇ ਲਈ ਮਹੱਤਵਪੂਰਨ ਸਨ। ਇਹ ਇਸ ਗੱਲ ਬਾਰੇ ਸੀ ਕਿ ਲਗਾਤਾਰ ਕੋਸ਼ਿਸ਼ ਅਤੇ ਤਰਤੀਬਵਾਰ ਸੋਚ ਨਾਲ, ਤੁਸੀਂ ਇੱਕ ਅੰਡਰਗ੍ਰੈਜੂਏਟ ਵਿਦਿਆਰਥੀ ਹੋਣ ਦੇ ਬਾਵਜੂਦ ਵੀ ਉਪਯੋਗੀ ਯੋਗਦਾਨ ਦੇ ਸਕਦੇ ਹੋ।
ਭਵਿੱਖ ਅਤੇ ਰੋਬੋਟਿਕਸ
ਜਦੋਂ ਕਿ ਮੇਰਾ ਕਰੀਅਰ ਮੈਨੂੰ ਹੋਰ ਦਿਸ਼ਾਵਾਂ ਵੱਲ ਲੈ ਗਿਆ ਹੈ, ਰੋਬੋਟਿਕਸ ਲਈ ਮੇਰਾ ਜੋਸ਼ ਘਟਿਆ ਨਹੀਂ ਹੈ। ਮੈਂ ਅਜੇ ਵੀ ਖੇਤਰ ਵਿੱਚ ਹੋ ਰਹੇ ਵਿਕਾਸ ਦੀ ਪਾਲਨਾ ਕਰਦਾ ਹਾਂ, ਮੈਂ ਰੋਬੋਟ ਲਰਨਿੰਗ ਅਤੇ ਸੁਤੰਤਰ ਪ੍ਰਣਾਲੀਆਂ ਵਿੱਚ ਹੋ ਰਹੀਆਂ ਉਨਤੀਆਂ ਲਈ ਉਤਸ਼ਾਹਤ ਹਾਂ, ਅਤੇ ਕਦੇ-ਕਦੇ ਆਪਣੇ ਖਾਲੀ ਸਮੇਂ ਵਿੱਚ ਨਿੱਜੀ ਰੋਬੋਟਿਕਸ ਪ੍ਰੋਜੈਕਟਾਂ ‘ਤੇ ਕੰਮ ਕਰਦਾ ਹਾਂ।
ਕੌਣ ਜਾਣਦਾ ਹੈ ਕਿ ਭਵਿੱਖ ਕੀ ਲੈ ਕੇ ਆਵੇਗਾ? ਮੈਂ ਏਆਈ ਅਤੇ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਵਿੱਚ ਵਿਕਸਤ ਕਰ ਰਹੀਆਂ ਹੁਨਰਾਂ ਰੋਬੋਟਿਕਸ ਲਈ ਵੱਧ ਰਹੀਆਂ ਮੁਤਾਬਿਕ ਹਨ। ਉਦਯੋਗਕ ਅਨੁਭਵ ਜੋ ਮੈਂ ਪ੍ਰਾਪਤ ਕੀਤਾ ਹੈ, ਉਸ ਨੇ ਮੈਨੂੰ ਮਜ਼ਬੂਤ, ਸਕੇਲਯੋਗ ਪ੍ਰਣਾਲੀਆਂ ਬਣਾਉਣਾ ਸਿਖਾਇਆ ਹੈ। ਸ਼ਾਇਦ ਕੋਈ ਐਸਾ ਭਵਿੱਖ ਹੋ ਜਿੱਥੇ ਮੇਰੇ ਅਨੁਭਵ ਦੀਆਂ ਇਹ ਵੱਖ-ਵੱਖ ਧਾਰਾਂ ਅਣਉਮੀਦ ਢੰਗ ਨਾਲ ਇਕੱਠੇ ਹੋ ਜਾਣ।
ਫਿਲਹੁਲ, ਮੈਂ ਐਚਸੀਆਰ ਲੈਬ ਵਿੱਚ ਬਿਤਾਇਆ ਸਮਾਂ ਅਤੇ ਇਸ ਨੇ ਜੋ ਤਜਰਬੇ ਦਿੱਤੇ, ਲਈ ਆਭਾਰੀ ਹਾਂ। ਇਹ ਇੱਕ ਆਕਾਰ ਜੋ ਗਠਿਤ ਕਰਨ ਵਾਲਾ ਸਮਾਂ ਸੀ ਜਿਸ ਨੇ ਮੇਰੀਆਂ ਤਕਨੀਕੀ ਕੁਸ਼ਲਤਾਵਾਂ ਅਤੇ ਇਹ ਸਮਝ ਦੋਹਾਂ ਨੂੰ ਆਕਾਰ ਦਿੱਤਾ ਕਿ ਮੈਂ ਕਿਸ ਤਰ੍ਹਾਂ ਦੇ ਕੰਮ ਨੂੰ ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਸੰਤੋਸ਼ਜਨਕ ਮੰਨਦਾ ਹਾਂ। ਹਾਲਾਂਕਿ ਮੈਂ ਕਈ ਵਾਰੀ ਇਸਨੂੰ ਯਾਦ ਕਰਦਾ ਹਾਂ, ਮੈਨੂੰ ਪਤਾ ਹੈ ਕਿ ਜਿਹੜੇ ਪਾਠ ਮੈਂ ਸਿੱਖੇ ਅਤੇ ਜਿਹੜੀਆਂ ਰਣਨੀਤੀਆਂ ਮੈਂ ਵਿਕਸਤ ਕੀਤੀਆਂ, ਉਹ ਹਾਲੇ ਵੀ ਮੇਰੇ ਸਾਰੇ ਕੰਮਾਂ ‘ਤੇ ਪ੍ਰਭਾਵ ਪਾ ਰਹੀਆਂ ਹਨ।
ਟਰਾਈਟਨ ਰੋਬੋਟ ਹਜੇ ਵੀ ਉਥੇ ਹਨ, ਹਜੇ ਵੀ ਖੋਜਕਰਤਿਆਂ ਦੀ ਸੇਵਾ ਕਰ ਰਹੇ ਹਨ, ਹਜੇ ਵੀ ਮਹੱਤਵਪੂਰਨ ਕੰਮ ਨੂੰ ਸੰਭਵ ਬਣਾ ਰਹੇ ਹਨ। ਅਤੇ ਇਹ ਕਾਫ਼ੀ ਸ਼ਾਨਦਾਰ ਹੈ।

















