ਮੇਰਾ ਰੋਬੋਟਿਕਸ ਖੋਜ ਅਧਿਆਇ

Table of Contents

ਇਹ ਪੋਸਟ ਮੇਰੀ ਰੋਬੋਟਿਕਸ ਯਾਤਰਾ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ, ਜਿਸ ਦੀ ਸ਼ੁਰੂਆਤ FRC ਵਿੱਚ ਰੋਬੋਟਿਕਸ ਲਈ ਆਪਣਾ ਜਜ਼ਬਾ ਖੋਜਣ ਨਾਲ ਹੁੰਦੀ ਹੈ ਹਾਈ ਸਕੂਲ ਦੌਰਾਨ 2015 ਵਿੱਚ, ਤੋਂ ਲੈ ਕੇ ਫਰਵਰੀ 2021 ਤੋਂ ਸਤੰਬਰ 2021 ਤੱਕ ਕੋਲੋਰਾਡੋ ਸਕੂਲ ਆਫ ਮਾਈਨਜ਼ ਦੇ Human Centered Robotics (HCR) ਲੈਬ ਵਿੱਚ ਰਿਸਰਚ ਅਸਿਸਟੈਂਟ ਵਜੋਂ ਮੇਰੇ ਸਮੇਂ ਤੱਕ। ਧਿਆਨ ਰਹੇ ਕਿ ਦੇਰ 2022 ਤੋਂ, HCR ਲੈਬ ਕੋਲੋਰਾਡੋ ਸਕੂਲ ਆਫ ਮਾਈਨਜ਼ ਤੋਂ University of Massachusetts Amherst ਵਿੱਚ ਸਥਾਨਾਂਤਰਿਤ ਹੋ ਗਈ ਹੈ, ਨਾਲ ਹੀ ਆਪਣੀ ਸਾਈਟ hcr.mines.edu ਤੋਂ hcr.cs.umass.edu ਤੱਕ।

ਪਿਛੋਕੜ

ਮੈਂ ਆਪਣੀ ਅੰਡਰਗ੍ਰੈਜੂਏਟ ਪੜ੍ਹਾਈ ਕੋਲੋਰਾਡੋ ਸਕੂਲ ਆਫ ਮਾਈਨਜ਼ ਵਿੱਚ ਫਾਲ 2018 ਸੈਮੇਸਟਰ ਵਿੱਚ ਸ਼ੁਰੂ ਕੀਤੀ। ਮੇਰਾ ਮੁੱਖ ਵਿਸ਼ਾ Computer Science ਸੀ, ਜਿਸਦਾ ਧਿਆਨ Robotics & Intelligent Systems ਉੱਤੇ ਸੀ। ਅਤੇ ਮੈਂ ਸਪ੍ਰਿੰਗ 2022 ਵਿੱਚ ਗ੍ਰੈਜੂਏਟ ਕੀਤਾ।

ਮੈਂ ਖੁਸ਼ਕਿਸਮਤ ਸੀ ਕਿ ਆਪਣੀ ਜ਼ਿੰਦਗੀ ਵਿੱਚ ਕਾਫ਼ੀ ਸ਼ੁਰੂ ਵਿੱਚ ਹੀ ਆਪਣਾ ਜਜ਼ਬਾ ਲੱਭ ਲਿਆ। ਹਾਈ ਸਕੂਲ ਦੌਰਾਨ, ਮੈਂ ਇਹ ਸਮਝਣ ਲਈ ਕਾਫ਼ੀ ਸਮਾਂ ਲਗਾਇਆ ਕਿ ਮੈਨੂੰ ਕੀ ਪਸੰਦ ਹੈ ਅਤੇ ਮੈਂ ਕਿਸ ਵਿੱਚ ਚੰਗਾ ਹੋ ਸਕਦਾ ਹਾਂ। ਕੁਝ ਕੋਸ਼ਿਸ਼ਾਂ ਅਤੇ ਗਲਤੀਆਂ ਤੋਂ ਬਾਅਦ, ਮੈਂ ਇਹ ਪਤਾ ਲਗਾ ਸਕਿਆ ਕਿ ਮੇਰਾ ਜਜ਼ਬਾ computer science ਸੀ। ਪਰ ਇਹ ਵੀ ਇਸੇ ਸਮੇਂ ਦੌਰਾਨ ਸੀ ਕਿ ਮੈਨੂੰ ਪਤਾ ਲੱਗਿਆ ਕਿ ਕੋਡ ਰਾਹੀਂ ਕੁਝ ਬਣਾਉਣ ਲਈ ਮੇਰੇ ਅੰਦਰ ਇਹ ਬੇਹੱਦ ਪਿਆਰ ਸੀ।

ਮਾਈਨਜ਼ ਵਿੱਚ, ਮੈਨੂੰ Dr Hao Zhang ਦੇ ਅਧੀਨ ਮਾਈਨਜ਼ ਦੇ Human Centered Robotics (HCR) ਲੈਬ ਵਿੱਚ ਕੰਮ ਕਰਨ ਦਾ ਮੌਕਾ ਮਿਲਿਆ। ਮੈਂ ਪਹਿਲੀ ਵਾਰ Dr. Zhang ਨੂੰ ਸਪ੍ਰਿੰਗ 2020 ਵਿੱਚ ਉਨ੍ਹਾਂ ਦੀ ਕਲਾਸ “Human Centered Robotics” (CSCI473) ਰਾਹੀਂ ਮਿਲਿਆ, ਅਤੇ COVID ਅਤੇ ਕਲਾਸਵਰਕ ਦੀਆਂ ਉਥਲ-ਪੁਥਲਾਂ ਤੋਂ ਬਾਅਦ, ਮੈਨੂੰ ਸਪ੍ਰਿੰਗ 2021 ਦੀ ਸ਼ੁਰੂਆਤ ਵਿੱਚ ਉਨ੍ਹਾਂ ਦੀ ਲੈਬ ਵਿੱਚ ਕੰਮ ਕਰਨ ਦਾ ਮੌਕਾ ਮਿਲਿਆ।

Human Centered Robotics (CSCI473) ਕਲਾਸ

ਮਾਈਨਜ਼ ਦੀ Human Centered Robotics (CSCI473) ਮੇਰੇ ਕਾਲਜ ਅਨੁਭਵ ਦੀਆਂ ਉਹਨਾਂ ਥੋੜ੍ਹੀਆਂ ਕਲਾਸਾਂ ਵਿੱਚੋਂ ਇੱਕ ਸੀ ਜਿਨ੍ਹਾਂ ਦਾ ਮੇਰੇ ਉੱਤੇ ਡੂੰਘਾ ਪ੍ਰਭਾਵ ਪਿਆ। ਇਹ ਕਲਾਸ Dr. Hao Zhang ਵੱਲੋਂ ਪੜ੍ਹਾਈ ਗਈ ਸੀ। ਇਸ ਕਲਾਸ ਲਈ ਸਾਡਾ ਪੂਰਾ ਗਰੇਡ ਸਿਰਫ ਤਿੰਨ ਪ੍ਰੋਜੈਕਟਾਂ ਤੋਂ ਬਣਿਆ ਸੀ, ਜਿਨ੍ਹਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਨੇ ਇੱਕ ਚੁਣੌਤੀਪੂਰਨ ਸਮੱਸਿਆ ਪੇਸ਼ ਕੀਤੀ ਜਿਸ ਨੇ ਰੋਬੋਟਿਕਸ ਦੇ ਮੂਲ ਸੰਕਲਪਾਂ ਨੂੰ ਜਾਣੂ ਕਰਵਾਇਆ। ਇਹ ਪ੍ਰੋਜੈਕਟ ਇਹ ਸਨ:

  1. Robot Operating System (ROS) ਸਿੱਖਣਾ
  2. ਰੋਬੋਟ ਵਾਲ ਫਾਲੋਇੰਗ ਲਈ Reinforcement Learning
  3. Skeleton-Based Representations ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮਨੁੱਖੀ ਵਿਵਹਾਰਾਂ ਦੀ ਰੋਬੋਟਿਕ ਸਮਝ

Robot Operating System (ROS) ਸਿੱਖਣਾ

ਇਹ ਸਾਨੂੰ ਦਿੱਤਾ ਗਿਆ ਪਹਿਲਾ ਪ੍ਰੋਜੈਕਟ ਸੀ। ਪ੍ਰੋਜੈਕਟ ਤਿੰਨ ਕੰਮਾਂ ਤੋਂ ਬਣਿਆ ਸੀ:

  1. ਵਿਕਾਸ ਮਾਹੌਲ ਸੈੱਟ ਕਰਨਾ
  2. Gazebo ਸਿਮੂਲੇਟਰ ਨੂੰ ਸਮਝਣਾ
  3. ਇੱਕ ROS “Hello World” ਲਿਖਣਾ

ਕੰਮ 1 ਅਤੇ 2 ਲਈ, ਸਾਨੂੰ ਸਿਰਫ ਆਪਣਾ ਵਿਕਾਸ ਮਾਹੌਲ ਸੈੱਟ ਕਰਨਾ ਅਤੇ Gazebo ਟਿਊਟੋਰੀਅਲ ਦੀ ਜਾਣ-ਪਛਾਣ ਦੀ ਪਾਲਣਾ ਕਰਨੀ ਸੀ। ਇਸ ਵਿੱਚ ਸ਼ਾਮਲ ਸੀ:

  • ROS Melodic ਸੈੱਟ ਕਰਨਾ, ਜੋ ਮੈਂ ਆਪਣੇ 2011 HP ਲੈਪਟਾਪ ਉੱਤੇ ਕੀਤਾ ਸੀ ਜੋ ਕਾਫ਼ੀ ਸੀ
  • ROS ਅਤੇ Gazebo ਨੂੰ ਇੰਸਟਾਲ ਅਤੇ ਸੰਰਚਿਤ ਕਰਨਾ
  • gazebosim’s tutorial ਅਤੇ e-manual’s tutorial ਤੋਂ ਲੰਘਣਾ।

ਦੂਜੇ ਪਾਸੇ, ਕੰਮ 3 ਇੱਕ ਸੱਚੀ ਚੁਣੌਤੀ ਸੀ। ਕੰਮ ਇਹ ਸੀ ਕਿ turtlesim ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਅਤੇ ਕਛੂਏ ਤੋਂ ਮਾਈਨਜ਼ ਦਾ “M” ਲੋਗੋ ਬਣਵਾਉਣਾ:

ਇਹ ਕੰਮ, ਭਾਵੇਂ ਸਧਾਰਣ ਲੱਗਦਾ ਸੀ, ਪਰ ਜਿੰਨਾ ਦਿਖਦਾ ਸੀ ਉਸ ਤੋਂ ਵੱਧ ਮੁਸ਼ਕਲ ਸੀ। ਇਸ ਪ੍ਰੋਜੈਕਟ ਨੇ ਅਖ਼ਿਰਕਾਰ ਮੈਨੂੰ Open-Loop ਅਤੇ Closed-Loop ਸਿਸਟਮਾਂ ਦੇ ਸੰਕਲਪ ਨਾਲ ਜਾਣੂ ਕਰਵਾਇਆ। ਪੂਰੀ ਪ੍ਰੋਜੈਕਟ ਵਰਣਨਾ ਲਈ, csci473-p1.pdf ਵੇਖੋ ਜਾਂ ਤੁਸੀਂ ROS Move Turtle ਪ੍ਰੋਜੈਕਟ ਪੇਜ ਉੱਤੇ ਇਸ ਪ੍ਰੋਜੈਕਟ ਅਤੇ ਮੇਰੇ ਹੱਲ ਬਾਰੇ ਹੋਰ ਜਾਣ ਸਕਦੇ ਹੋ।

ਰੋਬੋਟ ਵਾਲ ਫਾਲੋਇੰਗ ਲਈ Reinforcement Learning

ਇਹ ਸਾਨੂੰ ਦਿੱਤਾ ਗਿਆ ਦੂਜਾ ਪ੍ਰੋਜੈਕਟ ਸੀ, ਅਤੇ ਇਹ ਕਾਲਜ ਵਿੱਚ ਮੇਰੇ ਵੱਲੋਂ ਕੀਤੇ ਸਭ ਤੋਂ ਔਖੇ ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚੋਂ ਇੱਕ ਸੀ। ਪ੍ਰੋਜੈਕਟ ਦਾ ਵਰਣਨ ਇਸ ਤਰ੍ਹਾਂ ਸੀ:

ਇਸ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ, ਵਿਦਿਆਰਥੀ ਇੱਕ ਖੁਦਮੁਖਤਿਆਰ ਮੋਬਾਈਲ ਰੋਬੋਟ ਨੂੰ ਇੱਕ ਕੰਧ ਦੇ ਨਾਲ-ਨਾਲ ਚੱਲਣ ਅਤੇ ਰੁਕਾਵਟਾਂ ਨਾਲ ਟਕਰਾਉਣ ਤੋਂ ਬਚਣ ਸਿਖਾਉਣ ਲਈ reinforcement learning ਐਲਗੋਰਿਦਮਾਂ ਨੂੰ ਡਿਜ਼ਾਈਨ ਅਤੇ ਲਾਗੂ ਕਰਨਗੇ। ਵਿਦਿਆਰਥੀ ROS Melodic ਵਿੱਚ Gazebo ਸਿਮੂਲੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ Triton ਨਾਮਕ ਇੱਕ omni-directional ਮੋਬਾਈਲ ਰੋਬੋਟ ਦੀ ਨਕਲ ਕਰਨਗੇ, ਅਤੇ ਤੁਹਾਨੂੰ ਪ੍ਰਦਾਨ ਕੀਤਾ ਗਿਆ environment map ਵਰਤਣਗੇ। ਵਿਦਿਆਰਥੀ sensing ਅਤੇ learning ਕਰਨ ਲਈ ਰੋਬੋਟ ਉੱਤੇ ਇੱਕ laser range scanner ਦੀ ਵਰਤੋਂ ਕਰਨਗੇ, ਜਿੱਥੇ ਰੋਬੋਟ ਨੂੰ steering ਅਤੇ velocity commands ਰਾਹੀਂ ਕੰਟਰੋਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਵਿਦਿਆਰਥੀਆਂ ਲਈ ਲਾਜ਼ਮੀ ਹੈ ਕਿ ਉਹ ਇਸ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ROS Melodic ਵਿੱਚ Ubuntu 18.04 LTS ਉੱਤੇ ਚੱਲ ਰਹੇ C++ ਜਾਂ Python ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪ੍ਰੋਗਰਾਮ ਕਰਨ (ਅਰਥਾਤ, ਉਹੀ ਵਿਕਾਸ ਮਾਹੌਲ ਜੋ Project 1 ਵਿੱਚ ਵਰਤਿਆ ਗਿਆ ਸੀ)। ਇਸ ਦੇ ਨਾਲ, ਵਿਦਿਆਰਥੀਆਂ ਲਈ LATEX ਦੀ ਵਰਤੋਂ ਕਰਕੇ standard IEEE robotics conferences ਦੇ ਫਾਰਮੈਟ ਦੀ ਪਾਲਣਾ ਕਰਦਿਆਂ ਰਿਪੋਰਟ ਲਿਖਣਾ ਵੀ ਲਾਜ਼ਮੀ ਹੈ।

reinforcement learning ਐਲਗੋਰਿਦਮ ਲਈ, ਸਾਨੂੰ Q-Learning ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਕਿਹਾ ਗਿਆ ਸੀ। ਅਸੀਂ ਕਲਾਸ ਵੱਲੋਂ ਪ੍ਰਦਾਨ ਕੀਤਾ ਗਿਆ Stingray Gazebo ਸਿਮੂਲੇਸ਼ਨ ਮਾਹੌਲ ਵੀ ਵਰਤਿਆ। Stingray ਵਿੱਚ Triton ਮਾਡਲ ਅਤੇ physics logic ਸ਼ਾਮਲ ਸਨ। ਸਾਨੂੰ ਰੋਬੋਟ ਲਈ ਪਾਲਣ ਕਰਨ ਵਾਸਤੇ ਇੱਕ maze ਵੀ ਦਿੱਤਾ ਗਿਆ ਸੀ। ਕੁੱਲ ਮਿਲਾ ਕੇ, ਮਾਹੌਲ ਕੁਝ ਇਸ ਤਰ੍ਹਾਂ ਲੱਗਦਾ ਸੀ:

ਮੈਂ ਆਪਣਾ ਹੱਲ GitHub ਜਾਂ ਵੈੱਬ ਉੱਤੇ ਕਦੇ ਪ੍ਰਕਾਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਕਿਉਂਕਿ ਇਹ ਬਹੁਤ ਵਧੀਆ ਨਹੀਂ ਸੀ ਅਤੇ ਬਹੁਤ ਹੀ ਖਾਮੀਆਂ ਵਾਲਾ ਸੀ। ਨਾਲ ਹੀ, ਕੋਡ ਨੂੰ ਸਹੀ ਮਾਹੌਲ ਵਿੱਚ ਚਲਾਉਣਾ ਕਾਫ਼ੀ ਔਖਾ ਅਤੇ ਪਰੇਸ਼ਾਨੀ ਵਾਲਾ ਹੈ। ਹਾਲਾਂਕਿ, ਮੇਰੇ ਕੋਲ ਇੱਕ ਡੈਮੋ ਵੀਡੀਓ ਹੈ ਜੋ ਮੈਂ ਕਲਾਸ ਨੂੰ ਸੌਂਪੀ ਸੀ, ਜਿਸ ਵਿੱਚ ਮੇਰਾ ਹੱਲ ਦਿਖਾਇਆ ਗਿਆ ਹੈ। ਤੁਸੀਂ ਇਸਨੂੰ ਇੱਥੇ ਵੇਖ ਸਕਦੇ ਹੋ:

ਪੂਰੀ ਪ੍ਰੋਜੈਕਟ ਵਰਣਨਾ ਲਈ, csci473-p2.pdf ਵੇਖੋ

Skeleton-Based Representations ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮਨੁੱਖੀ ਵਿਵਹਾਰਾਂ ਦੀ ਰੋਬੋਟਿਕ ਸਮਝ

ਤੀਜੇ ਪ੍ਰੋਜੈਕਟ ਲਈ, ਪ੍ਰੋਜੈਕਟ ਦਾ ਵਰਣਨ ਇਸ ਤਰ੍ਹਾਂ ਸੀ:

ਇਸ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ, ਵਿਦਿਆਰਥੀ ਕਈ skeleton based representations (Deliverable 1) ਲਾਗੂ ਕਰਨਗੇ ਅਤੇ ਇੱਕ public activity dataset ਜੋ Kinect V1 ਸੈਂਸਰ ਤੋਂ ਇਕੱਠਾ ਕੀਤਾ ਗਿਆ ਹੈ, ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮਨੁੱਖੀ ਵਿਵਹਾਰਾਂ ਨੂੰ ਵਰਗੀਕ੍ਰਿਤ ਕਰਨ ਲਈ Support Vector Machines (SVMs) (Deliverable 2) ਦੀ ਵਰਤੋਂ ਕਰਨਗੇ। ਇਸਦੇ ਨਾਲ, ਵਿਦਿਆਰਥੀਆਂ ਲਈ Deliverable 3 ਵਿੱਚ LATEX ਦੀ ਵਰਤੋਂ ਕਰਕੇ standard IEEE robotics conferences ਦੇ ਫਾਰਮੈਟ ਦੀ ਪਾਲਣਾ ਕਰਦਿਆਂ ਰਿਪੋਰਟ ਲਿਖਣਾ ਲਾਜ਼ਮੀ ਹੈ।

ਇਹ ਪ੍ਰੋਜੈਕਟ ਚੁਣੌਤੀਪੂਰਨ ਸੀ ਪਰ ਦੂਜੇ ਪ੍ਰੋਜੈਕਟ ਜਿੰਨਾ ਮੁਸ਼ਕਲ ਨਹੀਂ ਸੀ। ਮੁੱਖ ਮਕਸਦ Kinect V1 ਸੈਂਸਰ ਡਾਟਾ, MSR Daily Activity 3D Dataset ਤੋਂ, ਅਤੇ Support Vector Machines ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੁਝ ਮਨੁੱਖੀ ਕਿਰਿਆਵਾਂ/ਵਿਵਹਾਰਾਂ ਨੂੰ ਵਰਗੀਕ੍ਰਿਤ ਕਰਨਾ ਸੀ। ਪੂਰੀ ਪ੍ਰੋਜੈਕਟ ਵਰਣਨਾ ਲਈ, csci473-p3.pdf ਵੇਖੋ ਜਾਂ ਤੁਸੀਂ Predict Human Actions Using LIBSVM ਬਲੌਗ ਪੋਸਟ ਉੱਤੇ ਇਸ ਪ੍ਰੋਜੈਕਟ ਅਤੇ ਮੇਰੇ ਹੱਲ ਬਾਰੇ ਹੋਰ ਜਾਣ ਸਕਦੇ ਹੋ।

CSCI473 ਨਤੀਜਾ

CSCI473 ਮੇਰੇ ਅੰਡਰਗ੍ਰੈਜੂਏਟ ਅਧਿਐਨ ਦੌਰਾਨ ਲਈਆਂ ਸਭ ਤੋਂ ਵਧੀਆ ਕਲਾਸਾਂ ਵਿੱਚੋਂ ਇੱਕ ਸੀ, ਜੇ ਸਭ ਤੋਂ ਵਧੀਆ ਨਹੀਂ। ਇਨ੍ਹਾਂ ਸਾਰੇ ਪ੍ਰੋਜੈਕਟਾਂ ਨੇ ਮੈਨੂੰ ਬਹੁਤ ਕੁਝ ਸਿਖਾਇਆ ਅਤੇ ਮੈਨੂੰ ਪ੍ਰੋਜੈਕਟਾਂ ਦਾ ਇੱਕ ਵਧੀਆ ਸੰਗ੍ਰਹਿ ਦਿੱਤਾ ਜਿਸ ਬਾਰੇ ਮੈਂ ਸੋਚ ਸਕਾਂ ਅਤੇ ਆਪਣੇ ਰਜ਼ਿਊਮੇ ਉੱਤੇ ਹਵਾਲਾ ਦੇ ਸਕਾਂ। ਇਹ ਪਹਿਲੀ ਕਲਾਸ ਵੀ ਸੀ ਜਿੱਥੇ ਮੈਨੂੰ ਲੱਗਿਆ ਕਿ ਮੈਂ ਆਪਣੇ ਤੱਤ ਵਿੱਚ ਹਾਂ, ਕਿਉਂਕਿ ਮੈਂ ਕਦੇ ਵੀ ਟੈਸਟ ਦੇਣ ਵਿੱਚ ਚੰਗਾ ਨਹੀਂ ਸੀ ਪਰ ਪ੍ਰੋਜੈਕਟ ਪੂਰੇ ਕਰਨ ਵਿੱਚ ਕਾਮਯਾਬ ਸੀ। ਇਹ ਇਸ ਕਲਾਸ ਰਾਹੀਂ ਵੀ ਸੀ ਕਿ ਮੈਂ Dr. Hao Zhang ਨੂੰ ਮਿਲਿਆ, ਜਿਨ੍ਹਾਂ ਨੇ ਆਖ਼ਿਰਕਾਰ ਮੈਨੂੰ ਮਾਈਨਜ਼ ਦੇ Human-Centered Robotics (HCR) ਲੈਬ ਵਿੱਚ ਰਿਸਰਚ ਅਸਿਸਟੈਂਟ ਦੀ ਪਦਵੀ ਹਾਸਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕੀਤੀ।

CS ਫੀਲਡ ਸੈਸ਼ਨ (ਗਰਮੀ 2020)

CG_GUI_19

ਗਰਮੀ 2020 ਦੌਰਾਨ, CSCI473 ਪੂਰਾ ਕਰਨ ਅਤੇ HCR ਲੈਬ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਣ ਦੇ ਵਿਚਕਾਰ, ਮੈਂ ਕੋਲੋਰਾਡੋ ਸਕੂਲ ਆਫ ਮਾਈਨਜ਼ ਵਿੱਚ ਆਪਣੇ CS ਅੰਡਰਗ੍ਰੈਜੂਏਟ ਪ੍ਰੋਗਰਾਮ ਦਾ ਹਿੱਸਾ ਵਜੋਂ CSCI370 ਜਾਂ “Advanced Software Engineering” ਲਈ। CSCI370 ਇੱਕ ਕੋਰਸ ਹੈ ਜੋ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਇੱਕ ਕੰਪਨੀ ਲਈ software-related solutions ਡਿਜ਼ਾਈਨ, ਲਾਗੂ, ਅਤੇ ਦਸਤਾਵੇਜ਼ ਕਰਨ ਲਈ ਕਹਿੰਦਾ ਹੈ। ਇਹ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਆਪਣੇ ਕੋਰਸਵਰਕ ਦੇ ਗਿਆਨ ਨੂੰ ਅਸਲ ਦੁਨੀਆ ਦੀਆਂ computer science ਸਮੱਸਿਆਵਾਂ ‘ਤੇ ਲਾਗੂ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਤੁਸੀਂ ਕੋਰਸ ਬਾਰੇ ਹੋਰ ਇੱਥੇ ਜਾਣ ਸਕਦੇ ਹੋ।

ਕੋਰਸ ਵਿੱਚ, ਤੁਹਾਨੂੰ ਇਹ ਚੁਣਨ ਦਾ ਮੌਕਾ ਮਿਲਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕਿਹੜੇ ਪ੍ਰੋਜੈਕਟ/ਕੰਪਨੀ ਉੱਤੇ ਕੰਮ ਕਰੋਗੇ। ਕੋਰਸ ਨੇ ਹਰ ਪ੍ਰੋਜੈਕਟ ਅਤੇ ਕੰਪਨੀ ਦੇ ਵੇਰਵੇ ਵਾਲੀਆਂ PDFs ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ। ਆਖ਼ਰਕਾਰ ਮੈਂ Lunar Outpost ਨਾਮਕ ਇੱਕ ਕੰਪਨੀ ਵੱਲੋਂ ਪੋਸਟ ਕੀਤੇ ਇੱਕ ਪ੍ਰੋਜੈਕਟ ਉੱਤੇ ਕੰਮ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕੀਤਾ, ਜਿਸਦਾ ਨਾਮ “Real Time Wheel Slip Detection and Error Corrections for Enhanced Lunar Navigation” ਸੀ। ਕਿਉਂਕਿ ਨਾਮ ਲੰਮਾ ਹੈ, ਆਓ ਇਸ ਪ੍ਰੋਜੈਕਟ ਦਾ ਇੱਕ ਉਪਨਾਮ “Wheel Slippage Detection” ਰੱਖੀਏ।

ਸਮੱਸਿਆ

Lunar Outpost ਇੱਕ ਸਟਾਰਟਅੱਪ ਹੈ ਜੋ ਖੁਦਮੁਖਤਿਆਰ ਚੰਦਰ ਰੋਵਰ ਬਣਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੀ ਹੈ। ਚੰਦ ਉੱਤੇ, ਬਹੁਤ ਸਾਰੀ ਚੰਦਰ ਧੂੜ ਹੁੰਦੀ ਹੈ ਜੋ ਬਹੁਤ ਵੱਧ wheel slippage ਦਾ ਕਾਰਨ ਬਣਦੀ ਹੈ। ਇਹ ਆਦਰਸ਼ ਨਹੀਂ ਹੈ ਕਿਉਂਕਿ wheel slippage ਕਾਰਨ ਖੁਦਮੁਖਤਿਆਰ ਸਿਸਟਮ ਆਪਣੀ ਅਸਲੀ ਦੁਨੀਆ ਦੀ ਸਥਿਤੀ ਦਾ ਪਤਾ ਗੁਆ ਸਕਦੇ ਹਨ। ਧਰਤੀ ਉੱਤੇ, ਇਹ GPS ਡਾਟਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ wheel slippage ਕਾਰਨ ਹੋਏ ਕਿਸੇ ਵੀ offset ਨੂੰ ਠੀਕ ਕਰਕੇ ਹੱਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਪਰ GPS ਨਾਲ ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ ਇਹ ਕੇਵਲ 30+ navigation satellites ਦੇ ਧਰਤੀ ਦੇ ਆਲੇ ਦੁਆਲੇ ਲਗਾਤਾਰ ਕੱਖ ਵਿੱਚ ਘੁੰਮਣ ਅਤੇ ਵਿਲੱਖਣ signals ਭੇਜਣ ਨਾਲ ਹੀ ਕੰਮ ਕਰਦਾ ਹੈ, ਜੋ ਕੰਪਿਊਟਰਾਂ ਨੂੰ ਆਪਣੀ ਸਥਿਤੀ ਗਣਨਾ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦੇ ਹਨ। ਪਰ ਚੰਦ ਉੱਤੇ, ਇਸ ਵੇਲੇ GPS ਵਰਗੀ ਕੋਈ ਚੀਜ਼ ਨਹੀਂ ਹੈ। ਇਹ ਜਾਣਦਿਆਂ, wheel slippage ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ GPS ਤੋਂ ਇਲਾਵਾ ਕੋਈ ਹੋਰ ਤਰੀਕਾ ਵਰਤਣਾ ਪਵੇਗਾ। ਪ੍ਰੋਜੈਕਟ ਦੀ ਸਮੱਸਿਆ ਦੀ ਹੋਰ ਵਿਸਤ੍ਰਿਤ ਰਿਪੋਰਟ ਇੱਥੇ ਵੇਖੀ ਜਾ ਸਕਦੀ ਹੈ।

ਟੀਮ

ਇਹ ਪ੍ਰੋਜੈਕਟ ਸਧਾਰਣ ਪ੍ਰੋਜੈਕਟ ਨਹੀਂ ਸੀ, ਇਸ ਲਈ ਇਹ ਇੱਕ ਟੀਮ ਵਿੱਚ ਕੀਤਾ ਜਾਣਾ ਸੀ। ਟੀਮ ਵਿੱਚ ਕੋਲੋਰਾਡੋ ਸਕੂਲ ਆਫ ਮਾਈਨਜ਼ ਦੇ ਪੰਜ ਹੋਰ ਵਿਦਿਆਰਥੀ ਸ਼ਾਮਲ ਸਨ:

ਇਹ ਪ੍ਰੋਜੈਕਟ ਸਧਾਰਣ ਪ੍ਰੋਜੈਕਟ ਨਹੀਂ ਸੀ, ਇਸ ਲਈ ਇਹ ਇੱਕ ਟੀਮ ਵਿੱਚ ਕੀਤਾ ਜਾਣਾ ਸੀ। ਇਸ ਟੀਮ ਵਿੱਚ Mehmet Yilmaz (ਮੈਂ), Kane Bruce, Braedon O’Callaghan, Liam Williams, ਅਤੇ Kevin Grant ਸ਼ਾਮਲ ਸਨ।

ਪ੍ਰੋਜੈਕਟ ਲਈ ਸਾਨੂੰ ਕੁਝ ROS, C++, Python, Linux, Raspberry Pi, ਅਤੇ Arduino ਜਾਣਨਾ ਲਾਜ਼ਮੀ ਸੀ। ਸਾਡੇ ਵਿੱਚੋਂ ਜ਼ਿਆਦਾਤਰ ਕੋਲ ਇਹਨਾਂ ਤਕਨਾਲੋਜੀਆਂ ਵਿੱਚੋਂ ਇੱਕ ਜਾਂ ਵੱਧ ਦਾ ਅਨੁਭਵ ਸੀ, ਪਰ ROS ਵਿੱਚ ਅਨੁਭਵ ਵਾਲਾ ਸਿਰਫ ਮੈਂ ਹੀ ਸੀ ਕਿਉਂਕਿ ਮੈਂ ਸਪ੍ਰਿੰਗ 2020 ਸੈਮੇਸਟਰ ਦੌਰਾਨ ਆਪਣੀ Human Centered Robotics (CSCI473) ਕਲਾਸ ਵਿੱਚ ROS ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਸੀ। ਇਸ ਕਾਰਨ, ਸ਼ੁਰੂ ਵਿੱਚ, ਮੈਂ ਸਭ ਨੂੰ ROS ਬਾਰੇ ਅਤੇ ਇਸ ਲਈ ਕਿਵੇਂ ਵਿਕਾਸ ਕਰਨਾ ਹੈ, ਇਸ ਬਾਰੇ ਤੇਜ਼ੀ ਨਾਲ ਅਪਡੇਟ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕੀਤੀ।

ਚੁਣੌਤੀਆਂ

ਇਸ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਕਈ ਚੁਣੌਤੀਆਂ ਸਨ। ਪਰ ਸਭ ਤੋਂ ਵੱਡੀ ਚੁਣੌਤੀ ਜਿਸਦਾ ਸਾਨੂੰ ਸਾਹਮਣਾ ਕਰਨਾ ਪਿਆ, ਉਹ ਸੀ ਟੈਸਟਿੰਗ ਲਈ ਹਕੀਕਤੀ ਦੁਨੀਆ ਦੇ ਰੋਬੋਟ ਤੱਕ ਪਹੁੰਚ ਨਾ ਹੋਣਾ। ਇਹ COVID ਕਾਰਨ ਸੀ, ਜਿਸ ਨੇ ਸਭ ਕੁਝ ਦੂਰੋਂ ਕਰ ਦਿੱਤਾ ਅਤੇ ਸਾਨੂੰ Lunar Outpost ਦੀ ਲੈਬ/ਇਮਾਰਤਾਂ ਵਿੱਚ ਕੰਮ ਕਰਨ ਤੋਂ ਰੋਕ ਦਿੱਤਾ। ਇਸ ਕਰਕੇ, ਸਾਨੂੰ ਸਿਮੂਲੇਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਪਈ।

ਇਸ ਤੋਂ ਇਲਾਵਾ, ਅਸੀਂ WVU Navigation Lab ਤੋਂ ਕੁਝ ਅਕਾਦਮਿਕ ਖੋਜ ਵੀ ਕੀਤੀ ਤਾਂ ਜੋ ਇਹ ਸਮਝ ਆ ਸਕੇ ਕਿ Wheel Slippage ਸਮੱਸਿਆ ਨੂੰ Lunar Outpost ਦੇ ਵਰਤੋਂ ਮਾਮਲੇ ਲਈ ਕਿਵੇਂ ਹੱਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜੋ ਸਾਡੇ ਲਈ, ਅੰਡਰਗ੍ਰੈਜੁਏਟ ਸੋਫੋਮੋਰਜ਼ ਅਤੇ ਜੂਨੀਅਰਜ਼ ਵਜੋਂ, ਸਾਡੀ ਉਮੀਦ ਨਾਲੋਂ ਕਾਫ਼ੀ ਵੱਧ ਮੁਸ਼ਕਲ ਸੀ।

ਇੱਕ ਹੋਰ ਚੁਣੌਤੀ ਜਿਸਦਾ ਸਾਨੂੰ ਸਾਹਮਣਾ ਕਰਨਾ ਪਿਆ, ਉਹ ਸੀ ਇਸ ਪ੍ਰੋਜੈਕਟ ‘ਤੇ ਕੰਮ ਕਰਨ ਲਈ ਸਾਡੇ ਕੋਲ ਉਪਲਬਧ ਸਮਾਂ। CSCI370 ਇੱਕ ਮਹੀਨੇ ਦੀ ਕਲਾਸ ਹੈ। ਪਰ ਸਮੱਸਿਆ ਆਪਣੇ ਆਪ ਵਿੱਚ ਇੱਕ ਬਹੁਤ ਵੱਡੀ ਸਮੱਸਿਆ ਹੈ, ਜਿਸਨੂੰ ਕਈ ਕੰਪਨੀਆਂ ਅਤੇ ਅਕਾਦਮਿਕ ਲੋਕ ਦਹਾਕਿਆਂ ਤੋਂ ਹੱਲ/ਸੁਧਾਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਹਨ। ਇਸ ਲਈ ਇੱਕ ਮਹੀਨਾ ਇਸ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਬਿਲਕੁਲ ਕਾਫ਼ੀ ਨਹੀਂ ਹੈ। ਪਰ, ਇਨ੍ਹਾਂ ਸਭ ਚੁਣੌਤੀਆਂ ਦੇ ਬਾਵਜੂਦ ਅਸੀਂ ਡਟੇ ਰਹੇ ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਕਿ ਅਸੀਂ ਡਿਲਿਵਰ ਕਰੀਏ।

ਨਿਸ਼ਕਰਸ਼

ਸਾਰੀ ਖੋਜ ਅਤੇ ਵਿਕਾਸ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਨਿਰਧਾਰਿਤ ਕੀਤਾ ਕਿ ਡਿਜ਼ਿਟਲ ਤੌਰ ‘ਤੇ ਠੀਕ ਚੰਦਰਮਾ ਭੌਤਿਕੀ ਦੀ ਸਿਮੂਲੇਸ਼ਨ ਕਰਨੀ ਲਗਭਗ ਅਸੰਭਵ ਹੈ, ਇਸ ਲਈ ਇਸ ਐਲਗੋਰਿਦਮ ਨੂੰ ਸਿਮੂਲੇਸ਼ਨ ਵਿੱਚ ਸੱਚਮੁੱਚ ਆਜ਼ਮਾਉਣਾ ਕੋਈ ਵਧੀਆ ਕੰਮ ਨਹੀਂ ਹੈ ਅਤੇ ਅੰਤਰਿਕਸ਼ ਅਤੇ ਚੰਦ ‘ਤੇ wheel slippage detection ਵਿੱਚ ਕੋਈ ਅਰਥਪੂਰਨ ਖੋਜ ਨਹੀਂ ਦੇਵੇਗਾ। ਅਸੀਂ ਇਹ ਨਤੀਜਾ ਕੱਢਿਆ ਕਿ ਰੇਤ ਵਰਗੀ ਕਿਸੇ ਚੀਜ਼ ਅਤੇ ਹਕੀਕਤੀ ਹਾਰਡਵੇਅਰ, ਜਿਵੇਂ ਕਿ Husky ਰੋਬੋਟ, ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਠੀਕ ਟੈਸਟ ਵਾਤਾਵਰਣ ਬਣਾਉਣਾ ਇਸ ਕਿਸਮ ਦੀ ਖੋਜ ਲਈ ਕਾਫ਼ੀ ਜ਼ਿਆਦਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਅਸੀਂ wheel slippage detection ਕੋਡ ਨੂੰ ROS ਨੋਡ ਵਜੋਂ ਕੰਮ ਕਰਨ ਲਈ ਅਪਡੇਟ ਕੀਤਾ ਅਤੇ ਇਹ ਠੀਕ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦਾ ਸੀ ਅਤੇ ਟੈਸਟਿੰਗ ਲਈ ਆਸਾਨੀ ਨਾਲ ਹਕੀਕਤੀ ਹਾਰਡਵੇਅਰ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਸੀ। ਇਸ ਪ੍ਰੋਜੈਕਟ ਨੇ ਮੈਨੂੰ ਨੇਤ੍ਰਤਵ ਭੂਮਿਕਾ ਨਿਭਾਉਣ, ਆਪਣੇ ਸਾਥੀਆਂ ਨੂੰ ROS ਵਿਕਾਸ ਬਾਰੇ ਸਿਖਾਉਣ, ਅਤੇ Python, ROS, ਅਤੇ Gazebo ਨਾਲ ਤਜਰਬਾ ਹਾਸਲ ਕਰਨ ਦਾ ਮੌਕਾ ਦਿੱਤਾ, ਜਦੋਂ ਕਿ ਮੈਂ ਇੱਕ ਜਟਿਲ ਸਮੱਸਿਆ ਨਾਲ ਨਜਿੱਠ ਰਿਹਾ ਸੀ ਜਿਸਦਾ ਮੈਨੂੰ ਪਹਿਲਾਂ ਕਦੇ ਸਾਹਮਣਾ ਨਹੀਂ ਹੋਇਆ ਸੀ। ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ, ਇਸ ਅਨੁਭਵ ਨੇ ਰੋਬੋਟਿਕਸ ਪ੍ਰਤੀ ਮੇਰੇ ਜਜ਼ਬੇ ਨੂੰ ਹੋਰ ਮਜ਼ਬੂਤ ਕੀਤਾ ਅਤੇ ਇਸ ਖੇਤਰ ਵਿੱਚ ਖੋਜ ਕਰਨ ਦੀ ਮੇਰੀ ਇੱਛਾ ਨੂੰ ਦੁਬਾਰਾ ਪੱਕਾ ਕੀਤਾ, ਜਿਸਨੇ ਮੇਰੀ ਰੋਬੋਟਿਕਸ ਯਾਤਰਾ ਵਿੱਚ ਅੱਗੇ ਆਉਣ ਵਾਲੀਆਂ ਚੀਜ਼ਾਂ ਲਈ ਮੰਚ ਤਿਆਰ ਕੀਤਾ।

HCR ਲੈਬ ਵਿੱਚ ਸ਼ੁਰੂਆਤ

CSCI473, 2020 ਦੀ ਗਰਮੀ ਵਿੱਚ ਮੇਰੀ CS ਫੀਲਡ ਸੈਸ਼ਨ, ਅਤੇ ਮੇਰਾ Fall 2020 ਸਮੈਸਟਰ ਪੂਰਾ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਮੈਂ ਰੋਬੋਟਿਕਸ ਵਿੱਚ ਖੋਜ ਕਰਨ ਦਾ ਫ਼ੈਸਲਾ ਕੀਤਾ। ਮੈਨੂੰ CSCI473 ਅਤੇ CS ਫੀਲਡ ਸੈਸ਼ਨ ਦੋਵਾਂ ਨਾਲ ਇੰਨੇ ਵਧੀਆ ਅਨੁਭਵ ਮਿਲੇ ਕਿ ਮੈਂ ਨਿਰਣਾ ਕੀਤਾ ਕਿ ਮੈਂ HCR ਲੈਬ ਲਈ ਖੋਜ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹਾਂ। ਕਿਉਂਕਿ ਮੈਂ ਪਿਛਲੇ ਸਾਲ Dr. Zhang ਨੂੰ ਮਿਲ ਚੁੱਕਾ ਸੀ, ਮੈਂ ਉਸਨੂੰ ਈਮੇਲ ਕਰਨ ਅਤੇ ਜਨਵਰੀ 2021 ਵਿੱਚ ਲੈਬ ਕੋਲ ਹੋ ਸਕਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਮੌਕੇ ਬਾਰੇ ਪੁੱਛਣ ਦਾ ਫ਼ੈਸਲਾ ਕੀਤਾ। ਲਗਭਗ 2 ਹਫ਼ਤਿਆਂ ਦੇ ਅੰਦਰ, Dr. Zhang ਨੇ ਰੁਚੀ ਦਿਖਾਈ, ਮੈਨੂੰ ਖੋਜ ਦੇ ਵਿਕਲਪ ਪੇਸ਼ ਕੀਤੇ, ਅਤੇ ਮੈਨੂੰ ਲੈਬ ਵਿੱਚ ਇੱਕ ਭੂਮਿਕਾ ਦੀ ਪੇਸ਼ਕਸ਼ ਕੀਤੀ। ਫਿਰ ਮੈਂ ਫ਼ਰਵਰੀ 2021 ਵਿੱਚ ਲੈਬ ਲਈ ਕੰਮ ਕਰਨਾ ਸ਼ੁਰੂ ਕੀਤਾ।

ਪਰਿਚਯ ਵੀਡੀਓ

ਇਹ ਮੇਰੀ ਪਰਿਚਯ ਵੀਡੀਓ ਹੈ ਜੋ ਮੈਂ HCR ਲੈਬ ਵਿੱਚ ਆਪਣੇ ਸਮੇਂ ਦੇ ਕੁਝ ਮਹੀਨੇ ਬਾਅਦ ਰਿਕਾਰਡ ਕੀਤੀ ਸੀ। ਇਹ ਮਈ 2021 ਵਿੱਚ ਰਿਕਾਰਡ ਕੀਤੀ ਗਈ ਸੀ ਅਤੇ ਉਸ ਖੋਜ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ ਜਿਸ ‘ਤੇ ਮੈਂ 2021 ਦੀ ਗਰਮੀ ਦੌਰਾਨ HCR ਲੈਬ ਵਿੱਚ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਾਂਗਾ:

ਮੇਰਾ ਪ੍ਰੋਜੈਕਟ

HCR ਲੈਬ ਵਿੱਚ ਆਪਣੇ ਸਮੇਂ ਦੌਰਾਨ, ਮੈਂ ਮੁੱਖ ਤੌਰ ‘ਤੇ Triton ਪ੍ਰੋਜੈਕਟ ‘ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕੀਤਾ। Triton ਪ੍ਰੋਜੈਕਟ ਇੱਕ ਮੋਬਾਈਲ ਰੋਬੋਟ ਹੈ ਜੋ Human Centered Robotics Lab ਵੱਲੋਂ Colorado School of Mines ਵਿੱਚ ਵਿਕਸਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ NVIDIA ਦੇ Jetson Nano ਨਾਲ ਚੱਲਣ ਵਾਲਾ ਇੱਕ ਤਿਕੋਣਾ omni-wheel ਗ੍ਰਾਊਂਡ ਰੋਬੋਟ ਹੈ।

ਸਧਾਰਣ ਝਲਕ ਵਿੱਚ, Triton ਹੇਠ ਲਿਖੇ ਹਿੱਸਿਆਂ ਤੋਂ ਬਣਿਆ ਸੀ:

  • NVIDIA Jetson Nano
  • NVIDIA ਦਾ Seed Studio A205 Carrier Board
  • Arduino Mega
  • 64 GB Micro SD Card
  • ਕਸਟਮ 3D ਪ੍ਰਿੰਟ ਕੀਤਾ ਹੋਇਆ ਬਾਡੀ
  • 3 mecanum wheels
  • 1 AR Battery
  • ਉੱਤਮ ਪਾਵਰ ਵੰਡ ਅਤੇ ਵਾਇਰਿੰਗ ਲਈ ਕਸਟਮ ਸਰਕਟ
  • Intel ਦਾ Realsense D435 Camera
  • ਕੁਝ LEDs

ਇਸਨੂੰ ਲਗਭਗ 2018-2020 ਵਿੱਚ ਸ਼ਿਕਸ਼ਣਕ ਮਕਸਦਾਂ ਲਈ ਇੱਕ ਰੋਬੋਟ ਵਜੋਂ ਡਿਜ਼ਾਇਨ, ਬਣਾਇਆ ਅਤੇ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਸੀ। ਜਦੋਂ ਮੈਂ ਸ਼ਾਮਲ ਹੋਇਆ, Triton ਕਾਫ਼ੀ ਸਥਾਪਿਤ ਹੋ ਚੁੱਕਾ ਸੀ, ਅਤੇ ਲੈਬ ਇਸਦਾ ਇੱਕ ਨਵਾਂ ਸੰਸਕਰਣ ਬਣਾਉਣ ਬਾਰੇ ਸੋਚ ਰਹੀ ਸੀ। ਹਾਲਾਂਕਿ, Triton ਨਾਲ ਮੁੱਖ ਸਮੱਸਿਆ ਇਸ ਦਾ ਸੌਫਟਵੇਅਰ ਸੀ। Triton ਹਿੱਲ ਸਕਦਾ ਸੀ, ਚਾਰਜ ਹੋ ਸਕਦਾ ਸੀ, ਅਤੇ ਬੁਨਿਆਦੀ ਤੌਰ ‘ਤੇ ਕੰਮ ਕਰ ਸਕਦਾ ਸੀ, ਪਰ ਇਹ ਵਾਸਤਵ ਵਿੱਚ ਕੋਈ ਬੁੱਧੀਮਤਾਪੂਰਣ ਕੰਮ ਨਹੀਂ ਕਰਦਾ ਸੀ। ਇਸ ਵਿੱਚ ਹੋਰ ਉੱਨਤ ਹਿਲਜੁਲ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਵੀ ਨਹੀਂ ਸੀ।

Battery charger setup Test area layout
Tritons on early test stage Tritons on shelves

ਇਸ ਨੂੰ ਸੰਬੋਧਨ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰਨ ਲਈ, ਲੈਬ ਨੇ ਇੱਕ ਐਸਾ ਖੇਤਰ ਸੈੱਟ ਕੀਤਾ ਜਿੱਥੇ ਅਸੀਂ Triton ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕੀਏ। ਇਹ ਕਰਨ ਲਈ, ਉਨ੍ਹਾਂ ਨੇ 2-ਮੀਟਰ ਬਾਈ 2-ਮੀਟਰ ਦਾ ਇੱਕ ਖੇਤਰ ਬਣਾਇਆ ਜਿਸ ਵਿੱਚ 8 Optitrack Flex (Infrared Red) Cameras ਫਰਸ਼ ਤੋਂ ਲਗਭਗ 6-7 ਫੁੱਟ ਉੱਪਰ ਇਕ ਵਰਗ-ਜਿਹੇ ਆਕਾਰ ਵਿੱਚ ਲਗਾਈਆਂ ਗਈਆਂ।

Area I1 Area I2

ਇਸ ਖੇਤਰ ਦੇ ਬਣਨ ਦੇ ਨਾਲ, ਹਰ Triton ਦੇ ਸਰੀਰ ਦੇ ਉੱਪਰਲੇ ਹਿੱਸੇ ‘ਤੇ ਤਿੰਨ ਸਲੇਟੀ ਗੋਲੇ ਵਾਲੇ ਬਾਲ ਜੁੜੇ ਹੋਏ ਸਨ।

ਇਸ ਸੈਟਅੱਪ ਨਾਲ, ਅਸੀਂ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤੌਰ ‘ਤੇ ਆਪਣੀ ਛੋਟੀ-ਪੱਧਰ ਦੀ GPS ਪ੍ਰਣਾਲੀ ਬਣਾ ਲਈ ਸੀ ਜੋ ਸਾਨੂੰ ਸਾਡੇ ਦਿਲਚਸਪੀ ਵਾਲੇ ਖੇਤਰ ਵਿੱਚ Triton ਦੇ ਮੀਟਰਾਂ ਵਿੱਚ ਸਹੀ ਕੋਆਰਡੀਨੇਟਸ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਸੀ। Optitrack ਇਨਫ੍ਰਾਰੈੱਡ ਕੈਮਰਿਆਂ ਅਤੇ ਤਿਕੋਣੀ ਆਕਾਰ ਵਿੱਚ Optitrack ਦੇ ਸਲੇਟੀ ਗੋਲਿਆਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਅਸੀਂ ਆਪਣੇ ਖੇਤਰ ਵਿੱਚ Triton ਦੇ ਸਹੀ ਕੋਆਰਡੀਨੇਟਸ ਦਾ ਪਤਾ ਲਗਾ ਸਕਦੇ ਸੀ। ਇਸ ਨਾਲ ਸਾਨੂੰ ਹਿਲਜੁਲ ਵਿੱਚ ਵਧੀਆ ਸਹੀਤਾ ਲਈ ਇੱਕ closed-loop ਸਿਸਟਮ ਲਾਗੂ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲੀ।

Optitrack ਸਿਸਟਮ ਨੇ ਸਹੀ ਤਰ੍ਹਾਂ ਕੈਲੀਬਰੇਟ ਹੋਣ ‘ਤੇ ਲਗਭਗ 120Hz ਤੇ sub-millimeter ਸਹੀਤਾ ਨਾਲ ਸਥਿਤੀ ਅਤੇ ਦਿਸ਼ਾ ਸੰਬੰਧੀ ਡੇਟਾ ਪ੍ਰਦਾਨ ਕੀਤਾ। ਹਰ Triton ਦੇ ਤਿੰਨ ਪ੍ਰਤਿਬਿੰਬਿਤ ਨਿਸ਼ਾਨਿਆਂ ਨੇ ਇੱਕ ਵਿਲੱਖਣ ਤਿਕੋਣਾ ਪੈਟਰਨ ਬਣਾਇਆ ਜਿਸਨੂੰ ਸਿਸਟਮ ਇੱਕ rigid body ਵਜੋਂ ਟ੍ਰੈਕ ਕਰ ਸਕਦਾ ਸੀ। ਕੋਆਰਡੀਨੇਟ ਸਿਸਟਮ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਕੈਲੀਬਰੇਟ ਕੀਤਾ ਗਿਆ ਸੀ ਕਿ (0,0) ਟ੍ਰੈਕਿੰਗ ਖੇਤਰ ਦੇ ਕੇਂਦਰ ਵਿੱਚ ਸੀ, ਅਤੇ X ਅਤੇ Y ਧੁਰੇ ਕਮਰੇ ਦੀ ਜਯਾਮਿਤੀ ਨਾਲ ਸੰਗਤ ਸਨ। ਪਰ ਇਸ ਸੁਚੱਜੇ ਸਥਿਤੀ ਡੇਟਾ ਦੇ ਬਾਵਜੂਦ, Triton ਨੂੰ ਹਿਲਜੁਲ ਨਾਲ ਫਿਰ ਵੀ ਮੁਸ਼ਕਲ ਆਉਂਦੀ ਸੀ।

ਇਸ ਸੈਟਅੱਪ ਨਾਲ, ਇੱਕ ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾ ਜੋ ਅਸੀਂ Triton ਨੂੰ ਦੇਣਾ ਚਾਹੁੰਦੇ ਸੀ, ਉਹ ਸੀ ਕਿਸੇ ਖਾਸ ਕੋਆਰਡੀਨੇਟ ਵੱਲ ਜਾਣ ਦੀ ਸਮਰੱਥਾ। ਉਪਭੋਗਤਾ, ਜਾਂ ਉਨ੍ਹਾਂ ਦਾ ਸੌਫਟਵੇਅਰ, ਆਪਣੇ ਦਿਲਚਸਪੀ ਵਾਲੇ ਖੇਤਰ ਅੰਦਰ ਇੱਕ (x, y) ਕੋਆਰਡੀਨੇਟ ਦੇ ਸਕਦਾ ਸੀ। ਫਿਰ ਰੋਬੋਟ ਉਸ ਕੋਆਰਡੀਨੇਟ ਵੱਲ ਜਿੰਨੀ ਤੇਜ਼ੀ ਨਾਲ, ਜਿੰਨੀ ਸਹੀ ਤੌਰ ‘ਤੇ, ਅਤੇ ਜਿੰਨੀ ਸੁਚਾਰੂ ਤਰ੍ਹਾਂ ਹੋ ਸਕੇ ਹਿਲਦਾ। ਜਦੋਂ ਮੈਂ ਸ਼ਾਮਲ ਹੋਇਆ, ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਮੌਜੂਦ ਸੀ ਪਰ ਇਹ ਬਹੁਤ ਵਧੀਆ ਤਰੀਕੇ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੀ ਸੀ। ਇੱਥੇ ਇੱਕ ਸਧਾਰਣ ਐਨੀਮੇਸ਼ਨ ਹੈ ਜੋ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਮੂਲ moving logic ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਸੀ:

ਮੈਂ ਮੂਲ ਹੱਲ ਨੂੰ ਕਾਰਵਾਈ ਵਿੱਚ ਰਿਕਾਰਡ ਨਹੀਂ ਕੀਤਾ ਸੀ, ਇਸ ਲਈ ਮੈਂ ਇਹ ਸਧਾਰਣ ਐਨੀਮੇਸ਼ਨ ਬਣਾਈ ਜੋ ਤੁਹਾਨੂੰ ਪੁਰਾਣੀ moving logic ਨੂੰ ਕਾਰਵਾਈ ਵਿੱਚ ਦਿਖਾਉਂਦੀ ਹੈ। ਇਹ ਜਾਣਦੇ ਹੋਏ, ਇਸ ਢੰਗ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਕੀ ਹਨ?

  1. ਇਹ ਬਹੁਤ ਹੌਲੀ ਹੈ
  2. ਇਹ ਰੋਬੋਟ ਨੂੰ ਕਿਸੇ ਖਾਸ ਬਿੰਦੂ ਤੱਕ ਜਾਣ ਲਈ ਬਹੁਤ ਜ਼ਿਆਦਾ ਜਗ੍ਹਾ ਘੇਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦੀ ਹੈ। ਇਸ ਕਾਰਨ ਜਦੋਂ ਕਈ Triton ਇਧਰ-ਉਧਰ ਹਿੱਲ ਰਹੇ ਸਨ, ਤਦ ਇਸ ਹੱਲ ਨੂੰ ਵਰਤਣਾ ਸਾਡੇ ਲਈ ਮੁਸ਼ਕਲ ਸੀ।

ਤਾਂ ਫਿਰ ਇਹ ਵਰਤਾਓ ਕਿਉਂ ਹੋ ਰਿਹਾ ਸੀ? ਸਮੱਸਿਆ ਇਹ ਸੀ ਕਿ Triton ਪਹਿਲਾਂ ਮੁੜਦਾ ਸੀ, ਆਪਣਾ alpha ਬਦਲਦੇ ਹੋਏ, ਜਦ ਤੱਕ ਉਹ ਇੱਕ ਨਿਰਧਾਰਿਤ margin of error ਦੇ ਅੰਦਰ ਟਾਰਗੇਟ ਬਿੰਦੂ ਵੱਲ ਨਹੀਂ ਮੁੜ ਜਾਂਦਾ ਸੀ। ਫਿਰ ਉਹ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਵਧਦਾ ਸੀ, ਅਤੇ ਜਦੋਂ ਇਸਦਾ theta ਟਾਰਗੇਟ ਤੋਂ ਇੱਕ ਨਿਰਧਾਰਿਤ ਮਾਤਰਾ ਤੱਕ ਹਟ ਜਾਂਦਾ ਸੀ, ਤਾਂ ਉਹ ਰੁਕ ਜਾਂਦਾ ਸੀ ਅਤੇ ਮੁੜਨਾ ਸ਼ੁਰੂ ਕਰਦਾ ਸੀ ਜਦ ਤੱਕ alpha ਟਾਰਗੇਟ goal ਲਈ ਉਸ ਸਵੀਕਾਰਯੋਗ ਸੀਮਾ ਵਿੱਚ ਨਹੀਂ ਆ ਜਾਂਦਾ ਸੀ। ਫਿਰ ਇਹ ਦੁਬਾਰਾ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਵਧਦਾ ਸੀ ਅਤੇ ਇਹ ਕਰਦਾ ਰਹਿੰਦਾ ਸੀ ਜਦ ਤੱਕ ਇਹ ਬਿੰਦੂ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚ ਜਾਂਦਾ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਜਿਵੇਂ-ਜਿਵੇਂ ਇਹ goal point ਦੇ ਨੇੜੇ-ਨੇੜੇ ਪਹੁੰਚਦਾ ਸੀ, ਮੁੜਨ ਅਤੇ sprint ਕਰਨ ਦੀ ਗਤੀ ਹੋਰ ਹੌਲੀ ਹੋ ਜਾਂਦੀ ਸੀ ਤਾਂ ਜੋ ਇਹ overshoot ਨਾ ਕਰੇ। ਇਸ ਕਾਰਨ Triton ਦੀ ਹਿਲਜੁਲ ਅਸਵਭਾਵਿਕ ਬਣ ਗਈ, ਟਾਰਗੇਟ ਬਿੰਦੂ ਤੱਕ ਪਹੁੰਚਣ ਵਿੱਚ ਬਹੁਤ ਸਮਾਂ ਲੱਗਦਾ ਸੀ, ਅਤੇ ਕਿਸੇ ਖਾਸ ਟਾਰਗੇਟ ਬਿੰਦੂ ਤੱਕ ਜਾਣ ਲਈ ਬਹੁਤ ਜ਼ਿਆਦਾ ਖੇਤਰ ਦੀ ਲੋੜ ਪੈਂਦੀ ਸੀ। ਇਸ ਲਈ, ਇਨ੍ਹਾਂ ਸਭ ਸਮੱਸਿਆਵਾਂ ਦੇ ਨਾਲ, ਅਤੇ Triton ਪ੍ਰੋਜੈਕਟ ਦੇ ਵਿਕਾਸ ਲਈ ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਮਹੱਤਤਾ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਦੇ ਹੋਏ, ਜਦੋਂ ਮੈਂ HCR ਲੈਬ ਵਿੱਚ ਕੰਮ ਸ਼ੁਰੂ ਕੀਤਾ, ਮੇਰਾ ਪਹਿਲਾ ਕੰਮ ਹੋਰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੱਲ ਵਿਕਸਿਤ ਕਰਨਾ ਸੀ ਜੋ Triton ਨੂੰ goal point ਤੱਕ ਵਧੀਆ ਤਰੀਕੇ ਨਾਲ ਨੇਵੀਗੇਟ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਣ।

ਇਹ ਜਾਣਦੇ ਹੋਏ, ਮੈਂ ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਸੰਬੋਧਨ ਕਰਨ ਦੇ ਸਭ ਤੋਂ ਵਧੀਆ ਸੰਭਾਵਤ ਢੰਗ ਬਾਰੇ ਕਾਫ਼ੀ ਸਮਾਂ ਖੋਜ ਕਰਨ ਵਿੱਚ ਲਗਾਇਆ। ਹੈਰਾਨੀ ਦੀ ਗੱਲ ਹੈ ਕਿ ਮੈਂ Mines ਵਿੱਚ Introduction to Feedback Control Systems (EENG307) ਨਾਮਕ ਕਲਾਸ ਲੈ ਰਿਹਾ ਸੀ। ਉਸ ਕਲਾਸ ਦੀ ਸ਼ੁਰੂਆਤ ਵਿੱਚ, ਅਸੀਂ Open-loop controllers ਅਤੇ Closed-loop controllers ਦੇ ਸੰਕਲਪ ਬਾਰੇ ਸਿੱਖਿਆ। ਇਹ ਜਾਣਦੇ ਹੋਏ, ਅਤੇ ਉਸ ਕਲਾਸ ਦੇ ਪ੍ਰੋਫੈਸਰ ਅਤੇ ਮੇਰੇ ਸਮਝਦਾਰ ਰੂਮਮੇਟ ਨਾਲ ਕੁਝ ਚਰਚਾ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਇਹ ਸਪਸ਼ਟ ਹੋ ਗਿਆ ਕਿ Triton ਨੂੰ goal point ਤੱਕ ਲਿਜਾਣ ਦਾ ਇਹ ਮਕਸਦ ਇੱਕ closed-loop ਸਿਸਟਮ ਸਮੱਸਿਆ ਸੀ।

Whiteboard control system diagram

ਹੁਣ, ਵਿਸਤ੍ਰਿਤ ਟੈਸਟਿੰਗ ਅਤੇ ਖੋਜ ਤੋਂ ਬਾਅਦ, ਮੈਂ Tritons ਲਈ ਦੋ ਵੱਖਰੇ controller approaches ਵਿਕਸਿਤ ਕੀਤੇ:

ਢੰਗ 1: Distance-Theta Controller

ਇਸ ਪਹੁੰਚ ਨੇ ਇੱਕੋ ਸਮੇਂ ਚੱਲ ਰਹੇ ਦੋ ਵੱਖਰੇ proportional controllers ਦੀ ਵਰਤੋਂ ਕੀਤੀ:

  • Distance Controller: ਟਾਰਗੇਟ ਤੱਕ Euclidean distance ਦੀ ਗਣਨਾ ਕੀਤੀ ਅਤੇ ਅੱਗੇ/ਪਿੱਛੇ ਦੀ ਗਤੀ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ proportional gain ਲਾਗੂ ਕੀਤਾ
  • Theta Controller: ਰੋਬੋਟ ਦੀ ਮੌਜੂਦਾ heading ਅਤੇ ਟਾਰਗੇਟ ਵੱਲ desired heading ਦੇ ਵਿਚਕਾਰ angular error ਦੀ ਗਣਨਾ ਕੀਤੀ, rotational velocity ਲਈ ਵੱਖਰਾ proportional gain ਲਾਗੂ ਕੀਤਾ

ਐਲਗੋਰਿਦਮ ਲਗਾਤਾਰ ਟਾਰਗੇਟ ਤੱਕ Euclidean distance ਅਤੇ ਰੋਬੋਟ ਦੀ ਮੌਜੂਦਾ heading ਅਤੇ ਇੱਛਿਤ ਦਿਸ਼ਾ ਵਿਚਕਾਰ angular error ਦੀ ਗਣਨਾ ਕਰਦਾ ਸੀ। ਕ੍ਰਮਵਾਰ linear ਅਤੇ angular velocities ਪੈਦਾ ਕਰਨ ਲਈ ਦੋ ਵੱਖਰੇ proportional gains ਲਾਗੂ ਕੀਤੇ ਗਏ।

ਇਸ ਨਾਲ Triton ਸੁਭਾਵਿਕ ਤੌਰ ‘ਤੇ goal ਵੱਲ ਮੁੜਦਾ ਹੋਇਆ ਨਾਲ-ਨਾਲ ਅੱਗੇ ਵਧਦਾ ਸੀ, ਜਿਸ ਨਾਲ ਹੌਲੇ-ਹੌਲੇ ਮੁੜਦੀਆਂ ਸੁਚੱਜੀਆਂ paths ਬਣਦੀਆਂ ਸਨ। ਇਸਦਾ ਮੁੱਖ ਫ਼ਾਇਦਾ ਇਹ ਸੀ ਕਿ ਰੋਬੋਟ ਆਪਣਾ ਸਾਹਮਣੇ ਵਾਲਾ ਹਿੱਸਾ ਹਮੇਸ਼ਾਂ destination ਵੱਲ ਰੱਖਦਾ ਸੀ, ਜੋ camera-based applications ਲਈ ਬਹੁਤ ਮਹੱਤਵਪੂਰਨ ਸੀ।

ਵਿਧੀ 2: X-Y ਕੋਆਰਡੀਨੇਟ ਕੰਟਰੋਲਰ

ਇਸ ਪਹੁੰਚ ਨੇ ਰੋਬੋਟ ਨੂੰ ਇੱਕ 2D ਪਲਾਟਰ ਵਾਂਗ ਮੰਨਿਆ, ਜਿਸ ਵਿੱਚ X ਅਤੇ Y ਗਤੀ ਦੀ ਸੁਤੰਤਰ ਕੰਟਰੋਲ ਸੀ:

  • X ਕੰਟਰੋਲਰ: X-ਕੋਆਰਡੀਨੇਟ ਦੀ ਗਲਤੀ ਦੇ ਆਧਾਰ ‘ਤੇ ਪੂਰਬ-ਪੱਛਮ ਗਤੀ ਨੂੰ ਸਿੱਧੇ ਤੌਰ ‘ਤੇ ਕੰਟਰੋਲ ਕੀਤਾ
  • Y ਕੰਟਰੋਲਰ: Y-ਕੋਆਰਡੀਨੇਟ ਦੀ ਗਲਤੀ ਦੇ ਆਧਾਰ ‘ਤੇ ਉੱਤਰ-ਦੱਖਣ ਗਤੀ ਨੂੰ ਸਿੱਧੇ ਤੌਰ ‘ਤੇ ਕੰਟਰੋਲ ਕੀਤਾ

ਇੰਪਲੀਮੈਂਟੇਸ਼ਨ ਨੇ X ਅਤੇ Y ਕੋਆਰਡੀਨੇਟ ਗਲਤੀਆਂ ਨੂੰ ਸੁਤੰਤਰ ਤੌਰ ‘ਤੇ ਗਿਣਿਆ, ਵੱਖ-ਵੱਖ ਪ੍ਰੋਪੋਰਸ਼ਨਲ ਗੇਨ ਲਾਗੂ ਕੀਤੇ, ਅਤੇ ਫਿਰ ਇਹ ਗਲੋਬਲ ਵੇਲੋਸਿਟੀ ਕੰਪੋਨੈਂਟਸ ਨੂੰ ਰੋਟੇਸ਼ਨ ਮੈਟ੍ਰਿਕਸਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੋਬੋਟ ਦੇ ਲੋਕਲ ਕੋਆਰਡੀਨੇਟ ਫਰੇਮ ਵਿੱਚ ਤਬਦੀਲ ਕੀਤਾ। ਇਹ ਤਬਦੀਲੀ ਜ਼ਰੂਰੀ ਸੀ ਕਿਉਂਕਿ ਰੋਬੋਟ ਦੇ ਓਮਨੀ-ਵ੍ਹੀਲ ਡ੍ਰਾਈਵਟ੍ਰੇਨ ਨੂੰ ਆਪਣੀ ਹੀ ਰੈਫਰੈਂਸ ਫਰੇਮ ਵਿੱਚ ਵੇਲੋਸਿਟੀਆਂ ਦੀ ਲੋੜ ਸੀ, ਨਾ ਕਿ ਗਲੋਬਲ ਕੋਆਰਡੀਨੇਟਸ ਵਿੱਚ। ਇਸ ਵਿਧੀ ਨੇ ਟਾਰਗੇਟਾਂ ਤੱਕ ਸਭ ਤੋਂ ਸਿੱਧੇ ਰਸਤੇ ਪੈਦਾ ਕੀਤੇ ਅਤੇ ਕਾਫ਼ੀ ਤੇਜ਼ ਸੀ, ਪਰ ਰੋਬੋਟ ਦੀ ਹੇਡਿੰਗ ਡ੍ਰਿਫਟ ਹੋ ਜਾਂਦੀ ਸੀ ਕਿਉਂਕਿ ਕੋਈ ਸਪਸ਼ਟ ਦਿਸ਼ਾ-ਨਿਯੰਤਰਣ ਨਹੀਂ ਸੀ।

ਵਿਧੀ #1 ਲਈ, ਮੈਂ ਇਸ ਵਿਧੀ ਬਾਰੇ ਪੂਰੇ ਵੇਰਵੇ ਨਾਲ ਆਪਣੇ ਮੂਵ ਟਰਟਲ (ਟਰਟਲਸਿਮ) ਬਲੌਗ ਵਿੱਚ ਲਿਖਿਆ ਹੈ। ਮੈਂ ਬਹੁਤ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹਾਂ ਕਿ ਤੁਸੀਂ ਇਹ ਬਲੌਗ ਪੜ੍ਹੋ ਤਾਂ ਜੋ ਤੁਸੀਂ ਸਮਝ ਸਕੋ ਕਿ PID ਕੰਟਰੋਲਰ ਆਮ ਤੌਰ ‘ਤੇ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ, ਅਤੇ ਵਿਧੀ #1 ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ। ਮੈਂ ਵਿਧੀ #1 ਨੂੰ ROS ਦੇ TurtleSim ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਿਕਸਤ ਕੀਤਾ, ਫਿਰ ਉਸ ਕੋਡ ਨੂੰ Triton ਵਿੱਚ ਟਰਾਂਸਫਰ ਕੀਤਾ ਅਤੇ ਉਸ ਨੂੰ ਅੱਪਡੇਟ ਕੀਤਾ ਤਾਂ ਜੋ ਉਹ ਹੋਰ ਅਸਲੀ ਦੁਨੀਆ ਵਾਲੇ ਵਾਤਾਵਰਣ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖੇ।

ਵਿਧੀ #2 ਨੇ ਇੱਕ ਕਾਫ਼ੀ ਵੱਖਰੀ ਪਰ ਉਤਨੀ ਹੀ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਪਹੁੰਚ ਵਰਤੀ। ਰੋਬੋਟ ਦੀ ਦਿਸ਼ਾ ਅਤੇ ਟਾਰਗੇਟ ਤੱਕ ਦੀ ਦੂਰੀ ਬਾਰੇ ਸੋਚਣ ਦੀ ਬਜਾਏ, ਇਹ ਵਿਧੀ ਗਤੀ ਨੂੰ ਕੋਆਰਡੀਨੇਟ ਪਲੇਨ ਸਮੱਸਿਆ ਵਾਂਗ ਮੰਨਦੀ ਹੈ। ਕੰਟਰੋਲਰ ਲਗਾਤਾਰ X ਅਤੇ Y ਦੋਹਾਂ ਦਿਸ਼ਾਵਾਂ ਵਿੱਚ ਗਲਤੀ ਨੂੰ ਵੱਖ-ਵੱਖ ਗਿਣਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜੇ ਰੋਬੋਟ ਨੂੰ (0,0) ਤੋਂ (2,3) ਤੱਕ ਜਾਣਾ ਹੋਵੇ, ਤਾਂ ਇਹ ਇਸ ਨੂੰ X ਵਿੱਚ 2 ਮੀਟਰ ਦੀ ਗਲਤੀ ਅਤੇ Y ਵਿੱਚ 3 ਮੀਟਰ ਦੀ ਗਲਤੀ ਠੀਕ ਕਰਨ ਦੀ ਲੋੜ ਵਜੋਂ ਵੇਖਦਾ ਹੈ। ਦੋ ਪ੍ਰੋਪੋਰਸ਼ਨਲ ਕੰਟਰੋਲਰ ਇੱਕੋ ਸਮੇਂ ਕੰਮ ਕਰਦੇ ਸਨ: ਇੱਕ X-ਗਲਤੀ ਦੇ ਆਧਾਰ ‘ਤੇ ਰੋਬੋਟ ਦੀ X ਦਿਸ਼ਾ ਵਾਲੀ ਵੇਲੋਸਿਟੀ ਨੂੰ ਸੈੱਟ ਕਰਦਾ ਸੀ, ਜਦਕਿ ਦੂਜਾ Y-ਗਲਤੀ ਦੇ ਆਧਾਰ ‘ਤੇ Y-ਦਿਸ਼ਾ ਵਾਲੀ ਗਤੀ ਨੂੰ ਸੰਭਾਲਦਾ ਸੀ। ਇਸ ਨਾਲ ਟਾਰਗੇਟ ਤੱਕ ਇੱਕ ਹੋਰ ਸਿੱਧਾ ਰਸਤਾ ਬਣਿਆ, 3D ਪ੍ਰਿੰਟਰ ਹੈਡ ਦੀ ਚਾਲ ਵਾਂਗ, ਅਤੇ ਹੌਲੀਆਂ ਤਿਰਛੀਆਂ ਗਤੀਆਂ ਸੰਭਵ ਹੋਈਆਂ। ਰੋਬੋਟ ਨੂੰ ਆਪਣੇ ਟਾਰਗੇਟ ਵੱਲ ਮੁੱਖ ਰੂਪ ਵਿੱਚ ਮੁੜਣ ਦੀ ਲੋੜ ਨਹੀਂ ਸੀ, ਜਿਸ ਨਾਲ ਇਹ ਵਿਧੀ ਖਾਸ ਤੌਰ ‘ਤੇ ਤੰਗ ਥਾਵਾਂ ਵਿੱਚ ਜਾਂ ਜਦੋਂ ਸਹੀ ਸਥਿਤੀਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇ, ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਬਣੀ।

ਦੋਹਾਂ ਵਿਧੀਆਂ ਨੇ ਮੂਲ ਪਹੁੰਚ ਨਾਲੋਂ ਕਾਫ਼ੀ ਤੇਜ਼ ਅਤੇ ਜ਼ਿਆਦਾ ਭਰੋਸੇਮੰਦ ਹੋਣਾ ਸਾਬਤ ਕੀਤਾ। ਇਹ ਨਵੀਆਂ ਵਿਧੀਆਂ ਕਾਰਵਾਈ ਵਿੱਚ ਦੇਖਣ ਲਈ, ਟ੍ਰਾਈਟਨਜ਼ ਇਨ ਐਕਸ਼ਨ ਪਲੇਲਿਸਟ ਵੇਖੋ, ਜੋ ਨਵੀਆਂ ਵਿਧੀਆਂ ਨਾਲ ਸਾਰੇ Tritons ਨੂੰ ਕਾਰਵਾਈ ਕਰਦੇ ਹੋਏ ਦਿਖਾਉਂਦੀ ਹੈ।

ਜੋ ਕੰਮ ਪਹਿਲਾਂ ਇੱਕ ਸਧਾਰਣ ਬਿੰਦੂ-ਤੋਂ-ਬਿੰਦੂ ਗਤੀ ਲਈ 30-45 ਸਕਿੰਟ ਲੈਂਦਾ ਸੀ, ਹੁਣ ਲਗਭਗ 8-12 ਸਕਿੰਟ ਲੈਣ ਲੱਗਾ। ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਗੱਲ ਇਹ ਸੀ ਕਿ Triton ਹੁਣ ਤੰਗ ਥਾਵਾਂ ਵਿੱਚ ਹੋਰ ਕੁਸ਼ਲਤਾਪੂਰਵਕ ਨੈਵੀਗੇਟ ਕਰ ਸਕਦਾ ਸੀ, ਜੋ ਸਾਡੇ ਮਲਟੀ-ਰੋਬੋਟ ਸਨਰੀਓਜ਼ ਲਈ ਲਾਭਦਾਇਕ ਬਣ ਗਿਆ।

ਵਿਕਾਸੀ ਚੁਣੌਤੀਆਂ ਅਤੇ ਡੀਬੱਗਿੰਗ

ਇਨ੍ਹਾਂ ਕੰਟਰੋਲਰਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਸੌਖਾ ਨਹੀਂ ਸੀ ਅਤੇ ਇਸ ਵਿੱਚ ਕਈ ਮਹੱਤਵਪੂਰਨ ਡੀਬੱਗਿੰਗ ਚੁਣੌਤੀਆਂ ਸ਼ਾਮਲ ਸਨ:

ਕੋਆਰਡੀਨੇਟ ਸਿਸਟਮ ਤਬਦੀਲੀਆਂ: ਸਭ ਤੋਂ ਮੁਸ਼ਕਲ ਪੱਖਾਂ ਵਿੱਚੋਂ ਇੱਕ ਕੋਆਰਡੀਨੇਟ ਤਬਦੀਲੀਆਂ ਨੂੰ ਠੀਕ ਕਰਨਾ ਸੀ। Optitrack ਸਿਸਟਮ ਨੇ ਆਪਣੇ ਹੀ ਕੋਆਰਡੀਨੇਟ ਫਰੇਮ ਵਿੱਚ ਡਾਟਾ ਦਿੱਤਾ, ਰੋਬੋਟ ਦਾ ਆਪਣਾ ਲੋਕਲ ਕੋਆਰਡੀਨੇਟ ਫਰੇਮ ਸੀ, ਅਤੇ ਮੈਨੂੰ ਇਨ੍ਹਾਂ ਵਿਚਕਾਰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਤਬਦੀਲੀ ਕਰਨੀ ਪਈ। ਸ਼ੁਰੂਆਤੀ ਇੰਪਲੀਮੈਂਟੇਸ਼ਨਾਂ ਵਿੱਚ ਰੋਬੋਟ ਗਲਤ ਦਿਸ਼ਾਵਾਂ ਵਿੱਚ ਚਲ ਰਹੇ ਸਨ ਕਿਉਂਕਿ ਮੈਂ ਰੋਟੇਸ਼ਨ ਮੈਟ੍ਰਿਕਸ ਦੀਆਂ ਗਿਣਤੀਆਂ ਗੜਬੜ ਕਰ ਦਿੱਤੀਆਂ ਸਨ।

ਅਸਲੀ ਦੁਨੀਆ ਬਨਾਮ ਆਦਰਸ਼ ਵਿਹਾਰ: ਸਭ ਤੋਂ ਵੱਡੀ ਚੁਣੌਤੀ ਉਹ ਅਸਲੀ ਦੁਨੀਆ ਵਾਲੇ ਕਾਰਕਾਂ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣਾ ਸੀ ਜੋ ਪਾਠਕ੍ਰਮ-ਅਧਾਰਿਤ ਕੰਟਰੋਲ ਸਿਧਾਂਤ ਵਿੱਚ ਨਹੀਂ ਦਿਖਦੇ। ਰੋਬੋਟ ਦੇ ਪਹਿਆਂ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਘਰਸ਼ਣ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸਨ, ਮੋਟਰ ਇਕੋ ਜਿਹੀ ਪ੍ਰਤੀਕਿਰਿਆ ਨਹੀਂ ਕਰਦੇ ਸਨ, ਅਤੇ Optitrack ਤੋਂ ਕੰਟਰੋਲ ਸੌਫਟਵੇਅਰ ਤੱਕ ਰੋਬੋਟ ਦੇ Arduino ਤੱਕ ਸੰਚਾਰ ਲੜੀ ਵਿੱਚ ਹਮੇਸ਼ਾਂ ਕੁਝ ਲੈਟੈਂਸੀ ਹੁੰਦੀ ਸੀ। ਮੈਂ ਕਈ ਹਫ਼ਤੇ ਪ੍ਰੋਪੋਰਸ਼ਨਲ ਗੇਨ ਟਿਊਨ ਕਰਨ ਅਤੇ ਇਨ੍ਹਾਂ ਭੌਤਿਕ ਹਕੀਕਤਾਂ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣ ਲਈ ਡੈੱਡਬੈਂਡ ਫਿਲਟਰ ਜੋੜਨ ਵਿੱਚ ਲਗਾਏ।

ਦੋਲਨ ਅਤੇ ਸਥਿਰਤਾ ਸੰਬੰਧੀ ਸਮੱਸਿਆਵਾਂ: ਮੇਰੀਆਂ ਪਹਿਲੀਆਂ ਇੰਪਲੀਮੈਂਟੇਸ਼ਨਾਂ ਵਿੱਚ ਦੋਲਨ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਆਈਆਂ, ਜਿੱਥੇ ਰੋਬੋਟ ਆਪਣੇ ਟਾਰਗੇਟਾਂ ਤੋਂ ਅੱਗੇ ਨਿਕਲ ਜਾਂਦੇ ਸਨ ਅਤੇ ਆਗੇ-ਪਿੱਛੇ ਡੋਲਦੇ ਰਹਿੰਦੇ ਸਨ। ਇਸ ਤੋਂ ਮੈਂ PID ਕੰਟਰੋਲਰਾਂ ਵਿੱਚ ਡੈਰੀਵੇਟਿਵ ਟਰਮਾਂ ਦੀ ਮਹੱਤਤਾ ਅਤੇ ਸਹੀ ਗੇਨ ਟਿਊਨਿੰਗ ਦੀ ਲੋੜ ਬਾਰੇ ਸਿੱਖਿਆ। ਆਖ਼ਿਰਕਾਰ ਮੈਂ ਪੂਰੇ PID ਦੀ ਬਜਾਏ ਧਿਆਨਪੂਰਵਕ ਟਿਊਨ ਕੀਤੀਆਂ ਗੇਨਾਂ ਨਾਲ ਮੁੱਖ ਤੌਰ ‘ਤੇ ਪ੍ਰੋਪੋਰਸ਼ਨਲ ਕੰਟਰੋਲ ‘ਤੇ ਆ ਗਿਆ, ਕਿਉਂਕਿ ਸਿਸਟਮ ਦੀ ਅੰਦਰੂਨੀ ਡੈਂਪਿੰਗ ਜ਼ਿਆਦਾਤਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਕਾਫ਼ੀ ਸੀ।

ਮਲਟੀ-ਰੋਬੋਟ ਦਖਲਅੰਦਾਜ਼ੀ: ਜਦੋਂ ਕਈ ਰੋਬੋਟ ਇੱਕੋ ਸਮੇਂ ਕੰਮ ਕਰ ਰਹੇ ਸਨ, ਮੈਂ ਅਣਉਮੀਦ ਦਖਲ ਪੈਟਰਨਾਂ ਦੀ ਖੋਜ ਕੀਤੀ। ਰੋਬੋਟ ਕਈ ਵਾਰ ਇੱਕੋ ਜਗ੍ਹਾ ਲਈ “ਲੜਦੇ” ਸਨ ਜਾਂ ਐਸੀਆਂ ਡੈੱਡਲੌਕ ਸਥਿਤੀਆਂ ਬਣਾਉਂਦੇ ਸਨ ਜਿੱਥੇ ਉਹ ਅਨਿਸ਼ਚਿਤ ਸਮੇਂ ਲਈ ਇੱਕ-ਦੂਜੇ ਨੂੰ ਰੋਕ ਦੇਂਦੇ ਸਨ। ਇਸ ਨੇ ਮੈਨੂੰ ਕੋਆਰਡੀਨੇਸ਼ਨ ਮਕੈਨਿਜ਼ਮ ਅਤੇ ਟਕਰਾਅ-ਬਚਾਅ ਐਲਗੋਰਿਥਮ ਲਾਗੂ ਕਰਨ ਵੱਲ ਧਕੇਲਿਆ।

ਮਲਟੀ-ਟ੍ਰਾਈਟਨ ਕੰਟਰੋਲ ਸਿਸਟਮ

ਜਦੋਂ ਮੈਂ ਇੱਕਲ Triton ਦੀ ਗਤੀ ਦੀ ਸਮੱਸਿਆ ਹੱਲ ਕਰ ਲਈ, ਤਾਂ ਲੈਬ ਦੀ ਅਗਲੀ ਚੁਣੌਤੀ ਕਈ Tritons ਨੂੰ ਇੱਕੋ ਸਮੇਂ ਮਿਲਜੁਲ ਕਰਵਾ ਕੇ ਚਲਾਉਣੀ ਸੀ। ਇਹ ਮੇਰੇ ਮੁੱਖ ਕੇਂਦਰੀ ਖੇਤਰਾਂ ਵਿੱਚੋਂ ਇੱਕ ਬਣ ਗਿਆ ਅਤੇ ਆਖ਼ਿਰਕਾਰ ਪ੍ਰੋਜੈਕਟ ਲਈ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਯੋਗਦਾਨ ਸਾਬਤ ਹੋਇਆ।

ਮੂਲ ਸਿਸਟਮ ਇੱਕ ਸਮੇਂ ਸਿਰਫ਼ ਇੱਕ Triton ਨੂੰ ਕੰਟਰੋਲ ਕਰ ਸਕਦਾ ਸੀ, ਜਿਸ ਨਾਲ ਖੋਜ ਸੰਭਾਵਨਾਵਾਂ ਕਾਫ਼ੀ ਸੀਮਿਤ ਹੋ ਗਈਆਂ। ਲੈਬ ਐਸੇ ਸਨਰੀਓਜ਼ ਦੀ ਨਕਲ ਕਰਨਾ ਚਾਹੁੰਦੀ ਸੀ ਜਿੱਥੇ ਕਈ ਖੁਦਮੁਖ਼ਤਿਆਰ ਵਾਹਨਾਂ ਨੂੰ ਆਪਣੀਆਂ ਗਤੀਆਂ ਦੀ ਸਮਨਵਯਤਾ ਕਰਨੀ ਪੈਂਦੀ ਸੀ, ਜਿਵੇਂ ਸਵੈ-ਚਾਲਿਤ ਕਾਰਾਂ ਆਪਸ ਵਿੱਚ ਸੰਚਾਰ ਕਰਦੀਆਂ ਹਨ ਤਾਂ ਜੋ ਟ੍ਰੈਫਿਕ ਦਾ ਪ੍ਰਵਾਹ ਸੁਧਰੇ ਅਤੇ ਬਿਹਤਰ SLAM (Simultaneous Localization and Mapping) ਮੈਪ ਬਣ ਸਕਣ।

ਇਸਨੂੰ ਹੱਲ ਕਰਨ ਲਈ, ਮੈਂ Python ਦੀ multiprocessing ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇੱਕ ਮਲਟੀ-ਪ੍ਰੋਸੈਸਿੰਗ ਪਹੁੰਚ ਲਾਗੂ ਕੀਤੀ। ਹਰ Triton ਨੂੰ ਆਪਣਾ ਸਮਰਪਿਤ ਪ੍ਰੋਸੈਸ ਮਿਲਿਆ ਜੋ ਕੇਂਦਰੀ ਕੰਟਰੋਲ ਸਿਸਟਮ ਦੁਆਰਾ ਸਮਨਵਿਤ ਰਹਿੰਦਿਆਂ ਵੀ ਸੁਤੰਤਰ ਤੌਰ ‘ਤੇ ਚੱਲ ਸਕਦਾ ਸੀ। ਇਸ ਨਾਲ ਕਈ Tritons ਇੱਕੋ ਸਮੇਂ ਹਿਲ ਸਕਦੇ ਸਨ ਬਿਨਾਂ ਇੱਕ-ਦੂਜੇ ਦੇ ਕੰਟਰੋਲ ਲੂਪਸ ਵਿੱਚ ਰੁਕਾਵਟ ਪੈਦਾ ਕੀਤੇ।

ਮਲਟੀ-ਰੋਬੋਟ ਆਰਕੀਟੈਕਚਰ ਡਿਜ਼ਾਈਨ

ਮੇਰੇ ਵੱਲੋਂ ਵਿਕਸਤ ਕੀਤਾ ਗਿਆ ਸਿਸਟਮ ਆਰਕੀਟੈਕਚਰ ਕਈ ਮੁੱਖ ਘਟਕਾਂ ‘ਤੇ ਆਧਾਰਿਤ ਸੀ:

ਮੁੱਖ ਕੰਟਰੋਲਰ ਪ੍ਰੋਸੈਸ: ਇਹ ਕੇਂਦਰੀ ਕੋਆਰਡੀਨੇਟਰ ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਸੀ, ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਇੰਟਰੈਕਸ਼ਨ, ਪਾਥ ਪਲੈਨਿੰਗ, ਅਤੇ ਰੋਬੋਟਾਂ ਵਿਚਕਾਰ ਉੱਚ-ਸਤ੍ਹਰੀ ਕੋਆਰਡੀਨੇਸ਼ਨ ਨੂੰ ਸੰਭਾਲਦਾ ਸੀ। ਇਹ ਗਲੋਬਲ ਸਟੇਟ ਨੂੰ ਸੰਭਾਲਦਾ ਅਤੇ ਵਿਅਕਤੀਗਤ ਰੋਬੋਟ ਪ੍ਰੋਸੈਸਾਂ ਨੂੰ ਕਮਾਂਡਾਂ ਵੰਡਦਾ ਸੀ।

ਵਿਅਕਤੀਗਤ ਰੋਬੋਟ ਪ੍ਰੋਸੈਸ: ਹਰ Triton ਦਾ ਆਪਣਾ ਸਮਰਪਿਤ Python ਪ੍ਰੋਸੈਸ ਸੀ ਜੋ ਇਹ ਕੰਮ ਸੰਭਾਲਦਾ ਸੀ:

  • ਲਗਭਗ 50Hz ‘ਤੇ ਰੀਅਲ-ਟਾਈਮ PID ਕੰਟਰੋਲ ਗਣਨਾਵਾਂ
  • ਰੋਬੋਟ ਦੇ ਹਾਰਡਵੇਅਰ ਨਾਲ ਸੰਚਾਰ (Arduino/Jetson)
  • ਲੋਕਲ ਪਾਥ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਅਤੇ ਰੁਕਾਵਟ-ਬਚਾਅ
  • ਮੁੱਖ ਕੰਟਰੋਲਰ ਨੂੰ ਸਥਿਤੀ ਰਿਪੋਰਟਿੰਗ

ਸ਼ੇਅਰਡ ਮੈਮੋਰੀ ਸੰਚਾਰ: ਮੈਂ ਪ੍ਰੋਸੈਸਾਂ ਵਿਚਕਾਰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸੰਚਾਰ ਯੋਗ ਬਣਾਉਣ ਲਈ Python ਦੇ multiprocessing.shared_memory ਅਤੇ Queue ਆਬਜੈਕਟਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ। ਇਸ ਨਾਲ ਨੈੱਟਵਰਕ ਸੰਚਾਰ ਦੇ ਓਵਰਹੈੱਡ ਤੋਂ ਬਿਨਾਂ ਰੀਅਲ-ਟਾਈਮ ਕੋਆਰਡੀਨੇਸ਼ਨ ਸੰਭਵ ਹੋਇਆ।

ਸਮਨਵਯ ਮਕੈਨਿਜ਼ਮ: ਜਦੋਂ ਕਈ ਰੋਬੋਟਾਂ ਨੂੰ ਕੋਆਰਡੀਨੇਟ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਸੀ (ਜਿਵੇਂ ਟਕਰਾਅ ਤੋਂ ਬਚਣਾ), ਤਾਂ ਟਕਰਾਵਾਂ ਤੋਂ ਬਚਣ ਲਈ ਮੈਂ ਸੈਮਾਫੋਰ ਅਤੇ ਲਾਕ ਲਾਗੂ ਕੀਤੇ, ਜਿਨ੍ਹਾਂ ਨੇ ਰੋਬੋਟਾਂ ਨੂੰ ਵਰਕਸਪੇਸ ਦੇ ਕੁਝ ਖੇਤਰਾਂ ਤੱਕ ਵਿਸ਼ੇਸ਼ ਪਹੁੰਚ ਦੀ ਬੇਨਤੀ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੱਤੀ।

ਚੁਣੌਤੀ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਦੀ ਸੀ ਕਿ ਸਾਰੇ ਰੋਬੋਟ ਆਪਣੇ ਕੰਟਰੋਲ ਲੂਪਸ ਸੁਤੰਤਰ ਤੌਰ ‘ਤੇ ਚਲਾ ਸਕਣ, ਜਦਕਿ ਗਲੋਬਲ ਕੋਆਰਡੀਨੇਸ਼ਨ ਵੀ ਬਰਕਰਾਰ ਰਹੇ। ਹਰ ਰੋਬੋਟ ਪ੍ਰੋਸੈਸ ਨੇ ਆਪਣੀਆਂ PID ਗਣਨਾਵਾਂ ਚਲਾਈਆਂ ਅਤੇ ਮੋਟਰ ਕਮਾਂਡਾਂ ਸਿੱਧੇ ਹਾਰਡਵੇਅਰ ਨੂੰ ਭੇਜੀਆਂ, ਜਦਕਿ ਮੁੱਖ ਪ੍ਰੋਸੈਸ ਨੇ ਉੱਚ-ਸਤ੍ਹਰੀ ਕੋਆਰਡੀਨੇਸ਼ਨ ਜਿਵੇਂ ਟਕਰਾਅ-ਬਚਾਅ ਅਤੇ ਪਾਥ ਪਲੈਨਿੰਗ ਸੰਭਾਲੀ।

ਮਲਟੀ-ਟ੍ਰਾਈਟਨ ਚੌਰਾਹੇ ਦੀ ਜਾਂਚ ਸ਼ੁਰੂਆਤੀ ਮਲਟੀ-ਟ੍ਰਾਈਟਨ ਸੈਟਅੱਪ

ਭਵਿੱਖ ਦੇ ਮਲਟੀ-ਏਜੰਟ ਕੰਮ ਲਈ ਡ੍ਰੋਨਾਂ ਨਾਲ Triton

ਮਲਟੀ-ਟ੍ਰਾਈਟਨ ਸਿਸਟਮ ਨੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਨਵੀਆਂ ਖੋਜ ਸੰਭਾਵਨਾਵਾਂ ਖੋਲ੍ਹ ਦਿੱਤੀਆਂ। ਹੁਣ ਅਸੀਂ ਇਹ ਸਿਮੂਲੇਟ ਕਰ ਸਕਦੇ ਸੀ:

  • ਵਾਹਨ-ਤੋਂ-ਵਾਹਨ ਸੰਚਾਰ ਦੇ ਸਨਰੀਓ
  • ਰੁਕਾਵਟ-ਬਚਾਅ ਨਾਲ ਸਮਨਵਿਤ ਪਾਥ ਪਲੈਨਿੰਗ
  • ਸਵਾਰਮ ਰੋਬੋਟਿਕਸ ਵਿਹਾਰ
  • ਮਲਟੀ-ਏਜੰਟ SLAM ਮੈਪਿੰਗ
  • ਫਾਰਮੇਸ਼ਨ ਕੰਟਰੋਲ ਅਤੇ ਫਾਲੋਇੰਗ ਵਿਹਾਰ

ਇੱਥੇ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਕਿ ਕਈ Tritons ਇੱਕੋ ਸਮੇਂ ਚੱਲ ਰਹੇ ਹੋਣ ‘ਤੇ ਲੈਬ ਸੈਟਅੱਪ ਕਿਵੇਂ ਦਿਸਦਾ ਸੀ:

ਹਰੇ ਗ੍ਰਿਡ 'ਤੇ ਰੋਬੋਟ ਰੋਬੋਟ ਗ੍ਰਿਡ ਸੈਟਅੱਪ

ਮੈਂ ਇੱਕ ਯੂਜ਼ਰ-ਫ੍ਰੈਂਡਲੀ ਇੰਟਰਫੇਸ ਵੀ ਵਿਕਸਤ ਕੀਤਾ ਜਿਸ ਨਾਲ ਖੋਜਕਰਤਾ ਹਰ Triton ਲਈ ਪਾਥ ਦ੍ਰਿਸ਼ਟੀਗਤ ਤੌਰ ‘ਤੇ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੇ ਸਨ। ਤੁਸੀਂ ਸ਼ਾਬਦਿਕ ਤੌਰ ‘ਤੇ ਉਹ ਪਾਥ ਖਿੱਚ ਸਕਦੇ ਸੀ ਜਿਸ ਦਾ ਪਾਲਣ ਹਰ ਰੋਬੋਟ ਨੂੰ ਕਰਨਾ ਸੀ, ਅਤੇ ਉਹ ਇਹ ਪਾਥ ਬਿਲਕੁਲ ਸਹੀ ਸਮਨਵਯ ਨਾਲ ਲਾਗੂ ਕਰਦੇ ਸਨ। ਇਹ ਬਹੁਤ ਹੀ ਲਾਭਦਾਇਕ ਸੀ ਜਦੋਂ ਜਟਿਲ ਪ੍ਰਯੋਗ ਸੈੱਟ ਕਰਨੇ ਹੁੰਦੇ ਸਨ ਬਿਨਾਂ ਹਰ ਗਤੀ ਨੂੰ ਹੱਥੋਂ ਕੋਡ ਕੀਤੇ।

ਸਿਸਟਮ ਇੱਕੋ ਸਮੇਂ 5 Tritons ਤੱਕ ਸੰਭਾਲ ਸਕਦਾ ਸੀ, ਹਰ ਇੱਕ ਆਪਣੇ PID ਕੰਟਰੋਲਰ ਚਲਾਉਂਦਾ ਹੋਇਆ ਅਤੇ ਕੇਂਦਰੀ ਕੰਟਰੋਲ ਸਿਸਟਮ ਰਾਹੀਂ ਸਮਨਵਿਤ ਰਹਿੰਦਾ ਸੀ। ਪ੍ਰਦਰਸ਼ਨ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸੀ, ਸਾਰੇ ਰੋਬੋਟ ਟੀਮ ਵਜੋਂ ਇਕੱਠੇ ਕੰਮ ਕਰਦਿਆਂ ਆਪਣੀ ਵਿਅਕਤੀਗਤ ਸਹੀਤਾ ਬਰਕਰਾਰ ਰੱਖਦੇ ਸਨ।

ਇੱਥੇ ਇੱਕ ਪਲੇਲਿਸਟ ਹੈ ਜੋ Tritons ਨੂੰ ਕਾਰਵਾਈ ਵਿੱਚ ਦਿਖਾਉਂਦੀ ਹੈ, ਇੱਕਲੇ-ਰੋਬੋਟ ਕੰਟਰੋਲ ਤੋਂ ਲੈ ਕੇ ਮਲਟੀ-ਰੋਬੋਟ ਕੋਆਰਡੀਨੇਸ਼ਨ ਤੱਕ: ਟ੍ਰਾਈਟਨਜ਼ ਇਨ ਐਕਸ਼ਨ ਪਲੇਲਿਸਟ

ਡੈਪਥ ਸੈਂਸਰ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਅਤੇ ਕੋਆਰਡੀਨੇਟ ਸੁਧਾਰ

ਇੱਕ ਹੋਰ ਵੱਡੀ ਤਰੱਕੀ ਜਿਸ ‘ਤੇ ਮੈਂ ਕੰਮ ਕੀਤਾ, ਉਹ ਸੀ ਹਰ Triton ‘ਤੇ ਲਗੇ Intel RealSense D435 ਡੈਪਥ ਕੈਮਰਿਆਂ ਦੀ ਵਰਤੋਂ। ਹਾਲਾਂਕਿ Optitrack ਸਿਸਟਮ ਨੇ ਸਾਨੂੰ ਬੇਹੱਦ ਸਹੀ ਪੋਜ਼ੀਸ਼ਨਿੰਗ ਡਾਟਾ ਦਿੱਤਾ, ਮੈਂ ਖੋਜਣਾ ਚਾਹੁੰਦਾ ਸੀ ਕਿ ਰੋਬੋਟ ਆਪਣੇ ਬੋਰਡ-ਅਧਾਰਿਤ ਸੈਂਸਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੀ ਸਪੇਸ਼ਲ ਜਾਗਰੂਕਤਾ ਕਿਵੇਂ ਸੁਧਾਰ ਸਕਦੇ ਹਨ ਅਤੇ ਕੋਆਰਡੀਨੇਟ ਗਲਤੀਆਂ ਨੂੰ ਕਿਵੇਂ ਠੀਕ ਕਰ ਸਕਦੇ ਹਨ।

ਵਿਚਾਰ ਇਹ ਸੀ ਕਿ Tritons ਆਪਣੇ ਡੈਪਥ ਸੈਂਸਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ ਨੇੜੇ ਹੋਰ Tritons ਨੂੰ ਪਛਾਣ ਸਕਦੇ ਸਨ ਅਤੇ ਆਪਣੀਆਂ ਸਥਿਤੀਆਂ ਦੀ ਆਪਸੀ ਤੁਲਨਾ ਕਰ ਸਕਦੇ ਸਨ। ਇਹ ਕਈ ਮਕਸਦਾਂ ਲਈ ਲਾਭਦਾਇਕ ਹੋਵੇਗਾ:

  1. ਗਲਤੀ ਸੁਧਾਰ: ਜੇ Optitrack ਸਿਸਟਮ ਵਿੱਚ ਕੋਈ ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਡ੍ਰਿਫਟ ਜਾਂ ਅਸਥਾਈ ਓਕਲੂਜ਼ਨ ਹੋਵੇ, ਤਾਂ ਰੋਬੋਟ ਇਕ-ਦੂਜੇ ਦੀਆਂ ਸਥਿਤੀਆਂ ਦੀ ਵਿਜ਼ੂਅਲ ਪੁਸ਼ਟੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਹੀ ਕੋਆਰਡੀਨੇਟ ਸਿਸਟਮ ਬਰਕਰਾਰ ਰੱਖ ਸਕਦੇ ਸਨ।

  2. ਉন্নਤ SLAM: ਕਈ ਰੋਬੋਟਾਂ ਦੇ ਡੈਪਥ ਸੈਂਸਰਾਂ ਨਾਲ ਮਿਲਜੁਲ ਕੇ ਕੰਮ ਕਰਨ ਨਾਲ, ਅਸੀਂ ਵਾਧੂ ਡਾਟਾ ਪੌਇੰਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਾਤਾਵਰਣ ਦੇ ਕਾਫ਼ੀ ਧਨੀ ਮੈਪ ਤਿਆਰ ਕਰ ਸਕਦੇ ਸੀ।

  3. ਟਕਰਾਅ ਤੋਂ ਬਚਾਅ: ਰੀਅਲ-ਟਾਈਮ ਡੈਪਥ ਸੈਂਸਿੰਗ ਰੋਬੋਟਾਂ ਨੂੰ ਇਕ ਦੂਜੇ ਨੂੰ ਪਛਾਣਣ ਅਤੇ ਬਚਣ ਦੇ ਯੋਗ ਬਣਾਉਂਦੀ, ਭਾਵੇਂ ਕੇਂਦਰੀ ਕੰਟਰੋਲ ਸਿਸਟਮ ਵਿੱਚ ਸੰਚਾਰ ਦੇਰੀਆਂ ਹੀ ਕਿਉਂ ਨਾ ਹੋਣ।

ਮੈਂ ਅਜਿਹੇ ਐਲਗੋਰਿਦਮਾਂ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰਨਾ ਸ਼ੁਰੂ ਕੀਤਾ ਜੋ ਟ੍ਰਾਈਟਨਾਂ ਨੂੰ ਇਹ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਣਗੇ:

  • ਉਨ੍ਹਾਂ ਦੇ ਵਿਲੱਖਣ ਤਿਕੋਨੇ ਆਕਾਰ ਅਤੇ ਪਰਾਵਰਤਕ ਗੇਂਦ ਮਾਰਕਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੋਰ ਟ੍ਰਾਈਟਨਾਂ ਦੀ ਪਛਾਣ ਕਰਨਾ
  • ਡੈਪਥ ਡਾਟਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਸੀ ਸਥਿਤੀਆਂ ਅਤੇ ਦਿਸ਼ਾਵਾਂ ਦੀ ਗਣਨਾ ਕਰਨਾ
  • ਇਹ ਮਾਪ Optitrack ਡਾਟਾ ਨਾਲ ਤੁਲਨਾ ਕਰਕੇ ਅਸੰਗਤੀਆਂ ਦੀ ਪਛਾਣ ਕਰਨਾ
  • ਸ਼ੁੱਧਤਾ ਬਣਾਈ ਰੱਖਣ ਲਈ ਸੰਭਵਤ: ਆਪਣੇ ਕੋਆਰਡੀਨੇਟ ਸਿਸਟਮ ਨੂੰ ਰੀਅਲ-ਟਾਈਮ ਵਿੱਚ ਸਮਾਇਲਿਤ ਕਰਨਾ

ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਪ੍ਰਯੋਗ

ਮੈਂ ਇਕ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਪਾਈਪਲਾਈਨ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰਨ ਵਿੱਚ ਕਾਫ਼ੀ ਸਮਾਂ ਬਿਤਾਇਆ ਜੋ ਕਈ ਪੜਾਵਾਂ ਵਿੱਚ ਕੰਮ ਕਰਦੀ ਸੀ:

ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਟੈਸਟਾਂ ਲਈ ਇੱਕ ਦੂਜੇ ਵੱਲ ਮੂੰਹ ਕਰਦੇ ਦੋ ਟ੍ਰਾਈਟਨ ਟ੍ਰਾਈਟਨ ਦੇ ਕੈਮਰੇ ਦਾ ਕਲੋਜ਼-ਅੱਪ
ਟੈਸਟਿੰਗ ਲਈ ਇੱਕ ਦੂਜੇ ਦੇ ਸਾਹਮਣੇ ਦੋ ਟ੍ਰਾਈਟਨ
ਇੱਕ ਦੂਜੇ ਵੱਲ ਮੂੰਹ ਕਰਦੇ ਦੋ ਰੋਬੋਟ ਦੌੜ ਲਗਾਉਣ ਵਾਲੇ ਦੋ ਟ੍ਰਾਈਟਨ

ਡੈਪਥ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ: Intel RealSense D435 ਨੇ RGB ਅਤੇ ਡੈਪਥ ਦੋਵੇਂ ਡਾਟਾ ਸਟ੍ਰੀਮ ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ। ਮੈਂ ਮੁੱਖ ਤੌਰ ‘ਤੇ ਡੈਪਥ ਡਾਟਾ ਨਾਲ ਕੰਮ ਕੀਤਾ, ਜੋ 30Hz ‘ਤੇ ਦੂਰੀ ਮਾਪਾਂ ਦੀ 640x480 ਐਰੇ ਵਜੋਂ ਆਉਂਦਾ ਸੀ। ਪਹਿਲੀ ਚੁਣੌਤੀ ਇਸ ਸ਼ੋਰ ਵਾਲੇ ਡੈਪਥ ਡਾਟਾ ਨੂੰ ਫਿਲਟਰ ਕਰਕੇ ਅਰਥਪੂਰਨ ਜਿਓਮੈਟ੍ਰਿਕ ਜਾਣਕਾਰੀ ਕੱਢਣਾ ਸੀ।

ਵਸਤੂ ਪਛਾਣ ਦੇ ਯਤਨ: ਮੈਂ ਬਹੁ-ਪੜਾਅੀ ਪਛਾਣ ਐਲਗੋਰਿਦਮਾਂ ਨਾਲ ਪ੍ਰਯੋਗ ਕੀਤਾ। ਮੈਨੂੰ ਡੈਪਥ ਇਮੇਜ ਨੂੰ ਸੈਗਮੈਂਟ ਕਰਕੇ ਫਰਸ਼ ਦੇ ਪੱਧਰ ‘ਤੇ ਵਸਤੂਆਂ ਦੀ ਪਛਾਣ ਕਰਨ ਵਿੱਚ ਕੁਝ ਸਫਲਤਾ ਮਿਲੀ (ਦੀਵਾਰਾਂ, ਛੱਤ ਆਦਿ ਨੂੰ ਫਿਲਟਰ ਕਰਕੇ) ਅਤੇ ਲਗਭਗ 0.3x0.3 ਮੀਟਰ ਫੁੱਟਪ੍ਰਿੰਟ ਵਾਲੇ, ਢੁੱਕਵੇਂ ਆਕਾਰ ਵਾਲੀਆਂ ਵਸਤੂਆਂ ਦੀ ਖੋਜ ਕੀਤੀ। ਮੈਂ ਵਿਲੱਖਣ ਟ੍ਰਾਈਟਨ ਪ੍ਰੋਫ਼ਾਈਲ ਦੀ ਪਛਾਣ ਲਈ ਐਜ ਡਿਟੈਕਸ਼ਨ ਅਤੇ ਜਿਓਮੈਟ੍ਰਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ, ਜਿਸ ਦੇ ਮਿਲੇ-ਜੁਲੇ ਨਤੀਜੇ ਆਏ।

ਮਾਰਕਰ ਪਛਾਣ ਪ੍ਰਯੋਗ: ਹਰ ਟ੍ਰਾਈਟਨ ‘ਤੇ ਮੌਜੂਦ ਤਿੰਨ ਪਰਾਵਰਤਕ ਗੇਂਦਾਂ ਸਭ ਤੋਂ ਵਧੀਆ ਪਛਾਣ ਵਿਸ਼ੇਸ਼ਤਾ ਲੱਗੀਆਂ। ਮੈਂ ਡੈਪਥ ਇਮੇਜ ਵਿੱਚ ਤਿੰਨ ਚਮਕੀਲੇ ਧੱਬਿਆਂ ਦੇ ਵਿਸ਼ੇਸ਼ ਤਿਕੋਣੀ ਪੈਟਰਨ ਦੀ ਪਛਾਣ ਲਈ ਬਲੌਬ ਡਿਟੈਕਸ਼ਨ ਐਲਗੋਰਿਦਮਾਂ ਨਾਲ ਪ੍ਰਯੋਗ ਕੀਤਾ। ਨਿਯੰਤਰਿਤ ਰੌਸ਼ਨੀ ਦੀਆਂ ਹਾਲਤਾਂ ਵਿੱਚ ਮੈਨੂੰ ਕੁਝ ਉਤਸ਼ਾਹਜਨਕ ਨਤੀਜੇ ਮਿਲੇ, ਹਾਲਾਂਕਿ ਇਹ ਲਗਾਤਾਰ ਭਰੋਸੇਯੋਗ ਨਹੀਂ ਸੀ।

ਕੋਆਰਡੀਨੇਟ ਫਿਊਜ਼ਨ ਖੋਜ: ਮੈਂ ਦ੍ਰਿਸ਼ਟੀ-ਆਧਾਰਿਤ ਸਥਿਤੀ ਅੰਦਾਜ਼ਿਆਂ ਨੂੰ Optitrack ਡਾਟਾ ਨਾਲ ਮਿਲਾਉਣ ਦੇ ਤਰੀਕਿਆਂ ਦੀ ਖੋਜ ਕੀਤੀ, ਜਿਸ ਵਿੱਚ ਬੁਨਿਆਦੀ ਕਾਲਮੈਨ ਫਿਲਟਰ ਇੰਪਲੀਮੈਂਟੇਸ਼ਨ ਵੀ ਸ਼ਾਮਲ ਸਨ। ਸੰਕਲਪ ਇਹ ਸੀ ਕਿ ਜਦੋਂ Optitrack ਡਾਟਾ ਉਪਲਬਧ ਹੋਵੇ ਤਾਂ ਉਸ ਨੂੰ ਵਧੇਰੇ ਭਾਰ ਦਿੱਤਾ ਜਾਵੇ, ਪਰ ਜਦੋਂ ਲੋੜ ਪਵੇ ਤਾਂ ਦ੍ਰਿਸ਼ਟੀ ‘ਤੇ ਵਾਪਸ ਜਾਇਆ ਜਾਵੇ, ਹਾਲਾਂਕਿ ਮੇਰਾ ਲੈਬ ਵਿੱਚ ਸਮਾਂ ਖਤਮ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਮੈਂ ਇਸਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕੰਮਯਾਬ ਨਹੀਂ ਬਣਾ ਸਕਿਆ।

ਕਾਰਗੁਜ਼ਾਰੀ ਦੀਆਂ ਚੁਣੌਤੀਆਂ: ਇਹ ਸਾਰਾ ਪ੍ਰੋਸੈਸਿੰਗ ਰੋਬੋਟ ਦੇ ਕੰਟਰੋਲ ਲੂਪਸ ਦੇ ਨਾਲ ਰੀਅਲ-ਟਾਈਮ ਵਿੱਚ ਚਲਾਉਣਾ ਚੁਣੌਤੀਪੂਰਨ ਸਾਬਤ ਹੋਇਆ। ਮੈਂ ਆਪਟੀਮਾਈਜ਼ੇਸ਼ਨ ਤਰੀਕਿਆਂ ਨਾਲ ਪ੍ਰਯੋਗ ਕੀਤਾ ਤਾਂ ਜੋ ਐਲਗੋਰਿਦਮ ਲਗਭਗ 10-15Hz ‘ਤੇ ਚੱਲ ਸਕਣ ਬਿਨਾਂ Jetson Nano ਦੀ ਪ੍ਰੋਸੈਸਿੰਗ ਸਮਰੱਥਾ ਨੂੰ ਓਵਰਲੋਡ ਕੀਤੇ।

ਬਦਕਿਸਮਤੀ ਨਾਲ, ਇਹ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਕੰਮ ਪੂਰਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਮੈਨੂੰ ਲੈਬ ਛੱਡਣੀ ਪਈ। ਹਾਲਾਂਕਿ ਮੈਨੂੰ ਕੁਝ ਉਤਸ਼ਾਹਜਨਕ ਸ਼ੁਰੂਆਤੀ ਨਤੀਜੇ ਮਿਲੇ ਅਤੇ ਡੈਪਥ ਸੈਂਸਰ ਪ੍ਰੋਸੈਸਿੰਗ ਬਾਰੇ ਬਹੁਤ ਕੁਝ ਸਿੱਖਣ ਨੂੰ ਮਿਲਿਆ, ਪਰ ਮੈਂ ਸਿਸਟਮ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਭਰੋਸੇਯੋਗ ਹਾਲਤ ਵਿੱਚ ਨਹੀਂ ਲਿਆ ਸਕਿਆ। ਇਹ ਇੱਕ ਦਿਲਚਸਪ ਖੋਜ ਦਿਸ਼ਾ ਬਣੀ ਰਹੀ ਜਿਸ ‘ਤੇ ਹੋਰ ਲੋਕ ਅੱਗੇ ਕੰਮ ਕਰ ਸਕਦੇ ਸਨ।

ਇੱਥੇ ਮੇਰੇ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਐਲਗੋਰਿਦਮਾਂ ਦੀ ਜਾਂਚ ਦਾ ਇੱਕ ਵੀਡੀਓ ਹੈ:

ਇਹ ਹੈ ਕਿ ਮੇਰੇ ਪ੍ਰਯੋਗਾਂ ਦੌਰਾਨ ਡੈਪਥ ਸੈਂਸਰ ਦਾ ਦ੍ਰਿਸ਼ ਕਿਵੇਂ ਦਿਖਾਈ ਦਿੰਦਾ ਸੀ:

ਹਾਲਾਂਕਿ ਮੈਂ ਡੈਪਥ ਸੈਂਸਰ ਏਕੀਕਰਨ ਦਾ ਕੰਮ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ, ਪਰ ਇਸ ਸੰਕਲਪ ਨੇ ਸਵੈ-ਚਾਲਿਤ ਕਾਰ ਦ੍ਰਿਸ਼ਾਂ ਦੀ ਨਕਲ ਵਰਗੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਸੰਭਾਵਨਾ ਦਿਖਾਈ, ਜਿੱਥੇ ਵਾਹਨਾਂ ਨੂੰ ਸਿਰਫ਼ ਬਾਹਰੀ ਢਾਂਚੇ ‘ਤੇ ਨਿਰਭਰ ਕੀਤੇ ਬਿਨਾਂ ਇਕ ਦੂਜੇ ਤੋਂ ਅਗਾਹ ਰਹਿਣਾ ਪੈਂਦਾ ਹੈ। ਮੈਂ ਜਿਸ ਖੋਜ ਦਿਸ਼ਾ ਦੀ ਪੜਚੋਲ ਸ਼ੁਰੂ ਕੀਤੀ ਸੀ, ਉਹ ਲੈਬ ਵਿੱਚ ਭਵਿੱਖ ਦੇ ਕੰਮ ਵਿੱਚ ਯੋਗਦਾਨ ਪਾ ਸਕਦੀ ਸੀ।

ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਅਤੇ ਗਿਆਨ ਸੰਰੱਖਣ

HCR ਲੈਬ ਵਿੱਚ ਮੇਰੇ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਯੋਗਦਾਨਾਂ ਵਿੱਚੋਂ ਇੱਕ, ਅਤੇ ਸ਼ਾਇਦ ਜਿਸ ‘ਤੇ ਮੈਨੂੰ ਸਭ ਤੋਂ ਵੱਧ ਮਾਣ ਹੈ, ਸਾਰੇ ਪ੍ਰੋਜੈਕਟ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਸੰਗਠਿਤ ਕਰਨਾ ਅਤੇ ਸੰਰੱਖਿਤ ਕਰਨਾ ਸੀ। ਜਦੋਂ ਮੈਂ ਲੈਬ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਇਆ, ਤਾਂ ਟ੍ਰਾਈਟਨ ਪ੍ਰੋਜੈਕਟ ਦਾ ਗਿਆਨ ਕਈ ਪਲੇਟਫਾਰਮਾਂ ਅਤੇ ਫਾਰਮੈਟਾਂ ਵਿੱਚ ਫੈਲਿਆ ਹੋਇਆ ਸੀ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਇੱਥੇ-ਉੱਥੇ ਫੈਲੀ ਹੋਈ ਸੀ:

  • ਵੱਖ-ਵੱਖ ਗ੍ਰੈਜੂਏਟ ਹੋ ਚੁੱਕੇ ਵਿਦਿਆਰਥੀਆਂ ਦੇ ਕਈ Google Drive ਖਾਤੇ
  • ਇਨਬਾਕਸਾਂ ਵਿੱਚ ਦੱਬੇ ਪੁਰਾਣੇ ਈਮੇਲ
  • ਬੇਤਰਤੀਬ Dropbox ਫੋਲਡਰ
  • ਕਈ GitHub ਰਿਪੋਜ਼ਿਟਰੀਆਂ
  • ਅਸੰਗਠਿਤ GitLab ਰਿਪੋਜ਼ਿਟਰੀਆਂ
  • ਹੱਥੋਂ ਲਿਖੇ ਨੋਟਸ ਜਿਨ੍ਹਾਂ ਦੀ ਵਿਆਖਿਆ ਸਿਰਫ਼ ਖਾਸ ਲੋਕ ਕਰ ਸਕਦੇ ਸਨ

ਇਹ ਖੰਡਿਤ ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਇੱਕ ਵੱਡੀ ਸਮੱਸਿਆ ਸੀ। ਨਵੇਂ ਵਿਦਿਆਰਥੀ ਸ਼ੁਰੂਆਤ ਕਰਨ ਦਾ ਤਰੀਕਾ ਸਮਝਣ ਲਈ ਹੀ ਹਫ਼ਤੇ ਲਗਾ ਦਿੰਦੇ ਸਨ, ਅਤੇ ਜਦੋਂ ਲੋਕ ਗ੍ਰੈਜੂਏਟ ਹੋ ਜਾਂਦੇ ਜਾਂ ਲੈਬ ਛੱਡ ਦਿੰਦੇ, ਤਾਂ ਕੀਮਤੀ ਗਿਆਨ ਲਗਾਤਾਰ ਗੁੰਮ ਹੁੰਦਾ ਰਹਿੰਦਾ ਸੀ।

ਮੈਂ ਇਹ ਸਮੱਸਿਆ ਪ੍ਰਣਾਲੀਬੱਧ ਢੰਗ ਨਾਲ ਹੱਲ ਕਰਨ ਦਾ ਬੀੜਾ ਚੁੱਕਿਆ। ਮੈਂ ਟ੍ਰਾਈਟਨ ਪ੍ਰੋਜੈਕਟ ਨਾਲ ਸੰਬੰਧਤ ਦਸਤਾਵੇਜ਼, ਕੋਡ, ਵੀਡੀਓ ਅਤੇ ਨੋਟ ਦੇ ਹਰ ਹਿੱਸੇ ਨੂੰ ਲੱਭਣ ਵਿੱਚ ਬੇਹਿਸਾਬ ਘੰਟੇ ਬਿਤਾਏ। ਫਿਰ ਮੈਂ ਸਭ ਕੁਝ ਇਕ ਕੇਂਦਰੀਕ੍ਰਿਤ GitLab ਰਿਪੋਜ਼ਿਟਰੀ ਵਿੱਚ ਸਾਫ਼, ਤਰਕਸੰਗਤ ਢਾਂਚੇ ਨਾਲ ਸੰਗਠਿਤ ਕੀਤਾ।

ਮੇਜ਼ 'ਤੇ ਟ੍ਰਾਈਟਨ ਮੇਜ਼ 'ਤੇ ਕਈ ਟ੍ਰਾਈਟਨ (ਕੁੱਲ 8, 5 ਬਣਾਏ ਜਾ ਰਹੇ ਹਨ)

ਚੰਗੇ ਕੋਣ ਨਾਲ ਸ਼ੈਲਫ਼ 'ਤੇ ਟ੍ਰਾਈਟਨ

ਕੇਂਦਰੀਕ੍ਰਿਤ ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਵਿੱਚ ਇਹ ਸ਼ਾਮਲ ਸੀ:

  • ਬਿਲਡ ਗਾਈਡਾਂ: ਟ੍ਰਾਈਟਨਾਂ ਨੂੰ ਸ਼ੁਰੂ ਤੋਂ ਜੋੜਨ ਲਈ ਕਦਮ-ਦਰ-ਕਦਮ ਨਿਰਦੇਸ਼
  • ਸਾਫਟਵੇਅਰ ਸੈੱਟਅੱਪ: ਵਿਕਾਸ ਵਾਤਾਵਰਨ ਸੈੱਟ ਕਰਨ ਲਈ ਪੂਰੀਆਂ ਗਾਈਡਾਂ
  • ਕੋਡ ਦਸਤਾਵੇਜ਼ੀਕਰਨ: ਸਪਸ਼ਟ ਵਿਆਖਿਆਵਾਂ ਨਾਲ ਵਧੀਆ ਟਿੱਪਣੀਆਂ ਵਾਲਾ ਕੋਡ
  • ਹਾਰਡਵੇਅਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ: ਵਿਸਥਾਰਤ ਪਾਰਟਸ ਲਿਸਟਾਂ, ਵਾਇਰਿੰਗ ਡਾਇਗ੍ਰਾਮ, ਅਤੇ PCB ਡਿਜ਼ਾਈਨ
  • ਟ੍ਰਬਲਸ਼ੂਟਿੰਗ ਗਾਈਡਾਂ: ਆਮ ਸਮੱਸਿਆਵਾਂ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਹੱਲ
  • ਵੀਡੀਓ ਟਿਊਟੋਰੀਅਲ: ਮੈਂ YouTube ‘ਤੇ ਸਿੱਖਿਆਤਮਕ ਵੀਡੀਓ ਬਣਾਈਆਂ ਅਤੇ ਅਪਲੋਡ ਕੀਤੀਆਂ, ਜਿਸ ਵਿੱਚ ਵਿਸਥਾਰਤ Optitrack ਕੈਲੀਬ੍ਰੇਸ਼ਨ ਟਿਊਟੋਰੀਅਲ ਵੀ ਸ਼ਾਮਲ ਹਨ:

ਮੈਂ ਭਵਿੱਖ ਦੀਆਂ ਯੋਗਦਾਨਾਂ ਨੂੰ ਸੰਗਠਿਤ ਅਤੇ ਪਹੁੰਚਯੋਗ ਬਣਾਉਣ ਲਈ ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਮਿਆਰ ਵੀ ਸਥਾਪਿਤ ਕੀਤੇ। ਜੋ ਰਿਪੋਜ਼ਿਟਰੀ ਢਾਂਚਾ ਮੈਂ ਬਣਾਇਆ, ਉਹ ਲੈਬ ਵਿੱਚ ਅਗਲੇ ਸਾਰੇ ਕੰਮਾਂ ਲਈ ਅਧਾਰ ਬਣ ਗਿਆ।

ਮੌਜੂਦਾ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਸਿਰਫ਼ ਸੰਗਠਿਤ ਕਰਨ ਤੋਂ ਇਲਾਵਾ, ਮੈਂ ਕਈ ਅਸਲ ਗਾਈਡਾਂ ਅਤੇ ਟਿਊਟੋਰੀਅਲ ਬਣਾਏ ਜਿਨ੍ਹਾਂ ਨੇ ਗਿਆਨ-ਆਧਾਰ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਖਾਲੀਪਣ ਭਰਿਆ। ਇਨ੍ਹਾਂ ਵਿੱਚ ਨਵੇਂ ਲੈਬ ਮੈਂਬਰਾਂ ਲਈ ਵਿਸਥਾਰਤ ਸੈੱਟਅੱਪ ਨਿਰਦੇਸ਼, ਵਿਸਤ੍ਰਿਤ ਟ੍ਰਬਲਸ਼ੂਟਿੰਗ ਗਾਈਡਾਂ, ਅਤੇ ਜਟਿਲ ਪ੍ਰਕਿਰਿਆਵਾਂ ਦੇ ਵੀਡੀਓ ਵਾਕਥਰੂ ਸ਼ਾਮਲ ਸਨ।

ਇਸਦਾ ਪ੍ਰਭਾਵ ਤੁਰੰਤ ਅਤੇ ਸਥਾਈ ਸੀ। ਨਵੇਂ ਵਿਦਿਆਰਥੀ ਹਫ਼ਤਿਆਂ ਦੀ ਬਜਾਏ ਦਿਨਾਂ ਵਿੱਚ ਹੀ ਕੰਮ ਸਮਝ ਸਕਦੇ ਸਨ। ਜੋ ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਰਿਪੋਜ਼ਿਟਰੀ ਮੈਂ ਬਣਾਈ, ਉਹ ਮੇਰੇ ਜਾਣ ਤੋਂ ਸਾਲਾਂ ਬਾਅਦ ਵੀ ਅੱਜ ਤੱਕ ਲੈਬ ਵਿੱਚ ਵਰਤੀ ਜਾ ਰਹੀ ਹੈ। ਇਹ ਟ੍ਰਾਈਟਨ ਪ੍ਰੋਜੈਕਟ ਲਈ ਇਕੋ ਸੱਚ ਦਾ ਸਰੋਤ ਬਣ ਗਈ ਅਤੇ ਭਵਿੱਖ ਦੇ ਖੋਜਕਰਤਿਆਂ ਲਈ ਬੇਅੰਤ ਘੰਟੇ/ਦਿਨ ਬਚਾਏ।

ਮਾਰਗਦਰਸ਼ਨ ਅਤੇ ਗਿਆਨ ਹਸਤਾਂਤਰਨ

HCR ਲੈਬ ਵਿੱਚ ਮੇਰੇ ਸਮੇਂ ਦੇ ਸਭ ਤੋਂ ਸੰਤੋਸ਼ਦਾਇਕ ਪੱਖਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੋਰਾਂ ਨੂੰ ਮਾਰਗਦਰਸ਼ਨ ਦੇਣ ਅਤੇ ਆਪਣੇ ਹਾਸਲ ਕੀਤੇ ਗਿਆਨ ਨੂੰ ਸਾਂਝਾ ਕਰਨ ਦਾ ਮੌਕਾ ਸੀ। ਜਿਵੇਂ-ਜਿਵੇਂ ਮੇਰਾ ਕੰਮ ਅੱਗੇ ਵਧਿਆ ਅਤੇ ਮੈਂ ਟ੍ਰਾਈਟਨ ਸਿਸਟਮਾਂ ਨਾਲ ਹੋਰ ਅਨੁਭਵੀ ਹੋਇਆ, ਮੈਂ ਨਵੇਂ ਟੀਮ ਮੈਂਬਰਾਂ ਦੀ ਟ੍ਰੇਨਿੰਗ ਲਈ ਵਧਦੀ ਜ਼ਿੰਮੇਵਾਰੀ ਸੰਭਾਲੀ।

ਲੈਬ ਉਤਰਾਧਿਕਾਰੀਆਂ ਦਾ ਮਾਰਗਦਰਸ਼ਨ

ਜਦੋਂ ਮੈਂ ਆਖਿਰਕਾਰ ਡਿਗਰੀ ਪੂਰੀ ਕਰਨ ਅਤੇ eBay ਵਿੱਚ ਆਪਣੇ ਕੰਮ ‘ਤੇ ਧਿਆਨ ਦੇਣ ਲਈ ਲੈਬ ਛੱਡਣ ਦੀ ਤਿਆਰੀ ਕਰ ਰਿਹਾ ਸੀ, ਮੈਂ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਕਿ ਦੋ ਲੋਕਾਂ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਟ੍ਰੇਨ ਕਰਾਂ ਜੋ ਮੇਰੇ ਜਾਣ ਤੋਂ ਬਾਅਦ ਟ੍ਰਾਈਟਨ ਪ੍ਰੋਜੈਕਟ ਸੰਭਾਲਣਗੇ। ਇਹ ਸਿਰਫ਼ ਇਹ ਦਿਖਾਉਣ ਬਾਰੇ ਨਹੀਂ ਸੀ ਕਿ ਚੀਜ਼ਾਂ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀਆਂ ਹਨ, ਸਗੋਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਬਾਰੇ ਸੀ ਕਿ ਉਹ ਅਸਲੀ ਅਸੂਲਾਂ ਨੂੰ ਸੱਚਮੁੱਚ ਸਮਝਣ ਤਾਂ ਜੋ ਉਹ ਨਵੀਂ ਇਨੋਵੇਸ਼ਨ ਜਾਰੀ ਰੱਖ ਸਕਣ।

ਮੈਂ ਹਫ਼ਤਿਆਂ ਉਨ੍ਹਾਂ ਦੇ ਨਾਲ ਨੇੜੇ ਤੋਂ ਕੰਮ ਕੀਤਾ, ਅਤੇ ਇਨ੍ਹਾਂ ਰਾਹੀਂ ਗੁਜ਼ਰਿਆ:

  • PID ਕੰਟਰੋਲ ਸਿਸਟਮਾਂ ਦੀ ਗਣਿਤੀ ਨੀਂਹ
  • ਕਈ ਰੋਬੋਟਾਂ ਦੇ ਸਮਨ્વਯ ਲਈ ਮਲਟੀ-ਪ੍ਰੋਸੈਸਿੰਗ ਆਰਕੀਟੈਕਚਰ
  • ਡੈਪਥ ਸੈਂਸਰ ਏਕੀਕਰਨ ਅਤੇ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਐਲਗੋਰਿਦਮ
  • ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਸਿਸਟਮ ਅਤੇ ਇਸਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਣਾ ਹੈ
  • ਡੀਬੱਗਿੰਗ ਤਕਨੀਕਾਂ ਅਤੇ ਆਮ ਨਾਕਾਮੀ ਮੋਡ

ਗਿਆਨ ਹਸਤਾਂਤਰਨ ਬਹੁਤ ਹੀ ਵਿਸਥਾਰਤ ਸੀ। ਅਸੀਂ ਮਿਲ ਕੇ ਅਸਲ ਡੀਬੱਗਿੰਗ ਸੈਸ਼ਨਾਂ ਵਿਚੋਂ ਲੰਘੇ, ਮੈਂ ਉਨ੍ਹਾਂ ਤੋਂ ਮੌਜੂਦਾ ਕੋਡ ਵਿੱਚ ਸੋਧ ਅਤੇ ਵਾਧਾ ਕਰਵਾਇਆ, ਅਤੇ ਮੈਂ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਕਿ ਉਹ ਨਵੇਂ ਟ੍ਰਾਈਟਨ ਸ਼ੁਰੂ ਤੋਂ ਸੁਤੰਤਰ ਤੌਰ ‘ਤੇ ਸੈੱਟਅੱਪ ਕਰ ਸਕਣ।

ਹਾਈ ਸਕੂਲ ਮਾਰਗਦਰਸ਼ਨ ਪ੍ਰੋਗਰਾਮ

ਸ਼ਾਇਦ ਇਸ ਤੋਂ ਵੀ ਵੱਧ ਸੰਤੋਸ਼ਦਾਇਕ ਮੇਰਾ ਲੈਬ ਦੇ ਆਊਟਰੀਚ ਪ੍ਰੋਗਰਾਮ ਰਾਹੀਂ ਇਕ ਹਾਈ ਸਕੂਲ ਵਿਦਿਆਰਥੀ ਦਾ ਮਾਰਗਦਰਸ਼ਨ ਕਰਨ ਦਾ ਅਨੁਭਵ ਸੀ। ਇਹ ਕਿਸੇ ਨੂੰ ਰੋਬੋਟਿਕਸ, ਕੰਪਿਊਟਰ ਸਾਇੰਸ, ਅਤੇ ਖੋਜ ਨਾਲ ਉਸ ਦੀ ਸਿੱਖਿਆ ਦੇ ਇੱਕ ਰੂਪਕਾਲੀ ਪੜਾਅ ‘ਤੇ ਜਾਣੂ ਕਰਵਾਉਣ ਦਾ ਵਧੀਆ ਮੌਕਾ ਸੀ।

ਮੈਂ ਇੱਕ ਵਿਸਤ੍ਰਿਤ ਪਾਠਕ੍ਰਮ ਤਿਆਰ ਕੀਤਾ ਜਿਸ ਵਿੱਚ ਇਹ ਸ਼ਾਮਲ ਸੀ:

ਕੰਪਿਊਟਰ ਸਾਇੰਸ ਦੀਆਂ ਬੁਨਿਆਦਾਂ:

  • ਮੁੱਖ ਭਾਸ਼ਾ ਵਜੋਂ Python ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਸੰਕਲਪ
  • ਆਬਜੈਕਟ-ਓਰੀਐਂਟਿਡ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਦਾ ਪਰਿਚਯ
  • ਐਲਗੋਰਿਦਮ ਅਤੇ ਡਾਟਾ ਸਟਰੱਕਚਰਾਂ ਦੀ ਸਮਝ

ਰੋਬੋਟਿਕਸ ਸੰਕਲਪ:

  • ਸੈਂਸਰ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ ਅਤੇ ਉਨ੍ਹਾਂ ਨਾਲ ਇੰਟਰਫੇਸ ਕਿਵੇਂ ਕਰਨਾ ਹੈ
  • ਐਕਚੂਏਟਰ ਕੰਟਰੋਲ ਅਤੇ ਮੋਟਰ ਸਿਸਟਮ
  • ਸਵੈਚਾਲਿਤ ਸਿਸਟਮਾਂ ਅਤੇ ਫੀਡਬੈਕ ਕੰਟਰੋਲ ਦੀਆਂ ਬੁਨਿਆਦਾਂ

ROS (ਰੋਬੋਟ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ):

  • ਪਬਲਿਸ਼/ਸਬਸਕ੍ਰਾਈਬ ਮੈਸੇਜਿੰਗ ਸਿਸਟਮ ਦੀ ਸਮਝ
  • ਨੋਡ ਅਤੇ ਸੇਵਾਵਾਂ ਬਣਾਉਣਾ
  • ਲਾਂਚ ਫਾਈਲਾਂ ਅਤੇ ਪੈਰਾਮੀਟਰ ਸਰਵਰਾਂ ਨਾਲ ਕੰਮ ਕਰਨਾ

ਹੱਥੀਂ ਪ੍ਰੋਜੈਕਟ ਕੰਮ:

  • ਅਸੀਂ ਮਿਲ ਕੇ ਇੱਕ ROS ਸੇਵਾ ਬਣਾਈ ਜੋ ਟ੍ਰਾਈਟਨ ਦੇ ਸਿਰ ‘ਤੇ LED ਸਿਸਟਮ ਨੂੰ ਕੰਟਰੋਲ ਕਰਦੀ ਸੀ
  • ਉਸਨੇ ਸਾਫ਼, ਦਸਤਾਵੇਜ਼ੀਕ੍ਰਿਤ ਕੋਡ ਲਿਖਣਾ ਸਿੱਖਿਆ ਜੋ ਸਾਡੇ ਮੌਜੂਦਾ ਸਿਸਟਮਾਂ ਨਾਲ ਏਕੀਕ੍ਰਿਤ ਹੁੰਦਾ ਸੀ
  • ਉਸ ਵੱਲੋਂ ਬਣਾਈ LED ਕੰਟਰੋਲ ਸੇਵਾ ਟ੍ਰਾਈਟਨ ਕੋਡਬੇਸ ਦਾ ਸਥਾਈ ਹਿੱਸਾ ਬਣ ਗਈ

ਇਸ ਮਾਰਗਦਰਸ਼ਨ ਨੂੰ ਖਾਸ ਬਣਾਉਣ ਵਾਲੀ ਗੱਲ ਇਹ ਸੀ ਕਿ ਉਸਦੀ ਪ੍ਰਗਤੀ ਨੂੰ ਦੇਖਣਾ—ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਬਾਰੇ ਲਗਭਗ ਕੁਝ ਵੀ ਨਾ ਜਾਣਨ ਤੋਂ ਲੈ ਕੇ ਇੱਕ ਸਰਗਰਮ ਖੋਜ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਅਰਥਪੂਰਨ ਕੋਡ ਯੋਗਦਾਨ ਪਾਉਣ ਤੱਕ। ਉਹ “ਵੈਰੀਏਬਲ ਕੀ ਹੁੰਦਾ ਹੈ?” ਪੁੱਛਣ ਤੋਂ ਲੈ ਕੇ ਸੁਤੰਤਰ ਤੌਰ ‘ਤੇ ROS ਸੰਚਾਰ ਸਮੱਸਿਆਵਾਂ ਦਾ ਡੀਬੱਗ ਕਰਨ ਅਤੇ ਆਪਣੇ ਖੁਦ ਦੇ ਸੇਵਾ ਇੰਪਲੀਮੈਂਟੇਸ਼ਨ ਲਿਖਣ ਤੱਕ ਪਹੁੰਚ ਗਈ।

ਉਸ ਦੁਆਰਾ ਵਿਕਸਿਤ LED ਕੰਟਰੋਲ ਸਿਸਟਮ ਨੇ ਖੋਜਕਾਰਾਂ ਨੂੰ ਸਧਾਰਣ ROS ਕਮਾਂਡਾਂ ਰਾਹੀਂ ਟ੍ਰਾਈਟਨ ਦੇ ਸਿਰ ਵਾਲੀਆਂ LEDs ਦੇ ਰੰਗ ਅਤੇ ਪੈਟਰਨ ਆਸਾਨੀ ਨਾਲ ਬਦਲਣ ਦੇ ਯੋਗ ਬਣਾਇਆ। ਇਹ ਸੁਣਨ ਵਿੱਚ ਸਧਾਰਣ ਲੱਗ ਸਕਦਾ ਹੈ, ਪਰ ਇਸ ਲਈ ROS ਆਰਕੀਟੈਕਚਰ, ਹਾਰਡਵੇਅਰ ਇੰਟਰਫੇਸਿੰਗ, ਅਤੇ ਠੀਕ ਸਾਫਟਵੇਅਰ ਡਿਜ਼ਾਈਨ ਪੈਟਰਨਾਂ ਦੀ ਸਮਝ ਦੀ ਲੋੜ ਸੀ। ਉਸਦਾ ਯੋਗਦਾਨ ਅੱਜ ਵੀ ਲੈਬ ਵਿੱਚ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ।

ਮੈਨੂੰ ਮਿਲੀ ਸਿੱਖਿਆ ਮੇਰੇ ਲਈ ਉਨੀ ਹੀ ਸਿੱਖਣਯੋਗ ਸੀ ਜਿੰਨੀ ਉਸ ਲਈ ਸੀ। ਇਸ ਨੇ ਮੈਨੂੰ ਜਟਿਲ ਧਾਰਨਾਵਾਂ ਨੂੰ ਸਮਝਣਯੋਗ ਹਿੱਸਿਆਂ ਵਿੱਚ ਵੰਡਣ ਲਈ ਮਜਬੂਰ ਕੀਤਾ ਅਤੇ ਸੱਚਮੁੱਚ ਇਸ ਗੱਲ ਬਾਰੇ ਸੋਚਣ ਲਈ ਕਿ ਅਸੀਂ ਕੀ ਕਰ ਰਹੇ ਸੀ, ਉਸ ਦੀਆਂ ਬੁਨਿਆਦਾਂ ਕੀ ਸਨ। ਕਿਸੇ ਹੋਰ ਨੂੰ ਸਿਖਾਉਣ ਨਾਲ ਮੈਂ ਇੱਕ ਬਿਹਤਰ ਇੰਜੀਨੀਅਰ ਅਤੇ ਖੋਜਕਰਤਾ ਬਣਿਆ।

ਪੀਐਚਡੀ ਖੋਜ ਨਾਲ ਸਹਿਯੋਗ

ਲੈਬ ਵਿੱਚ ਮੇਰੇ ਸਮੇਂ ਦੇ ਸਭ ਤੋਂ ਪੇਸ਼ਾਵਰ ਤੌਰ ‘ਤੇ ਸੰਤੋਸ਼ਦਾਇਕ ਪੱਖਾਂ ਵਿੱਚੋਂ ਇੱਕ ਪੈਂਗ ਨਾਲ ਨਜ਼ਦੀਕੀ ਤੌਰ ‘ਤੇ ਕੰਮ ਕਰਨਾ ਸੀ, ਜੋ ਇੱਕ ਪੀਐਚਡੀ ਵਿਦਿਆਰਥੀ ਸੀ ਅਤੇ ਜਿਸ ਦੀ ਖੋਜ ਸਵੈ-ਚਲਿਤ ਕਾਰ ਐਲਗੋਰਿਦਮਾਂ ‘ਤੇ ਕੇਂਦਰਿਤ ਸੀ। ਮੈਂ Triton ਸਿਸਟਮ ਵਿੱਚ ਕੀਤੀਆਂ ਸੌਫਟਵੇਅਰ ਸੁਧਾਰਾਂ ਨੇ ਉਸ ਦੀ ਡਾਕਟਰੇਟ ਖੋਜ ਨੂੰ ਸਮਰਥਨ ਦੇਣ ਵਿੱਚ ਮਦਦ ਕੀਤੀ।

ਪੈਂਗ ਦੀ ਖੋਜ ਲਈ ਸਵੈ-ਚਲਿਤ ਕਾਰਾਂ ਦੇ ਦ੍ਰਿਸ਼ਾਂ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਸਹੀ, ਭਰੋਸੇਯੋਗ ਬਹੁ-ਰੋਬੋਟ ਸਹਿਯੋਗ ਦੀ ਲੋੜ ਸੀ। ਹਿਲਚਲ ਨਿਯੰਤਰਣ ਅਤੇ ਬਹੁ-ਰੋਬੋਟ ਪ੍ਰਣਾਲੀਆਂ ਵਿੱਚ ਮੇਰੇ ਸੁਧਾਰਾਂ ਤੋਂ ਪਹਿਲਾਂ, ਇਹ ਪ੍ਰਯੋਗ ਕਰਨਾ ਕਾਫ਼ੀ ਔਖਾ ਸੀ। ਰੋਬੋਟ ਹੌਲੀ ਸਨ, ਘੱਟ ਸਹੀ ਸਨ, ਅਤੇ ਇੰਨੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਇਕੱਠੇ ਕੰਮ ਨਹੀਂ ਕਰ ਸਕਦੇ ਸਨ।

ਮੇਰੀਆਂ ਯੋਗਦਾਨਾਂ ਨੇ ਪੈਂਗ ਦੀ ਖੋਜ ਨੂੰ ਕਈ ਖੇਤਰਾਂ ਵਿੱਚ ਮਦਦ ਕੀਤੀ:

ਚੌਰਾਹਾ ਪ੍ਰਬੰਧਨ ਅਧਿਐਨ: ਸੁਧਾਰੇ ਹੋਏ PID ਕੰਟਰੋਲਰਾਂ ਅਤੇ ਬਹੁ-ਰੋਬੋਟ ਸਹਿਯੋਗ ਨਾਲ, ਪੈਂਗ ਉਹ ਚੌਰਾਹਾ ਦ੍ਰਿਸ਼ ਨਕਲ ਕਰ ਸਕਦਾ ਸੀ ਜਿੱਥੇ ਕਈ “ਵਾਹਨ” (Tritons) ਨੂੰ ਆਪਣੀਆਂ ਗਤੀਵਿਧੀਆਂ ਦਾ ਸਹਿ-ਸੰਚਾਲਨ ਕਰਨਾ ਪੈਂਦਾ ਸੀ। ਬਿਹਤਰ ਸਮਾਂ-ਸੰਯੋਜਨ ਅਤੇ ਸਥਿਤੀਕਰਨ ਨੇ ਇਹ ਅਧਿਐਨ ਹੋਰ ਸੰਭਵ ਬਣਾਏ।

ਵਾਹਨ-ਤੋਂ-ਵਾਹਨ ਸੰਚਾਰ: ਮੇਰੇ ਦੁਆਰਾ ਵਿਕਸਿਤ ਕੀਤੇ ਗਏ ਬਹੁ-ਪ੍ਰਕਿਰਿਆ ਢਾਂਚੇ ਨੇ ਪੈਂਗ ਨੂੰ ਨਕਲੀ ਵਾਹਨਾਂ ਵਿਚਕਾਰ ਸੰਚਾਰ ਪ੍ਰੋਟੋਕੋਲ ਲਾਗੂ ਕਰਨ ਅਤੇ ਪਰਖਣ ਦੀ ਆਗਿਆ ਦਿੱਤੀ। ਹਰ Triton ਹੋਰਾਂ ਨਾਲ ਸਹਿ-ਸੰਚਾਲਨ ਕਰਦਿਆਂ ਫੈਸਲੇ ਕਰ ਸਕਦਾ ਸੀ, ਬਿਲਕੁਲ ਉਸੇ ਤਰ੍ਹਾਂ ਜਿਵੇਂ ਸਵੈ-ਚਲਿਤ ਕਾਰਾਂ ਨੂੰ ਕੰਮ ਕਰਨਾ ਪੈਂਦਾ ਹੈ।

SLAM ਅਤੇ ਮੈਪਿੰਗ ਖੋਜ: ਡੈਪਥ ਸੈਂਸਰ ਏਕੀਕਰਨ ਦੇ ਕੰਮ ਨੇ ਪੈਂਗ ਨੂੰ ਉਸ ਦੀ ਸਮਕਾਲੀ ਸਥਾਨਕੀਕਰਨ ਅਤੇ ਮੈਪਿੰਗ ਖੋਜ ਲਈ ਵਾਧੂ ਡਾਟਾ ਪ੍ਰਦਾਨ ਕੀਤਾ। ਸਹਿ-ਸੰਚਾਲਿਤ ਸੰਵੇਦਨ ਸਮਰੱਥਾਵਾਂ ਵਾਲੇ ਕਈ ਰੋਬੋਟ ਹੋਣ ਨਾਲ ਹੋਰ ਵਿਸਤ੍ਰਿਤ ਮੈਪਿੰਗ ਪ੍ਰਯੋਗ ਸੰਭਵ ਹੋਏ।

ਸਾਡੇ ਸਹਿਯੋਗ ਨੂੰ ਖਾਸ ਤੌਰ ‘ਤੇ ਕੀਮਤੀ ਬਣਾਉਣ ਵਾਲੀ ਗੱਲ ਇਹ ਸੀ ਕਿ ਇਹ ਸਿਰਫ਼ ਮੇਰਾ ਉਸ ਦੀ ਖੋਜ ਵਿੱਚ ਮਦਦ ਕਰਨਾ ਨਹੀਂ ਸੀ, ਬਲਕਿ ਇਕ ਸੱਚੀ ਭਾਈਵਾਲੀ ਸੀ। ਖੁਦਚਾਲਕ ਵਾਹਨਾਂ ਦੇ ਸਿਧਾਂਤਕ ਪੱਖਾਂ ਬਾਰੇ ਪੈਂਗ ਦੀ ਸਮਝ ਨੇ ਮੇਰੀਆਂ ਵਿਹਾਰਕ ਲਾਗੂਆਤਾਂ ਨੂੰ ਦਿਸ਼ਾ ਦੇਣ ਵਿੱਚ ਮਦਦ ਕੀਤੀ। ਉਸ ਦੀ ਪ੍ਰਤੀਕਿਰਿਆ ਅਤੇ ਲੋੜਾਂ ਨੇ ਮੈਨੂੰ ਪ੍ਰਣਾਲੀਆਂ ਨੂੰ ਹੋਰ ਮਜ਼ਬੂਤ ਅਤੇ ਸਮਰੱਥ ਬਣਾਉਣ ਲਈ ਪ੍ਰੇਰਿਤ ਕੀਤਾ।

ਅਸੀਂ ਲੈਬ ਵਿੱਚ ਇਕੱਠੇ ਕਈ ਘੰਟੇ ਬਿਤਾਏ, ਦ੍ਰਿਸ਼ਾਂ ਦੀ ਡੀਬੱਗਿੰਗ ਕਰਦੇ, ਵੱਖ-ਵੱਖ ਨਿਯੰਤਰਣ ਰਣਨੀਤੀਆਂ ‘ਤੇ ਚਰਚਾ ਕਰਦੇ, ਅਤੇ ਇਹ ਖੋਜਦੇ ਰਹੇ ਕਿ Triton ਪਲੇਟਫਾਰਮ ਕੀ ਕੁਝ ਕਰ ਸਕਦਾ ਹੈ। ਪੈਂਗ ਮੇਰਾ ਸਹਿਕਰਮੀ ਵੀ ਬਣ ਗਿਆ ਅਤੇ ਦੋਸਤ ਵੀ, ਅਤੇ ਉਸ ਨਾਲ ਕੰਮ ਕਰਨ ਨੇ ਮੈਨੂੰ ਇਹ ਸਮਝਣ ਵਿੱਚ ਬਹੁਤ ਕੁਝ ਸਿਖਾਇਆ ਕਿ ਅਕਾਦਮਿਕ ਖੋਜ ਅਸਲ ਵਿੱਚ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ।

ਜਿਨ੍ਹਾਂ ਪ੍ਰਣਾਲੀਆਂ ਨੂੰ ਮੈਂ ਬਣਾਇਆ, ਉਹ ਪੈਂਗ ਦੇ ਡਿਸਰਟੇਸ਼ਨ ਕੰਮ ਦਾ ਲਾਭਦਾਇਕ ਹਿੱਸਾ ਬਣ ਗਈਆਂ। ਖੁਦਚਾਲਕ ਵਾਹਨ ਤਕਨਾਲੋਜੀ ਵਿੱਚ ਮੇਰੇ ਵਿਹਾਰਕ ਇੰਜੀਨੀਅਰਿੰਗ ਯੋਗਦਾਨਾਂ ਨੂੰ ਖੋਜ ਦਾ ਸਮਰਥਨ ਕਰਦੇ ਦੇਖਣਾ ਸੱਚਮੁੱਚ ਬਹੁਤ ਸੰਤੋਸ਼ਦਾਇਕ ਸੀ। ਇਸ ਨੇ ਮਜ਼ਬੂਤ ਇੰਜੀਨੀਅਰਿੰਗ ਅਤੇ ਖੋਜ ਦੇ ਮਿਲਕੇ ਲਾਭਦਾਇਕ ਨਤੀਜੇ ਪੈਦਾ ਕਰਨ ਬਾਰੇ ਮੇਰੀ ਦਿਲਚਸਪੀ ਨੂੰ ਹੋਰ ਮਜ਼ਬੂਤ ਕੀਤਾ।

ਲੈਬ ਛੱਡਣ ਤੋਂ ਬਾਅਦ ਵੀ, ਪੈਂਗ ਅਤੇ ਮੈਂ ਸੰਪਰਕ ਵਿੱਚ ਰਹੇ। ਇਹ ਜਾਣਨਾ ਕਿ ਮੇਰਾ ਕੰਮ ਮੇਰੇ ਜਾਣ ਤੋਂ ਬਾਅਦ ਵੀ ਮਹੱਤਵਪੂਰਣ ਖੋਜ ਵਿੱਚ ਯੋਗਦਾਨ ਪਾਉਂਦਾ ਰਿਹਾ, ਬਹੁਤ ਹੀ ਸਲਾਹੁਣਯੋਗ ਸੀ।

ਦ੍ਰਿਸ਼ਟੀਕੋਣ: ਵਿਕਾਸ ਦਾ ਪ੍ਰੀ-LLM ਯੁੱਗ

ਇਹ ਗੱਲ ਧਿਆਨ ਦੇ ਯੋਗ ਹੈ ਕਿ ਇਹ ਸਾਰਾ ਕੰਮ ਸੌਫਟਵੇਅਰ ਵਿਕਾਸ ਦੇ ਪ੍ਰੀ-LLM ਯੁੱਗ ਦੌਰਾਨ ਕੀਤਾ ਗਿਆ ਸੀ। ਇਹ ਸਭ ਕੁਝ 2020 ਤੋਂ 2021 ਵਿਚਕਾਰ (ਮੁੱਖਤੌਰ ‘ਤੇ 2021 ਵਿੱਚ), ChatGPT, Claude, Perplexity, ਜਾਂ Cursor IDE ਵਰਗੇ AI-ਸੰਚਾਲਿਤ ਵਿਕਾਸ ਸੰਦਾਂ ਦੇ ਮੌਜੂਦ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਹੋਇਆ ਸੀ।

ਕੋਡ ਦੀ ਹਰ ਲਾਈਨ ਸ਼ੁਰੂ ਤੋਂ ਲਿਖੀ ਗਈ, ਹਰ ਐਲਗੋਰਿਦਮ ਅਕਾਦਮਿਕ ਪੇਪਰਾਂ ਅਤੇ ਪਾਠਪੁਸਤਕਾਂ ਰਾਹੀਂ ਖੋਜਿਆ ਗਿਆ, ਅਤੇ ਡੀਬੱਗਿੰਗ ਦੇ ਹਰ ਸੈਸ਼ਨ ਵਿੱਚ ਪ੍ਰਿੰਟ ਸਟੇਟਮੈਂਟਾਂ, ਡੀਬੱਗਰਾਂ, ਅਤੇ ਵਿਧੀਬੱਧ ਟੈਸਟਿੰਗ ਵਰਗੇ ਰਵਾਇਤੀ ਤਰੀਕੇ ਸ਼ਾਮਲ ਸਨ। ਜਦੋਂ ਮੈਂ ਕਿਸੇ ਕੋਆਰਡੀਨੇਟ ਰੂਪਾਂਤਰਨ ਜਾਂ PID ਟਿਊਨਿੰਗ ਸਮੱਸਿਆ ਵਿੱਚ ਫਸ ਜਾਂਦਾ ਸੀ, ਮੈਂ ਸਿਰਫ਼ ਕਿਸੇ AI ਸਹਾਇਕ ਨੂੰ ਧਾਰਨਾ ਸਮਝਾਉਣ ਜਾਂ ਸਮੱਸਿਆ ਡੀਬੱਗ ਕਰਨ ਲਈ ਕਹਿ ਨਹੀਂ ਸਕਦਾ ਸੀ।

ਇਸ ਨੇ ਵਿਕਾਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਕਾਫ਼ੀ ਜ਼ਿਆਦਾ ਚੁਣੌਤੀਪੂਰਣ ਬਣਾਇਆ, ਪਰ ਨਾਲ ਹੀ ਹੋਰ ਸਿੱਖਣਯੋਗ ਵੀ। ਮੈਨੂੰ ਇਹ ਕਰਨਾ ਪੈਂਦਾ ਸੀ:

ਹਰ ਚੀਜ਼ ਦਾ ਹੱਥੋਂ ਖੋਜ ਕਰੋ: PID ਨਿਯੰਤਰਣ ਸਿਧਾਂਤ ਨੂੰ ਸਮਝਣ ਲਈ ਪਾਠਪੁਸਤਕਾਂ ਅਤੇ ਅਕਾਦਮਿਕ ਪੇਪਰ ਪੜ੍ਹਣੇ ਪੈਂਦੇ ਸਨ। ਕੋਆਰਡੀਨੇਟ ਰੂਪਾਂਤਰਨ ਸਮਝਣ ਲਈ ਗਣਿਤ ਨੂੰ ਹੱਥੋਂ ਕੰਮ ਕਰਕੇ ਦੇਖਣਾ ਪੈਂਦਾ ਸੀ। ਲਾਗੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਹਰ ਧਾਰਨਾ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਮਝਣਾ ਲਾਜ਼ਮੀ ਸੀ।

AI ਸਹਾਇਤਾ ਤੋਂ ਬਿਨਾਂ ਡੀਬੱਗ ਕਰੋ: ਜਦੋਂ ਰੋਬੋਟ ਅਣਉਮੀਦ ਦਿਸ਼ਾਵਾਂ ਵਿੱਚ ਚੱਲਦੇ ਜਾਂ ਲਕਸ਼ਾਂ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਝੋਲ ਖਾਂਦੇ, ਮੈਨੂੰ ਤਰਕ ਨੂੰ ਵਿਧੀਬੱਧ ਤੌਰ ‘ਤੇ ਟਰੇਸ ਕਰਨਾ, ਡੀਬੱਗ ਆਉਟਪੁੱਟ ਜੋੜਣੇ, ਅਤੇ ਇਕ-ਇਕ ਕਰਕੇ ਅਨੁਮਾਨਾਂ ਦੀ ਜਾਂਚ ਕਰਨੀ ਪੈਂਦੀ ਸੀ। ਸੰਭਾਵਿਤ ਸਮੱਸਿਆਵਾਂ ਸੁਝਾਉਣ ਜਾਂ ਗਲਤੀ ਦੇ ਪੈਟਰਨਾਂ ਦੀ ਵਿਆਖਿਆ ਕਰਨ ਲਈ ਕੋਈ AI ਨਹੀਂ ਸੀ।

ਮੂਲ ਸਿਧਾਂਤਾਂ ਤੋਂ ਸਿੱਖੋ: ਇਹ ਪੁੱਛਣ ਦੀ ਸਮਰੱਥਾ ਤੋਂ ਬਿਨਾਂ ਕਿ “ਮੈਂ ਰੋਬੋਟਿਕਸ ਲਈ Python ਵਿੱਚ ਬਹੁ-ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਕਿਵੇਂ ਲਾਗੂ ਕਰਾਂ?” ਮੈਨੂੰ ਅਧਾਰਭੂਤ ਧਾਰਨਾਵਾਂ ਨੂੰ ਗਹਿਰਾਈ ਨਾਲ ਸਮਝਣਾ ਪੈਂਦਾ ਸੀ। ਇਸ ਨੇ ਮੈਨੂੰ ਸਮਕਾਲੀ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ, ਨਿਯੰਤਰਣ ਪ੍ਰਣਾਲੀਆਂ, ਅਤੇ ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਵਿੱਚ ਮਜ਼ਬੂਤ ਬੁਨਿਆਦ ਬਣਾਉਣ ਲਈ ਮਜਬੂਰ ਕੀਤਾ।

ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਅਹਿਮ ਸੀ: ਕਿਉਂਕਿ ਮੈਂ ਬਾਅਦ ਵਿੱਚ ਕੋਡ ਸਮਝਾਉਣ ਲਈ AI ‘ਤੇ ਨਿਰਭਰ ਨਹੀਂ ਕਰ ਸਕਦਾ ਸੀ, ਮੈਨੂੰ ਬਹੁਤ ਹੀ ਸਪਸ਼ਟ ਦਸਤਾਵੇਜ਼ ਅਤੇ ਟਿੱਪਣੀਆਂ ਲਿਖਣੀਆਂ ਪੈਂਦੀਆਂ ਸਨ। ਇਹ ਅਨੁਸ਼ਾਸਨ ਹੋਰਾਂ ਨੂੰ ਗਿਆਨ ਸੌਂਪਦੇ ਸਮੇਂ ਬੇਹੱਦ ਕੀਮਤੀ ਸਾਬਤ ਹੋਇਆ।

ਪਿੱਛੇ ਮੁੜ ਕੇ ਦੇਖਣ ‘ਤੇ, ਜਦੋਂ ਕਿ ਆਧੁਨਿਕ AI ਸੰਦਾਂ ਨੇ ਵਿਕਾਸ ਦੇ ਕਈ ਪੱਖਾਂ ਨੂੰ ਤੇਜ਼ ਕਰ ਦਿੱਤਾ ਹੁੰਦਾ, ਉਨ੍ਹਾਂ ਤੋਂ ਬਿਨਾਂ ਕੰਮ ਕਰਨ ਨੇ ਮੈਨੂੰ ਸਮੱਸਿਆ-ਹੱਲ ਕਰਨ ਦੇ ਹੋਰ ਡੂੰਘੇ ਹੁਨਰ ਅਤੇ ਅਧਾਰਭੂਤ ਪ੍ਰਣਾਲੀਆਂ ਦੀ ਹੋਰ ਵਿਸਤ੍ਰਿਤ ਸਮਝ ਵਿਕਸਿਤ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕੀਤਾ। ਇਹ ਸੋਚਣਾ ਦਿਲਚਸਪ ਹੈ ਕਿ ਅੱਜ ਦੇ ਵਿਕਾਸ ਸੰਦ ਉਪਲਬਧ ਹੋਣ ਨਾਲ ਇਹ ਪ੍ਰੋਜੈਕਟ ਕਿੰਨਾ ਵੱਖਰਾ ਹੋ ਸਕਦਾ ਸੀ।

ਛੱਡਣ ਦਾ ਮੁਸ਼ਕਲ ਫ਼ੈਸਲਾ

ਜਿੰਨਾ ਵੀ ਮੈਂ HCR ਲੈਬ ਵਿੱਚ ਕੰਮ ਕਰਨਾ ਪਸੰਦ ਕਰਦਾ ਸੀ, 2021 ਦੇ ਅਖੀਰ ਤੱਕ ਮੈਂ ਇਕ ਮੁਸ਼ਕਲ ਫੈਸਲੇ ਦਾ ਸਾਹਮਣਾ ਕਰ ਰਿਹਾ ਸੀ ਜੋ ਕਈ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਆਉਂਦਾ ਹੈ: ਕਈ ਮੌਕਿਆਂ ਅਤੇ ਜ਼ਿੰਮੇਵਾਰੀਆਂ ਵਿੱਚ ਸੰਤੁਲਨ ਬਣਾਉਣਾ। ਮੈਂ ਇੱਕੋ ਸਮੇਂ eBay ਵਿੱਚ ਸੌਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰ ਵਜੋਂ ਪੂਰਾ-ਸਮੇਂ ਕੰਮ ਕਰ ਰਿਹਾ ਸੀ, Mines ਵਿੱਚ ਆਪਣੀ ਕੰਪਿਊਟਰ ਸਾਇੰਸ ਡਿਗਰੀ ਪੂਰੀ ਕਰ ਰਿਹਾ ਸੀ, ਅਤੇ HCR ਲੈਬ ਵਿੱਚ ਖੋਜ ਵਿੱਚ ਯੋਗਦਾਨ ਪਾ ਰਿਹਾ ਸੀ।

eBay ਦਾ ਮੌਕਾ ਮਹੱਤਵਪੂਰਣ ਸੀ; ਇਹ ਮੇਰੀ ਪਹਿਲੀ ਵੱਡੀ ਸੌਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰਿੰਗ ਭੂਮਿਕਾ ਸੀ, ਇਸ ਨੇ ਬੇਹੱਦ ਕੀਮਤੀ ਉਦਯੋਗਕ ਅਨੁਭਵ ਦਿੱਤਾ, ਅਤੇ ਮੈਨੂੰ ਇੱਕ ਸਥਿਰ ਆਮਦਨ ਵੀ ਦਿੱਤੀ। ਹਾਲਾਂਕਿ, ਪੂਰਾ-ਸਮੇਂ ਕੰਮ, ਡਿਗਰੀ ਪੂਰੀ ਕਰਨਾ, ਅਤੇ ਖੋਜ ਵਿੱਚ ਅਰਥਪੂਰਣ ਯੋਗਦਾਨ ਦੇਣਾ ਜਾਰੀ ਰੱਖਣਾ ਸਿਰਫ਼ ਅਸਥਿਰ ਸੀ। ਕੁਝ ਨਾ ਕੁਝ ਛੱਡਣਾ ਹੀ ਪੈਣਾ ਸੀ।

ਜਦੋਂ ਮੈਂ ਡਾ. ਝਾਂਗ ਕੋਲ ਲੈਬ ਦੇ ਕੰਮ ‘ਤੇ ਹੋਰ ਧਿਆਨ ਦੇਣ ਲਈ ਆਪਣੇ ਕੋਰਸ ਲੋਡ ਨੂੰ ਘਟਾਉਣ ਦੀ ਸੰਭਾਵਨਾ ਲੈ ਕੇ ਗਿਆ, ਉਨ੍ਹਾਂ ਨੇ ਇਸ ਦੇ ਵਿਰੁੱਧ ਜ਼ੋਰਦਾਰ ਸਲਾਹ ਦਿੱਤੀ। ਉਨ੍ਹਾਂ ਦਾ ਤਰਕ ਮਜ਼ਬੂਤ ਸੀ: ਮੇਰੀ ਡਿਗਰੀ ਪੂਰੀ ਕਰਨਾ ਪਹਿਲੀ ਤਰਜੀਹ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ, ਅਤੇ eBay ਦਾ ਉਦਯੋਗਕ ਅਨੁਭਵ ਮੇਰੇ ਕਰੀਅਰ ਵਿਕਾਸ ਲਈ ਕੀਮਤੀ ਹੋਵੇਗਾ। ਉਨ੍ਹਾਂ ਨੂੰ ਲੱਗਿਆ ਕਿ ਖੋਜ ‘ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਨ ਲਈ ਕਲਾਸਾਂ ਛੱਡਣਾ, ਭਾਵੇਂ ਆਕਰਸ਼ਕ ਹੋਵੇ, ਪਰ ਸ਼ਾਇਦ ਸਭ ਤੋਂ ਵਧੀਆ ਲੰਬੇ ਸਮੇਂ ਦਾ ਫੈਸਲਾ ਨਹੀਂ ਹੋਵੇਗਾ।

ਇਸ ਲਈ ਸਤੰਬਰ 2021 ਵਿੱਚ, ਲੈਬ ਵਿੱਚ ਲਗਭਗ 8 ਮਹੀਨਿਆਂ ਦੇ ਤੀਬਰ ਕੰਮ ਤੋਂ ਬਾਅਦ, ਮੈਂ ਆਪਣੀ ਖੋਜ ਸਹਾਇਕ ਭੂਮਿਕਾ ਤੋਂ ਹਟਣ ਦਾ ਮੁਸ਼ਕਲ ਫੈਸਲਾ ਕੀਤਾ ਤਾਂ ਕਿ ਆਪਣੀ ਡਿਗਰੀ ਪੂਰੀ ਕਰਨ ਅਤੇ eBay ਵਿੱਚ ਆਪਣੇ ਕੰਮ ‘ਤੇ ਧਿਆਨ ਦੇ ਸਕਾਂ। ਉਸ ਸਮੇਂ ਇਹ ਮੇਰੇ ਲਈ ਕੀਤੇ ਗਏ ਸਭ ਤੋਂ ਮੁਸ਼ਕਲ ਪੇਸ਼ਾਵਰ ਫੈਸਲਿਆਂ ਵਿੱਚੋਂ ਇੱਕ ਸੀ।

ਲੈਬ ਨੂੰ ਅਧਿਕਾਰਕ ਤੌਰ ‘ਤੇ ਛੱਡਣ ਤੋਂ ਬਾਅਦ ਵੀ, ਜਦੋਂ ਵੀ ਕਿਸੇ ਨੂੰ ਮੇਰੇ ਬਣਾਏ ਸਿਸਟਮਾਂ ਨਾਲ ਮਦਦ ਦੀ ਲੋੜ ਹੁੰਦੀ ਸੀ, ਮੈਂ ਸਹਾਇਤਾ ਦਿੰਦਾ ਰਿਹਾ। ਮੈਂ ਲੋੜ ਮੁਤਾਬਕ ਦਸਤਾਵੇਜ਼ ਅੱਪਡੇਟ ਕਰਦਾ, ਡੀਬੱਗਿੰਗ ਬਾਰੇ ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਦਿੰਦਾ, ਅਤੇ ਦੂਰੋਂ ਸਮੱਸਿਆਵਾਂ ਹੱਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ। ਜਿਹੜੇ ਸੰਬੰਧ ਮੈਂ ਬਣਾਏ ਸਨ ਅਤੇ ਪ੍ਰੋਜੈਕਟ ਦੀ ਕਾਮਯਾਬੀ ਵਿੱਚ ਮੇਰੀ ਜੋ ਰੁਚੀ ਸੀ, ਉਹ ਸਿਰਫ਼ ਇਸ ਕਰਕੇ ਗਾਇਬ ਨਹੀਂ ਹੋ ਗਏ ਕਿ ਮੈਂ ਅਧਿਕਾਰਕ ਤੌਰ ‘ਤੇ ਟੀਮ ਦਾ ਹਿੱਸਾ ਨਹੀਂ ਰਿਹਾ ਸੀ।

ਵਿਚਾਰ ਅਤੇ ਪਿੱਛੇ ਮੁੜ ਕੇ ਦੇਖਣਾ

ਹੁਣ, 2025 ਵਿੱਚ, ਚਾਰ ਸਾਲ ਬਾਅਦ, ਮੈਂ ਆਪਣੇ ਆਪ ਨੂੰ ਉਸ ਸਮੇਂ ਬਾਰੇ ਮਿਲੇ-ਝੁਲੇ ਭਾਵਾਂ ਨਾਲ ਸੋਚਦਾ ਹੋਇਆ ਪਾਂਦਾ ਹਾਂ। ਮੇਰਾ ਕਰੀਅਰ ਰਸਤਾ ਮੈਨੂੰ ਵੈੱਬ ਵਿਕਾਸ ਅਤੇ AI/ML ਇੰਜੀਨੀਅਰਿੰਗ ਵਿੱਚ ਗਹਿਰਾਈ ਨਾਲ ਲੈ ਗਿਆ, ਜਿਹੜੇ ਖੇਤਰ ਬੇਹੱਦ ਸਲਾਹੁਣਯੋਗ ਰਹੇ ਹਨ ਅਤੇ ਉਨ੍ਹਾਂ ਨੇ ਵਾਧੇ ਅਤੇ ਪ੍ਰਭਾਵ ਲਈ ਸ਼ਾਨਦਾਰ ਮੌਕੇ ਦਿੱਤੇ ਹਨ।

ਮੇਜ਼ 'ਤੇ Tritons ਦਾ ਉੱਪਰੋਂ ਦ੍ਰਿਸ਼

ਫਿਰ ਵੀ ਮੇਰੇ ਅੰਦਰ ਇੱਕ ਹਿੱਸਾ ਐਸਾ ਹੈ ਜੋ “ਜੇ ਐਸਾ ਹੁੰਦਾ ਤਾਂ?” ਬਾਰੇ ਸੋਚਦਾ ਹੈ। ਰੋਬੋਟਿਕਸ ਮੇਰਾ ਸੱਚਾ ਜਨੂਨ ਸੀ, ਅਤੇ ਇਮਾਨਦਾਰੀ ਨਾਲ ਕਹਾਂ ਤਾਂ ਅਜੇ ਵੀ ਹੈ। ਭੌਤਿਕ ਪ੍ਰਣਾਲੀਆਂ ਨਾਲ ਕੰਮ ਕਰਨ ਵਿੱਚ, ਆਪਣੇ ਕੋਡ ਨੂੰ ਹਕੀਕਤੀ ਹਿਲਚਲ ਅਤੇ ਵਿਹਾਰ ਵਿੱਚ ਬਦਲਦੇ ਦੇਖਣ ਵਿੱਚ, ਕੁਝ ਐਸਾ ਹੈ ਜੋ ਵੈੱਬ ਵਿਕਾਸ ਅਤੇ ਇੱਥੋਂ ਤੱਕ ਕਿ AI ਕੰਮ ਵੀ ਪੂਰੀ ਤਰ੍ਹਾਂ ਦੁਹਰਾ ਨਹੀਂ ਸਕਦੇ।

ਕਈ ਵਾਰੀ ਮੈਂ ਸੋਚਦਾ ਹਾਂ ਕਿ ਜੇ ਮੈਂ ਕੋਈ ਹੋਰ ਰਸਤਾ ਚੁਣਿਆ ਹੁੰਦਾ ਤਾਂ ਕੀ ਹੁੰਦਾ। ਜੇ ਮੈਂ ਰੋਬੋਟਿਕਸ ਖੋਜ ਵਿੱਚ ਰਹਿਣ ਦਾ ਕੋਈ ਤਰੀਕਾ ਲੱਭ ਲਿਆ ਹੁੰਦਾ ਤਾਂ? ਜੇ ਮੈਂ ਆਪਣੀ ਅੰਡਰਗ੍ਰੈਜੂਏਟ ਡਿਗਰੀ ਪੂਰੀ ਕਰਨ ਤੋਂ ਤੁਰੰਤ ਬਾਅਦ ਪੋਸਟਗ੍ਰੈਜੂਏਟ ਸਕੂਲ ਜਾ ਲਿਆ ਹੁੰਦਾ ਤਾਂ? ਜੇ ਮੈਂ ਉਦਯੋਗਕ ਅਨੁਭਵ ਦੀ ਬਜਾਇ ਲੈਬ ਦੇ ਕੰਮ ਨੂੰ ਤਰਜੀਹ ਦੇਣ ਦਾ ਫੈਸਲਾ ਕੀਤਾ ਹੁੰਦਾ ਤਾਂ?

ਪਰ ਮੈਂ ਇਹ ਵੀ ਸਮਝਦਾ ਹਾਂ ਕਿ ਹਰ ਰਸਤੇ ਦੇ ਆਪਣੇ ਲਾਭ-ਨੁਕਸਾਨ ਹੁੰਦੇ ਹਨ। ਵੈੱਬ ਵਿਕਾਸ ਅਤੇ AI ਵਿੱਚ ਮੈਂ ਜੋ ਹੁਨਰ ਵਿਕਸਿਤ ਕੀਤੇ, ਉਹ ਬੇਹੱਦ ਕੀਮਤੀ ਰਹੇ ਹਨ। ਉਦਯੋਗਕ ਅਨੁਭਵ ਨੇ ਮੈਨੂੰ ਵੱਡੇ ਪੱਧਰ ‘ਤੇ ਸੌਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰਿੰਗ, ਯੂਜ਼ਰ ਅਨੁਭਵ ਡਿਜ਼ਾਈਨ, ਅਤੇ ਉਹਨਾਂ ਵਿਹਾਰਕ ਚੁਣੌਤੀਆਂ ਬਾਰੇ ਸਿਖਾਇਆ ਜੋ ਉਤਪਾਦ ਬਣਾਉਣ ਵਿੱਚ ਆਉਂਦੀਆਂ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਲੱਖਾਂ ਲੋਕ ਵਰਤਦੇ ਹਨ। ਇਨ੍ਹਾਂ ਅਨੁਭਵਾਂ ਨੇ ਮੈਨੂੰ ਕੁੱਲ ਮਿਲਾਕੇ ਇੱਕ ਬਿਹਤਰ ਇੰਜੀਨੀਅਰ ਬਣਾਇਆ ਹੈ।

HCR ਲੈਬ ਵਿੱਚ ਕੀਤੇ ਕੰਮ ਨੇ ਅੱਜ ਸਮੱਸਿਆਵਾਂ ਨਾਲ ਮੇਰੀ ਨਜਿੱਠਣ ਦੀ ਵਿਧੀ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਨਾ ਜਾਰੀ ਰੱਖਿਆ ਹੈ। PID ਨਿਯੰਤਰਣ ਪ੍ਰਣਾਲੀਆਂ ਲਈ ਲੋੜੀਂਦੀ ਪ੍ਰਣਾਲੀਬੱਧ ਸੋਚ ਇਹ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਮੈਂ ਸੌਫਟਵੇਅਰ ਪ੍ਰਣਾਲੀਆਂ ਵਿੱਚ ਫੀਡਬੈਕ ਲੂਪਾਂ ਨੂੰ ਕਿਵੇਂ ਡਿਜ਼ਾਈਨ ਕਰਦਾ ਹਾਂ। ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਅਤੇ ਗਿਆਨ ਸੰਭਾਲਣ ਦੇ ਜੋ ਹੁਨਰ ਮੈਂ ਵਿਕਸਿਤ ਕੀਤੇ, ਉਹ ਉਸ ਤੋਂ ਬਾਅਦ ਹਰ ਭੂਮਿਕਾ ਵਿੱਚ ਬੇਹੱਦ ਕੀਮਤੀ ਸਾਬਤ ਹੋਏ ਹਨ। ਮਾਰਗਦਰਸ਼ਨ ਅਤੇ ਪੜ੍ਹਾਉਣ ਦੇ ਅਨੁਭਵ ਨੇ ਜੂਨੀਅਰ ਡਿਵੈਲਪਰਾਂ ਨਾਲ ਮੇਰੇ ਕੰਮ ਕਰਨ ਅਤੇ ਟੀਮ ਗਿਆਨ-ਸਾਂਝੇ ਵਿੱਚ ਯੋਗਦਾਨ ਪਾਉਣ ਦੇ ਤਰੀਕੇ ਨੂੰ ਰੂਪ ਦਿੱਤਾ ਹੈ।

ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਣ ਗੱਲ ਇਹ ਹੈ ਕਿ ਇਸ ਅਨੁਭਵ ਨੇ ਮੈਨੂੰ ਸਿਖਾਇਆ ਕਿ ਜਦੋਂ ਮੈਂ ਉਹਨਾਂ ਚੁਣੌਤੀਪੂਰਣ ਤਕਨੀਕੀ ਸਮੱਸਿਆਵਾਂ ‘ਤੇ ਕੰਮ ਕਰਦਾ ਹਾਂ ਜਿਨ੍ਹਾਂ ਦਾ ਹਕੀਕਤੀ ਪ੍ਰਭਾਵ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਮੈਂ ਖਿੜਦਾ ਹਾਂ। ਭਾਵੇਂ ਉਹ ਰੋਬੋਟ ਹਿਲਚਲ ਐਲਗੋਰਿਦਮਾਂ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨਾ ਹੋਵੇ ਜਾਂ ਐਸੇ AI ਸਿਸਟਮ ਬਣਾਉਣੇ ਹੋਣ ਜੋ ਯੂਜ਼ਰਾਂ ਨੂੰ ਆਪਣੇ ਲਕਸ਼ ਹਾਸਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੇ ਹੋਣ, ਸੰਤੋਸ਼ ਉਨ੍ਹਾਂ ਔਖੀਆਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਤੋਂ ਮਿਲਦਾ ਹੈ ਜੋ ਮਹੱਤਵ ਰੱਖਦੀਆਂ ਹਨ।

ਸਥਾਈ ਪ੍ਰਭਾਵ

HCR ਲੈਬ ਦੇ ਅਨੁਭਵ ਨੂੰ ਪਿੱਛੇ ਮੁੜ ਕੇ ਦੇਖਦਿਆਂ, ਮੈਨੂੰ ਇਸ ਗੱਲ ਦਾ ਅਹਿਸਾਸ ਹੁੰਦਾ ਹੈ ਕਿ ਮੈਂ ਥੋੜੇ ਸਮੇਂ ਵਿੱਚ ਕਿੰਨਾ ਕੁਝ ਹਾਸਲ ਕੀਤਾ। ਜਿਨ੍ਹਾਂ ਪ੍ਰਣਾਲੀਆਂ ਨੂੰ ਮੈਂ ਬਣਾਇਆ, ਉਨ੍ਹਾਂ ਨੇ Triton ਪਲੇਟਫਾਰਮ ਦੇ ਕੰਮ ਕਰਨ ਦੇ ਢੰਗ ਨੂੰ ਬੁਨਿਆਦੀ ਤੌਰ ‘ਤੇ ਬਦਲ ਦਿੱਤਾ, ਅਤੇ ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕਈ ਸੁਧਾਰ ਅੱਜ ਵੀ ਵਰਤੇ ਜਾ ਰਹੇ ਹਨ। ਜੋ ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਰਿਪੋਜ਼ਟਰੀ ਮੈਂ ਬਣਾਈ, ਉਹ ਪੂਰੇ ਪ੍ਰੋਜੈਕਟ ਲਈ ਗਿਆਨ-ਆਧਾਰ ਬਣ ਗਈ। ਜਿਹੜੇ ਮਾਰਗਦਰਸ਼ਨ ਸੰਬੰਧ ਮੈਂ ਬਣਾਏ, ਉਨ੍ਹਾਂ ਨੇ ਉਹਨਾਂ ਲੋਕਾਂ ‘ਤੇ ਲੰਬੇ ਸਮੇਂ ਦਾ ਪ੍ਰਭਾਵ ਛੱਡਿਆ ਜਿਨ੍ਹਾਂ ਨਾਲ ਮੈਂ ਕੰਮ ਕੀਤਾ।

ਪਰ ਸ਼ਾਇਦ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਣ ਗੱਲ ਇਹ ਸੀ ਕਿ ਇਸ ਅਨੁਭਵ ਨੇ ਮੈਨੂੰ ਦਿਖਾਇਆ ਕਿ ਜਦੋਂ ਮੈਂ ਉਹਨਾਂ ਸਮੱਸਿਆਵਾਂ ‘ਤੇ ਕੰਮ ਕਰਦਾ ਹਾਂ ਜਿਨ੍ਹਾਂ ਬਾਰੇ ਮੈਂ ਸੱਚਮੁੱਚ ਜਜ਼ਬਾਤੀ ਹਾਂ, ਤਾਂ ਮੈਂ ਕੀ ਕਰਨ ਦੇ ਯੋਗ ਹਾਂ। ਉਨ੍ਹਾਂ ਅੱਠ ਮਹੀਨਿਆਂ ਦੌਰਾਨ, ਮੈਂ:

  • ਰੋਬੋਟ ਦੀ ਗਤੀ ਨਿਯੰਤਰਣ ਪ੍ਰਣਾਲੀ ਨੂੰ ਸੁਧਾਰਿਆ ਜੋ ਪਲੇਟਫਾਰਮ ਨੂੰ ਸੀਮਿਤ ਕਰ ਰਹੀ ਸੀ
  • ਸ਼ੁਰੂ ਤੋਂ ਇੱਕ ਬਹੁ-ਰੋਬੋਟ ਸਮਨਵਯ ਪ੍ਰਣਾਲੀ ਬਣਾਈ
  • ਕੰਪਿਊਟਰ ਵਿਜ਼ਨ ਅਤੇ ਸੈਂਸਰ ਫਿਊਜ਼ਨ ਸਮਰੱਥਾਵਾਂ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕੀਤਾ
  • ਇਕ ਵਿਸਤ੍ਰਿਤ ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਅਤੇ ਗਿਆਨ ਪ੍ਰਬੰਧਨ ਪ੍ਰਣਾਲੀ ਬਣਾਈ
  • ਕਈ ਲੋਕਾਂ ਨੂੰ ਮਾਰਗਦਰਸ਼ਨ ਦਿੱਤਾ ਅਤੇ ਗਿਆਨ ਹਸਤਾਂਤਰ ਵਿੱਚ ਮਦਦ ਕੀਤੀ
  • ਸੁਤੰਤਰ ਵਾਹਨਾਂ ਵਿੱਚ ਪੀਐਚਡੀ-ਸਤਰ ਦੇ ਖੋਜ ਕਾਰਜ ਨੂੰ ਸਮਰਥਨ ਦਿੱਤਾ

ਹਾਲਾਂਕਿ ਇਹ ਸਿਰਫ਼ ਤਕਨੀਕੀ ਪ੍ਰਾਪਤੀਆਂ ਬਾਰੇ ਨਹੀਂ ਸੀ, ਭਾਵੇਂ ਉਹ ਮੇਰੇ ਲਈ ਮਹੱਤਵਪੂਰਨ ਸਨ। ਇਹ ਇਸ ਬਾਰੇ ਸੀ ਕਿ ਅਡਿੱਗਤਾ ਅਤੇ ਪ੍ਰਣਾਲੀਬੱਧ ਸੋਚ ਨਾਲ, ਤੁਸੀਂ ਇੱਕ ਅੰਡਰਗ੍ਰੈਜੂਏਟ ਵਿਦਿਆਰਥੀ ਵਜੋਂ ਵੀ ਲਾਭਦਾਇਕ ਯੋਗਦਾਨ ਪਾ ਸਕਦੇ ਹੋ।

ਭਵਿੱਖ ਅਤੇ ਰੋਬੋਟਿਕਸ

ਭਾਵੇਂ ਮੇਰਾ ਕਰੀਅਰ ਮੈਨੂੰ ਹੋਰ ਦਿਸ਼ਾਵਾਂ ਵਿੱਚ ਲੈ ਗਿਆ ਹੈ, ਰੋਬੋਟਿਕਸ ਲਈ ਮੇਰਾ ਜਜ਼ਬਾ ਘਟਿਆ ਨਹੀਂ ਹੈ। ਮੈਂ ਅਜੇ ਵੀ ਇਸ ਖੇਤਰ ਵਿੱਚ ਹੋ ਰਹੇ ਵਿਕਾਸਾਂ ਨੂੰ ਫਾਲੋ ਕਰਦਾ ਹਾਂ, ਮੈਂ ਰੋਬੋਟ ਸਿੱਖਣ ਅਤੇ ਸੁਤੰਤਰ ਪ੍ਰਣਾਲੀਆਂ ਵਿੱਚ ਹੋ ਰਹੀਆਂ ਤਰੱਕੀਆਂ ਬਾਰੇ ਉਤਸ਼ਾਹਿਤ ਹਾਂ, ਅਤੇ ਮੈਂ ਕਦੇ-ਕਦੇ ਆਪਣੇ ਖਾਲੀ ਸਮੇਂ ਵਿੱਚ ਨਿੱਜੀ ਰੋਬੋਟਿਕਸ ਪ੍ਰੋਜੈਕਟਾਂ ‘ਤੇ ਕੰਮ ਕਰਦਾ ਹਾਂ।

ਕੌਣ ਜਾਣਦਾ ਹੈ ਭਵਿੱਖ ਕੀ ਲਿਆਏਗਾ? AI ਅਤੇ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਵਿੱਚ ਮੈਂ ਜੋ ਹੁਨਰ ਵਿਕਸਤ ਕਰ ਰਿਹਾ ਹਾਂ, ਉਹ ਰੋਬੋਟਿਕਸ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਸੰਬੰਧਿਤ ਹੋ ਰਹੇ ਹਨ। ਉਦਯੋਗਕ ਅਨੁਭਵ ਜੋ ਮੈਂ ਹਾਸਲ ਕੀਤਾ ਹੈ, ਉਸ ਨੇ ਮੈਨੂੰ ਸਿਖਾਇਆ ਹੈ ਕਿ ਮਜ਼ਬੂਤ, ਸਕੇਲਯੋਗ ਪ੍ਰਣਾਲੀਆਂ ਕਿਵੇਂ ਬਣਾਈਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਸ਼ਾਇਦ ਇੱਕ ਐਸਾ ਭਵਿੱਖ ਹੋਵੇ ਜਿੱਥੇ ਮੇਰੇ ਅਨੁਭਵ ਦੇ ਇਹ ਵੱਖ-ਵੱਖ ਧਾਗੇ ਅਣਅਪੇक्षित ਤਰੀਕਿਆਂ ਨਾਲ ਇਕੱਠੇ ਆ ਜਾਣ।

ਹੁਣ ਲਈ, ਮੈਂ HCR ਲੈਬ ਵਿੱਚ ਬਿਤਾਏ ਸਮੇਂ ਅਤੇ ਉਸ ਨੇ ਦਿੱਤੇ ਅਨੁਭਵਾਂ ਲਈ ਆਭਾਰੀ ਹਾਂ। ਇਹ ਇੱਕ ਬਣਾਉਣ ਵਾਲਾ ਸਮਾਂ ਸੀ ਜਿਸ ਨੇ ਮੇਰੀ ਤਕਨੀਕੀ ਹੁਨਰਾਂ ਅਤੇ ਇਸ ਗੱਲ ਦੀ ਸਮਝ ਦੋਵੇਂ ਨੂੰ ਘੜਿਆ ਕਿ ਮੈਨੂੰ ਕਿਸ ਕਿਸਮ ਦਾ ਕੰਮ ਸਭ ਤੋਂ ਸੰਤੁਸ਼ਟੀਦਾਇਕ ਲੱਗਦਾ ਹੈ। ਹਾਲਾਂਕਿ ਮੈਂ ਕਦੇ-ਕਦੇ ਇਸਨੂੰ ਯਾਦ ਕਰਦਾ ਹਾਂ, ਮੈਨੂੰ ਪਤਾ ਹੈ ਕਿ ਜੋ ਪਾਠ ਮੈਂ ਸਿੱਖੇ ਅਤੇ ਜੋ ਪਹੁੰਚਾਂ ਮੈਂ ਵਿਕਸਤ ਕੀਤੀਆਂ, ਉਹ ਹਰ ਉਸ ਚੀਜ਼ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦੀਆਂ ਰਹਿੰਦੀਆਂ ਹਨ ਜੋ ਮੈਂ ਕਰਦਾ ਹਾਂ।

ਟ੍ਰਾਈਟਨ ਰੋਬੋਟ ਅਜੇ ਵੀ ਉੱਥੇ ਹਨ, ਅਜੇ ਵੀ ਖੋਜਕਾਰਾਂ ਦੀ ਸੇਵਾ ਕਰ ਰਹੇ ਹਨ, ਅਜੇ ਵੀ ਮਹੱਤਵਪੂਰਨ ਕੰਮ ਨੂੰ ਸੰਭਵ ਬਣਾ ਰਹੇ ਹਨ। ਅਤੇ ਇਹ ਕਾਫ਼ੀ ਸ਼ਾਨਦਾਰ ਹੈ।