HCR लैब रोबोटिक्स अनुसंधान
Table of Contents
यह ब्लॉग पोस्ट मेरे कॉलेज के दौरान रोबोटिक्स यात्रा को दस्तावेज़ करता है, जिसमें Colorado School of Mines में मेरे स्नातक अध्ययन, CSCI473 में मेरी रुचि की खोज, 2020 के गर्मियों में मेरे CS Field Session प्रोजेक्ट, और फरवरी 2021 से सितंबर 2021 तक Human Centered Robotics (HCR) Lab में मेरे शोध कार्य शामिल हैं।
पृष्ठभूमि
मैंने Colorado School of Mines में फॉल 2018 से अपनी स्नातक पढ़ाई शुरू की। मेरा प्रमुख कंप्यूटर साइंस था, जिसमें रोबोटिक्स और इंटेलिजेंट सिस्टम्स पर फोकस था। और मैं स्प्रिंग 2022 में स्नातक हुआ।
मैं अपने जीवन में जल्दी ही अपनी रुचि खोजने में भाग्यशाली था। हाई स्कूल के दौरान, मैंने यह पता लगाने में काफी समय बिताया कि मुझे क्या पसंद है और मैं किसमें अच्छा हो सकता हूँ। कुछ प्रयास और त्रुटियों के बाद, मैं यह समझ पाया कि मेरी रुचि कंप्यूटर साइंस में है। लेकिन इसी समय मैंने कोड के माध्यम से निर्माण के प्रति अपने अत्यधिक प्रेम को भी खोजा।
Mines में, मुझे Mines के Human Centered Robotics (HCR) Lab में Dr Hao Zhang के तहत काम करने का अवसर मिला। मैं पहली बार Dr. Zhang से स्प्रिंग 2020 में उनके “Human Centered Robotics” (CSCI473) क्लास के माध्यम से मिला, और COVID और क्लासवर्क की अराजकता के बाद, मैं शुरुआती स्प्रिंग 2021 में उनके लैब में काम करने लगा।
Human Centered Robotics (CSCI473) क्लास
Mines की Human Centered Robotics (CSCI473) मेरे कॉलेज अनुभव की कुछ ही कक्षाओं में से एक थी जिसने मुझ पर गहरा प्रभाव डाला। यह क्लास Dr. Hao Zhang द्वारा पढ़ाई गई थी। हमारे क्लास का पूरा ग्रेड केवल तीन प्रोजेक्ट्स से बना था, जिनमें से प्रत्येक ने रोबोटिक्स के मूल अवधारणाओं को प्रस्तुत करने वाली चुनौतीपूर्ण समस्या प्रस्तुत की। ये प्रोजेक्ट्स शामिल थे:
- रोबोट ऑपरेटिंग सिस्टम (ROS) सीखना
- रोबोट वॉल फ़ॉलोइंग के लिए रिइन्फोर्समेंट लर्निंग
- स्केलेटन-आधारित प्रतिनिधित्वों का उपयोग करके मानव व्यवहारों की रोबोट समझ
🧩 रोबोट ऑपरेटिंग सिस्टम (ROS) सीखना
यह पहला प्रोजेक्ट था जो हमें सौंपा गया था। प्रोजेक्ट में तीन कार्य थे:
- विकास पर्यावरण सेटअप करना
- Gazebo सिम्युलेटर को समझना
- एक ROS “Hello World” लिखना
कार्य 1 और 2 के लिए, हमें केवल अपना विकास पर्यावरण सेटअप करना था और Gazebo ट्यूटोरियल का परिचय लेना था। इसमें शामिल था:
- ROS Melodic सेटअप करना, जिसे मैंने अपने 2011 HP लैपटॉप पर किया जो पर्याप्त था
- ROS और Gazebo को स्थापित और कॉन्फ़िगर करना
- gazebosim’s tutorial और e-manual’s tutorial को देखना।
कार्य 3, दूसरी ओर, एक वास्तविक चुनौती थी। कार्य था turtlesim का उपयोग करके टर्टल को Mines के “M” लोगो को ड्रॉ करवाना:
![]() |
![]() |
यह कार्य, यद्यपि सरल लग रहा था, लेकिन दिखने से अधिक कठिन था। इस प्रोजेक्ट ने अंततः मुझे Open-Loop और Closed-Loop सिस्टम्स की अवधारणा से परिचित कराया। आप इस प्रोजेक्ट और मेरे समाधान के बारे में अधिक जानकारी ROS Move Turtle प्रोजेक्ट पेज पर पा सकते हैं।
🧩 रोबोट वॉल फ़ॉलोइंग के लिए रिइन्फोर्समेंट लर्निंग
यह दूसरा प्रोजेक्ट था जो हमें सौंपा गया, और यह मेरे कॉलेज में किए गए सबसे कठिन प्रोजेक्ट्स में से एक था। प्रोजेक्ट विवरण इस प्रकार था:
इस प्रोजेक्ट में, छात्र रिइन्फोर्समेंट लर्निंग एल्गोरिदम को डिजाइन और लागू करेंगे ताकि एक स्वायत्त मोबाइल रोबोट को दीवार का अनुसरण करने और बाधाओं से बचने के लिए प्रशिक्षित किया जा सके। छात्र Gazebo सिमुलेशन को ROS Melodic में उपयोग करके एक ओम्नि-डायरेक्शनल मोबाइल रोबोट “Triton” को सिमुलेट करेंगे, और एक पर्यावरण मानचित्र का उपयोग करेंगे जो आपको प्रदान किया गया है। रोबोट पर लेज़र रेंज स्कैनर का उपयोग करके सेंसिंग और लर्निंग की जाएगी, जहाँ रोबोट को स्टीयरिंग और वेग कमांड्स के द्वारा नियंत्रित किया जाता है। छात्रों को इस प्रोजेक्ट को C++ या Python में ROS Melodic पर Ubuntu 18.04 LTS (अर्थात, प्रोजेक्ट 1 में उपयोग किए गए समान विकास पर्यावरण) पर चलाते हुए प्रोग्राम करना आवश्यक है। साथ ही, छात्रों को IEEE रोबोटिक्स कॉन्फ़्रेंस के मानक फ़ॉर्मेट में LATEX का उपयोग करके रिपोर्ट लिखनी होगी।
रिइन्फोर्समेंट लर्निंग एल्गोरिदम के लिए, हमें Q-Learning का उपयोग करने का निर्देश दिया गया था। हमने क्लास द्वारा प्रदान किए गए Stingray Gazebo सिमुलेशन पर्यावरण का भी उपयोग किया। Stingray में Triton मॉडल और फिज़िक्स लॉजिक शामिल था। हमें रोबोट के लिए एक मेज़ भी प्रदान किया गया था। कुल मिलाकर, पर्यावरण इस प्रकार दिखता था:
पूरा प्रोजेक्ट विवरण के लिए, देखें csci473-p2.pdf। मैंने अपना समाधान GitHub या वेब पर प्रकाशित नहीं किया क्योंकि यह बहुत अच्छा नहीं था और कई त्रुटियों से भरा था। साथ ही, सही पर्यावरण में कोड चलाना काफी कठिन और परेशान करने वाला है। हालांकि, मेरे पास एक डेमो वीडियो है जो मैंने क्लास को प्रस्तुत किया था, जिसमें मेरा समाधान दिखाया गया है। आप इसे यहाँ देख सकते हैं:
🧩 स्केलेटन-आधारित प्रतिनिधित्वों का उपयोग करके मानव व्यवहारों की रोबोट समझ
तीसरे प्रोजेक्ट के लिए, प्रोजेक्ट विवरण इस प्रकार था:
इस प्रोजेक्ट में, छात्र कई स्केलेटन-आधारित प्रतिनिधित्व (डिलिवरेबल 1) लागू करेंगे और सपोर्ट वेक्टर मशीन (SVM) (डिलिवरेबल 2) का उपयोग करके सार्वजनिक एक्टिविटी डेटासेट से मानव व्यवहारों को वर्गीकृत करेंगे। अतिरिक्त रूप से, छात्रों को डिलिवरेबल 3 में LATEX का उपयोग करके IEEE रोबोटिक्स कॉन्फ़्रेंस के मानक फ़ॉर्मेट में रिपोर्ट लिखनी होगी।
यह प्रोजेक्ट चुनौतीपूर्ण था लेकिन दूसरे प्रोजेक्ट जितना कठिन नहीं था। मुख्य लक्ष्य था Kinect V1 सेंसर डेटा, MSR Daily Activity 3D Dataset से, और Support Vector Machines का उपयोग करके कुछ मानव क्रियाओं/व्यवहारों को वर्गीकृत करना। आप इस प्रोजेक्ट और मेरे समाधान के बारे में अधिक जानकारी Predict Human Actions Using LIBSVM प्रोजेक्ट पेज पर पा सकते हैं।
CSCI473 निष्कर्ष
CSCI473 वह कक्षा है, यदि नहीं तो सबसे अच्छी कक्षा, जो मैंने Mines में अपने स्नातक अध्ययन के दौरान ली थी। इन सभी प्रोजेक्ट्स ने मुझे बहुत कुछ सिखाया और मेरे रिज़्यूमे में एक शानदार प्रोजेक्ट कैटलॉग बनाने में मदद की। यह वह पहली कक्षा भी थी जहाँ मैं अपने तत्व में महसूस करता था, क्योंकि मैं कभी भी अच्छा टेस्ट टेकर नहीं था लेकिन प्रोजेक्ट्स को पूरा करने में उत्कृष्ट था। इस क्लास के माध्यम से मैं Dr. Hao Zhang से मिला, जिन्होंने अंततः मुझे Mines के Human-Centered Robotics (HCR) Lab में रिसर्च असिस्टेंट के रूप में एक पद सुरक्षित करने में मदद की।
CS Field Session (Summer 2020)
2020 के गर्मियों में, CSCI473 को पूरा करने और HCR Lab में शामिल होने के बीच, मैंने CSCI370 या “Advanced Software Engineering” को Colorado School of Mines में अपने CS स्नातक कार्यक्रम के हिस्से के रूप में लिया। CSCI370 एक कोर्स है जो छात्रों को एक कंपनी के लिए सॉफ्टवेयर-सम्बंधित समाधान डिजाइन, लागू और दस्तावेज़ करने के लिए प्रेरित करता है। यह छात्रों को अपने पाठ्यक्रम ज्ञान को वास्तविक दुनिया के कंप्यूटर विज्ञान समस्याओं पर लागू करने की अनुमति देता है। आप इस कोर्स के बारे में अधिक जानकारी यहाँ पा सकते हैं।
कोर्स में, आप तय कर सकते हैं कि आप किस प्रोजेक्ट/कंपनी पर काम करेंगे। कोर्स ने प्रत्येक प्रोजेक्ट और कंपनी का विवरण देने वाले PDFs प्रदान किए। अंततः मैंने एक कंपनी Lunar Outpost द्वारा पोस्ट किए गए प्रोजेक्ट “Real Time Wheel Slip Detection and Error Corrections for Enhanced Lunar Navigation” पर काम करने का निर्णय लिया। चूँकि नाम लंबा है, हम इसे “Wheel Slippage Detection” कहेंगे।
समस्या
Lunar Outpost एक स्टार्टअप है जो स्वायत्त लूनर रोवर्स बनाने की कोशिश कर रहा है। चंद्रमा पर बहुत सारी लूनर धूल होती है जो पहियों के स्लिपेज का कारण बनती है। यह आदर्श नहीं है क्योंकि पहियों का स्लिपेज स्वायत्त सिस्टम को वास्तविक स्थान से हट सकता है। पृथ्वी पर, यह GPS डेटा का उपयोग करके स्लिपेज के कारण होने वाले ऑफ़सेट को ठीक करके हल किया जाता है। लेकिन चंद्रमा पर 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 और उसके विकास के बारे में समझाया।
चुनौतियां
इस प्रोजेक्ट में कई चुनौतियां थीं। सबसे बड़ी चुनौती थी वास्तविक रोबोट तक पहुंच न होना। यह COVID के कारण सब कुछ रिमोट हो गया और Lunar Outpost के लैब/भवनों में काम नहीं कर सके। इसलिए हमें सिमुलेशन का उपयोग करना पड़ा।
Also, we went through some academic research from the WVU नेविगेशन लैब to get an idea of how the Wheel Slippage problem could get solved for Lunar Outpost’s use case. Which, for us, as undergraduate sophomores and juniors, was more difficult than we expected.
Another challenge we faced was the amount of time we had to work on this project. CSCI370 is a one month class. But the problem itself is a massive problem that many companies and academics have been trying to solve/perfect for decades. So one month is far from enough time to solve this issue. But, despite all these challenges we pushed through and made sure to deliver.
Conclusion
After working through all the research and development, we determined that it is almost impossible to simulate proper moon physics digitally, so really trying this algorithm in a simulation is no good and not going to yield any meaningful research in wheel slippage detection in space and on the moon. We concluded that setting up a proper test environment using something like sand and real hardware, like a Husky robot, is far more important for this type of research. We did update the wheel slippage detection code to work as a ROS node and it functioned properly and could easily be imported into real hardware for testing. This project allowed me to take a leadership role, educate my peers on ROS development, and gain experience with Python, ROS, and Gazebo while tackling a complex problem I had never encountered before. Most importantly, this experience further solidified my passion for robotics and reinforced my desire to pursue research in the field, setting the stage for what would come next in my robotics journey.
Starting At The HCR Lab
After completing CSCI473, my CS Field Session in the summer of 2020, and my Fall 2020 semester, I decided to pursue research in robotics. I had such great experiences with both CSCI473 and the CS Field Session that I decided I wanted to do research for the HCR Lab. Since I had met Dr. Zhang the year prior, I decided to email him and ask about any opportunities the lab might have in January 2021. Within about 2 weeks, Dr. Zhang expressed interest, presented me with research options, and offered me a role in the lab. I then started working for the lab in February 2021.
Introduction Video
Here’s my introduction video that I recorded a few months into my time in the HCR Lab. It was recorded in May 2021 and covers the research I would focus on in the HCR Lab during the summer of 2021:
My Project
Throughout my time in the HCR Lab, I mainly focused on the Triton project. The Triton project is a mobile robot developed by the Human Centered Robotics Lab at the Colorado School of Mines. It’s a triangular omni-wheel ground robot powered by NVIDIA’s Jetson Nano.
The Triton, in a simple overview, consisted of the following parts:
- NVIDIA Jetson Nano
- NVIDIA’s Seed Studio A205 Carrier Board
- Arduino Mega
- 64 GB Micro SD Card
- Custom 3D printed body
- 3 mecanum wheels
- 1 AR Battery
- Custom circuits for optimized power distribution and wiring
- Intel’s Realsense D435 Camera
- Some LEDs
It was designed, built, and manufactured around 2018-2020 as a robot for educational purposes. By the time I joined, the Triton was pretty established, and the lab was considering making a new version of it. However, the main issue with the Triton was its software. The Triton could move, charge, and function in a basic sense but did not really do anything intelligent. It even lacked the ability to make more advanced movements.
![]() |
![]() |
![]() |
![]() |
To start addressing this, the lab set up an area where we could keep track of the Triton. To do this, they created a 2-meter by 2-meter area with 8 Optitrack Flex (Infrared Red) cameras in a square-like shape about 6-7 feet above the floor.
![]() |
![]() |
Along with having this area built, each Triton had three gray sphere balls attached at the top of their bodies.
With this setup, we had effectively built our own small-scale GPS system that allowed us to get the exact coordinates in meters of a Triton in our area of interest. By using the Optitrack infrared cameras and the Optitrack gray spheres in a triangular shape, we could pinpoint the exact coordinates of a Triton in our area. This allowed us to apply a closed-loop system for better accuracy in movement.
The Optitrack system provided position and orientation data at about 120Hz with sub-millimeter accuracy when properly calibrated. Each Triton’s three reflective markers formed a unique triangular pattern that the system could track as a rigid body. The coordinate system was calibrated so that (0,0) was at the center of the tracking area, with X and Y axes aligned to the room’s geometry. But despite this precise positioning data, the Triton still struggled with movement.
With this setup, one core feature we wanted to provide the Triton was the ability to move to a specific coordinate. The user, or their software, could provide a (x, y) coordinate within their area of interest. Then the robot would move to that coordinate as fast, accurately, and seamlessly as possible. When I joined, this feature existed but it wasn’t working very well. Here is a simple animation showing how the original moving logic worked:
I did not record the original solution in action, so I created this simple animation showing you the old moving logic in action. Knowing this, what are the issues with this method?
- यह बहुत धीमा है
- यह रोबोट को बहुत जगह लेता है केवल एक विशिष्ट बिंदु तक पहुंचने के लिए। इससे कई ट्राइटन के आसपास चलने पर यह उपयोग करना कठिन हो गया।
तो यह व्यवहार क्यों हो रहा था? समस्या यह थी कि ट्राइटन पहले घुमा, अपना अल्फा बदलता, जब तक वह लक्ष्य बिंदु की एक विशिष्ट त्रुटि सीमा के भीतर नहीं था। फिर वह आगे तेज़ी से चलना शुरू करता, और जब उसका थेटा लक्ष्य से एक विशिष्ट मात्रा में अलग हो जाता, तो वह रुकता और फिर से घुमा जाता जब तक अल्फा लक्ष्य के लिए स्वीकार्य सीमा में नहीं आता। फिर वह फिर से तेज़ी से चलता रहता है जब तक वह बिंदु तक नहीं पहुंच जाता। साथ ही, जैसे ही वह लक्ष्य बिंदु के करीब आता गया, घुमाव और तेज़ी की गति बहुत धीमी हो जाती थी ताकि ओवरशूट न हो। इससे ट्राइटन में अस्वाभाविक गति, लक्ष्य बिंदु तक पहुंचने में बहुत समय लगना, और एक विशिष्ट लक्ष्य बिंदु तक पहुंचने के लिए बहुत जगह की आवश्यकता होती थी। इन सभी समस्याओं के साथ, और इस फीचर की महत्त्वता को देखते हुए, जब मैं HCR लैब में काम शुरू किया, मेरा पहला कार्य ट्राइटन को लक्ष्य बिंदु तक बेहतर नेविगेट करने के लिए अधिक प्रभावी समाधान विकसित करना था।
इसको जानते हुए, मैंने इस समस्या को हल करने के सबसे अच्छे तरीके पर बहुत समय शोध में बिताया। मैं एक क्लास ले रहा था जिसका नाम Introduction to Feedback Control Systems (EENG307) था। उस क्लास में, हमने Open-loop controllers और Closed-loop controllers की अवधारणा सीखी। इसको जानते हुए, और प्रोफेसर और मेरे स्मार्ट रूममेट के साथ चर्चा के बाद, यह स्पष्ट हो गया कि ट्राइटन को लक्ष्य बिंदु तक पहुंचाने का लक्ष्य एक क्लोज़्ड-लूप सिस्टम समस्या है।
अब, व्यापक परीक्षण और शोध के बाद, मैंने ट्राइटन के लिए दो अलग-अलग कंट्रोलर दृष्टिकोण विकसित किए:
Method 1: Distance-Theta Controller
This approach used two separate proportional controllers running simultaneously:
- Distance Controller: Calculated the Euclidean distance to the target and applied a proportional gain to determine forward/backward velocity
- Theta Controller: Calculated the angular error between the robot’s current heading and the desired heading to the target, applying a separate proportional gain for rotational velocity
The algorithm continuously calculated the Euclidean distance to the target and the angular error between the robot’s current heading and the desired direction. Two separate proportional gains were applied to generate linear and angular velocities respectively.
This resulted in the Triton naturally turning toward the goal while simultaneously moving forward, creating smooth curved paths. The key advantage was that the robot always kept its front face oriented toward the destination, which was crucial for camera-based applications.
Method 2: X-Y Coordinate Controller
This approach treated the robot like a 2D plotter, with independent control of X and Y movement:
- X Controller: Directly controlled east-west movement based on X-coordinate error
- Y Controller: Directly controlled north-south movement based on Y-coordinate error
The implementation calculated X and Y coordinate errors independently, applied separate proportional gains, and then transformed these global velocity components into the robot’s local coordinate frame using rotation matrices. This transformation was necessary because the robot’s omni‑wheel drivetrain required velocities in its own reference frame, not in global coordinates. This method produced the most direct paths to targets and was significantly faster, but the robot’s heading would drift since there was no explicit orientation control.
For method #1, I went into full detail about this method in my मूव टर्टल (टर्टलसिम) ब्लॉग. I highly recommend you read this blog to get all the details on how PID controllers work in general, as well as how method #1 works. I developed method #1 using ROS’s TurtleSim, then transferred that code to the Triton and updated it to account for a more real-world environment.
Method #2 used a quite different but equally effective approach. Instead of thinking about the robot’s orientation and distance to the goal, this method treats the movement like a coordinate plane problem. The controller continuously calculates the error in both X and Y directions separately. For example, if the robot needs to move from (0,0) to (2,3), it sees this as needing to correct a 2‑meter error in X and a 3‑meter error in Y. Two proportional controllers worked simultaneously: one adjusted the robot’s velocity in the X direction based on X‑error, while the other handled Y‑direction movement based on Y‑error. This created a more direct path to the goal, similar to how a 3D printer head moves, and allowed for smooth diagonal movements. The robot didn’t need to explicitly turn to face its target, making this method particularly effective in tight spaces or when precise positioning is required.
Both methods proved to be significantly faster and more reliable than the original approach. To see these new methods in action, check out the ट्राइटन्स इन एक्शन प्लेलिस्ट, which shows all the Tritons in action with the new methods.
What once took 30-45 seconds for a simple point-to-point movement now took around 8-12 seconds. More importantly, the Triton could now navigate more efficiently in tight spaces, which became useful for our multi-robot scenarios.
विकास चुनौतियां और डिबगिंग
Implementing these controllers wasn’t straightforward and involved several significant debugging challenges:
Coordinate System Transformations: One of the trickiest aspects was getting the coordinate transformations right. The Optitrack system provided data in its own coordinate frame, the robot had its local coordinate frame, and I needed to convert between them accurately. Early implementations had robots moving in the wrong directions because I had mixed up rotation matrix calculations.
Real-World vs. Ideal Behavior: The biggest challenge was accounting for real-world factors that don’t appear in textbook control theory. The robot’s wheels had different friction characteristics, the motors didn’t respond identically, and there was always some latency in the communication chain from Optitrack to the control software to the robot’s Arduino. I spent weeks tuning proportional gains and adding deadband filters to account for these physical realities.
Oscillation and Stability Issues: My first implementations suffered from oscillation problems where robots would overshoot their targets and wobble back and forth. This taught me the importance of derivative terms in PID controllers and the need for proper gain tuning. I eventually settled on primarily proportional control with carefully tuned gains rather than full PID, as the system’s inherent damping was sufficient for most applications.
Multi-Robot Interference: When multiple robots operated simultaneously, I discovered unexpected interference patterns. Robots would sometimes “fight” for the same space or create deadlock situations where they blocked each other indefinitely. This led me to implement coordination mechanisms and collision avoidance algorithms.
मल्टी-ट्राइटन नियंत्रण प्रणाली
Once I had solved the single Triton movement problem, the lab’s next challenge was getting multiple Tritons to work together simultaneously. This became one of my main focus areas and ended up being a significant contribution to the project.
The original system could only control one Triton at a time, which severely limited the research possibilities. The lab wanted to simulate scenarios where multiple autonomous vehicles needed to coordinate their movements, like self‑driving cars communicating with each other to optimize traffic flow and create better SLAM (Simultaneous Localization and Mapping) maps.
To solve this, I implemented a multi‑processing approach using Python’s multiprocessing library. Each Triton got its own dedicated process that could run independently while still being coordinated by a central control system. This allowed multiple Tritons to move simultaneously without interfering with each other’s control loops.
मल्टी‑रोबोट आर्किटेक्चर डिजाइन
The system architecture I developed consisted of several key components:
Main Controller Process: This served as the central coordinator, handling user interface interactions, path planning, and high‑level coordination between robots. It maintained the global state and distributed commands to individual robot processes.
Individual Robot Processes: Each Triton had its own dedicated Python process that handled:
- Real-time PID control calculations at ~50Hz
- Communication with the robot’s hardware (Arduino/Jetson)
- Local path execution and obstacle avoidance
- Status reporting back to the main controller
Shared Memory Communication: I used Python’s multiprocessing.shared_memory and Queue objects to enable efficient communication between processes. This allowed for real-time coordination without the overhead of network communication.
Synchronization Mechanisms: To prevent conflicts when multiple robots needed to coordinate (like avoiding collisions), I implemented semaphores and locks that allowed robots to request exclusive access to certain areas of the workspace.
The challenge was ensuring all robots could operate their control loops independently while still maintaining global coordination. Each robot process ran its own PID calculations and sent motor commands directly to the hardware, while the main process handled higher‑level coordination like collision avoidance and path planning.
![]() |
![]() |
The multi‑Triton system opened up entirely new research possibilities. We could now simulate:
- Vehicle-to-vehicle communication scenarios
- Coordinated path planning with obstacle avoidance
- Swarm robotics behaviors
- Multi‑agent SLAM mapping
- Formation control and following behaviors
Here’s what the lab setup looked like with multiple Tritons running simultaneously:
![]() |
![]() |
I also developed a user-friendly interface that allowed researchers to visually define paths for each Triton. You could literally draw the path you wanted each robot to follow, and they would execute these paths with perfect coordination. This was incredibly useful for setting up complex experiments without having to manually code every movement.
The system could handle up to 5 Tritons simultaneously, each running its own PID controllers while being coordinated through the central control system. The performance was impressive, with all robots maintaining their individual accuracy while working together as a team.
Here’s a playlist showing the Tritons in action, from single‑robot control to multi‑robot coordination: ट्राइटन्स इन एक्शन प्लेलिस्ट
गहराई सेंसर एकीकरण और कोऑर्डिनेट सुधार
Another major advancement I worked on involved utilizing the Intel RealSense D435 depth cameras mounted on each Triton. While the Optitrack system gave us incredibly precise positioning data, I wanted to explore how the robots could use their onboard sensors to improve their spatial awareness and correct for coordinate errors.
The idea was that Tritons could use their depth sensors to detect other Tritons in their vicinity and cross‑reference their positions. This would serve multiple purposes:
-
Error Correction: If the Optitrack system had any calibration drift or temporary occlusion, robots could use visual confirmation of each other’s positions to maintain accurate coordinate systems.
-
Enhanced SLAM: By having multiple robots with depth sensors working together, we could create richer maps of the environment with redundant data points.
-
Collision Avoidance: Real‑time depth sensing would allow robots to detect and avoid each other even if the central control system had communication delays.
I began experimenting with algorithms that would allow Tritons to:
- उनके विशिष्ट त्रिकोणीय आकार और प्रतिबिंबित गोले मार्करों का उपयोग करके अन्य ट्राइटन को पहचानें
- गहराई डेटा का उपयोग करके सापेक्ष स्थितियों और अभिविन्यासों की गणना करें
- इन मापों की Optitrack डेटा से तुलना करके विसंगतियों की पहचान करें
- सटीकता बनाए रखने के लिए वास्तविक समय में उनके कोऑर्डिनेट सिस्टम को संभावित रूप से समायोजित करें
कंप्यूटर विज़न प्रयोग
मैंने कई चरणों में काम करने वाले कंप्यूटर विज़न पाइपलाइन के साथ प्रयोग करने में काफी समय बिताया:
![]() |
![]() |
![]() |
![]() |
![]() |
गहराई डेटा प्रसंस्करण: Intel RealSense D435 ने RGB और गहराई डेटा दोनों स्ट्रीम प्रदान किए। मैं मुख्य रूप से गहराई डेटा के साथ काम करता था, जो 30Hz पर 640x480 दूरी मापों की एरे के रूप में आया। पहला चुनौती इस शोरयुक्त गहराई डेटा को फ़िल्टर करके अर्थपूर्ण ज्यामितीय जानकारी निकालना था।
ऑब्जेक्ट डिटेक्शन प्रयास: मैंने कई-स्तरीय डिटेक्शन एल्गोरिदम के साथ प्रयोग किया। मैं कुछ हद तक सफल रहा कि गहराई छवि को विभाजित करके फर्श स्तर पर वस्तुओं (दीवारों, छत आदि को फ़िल्टर करके) को पहचान सकूँ और लगभग 0.3x0.3 मीटर के फुटप्रिंट वाले वस्तुओं की खोज कर सकूँ। मैंने किनारा पहचान और ज्यामितीय विश्लेषण का उपयोग करके विशिष्ट ट्राइटन प्रोफ़ाइल को पहचानने की कोशिश की, लेकिन परिणाम मिश्रित रहे।
मार्कर पहचान प्रयोग: प्रत्येक ट्राइटन पर तीन प्रतिबिंबित गोले सबसे आशाजनक डिटेक्शन फीचर लगते थे। मैंने ब्लॉब डिटेक्शन एल्गोरिदम के साथ त्रिकोणीय पैटर्न (तीन चमकीले बिंदु) को पहचानने के लिए प्रयोग किया। नियंत्रित प्रकाश स्थितियों में कुछ आशाजनक परिणाम मिले, लेकिन यह लगातार विश्वसनीय नहीं था।
कोऑर्डिनेट फ्यूजन रिसर्च: मैंने विज़न-आधारित पोज़िशन अनुमान को Optitrack डेटा के साथ फ्यूज़ करने के तरीकों की खोज की, जिसमें बुनियादी कलमन फ़िल्टर कार्यान्वयन शामिल थे। विचार यह था कि जब Optitrack डेटा उपलब्ध हो तो उसे अधिक वजन दिया जाए, लेकिन आवश्यकता पड़ने पर विज़न पर वापस लौटें, लेकिन मैं इसे पूरी तरह काम नहीं कर पाया इससे पहले कि मेरा लैब में समय समाप्त हो गया।
प्रदर्शन चुनौतियां: इस सभी प्रोसेसिंग को रोबोट के नियंत्रण लूप के साथ वास्तविक समय में चलाना चुनौतीपूर्ण था। मैंने एल्गोरिदम को लगभग 10-15Hz पर चलाने के लिए अनुकूलन किया, बिना Jetson Nano की प्रोसेसिंग क्षमता को ओवरलोड किए।
दुर्भाग्यवश, मैं लैब छोड़ने से पहले इस कंप्यूटर विज़न कार्य को पूरी तरह नहीं कर पाया। जबकि मेरे पास कुछ आशाजनक शुरुआती परिणाम थे और गहराई सेंसर प्रोसेसिंग के बारे में बहुत कुछ सीख गया, मैं सिस्टम को पूरी तरह विश्वसनीय स्थिति तक नहीं ले जा सका। यह एक रोचक शोध दिशा बनी रही जिसे अन्य लोग आगे विकसित कर सकते हैं।
यहाँ मेरे द्वारा कंप्यूटर विज़न एल्गोरिदम का परीक्षण करने का एक वीडियो है:
यहाँ मेरे प्रयोगों के दौरान गहराई सेंसर दृश्य इस प्रकार दिखा:
जबकि मैंने गहराई सेंसर इंटीग्रेशन कार्य पूरा नहीं किया, अवधारणा ने स्व-ड्राइविंग कार परिदृश्यों जैसे अनुप्रयोगों के लिए आशा दिखायी, जहाँ वाहन एक-दूसरे के बारे में बाहरी इन्फ्रास्ट्रक्चर पर निर्भर नहीं रहकर जागरूक रहना चाहिए। मैंने जो शोध दिशा शुरू की थी वह भविष्य में लैब के काम में योगदान दे सकती है।
दस्तावेज़ीकरण और ज्ञान संरक्षण
मेरे सबसे महत्वपूर्ण योगदानों में से एक, और शायद जिस पर मैं सबसे अधिक गर्व करता हूँ, वह था सभी प्रोजेक्ट दस्तावेज़ीकरण को व्यवस्थित और संरक्षित करना। जब मैं लैब में आया, ट्राइटन प्रोजेक्ट का ज्ञान कई प्लेटफ़ॉर्म और फ़ॉर्मेट में बिखरा हुआ था। महत्वपूर्ण जानकारी बिखरी हुई थी:
- विभिन्न छात्रों के विभिन्न Google Drive खातों में जो स्नातक हो चुके थे
- इनबॉक्स में दबी पुरानी ईमेल्स
- रैंडम ड्रॉपबॉक्स फ़ोल्डर
- कई GitHub रिपॉज़िटरी
- असंगत संगठन वाले GitLab रिपॉज़िटरी
- हाथ से लिखे नोट्स जो केवल विशिष्ट लोग ही समझ सकते थे
यह बिखरा हुआ दस्तावेज़ीकरण एक बड़ी समस्या थी। नए छात्र सप्ताहों तक केवल शुरू करने के तरीके को समझने में बिताते थे, और मूल्यवान ज्ञान लगातार खो जाता था जब लोग स्नातक होते या लैब छोड़ते।
मैंने इस समस्या को व्यवस्थित रूप से हल करने का निर्णय लिया। मैंने ट्राइटन प्रोजेक्ट से संबंधित हर दस्तावेज़, कोड, वीडियो और नोट को ट्रैक करने में अनगिनत घंटे बिताए। फिर मैंने सब कुछ एक केंद्रीकृत GitLab रिपॉज़िटरी में स्पष्ट, तार्किक संरचना के साथ व्यवस्थित किया।
![]() |
![]() |
केंद्रीकृत दस्तावेज़ीकरण में शामिल था:
- निर्माण गाइड: शुरू से ट्राइटन को असेंबल करने के लिए चरण-दर-चरण निर्देश
- सॉफ़्टवेयर सेटअप: विकास पर्यावरण सेटअप करने के लिए पूर्ण गाइड
- कोड दस्तावेज़ीकरण: स्पष्ट व्याख्याओं के साथ अच्छी तरह टिप्पणी किया गया कोड
- हार्डवेयर विनिर्देश: विस्तृत भाग सूची, वायरिंग डायग्राम, और PCB डिज़ाइन
- समस्या निवारण गाइड: सामान्य समस्याएँ और उनके समाधान
- वीडियो ट्यूटोरियल: मैंने YouTube पर शैक्षिक वीडियो बनाए और अपलोड किए, जिसमें विस्तृत Optitrack कैलिब्रेशन ट्यूटोरियल शामिल हैं:
मैंने दस्तावेज़ीकरण मानक स्थापित किए ताकि भविष्य के योगदान व्यवस्थित और सुलभ रहें। मैंने जो रिपॉज़िटरी संरचना बनाई वह लैब में सभी बाद के काम की नींव बन गई।
सिर्फ मौजूदा दस्तावेज़ीकरण को व्यवस्थित करने से आगे, मैंने कई मूल गाइड और ट्यूटोरियल बनाए जो ज्ञान आधार में महत्वपूर्ण अंतर को भरते थे। इनमें नए लैब सदस्यों के लिए विस्तृत सेटअप निर्देश, व्यापक समस्या निवारण गाइड, और जटिल प्रक्रियाओं के वीडियो वॉकथ्रू शामिल थे।
प्रभाव तुरंत और स्थायी था। नए छात्र दिनों में ही काम शुरू कर सकते थे, हफ्तों नहीं। मेरे द्वारा बनाया गया दस्तावेज़ीकरण रिपॉज़िटरी आज भी लैब द्वारा उपयोग किया जाता है, मेरे जाने के कई साल बाद भी। यह ट्राइटन प्रोजेक्ट का एकल सत्य स्रोत बन गया और भविष्य के शोधकर्ताओं के लिए अनगिनत घंटे/दिन बचाए।
मेंटरिंग और ज्ञान स्थानांतरण
मेरे समय के सबसे संतोषजनक पहलुओं में से एक था दूसरों को मेंटर करने और अपने ज्ञान को साझा करने का अवसर। जैसे-जैसे मेरा काम आगे बढ़ा और मैं ट्राइटन सिस्टम में अधिक अनुभवी हुआ, मैंने नए टीम सदस्यों को प्रशिक्षण देने की जिम्मेदारी बढ़ाई।
लैब उत्तराधिकारियों का मेंटरिंग
जब मैं अंततः लैब छोड़कर अपनी डिग्री और eBay में काम पर ध्यान केंद्रित करने के लिए तैयार हो रहा था, मैंने दो लोगों को पूरी तरह प्रशिक्षित किया जो मेरे प्रस्थान के बाद ट्राइटन प्रोजेक्ट को संभालेंगे। यह केवल उन्हें दिखाने के बारे में नहीं था कि चीज़ें कैसे काम करती हैं, बल्कि यह सुनिश्चित करने के बारे में था कि वे मूल सिद्धांतों को समझें ताकि वे नवाचार जारी रख सकें।
मैंने कई हफ़्ते उनके साथ निकटता से काम किया, जिसमें शामिल था:
- PID नियंत्रण प्रणाली की गणितीय आधारभूत
- कई रोबोटों को समन्वयित करने के लिए मल्टी-प्रोसेसिंग आर्किटेक्चर
- गहराई सेंसर इंटीग्रेशन और कंप्यूटर विज़न एल्गोरिदम
- दस्तावेज़ीकरण प्रणाली और इसे कैसे बनाए रखें
- डिबगिंग तकनीकें और सामान्य विफलता मोड
ज्ञान स्थानांतरण अत्यंत विस्तृत था। हमने वास्तविक डिबगिंग सत्र साथ में किए, मैंने उन्हें मौजूदा कोड को संशोधित और विस्तारित करने को कहा, और सुनिश्चित किया कि वे स्वतंत्र रूप से नए ट्राइटन को शुरू से सेट कर सकें।
हाई स्कूल मेंटरशिप प्रोग्राम
शायद सबसे अधिक संतोषजनक था मेरा हाई स्कूल छात्र को लैब के आउटरीच प्रोग्राम के माध्यम से मेंटरिंग का अनुभव। यह रोबोटिक्स, कंप्यूटर विज्ञान, और अनुसंधान को एक प्रारंभिक चरण में परिचित कराने का एक शानदार अवसर था।
मैंने एक व्यापक पाठ्यक्रम तैयार किया जिसमें शामिल था:
कंप्यूटर विज्ञान मूलभूत:
- मुख्य भाषा के रूप में Python का उपयोग करके प्रोग्रामिंग अवधारणाएँ
- ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का परिचय
- एल्गोरिदम और डेटा संरचनाओं की समझ
रोबोटिक्स अवधारणाएँ:
- सेंसर कैसे काम करते हैं और उनके साथ कैसे इंटरफ़ेस करें
- एक्चुएटर नियंत्रण और मोटर सिस्टम
- स्वायत्त सिस्टम और फीडबैक नियंत्रण की मूल बातें
ROS (Robot Operating System):
- पब्लिश/सब्सक्राइब मैसेजिंग सिस्टम को समझना
- नोड्स और सर्विसेज बनाना
- लॉन्च फ़ाइलों और पैरामीटर सर्वर के साथ काम करना
हैंड्स-ऑन प्रोजेक्ट कार्य:
- हमने एक ROS सर्विस बनाई जो ट्राइटन के सिर पर LED सिस्टम को नियंत्रित करती थी
- उसने साफ़, दस्तावेज़ीकृत कोड लिखा जो हमारे मौजूदा सिस्टम के साथ एकीकृत था
- उसने जो LED नियंत्रण सेवा बनाई वह ट्राइटन कोडबेस का स्थायी भाग बन गई
इस मेंटरशिप ने उसे प्रोग्रामिंग के बारे में लगभग कुछ न जानने से लेकर सक्रिय शोध प्रोजेक्ट में सार्थक कोड योगदान तक पहुंचाया। वह “वेरिएबल क्या है?” से लेकर स्वतंत्र रूप से ROS संचार समस्याओं को डिबग करने और अपनी स्वयं की सर्विस इम्प्लीमेंटेशन लिखने तक पहुंची।
LED नियंत्रण प्रणाली ने शोधकर्ताओं को सरल ROS कमांड के माध्यम से ट्राइटन के सिर के LED रंग और पैटर्न को आसानी से बदलने की अनुमति दी। यह सरल लग सकता है, लेकिन इसके लिए ROS आर्किटेक्चर, हार्डवेयर इंटरफ़ेस, और उचित सॉफ़्टवेयर डिज़ाइन पैटर्न की समझ आवश्यक थी। उसका योगदान आज भी लैब में उपयोग हो रहा है।
मेंटरशिप मेरे लिए भी शैक्षिक थी। इसने मुझे जटिल अवधारणाओं को छोटे भागों में तोड़ने और मूलभूत बातों पर विचार करने के लिए मजबूर किया। किसी और को सिखाने से मैं एक बेहतर इंजीनियर और शोधकर्ता बन गया।
पीएचडी शोध के साथ सहयोग
मेरे लैब में समय के सबसे पेशेवर रूप से संतोषजनक पहलुओं में से एक था पेंग के साथ निकटता से काम करना, एक पीएचडी छात्र जिसका शोध स्व-चालित कार एल्गोरिदम पर केंद्रित था। ट्राइटन सिस्टम में मैंने किए गए सॉफ़्टवेयर सुधारों ने उनके डॉक्टरेट शोध को समर्थन दिया।
पेंग के शोध को सटीक, विश्वसनीय मल्टी-रोबोट समन्वय की आवश्यकता थी ताकि स्व-चालित कार परिदृश्यों का सिमुलेशन किया जा सके। मेरे गति नियंत्रण और मल्टी-रोबोट सिस्टम में सुधारों से पहले, ये प्रयोग बहुत अधिक कठिन थे। रोबोट धीमे, कम सटीक और प्रभावी रूप से साथ नहीं काम कर पा रहे थे।
मेरे योगदान ने पेंग के शोध को कई क्षेत्रों में मदद की:
Intersection Management Studies: बेहतर PID कंट्रोलर और मल्टी-रोबोट समन्वय के साथ, पेंग कई “वाहनों” (ट्राइटन) को उनके आंदोलन को समन्वयित करने की आवश्यकता वाले इंटरसेक्शन परिदृश्यों का सिमुलेशन कर सके। बेहतर टाइमिंग और पोजिशनिंग ने इन अध्ययनों को अधिक संभव बना दिया।
Vehicle-to-Vehicle Communication: मैंने जो मल्टी-प्रोसेसिंग फ्रेमवर्क विकसित किया, उसने पेंग को सिम्युलेटेड वाहनों के बीच संचार प्रोटोकॉल को लागू और परीक्षण करने की अनुमति दी। प्रत्येक ट्राइटन निर्णय ले सकता था जबकि अन्य के साथ समन्वयित रहता था, जैसे कि स्व-चालित कारों को संचालन में आवश्यकता हो सकती है।
SLAM and Mapping Research: डिप्थ सेंसर इंटीग्रेशन कार्य ने पेंग को उनके समकालिक लोकेलाइज़ेशन और मैपिंग शोध के लिए अतिरिक्त डेटा प्रदान किया। कई रोबोटों के साथ समन्वित सेंसरिंग क्षमताओं ने अधिक व्यापक मैपिंग प्रयोगों को संभव बनाया।
हमारी सहयोग को विशेष रूप से मूल्यवान बनाता था कि यह केवल मेरे द्वारा उनके शोध में मदद करने तक सीमित नहीं था, बल्कि एक वास्तविक साझेदारी थी। स्वायत्त वाहनों के सैद्धांतिक पहलुओं की पेंग की समझ ने मेरे व्यावहारिक कार्यान्वयन को सूचित किया। उनके फीडबैक और आवश्यकताओं ने मुझे सिस्टम को अधिक मजबूत और सक्षम बनाने के लिए प्रेरित किया।
हमने कई घंटे लैब में साथ बिताए, परिदृश्यों को डिबग किया, विभिन्न नियंत्रण रणनीतियों पर चर्चा की, और ट्राइटन प्लेटफ़ॉर्म की संभावनाओं को खोजा। पेंग मेरे सहयोगी और मित्र दोनों बन गए, और उनके साथ काम करने ने मुझे अकादमिक शोध के वास्तविक कार्यों के बारे में बहुत कुछ सिखाया।
मैंने बनाए सिस्टम पेंग के डिसर्टेशन कार्य का उपयोगी हिस्सा बन गए। मेरे व्यावहारिक इंजीनियरिंग योगदान को स्वायत्त वाहन तकनीक में शोध को समर्थन देते देखना वास्तव में संतोषजनक था। इसने मेरे इस विश्वास को मजबूत किया कि ठोस इंजीनियरिंग और शोध मिलकर उपयोगी परिणाम बना सकते हैं।
भले ही मैं लैब छोड़ गया, पेंग और मैं संपर्क में रहे। यह जानकर कि मेरा काम मेरे प्रस्थान के बाद भी महत्वपूर्ण शोध में योगदान देता रहा, अत्यंत संतोषजनक था।
दृष्टिकोण: प्री-एलएलएम विकास युग
यह उल्लेखनीय है कि यह सभी कार्य प्री-एलएलएम सॉफ़्टवेयर विकास युग में पूरा किया गया था। यह सब 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 इंजीनियरिंग में गहराई तक गया, जो अत्यंत संतोषजनक और विकास एवं प्रभाव के लिए कई अवसर प्रदान किया।
फिर भी मेरे अंदर एक भाग है जो पूछता है “क्या होता अगर।” रोबोटिक्स मेरा सच्चा जुनून रहा है और अभी भी है। भौतिक सिस्टम के साथ काम करने, कोड को वास्तविक दुनिया में गति और व्यवहार में बदलते देखना, वेब विकास और AI काम में नहीं मिल सकता।
मैं कभी-कभी सोचता हूँ कि अगर मैंने अलग रास्ता चुना होता तो क्या होता। अगर मैं रोबोटिक्स शोध में बना रहता? अगर मैंने स्नातक के बाद तुरंत ग्रेजुएट स्कूल में प्रवेश किया? अगर मैंने उद्योग अनुभव के बजाय लैब काम को प्राथमिकता दी होती?
पर मैं यह भी मानता हूँ कि हर रास्ते के अपने ट्रेड-ऑफ़ होते हैं। वेब विकास और AI में विकसित कौशल अत्यंत मूल्यवान रहे हैं। उद्योग अनुभव ने मुझे स्केलेबल सॉफ़्टवेयर इंजीनियरिंग, उपयोगकर्ता अनुभव डिजाइन, और लाखों उपयोगकर्ताओं के लिए उत्पाद बनाने की चुनौतियों के बारे में सिखाया। इन अनुभवों ने मुझे एक बेहतर इंजीनियर बना दिया।
HCR लैब में किया काम आज भी मेरे समस्या समाधान दृष्टिकोण को प्रभावित करता है। PID नियंत्रण प्रणाली के लिए आवश्यक व्यवस्थित सोच मेरे सॉफ़्टवेयर सिस्टम में फीडबैक लूप डिजाइन में दिखती है। दस्तावेज़ीकरण और ज्ञान संरक्षण कौशल मेरे सभी भूमिकाओं में अमूल्य रहे हैं। मेंटरिंग और शिक्षण ने मेरे जूनियर डेवलपर्स के साथ काम करने और टीम ज्ञान साझा करने को आकार दिया।
सबसे महत्वपूर्ण, इस अनुभव ने मुझे सिखाया कि मैं चुनौतीपूर्ण तकनीकी समस्याओं पर काम करते समय फलता-फूलता हूँ जो वास्तविक दुनिया में प्रभाव डालते हैं। चाहे वह रोबोट गति एल्गोरिदम को अनुकूलित करना हो या AI सिस्टम बनाना जो उपयोगकर्ताओं को उनके लक्ष्य हासिल करने में मदद करता हो, संतुष्टि कठिन समस्याओं को हल करने से आती है।
स्थायी प्रभाव
HCR लैब अनुभव को देखते हुए, मैं इस बात से आश्चर्यचकित हूँ कि मैंने कितनी कम समय में क्या हासिल किया। मैंने जो सिस्टम बनाए, उन्होंने ट्राइटन प्लेटफ़ॉर्म को मूल रूप से बदल दिया, और कई सुधार आज भी उपयोग में हैं। दस्तावेज़ रिपॉज़िटरी ने पूरे प्रोजेक्ट के लिए ज्ञान आधार बन गया। मेरे मेंटरशिप संबंधों ने उन लोगों पर स्थायी प्रभाव डाला जिनके साथ मैंने काम किया।
सबसे महत्वपूर्ण, इस अनुभव ने दिखाया कि मैं उन समस्याओं पर काम करने में सक्षम हूँ जिनके प्रति मैं वास्तव में उत्साहित हूँ। इन आठ महीनों में मैंने:
- रोबोट मूवमेंट कंट्रोल सिस्टम को सुधारा जो प्लेटफ़ॉर्म को सीमित कर रहा था
- शून्य से मल्टी-रोबोट समन्वय प्रणाली बनाई
- कंप्यूटर विज़न और सेंसर फ्यूज़न क्षमताओं को एकीकृत किया
- व्यापक दस्तावेज़ीकरण और ज्ञान प्रबंधन प्रणाली बनाई
- कई लोगों को मेंटर किया और ज्ञान हस्तांतरण में मदद की
- स्वायत्त वाहनों में पीएचडी स्तर के शोध को समर्थन दिया
यह केवल तकनीकी उपलब्धियों के बारे में नहीं था, हालांकि वे मेरे लिए महत्वपूर्ण थीं। यह इस बात को सीखने के बारे में था कि दृढ़ता और व्यवस्थित सोच के साथ, आप एक स्नातक छात्र के रूप में भी उपयोगी योगदान दे सकते हैं।
भविष्य और रोबोटिक्स
जबकि मेरा करियर मुझे अन्य दिशाओं में ले गया है, रोबोटिक्स के प्रति मेरा जुनून कम नहीं हुआ है। मैं अभी भी इस क्षेत्र में विकास को फॉलो करता हूँ, मैं रोबोट सीखने और स्वायत्त प्रणालियों में प्रगति के बारे में उत्साहित हूँ, और मैं कभी-कभी अपने खाली समय में व्यक्तिगत रोबोटिक्स परियोजनाओं पर काम करता हूँ।
कौन जानता है भविष्य में क्या होगा? AI और मशीन लर्निंग में मैं जो कौशल विकसित कर रहा हूँ, वह रोबोटिक्स के लिए अधिकाधिक प्रासंगिक हो रहा है। मैंने जो उद्योग अनुभव प्राप्त किया है, उसने मुझे मजबूत, स्केलेबल सिस्टम बनाने सिखाया है। शायद भविष्य में मेरे अनुभव के ये विभिन्न धागे अप्रत्याशित तरीकों से एक साथ मिलेंगे।
अभी के लिए, मैं HCR लैब में बिताए समय और उसके द्वारा प्रदान किए गए अनुभवों के लिए आभारी हूँ। यह एक निर्माणात्मक अवधि थी जिसने मेरे तकनीकी कौशल और यह समझ दोनों को आकार दिया कि मैं किस प्रकार के काम को सबसे अधिक संतोषजनक पाता हूँ। भले ही मैं कभी-कभी इसे याद करता हूँ, मैं जानता हूँ कि मैंने जो सबक सीखे हैं और जो दृष्टिकोण विकसित किए हैं, वे मेरे सभी कार्यों को प्रभावित करते रहते हैं।
रोबोट अभी भी वहाँ हैं, शोधकर्ताओं की सेवा कर रहे हैं, महत्वपूर्ण कार्य को सक्षम बना रहे हैं। और यह बहुत शानदार है।