माझ्या रोबोटिक्स संशोधनाचा अध्याय

Table of Contents

हा लेख हायस्कूलमध्ये 2015 साली FRC मध्ये रोबोटिक्सविषयीची माझी आवड शोधण्यापासून ते फेब्रुवारी 2021 ते सप्टेंबर 2021 या कालावधीत Colorado School of Mines’s Human Centered Robotics (HCR) Lab मध्ये संशोधन सहाय्यक म्हणून केलेल्या कामापर्यंतचा माझा रोबोटिक्समधील प्रवास सांगतो. लक्षात घ्या की 2022 च्या उत्तरार्धापासून, HCR Lab हे Colorado School of Mines मधून University of Massachusetts Amherst येथे स्थलांतरित झाले आहे आणि त्याची साइट hcr.mines.edu वरून hcr.cs.umass.edu येथे हलवण्यात आली आहे.

पार्श्वभूमी

मी Colorado School of Mines येथे 2018 च्या शरद ऋतूतील सत्रात माझ्या पदवीपूर्व शिक्षणाला सुरुवात केली. माझा प्रमुख विषय Computer Science होता आणि त्यामध्ये Robotics & Intelligent Systems वर भर होता. आणि मी 2022 च्या वसंत ऋतूत पदवी प्राप्त केली.

माझ्या आयुष्याच्या सुरुवातीलाच मला माझी आवड शोधता आली, हे माझे भाग्य होते. हायस्कूलमध्ये असताना मला काय आवडते आणि कोणत्या गोष्टीत मी चांगला होऊ शकतो, हे शोधण्यासाठी मी बराच वेळ घालवला. काही प्रयत्न आणि चुका केल्यानंतर माझी आवड computer science मध्ये आहे, हे मला समजले. परंतु याच काळात कोडच्या माध्यमातून गोष्टी तयार करण्याची माझ्या मनातील प्रचंड आवडही मला जाणवली.

Mines येथे मला Dr Hao Zhang यांच्या मार्गदर्शनाखाली Mines’ Human Centered Robotics (HCR) Lab मध्ये काम करण्याची संधी मिळाली. Spring 2020 मध्ये त्यांच्या “Human Centered Robotics” (CSCI473) वर्गाद्वारे माझी Dr. Zhang यांच्याशी पहिली भेट झाली आणि COVID तसेच वर्गातील कामकाजामुळे निर्माण झालेल्या गोंधळानंतर, Spring 2021 च्या सुरुवातीला मला त्यांच्या प्रयोगशाळेत काम करण्याची संधी मिळाली.

Human Centered Robotics (CSCI473) वर्ग

Mines’ 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 Simulator समजून घेणे
  3. 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 systems या संकल्पनांची ओळख झाली. प्रकल्पाच्या संपूर्ण वर्णनासाठी csci473-p1.pdf पहा किंवा ROS Move Turtle प्रकल्पाच्या पृष्ठावर या प्रकल्पाबद्दल आणि माझ्या उपायाबद्दल अधिक जाणून घ्या.

रोबोटच्या भिंतीलगत चालण्यासाठी Reinforcement Learning

हा आम्हाला देण्यात आलेला दुसरा प्रकल्प होता आणि महाविद्यालयात मी काम केलेल्या सर्वांत कठीण प्रकल्पांपैकी हा एक होता. प्रकल्पाचे वर्णन पुढीलप्रमाणे होते:

या प्रकल्पात विद्यार्थी स्वायत्त मोबाइल रोबोटला भिंतीलगत चालणे आणि अडथळ्यांवर आदळणे टाळणे शिकवण्यासाठी reinforcement learning algorithms तयार आणि कार्यान्वित करतील. विद्यार्थी ROS Melodic मधील Gazebo simulation चा वापर करून Triton नावाच्या omni-directional mobile robot चे अनुकरण करतील आणि त्यांना दिलेला environment map वापरतील. विद्यार्थी संवेदन आणि शिक्षणासाठी रोबोटवरील laser range scanner वापरतील, ज्यामध्ये रोबोटचे नियंत्रण steering आणि velocity commands वापरून केले जाईल. विद्यार्थ्यांनी हा प्रकल्प Ubuntu 18.04 LTS वर चालणाऱ्या ROS Melodic मध्ये C++ किंवा Python वापरून प्रोग्राम करणे आवश्यक आहे (म्हणजे Project 1 मध्ये वापरलेले तेच विकासाचे वातावरण). तसेच, विद्यार्थ्यांनी LATEX वापरून standard IEEE robotics conferences च्या स्वरूपाचे अनुसरण करणारा अहवाल लिहिणे आवश्यक आहे.

Reinforcement learning algorithm साठी आम्हाला Q-Learning वापरण्याची सूचना देण्यात आली होती. वर्गाने उपलब्ध करून दिलेले Stingray Gazebo simulation environment देखील आम्ही वापरले. Stingray मध्ये Triton model आणि physics logic यांचा समावेश होता. रोबोटने अनुसरण करण्यासाठी आम्हाला एक maze देखील देण्यात आला होता. एकूणात, environment असे दिसत होते:

माझा उपाय फारसा चांगला आणि त्यात अनेक त्रुटी असल्यामुळे मी तो GitHub किंवा वेबवर कधीही प्रकाशित केला नाही. तसेच, योग्य environment मध्ये code चालवणे खूपच कठीण आणि त्रासदायक आहे. मात्र, माझ्या उपायाचे प्रात्यक्षिक दाखवणारा आणि मी वर्गाला सादर केलेला एक demo video माझ्याकडे आहे. तो तुम्ही येथे पाहू शकता:

प्रकल्पाच्या संपूर्ण वर्णनासाठी csci473-p2.pdf पहा.

Skeleton-Based Representations वापरून मानवी वर्तन समजून घेणे

तिसऱ्या प्रकल्पाचे वर्णन पुढीलप्रमाणे होते:

या प्रकल्पात विद्यार्थी अनेक skeleton based representations (Deliverable 1) कार्यान्वित करतील आणि Kinect V1 sensor मधून संकलित केलेल्या सार्वजनिक activity dataset चा वापर करून Support Vector Machines (SVMs) (Deliverable 2) च्या साहाय्याने मानवी वर्तनांचे वर्गीकरण करतील. याव्यतिरिक्त, विद्यार्थ्यांनी Deliverable 3 मध्ये LATEX वापरून standard IEEE robotics conferences च्या स्वरूपाचे अनुसरण करणारा अहवाल लिहिणे आवश्यक आहे.

हा प्रकल्प आव्हानात्मक होता, परंतु दुसऱ्या प्रकल्पाइतका कठीण नव्हता. MSR Daily Activity 3D Dataset मधील Kinect V1 sensor data आणि Support Vector Machines वापरून काही विशिष्ट मानवी actions/behaviors चे वर्गीकरण करणे, हे याचे मुख्य उद्दिष्ट होते. प्रकल्पाच्या संपूर्ण वर्णनासाठी csci473-p3.pdf पहा किंवा Predict Human Actions Using LIBSVM या blog post वर या प्रकल्पाबद्दल आणि माझ्या उपायाबद्दल अधिक जाणून घ्या.

CSCI473 निष्कर्ष

M ines येथे माझ्या पदवीपूर्व शिक्षणादरम्यान घेतलेल्या वर्गांपैकी CSCI473 हा सर्वांत चांगला वर्ग होता, असे म्हणता येईल. या सर्व प्रकल्पांनी मला खूप काही शिकवले आणि माझ्या resume वर विचार करण्यासाठी व संदर्भ देण्यासाठी प्रकल्पांचा एक छान संग्रह तयार करण्याची संधी दिली. हा असा पहिला वर्ग होता ज्यामध्ये मला मी माझ्या योग्य क्षेत्रात असल्यासारखे वाटले, कारण मी कधीही चांगला test taker नव्हतो, परंतु प्रकल्प पूर्ण करण्यात उत्कृष्ट होतो. याच वर्गामुळे माझी Dr. Hao Zhang यांच्याशी भेट झाली आणि शेवटी त्यांनी मला Mines’ Human-Centered Robotics (HCR) Lab मध्ये research assistant म्हणून पद मिळवून देण्यास मदत केली.

CS Field Session (उन्हाळा 2020)

CG_GUI_19

2020 च्या उन्हाळ्यात, CSCI473 पूर्ण केल्यानंतर आणि HCR Lab मध्ये सहभागी होण्यापूर्वी, मी Colorado School of Mines मधील माझ्या CS undergraduate program चा भाग म्हणून CSCI370 किंवा “Advanced Software Engineering” हा विषय घेतला. CSCI370 हा असा course आहे ज्यामध्ये विद्यार्थ्यांना एखाद्या कंपनीसाठी software-related solutions चे design, implementation आणि documentation करावे लागते. यामुळे विद्यार्थ्यांना त्यांच्या coursework मधील ज्ञानाचा वापर real world computer science problems वर करता येतो. या course बद्दल तुम्ही येथे अधिक जाणून घेऊ शकता.

या course मध्ये तुम्ही कोणत्या project/company वर काम करणार हे ठरवू शकता. Course मध्ये प्रत्येक project आणि company चे तपशील देणारे PDFs उपलब्ध करून देण्यात आले होते. शेवटी मी Lunar Outpost नावाच्या कंपनीने प्रकाशित केलेल्या “Real Time Wheel Slip Detection and Error Corrections for Enhanced Lunar Navigation” या project वर काम करण्याचे ठरवले. नाव मोठे असल्यामुळे या project ला “Wheel Slippage Detection” असे टोपणनाव देऊया.

समस्या

Lunar Outpost ही autonomous lunar rovers तयार करण्याचा प्रयत्न करणारी startup company आहे. चंद्रावर मोठ्या प्रमाणात lunar dust आहे आणि त्यामुळे wheel slippage मोठ्या प्रमाणात होते. हे आदर्श नाही, कारण wheel slippage मुळे autonomous systems त्यांच्या real world location चा मागोवा गमावू शकतात. पृथ्वीवर wheel slippage मुळे निर्माण झालेली कोणतीही offset दुरुस्त करण्यासाठी GPS data वापरून ही समस्या सोडवली जाते. परंतु GPS ची अडचण अशी आहे की ते केवळ पृथ्वीभोवती orbit मध्ये सतत फिरणारे आणि computers ना त्यांची position मोजता यावी यासाठी unique signals प्रसारित करणारे 30+ navigation satellites असल्यामुळेच कार्य करते. परंतु चंद्रावर सध्या GPS सारखी कोणतीही गोष्ट अस्तित्वात नाही. हे लक्षात घेता, wheel slippage शोधण्यासाठी GPS व्यतिरिक्त दुसरी पद्धत वापरावी लागेल. Project च्या समस्येचा अधिक सविस्तर report येथे पाहता येईल.

टीम

हा project साधा नव्हता, त्यामुळे तो team मध्ये करणे आवश्यक होते. Team मध्ये Colorado School of Mines चे पाच सहकारी विद्यार्थी होते:

हा project साधा नव्हता, त्यामुळे तो team मध्ये करणे आवश्यक होते. या team मध्ये Mehmet Yilmaz (मी), Kane Bruce, Braedon O’Callaghan, Liam Williams आणि Kevin Grant यांचा समावेश होता.

या project साठी आम्हाला काही ROS, C++, Python, Linux, Raspberry Pi आणि Arduino चे ज्ञान असणे आवश्यक होते. आमच्यापैकी बहुतेकांना यांपैकी एक किंवा अधिक technologies चा अनुभव होता, परंतु ROS चा अनुभव असलेला मी एकटाच होतो, कारण Spring 2020 semester मध्ये माझ्या Human Centered Robotics (CSCI473) class मध्ये मी ROS वापरले होते. त्यामुळे सुरुवातीपासूनच मी सर्वांना ROS आणि त्यासाठी development कसे करायचे याबद्दल माहिती देऊन त्यांना वेग मिळवून देण्यास मदत केली.

आव्हाने

या प्रकल्पामध्ये अनेक आव्हाने होती. परंतु आम्हाला आलेले सर्वात मोठे आव्हान म्हणजे चाचणीसाठी प्रत्यक्ष जगातील रोबोट उपलब्ध नसणे. COVID मुळे सर्व काही दूरस्थ झाले आणि Lunar Outpost च्या प्रयोगशाळेत/इमारतींमध्ये काम करणे आम्हाला शक्य झाले नाही. त्यामुळे आम्हाला सिम्युलेशनचा वापर करावा लागला.

तसेच, Lunar Outpost च्या वापराच्या परिस्थितीसाठी Wheel Slippage ची समस्या कशी सोडवता येईल याची कल्पना मिळवण्यासाठी आम्ही WVU Navigation Lab मधील काही शैक्षणिक संशोधनाचा अभ्यास केला. आमच्यासाठी, म्हणजे पदवीपूर्व द्वितीय आणि तृतीय वर्षातील विद्यार्थ्यांसाठी, हे आमच्या अपेक्षेपेक्षा अधिक कठीण होते.

आमच्यासमोरील आणखी एक आव्हान म्हणजे या प्रकल्पावर काम करण्यासाठी आमच्याकडे असलेला कमी वेळ. CSCI370 हा एक महिन्याचा वर्ग आहे. परंतु ही समस्या स्वतःमध्ये खूप मोठी आहे आणि अनेक कंपन्या व शैक्षणिक संशोधक अनेक दशकांपासून ती सोडवण्याचा/परिपूर्ण करण्याचा प्रयत्न करत आहेत. त्यामुळे ही समस्या सोडवण्यासाठी एक महिना हा पुरेसा वेळ नव्हता. तरीही, या सर्व आव्हानांनंतरही आम्ही प्रयत्न सुरू ठेवले आणि काम पूर्ण करून देण्याची खात्री केली.

निष्कर्ष

सर्व संशोधन आणि विकासाच्या प्रक्रियेतून गेल्यानंतर, आम्ही असा निष्कर्ष काढला की डिजिटल पद्धतीने चंद्रावरील योग्य भौतिकशास्त्राचे अनुकरण करणे जवळजवळ अशक्य आहे. त्यामुळे सिम्युलेशनमध्ये हा अल्गोरिदम प्रत्यक्षात वापरण्याचा प्रयत्न करणे उपयोगाचे नाही आणि अवकाशात तसेच चंद्रावर चाक घसरणे शोधण्यासंबंधी कोणतेही अर्थपूर्ण संशोधन-परिणाम मिळणार नाहीत. वाळूसारख्या वस्तूंचा आणि Husky रोबोटसारख्या प्रत्यक्ष हार्डवेअरचा वापर करून योग्य चाचणी वातावरण उभारणे या प्रकारच्या संशोधनासाठी अधिक महत्त्वाचे आहे, असा आमचा निष्कर्ष होता. आम्ही चाक घसरणे शोधण्याचा कोड ROS नोड म्हणून कार्य करण्यासाठी अद्ययावत केला आणि तो योग्यरीत्या कार्यरत झाला; तसेच चाचणीसाठी तो प्रत्यक्ष हार्डवेअरमध्ये सहज आयात करता येत होता. या प्रकल्पामुळे मला नेतृत्वाची भूमिका घेता आली, माझ्या सहकाऱ्यांना ROS विकासाबद्दल शिकवता आले आणि यापूर्वी कधीही अनुभवली नव्हती अशा गुंतागुंतीच्या समस्येवर काम करताना Python, ROS आणि Gazebo यांचा अनुभव मिळवता आला. सर्वांत महत्त्वाचे म्हणजे, या अनुभवामुळे रोबोटिक्सविषयीची माझी आवड अधिक दृढ झाली आणि या क्षेत्रात संशोधन करण्याची माझी इच्छा अधिक बळकट झाली, ज्यामुळे माझ्या रोबोटिक्सच्या प्रवासात पुढे येणाऱ्या गोष्टींसाठी पाया तयार झाला.

HCR Lab मध्ये सुरुवात

CSCI473, 2020 च्या उन्हाळ्यातील माझे CS Field Session आणि 2020 च्या शरद ऋतूतील सत्र पूर्ण केल्यानंतर, मी रोबोटिक्समध्ये संशोधन करण्याचा निर्णय घेतला. CSCI473 आणि CS Field Session या दोन्हींचा मला खूप चांगला अनुभव आला होता, त्यामुळे HCR Lab साठी संशोधन करावे असे मला वाटले. मागील वर्षी माझी Dr. Zhang यांच्याशी भेट झाली होती, म्हणून जानेवारी 2021 मध्ये प्रयोगशाळेत काही संधी आहेत का याबद्दल विचारण्यासाठी मी त्यांना ईमेल करण्याचा निर्णय घेतला. सुमारे 2 आठवड्यांत Dr. Zhang यांनी स्वारस्य व्यक्त केले, मला संशोधनाचे पर्याय सांगितले आणि प्रयोगशाळेत एक भूमिका देऊ केली. त्यानंतर फेब्रुवारी 2021 मध्ये मी प्रयोगशाळेसाठी काम सुरू केले.

परिचयात्मक व्हिडिओ

HCR Lab मधील माझ्या कामाच्या काही महिन्यांनंतर मी रेकॉर्ड केलेला हा माझा परिचयात्मक व्हिडिओ आहे. तो मे 2021 मध्ये रेकॉर्ड करण्यात आला होता आणि 2021 च्या उन्हाळ्यात HCR Lab मध्ये मी ज्या संशोधनावर लक्ष केंद्रित करणार होतो त्याचा आढावा त्यात आहे:

माझा प्रकल्प

HCR Lab मधील माझ्या संपूर्ण कार्यकाळात मी मुख्यतः Triton प्रकल्पावर लक्ष केंद्रित केले. Triton प्रकल्प हा Colorado School of Mines येथील Human Centered Robotics Lab ने विकसित केलेला चल रोबोट आहे. हा NVIDIA’s Jetson Nano द्वारे चालणारा त्रिकोणी omni-wheel भूमीवरील रोबोट आहे.

सोप्या आढाव्यात, Triton मध्ये खालील भागांचा समावेश होता:

  • NVIDIA Jetson Nano
  • NVIDIA’s Seed Studio A205 Carrier Board
  • Arduino Mega
  • 64 GB Micro SD Card
  • सानुकूल 3D मुद्रित शरीर
  • 3 mecanum wheels
  • 1 AR Battery
  • अनुकूलित वीज वितरण आणि वायरिंगसाठी सानुकूल सर्किट्स
  • Intel’s Realsense D435 Camera
  • काही LEDs

शैक्षणिक उद्देशांसाठी रोबोट म्हणून त्याची रचना, बांधणी आणि निर्मिती 2018-2020 दरम्यान करण्यात आली होती. मी सहभागी झालो तेव्हा Triton चांगलाच स्थापित झाला होता आणि प्रयोगशाळा त्याची नवीन आवृत्ती तयार करण्याचा विचार करत होती. मात्र, Triton ची मुख्य समस्या त्याचे सॉफ्टवेअर होते. Triton हलू शकत होता, चार्ज होऊ शकत होता आणि मूलभूत पातळीवर कार्य करू शकत होता, परंतु तो खरोखर कोणतेही बुद्धिमान कार्य करत नव्हता. त्याच्याकडे अधिक प्रगत हालचाली करण्याची क्षमतादेखील नव्हती.

बॅटरी चार्जरची मांडणी चाचणी क्षेत्राची मांडणी
प्रारंभीच्या चाचणी टप्प्यातील Tritons कपाटांवरील Tritons

या समस्येचे निराकरण करण्यासाठी प्रयोगशाळेने Triton च्या हालचालींचा मागोवा ठेवता येईल असे एक क्षेत्र तयार केले. यासाठी त्यांनी 2-मीटर बाय 2-मीटर आकाराचे क्षेत्र तयार केले आणि जमिनीपासून सुमारे 6-7 फूट उंचीवर चौकोनी आकारासारख्या मांडणीत 8 Optitrack Flex (Infrared Red) Cameras बसवले.

क्षेत्र I1 क्षेत्र I2

हे क्षेत्र तयार करण्याबरोबरच, प्रत्येक Triton च्या शरीराच्या वरच्या भागाला तीन राखाडी गोलाकार चेंडू जोडण्यात आले होते.

या मांडणीद्वारे आम्ही प्रभावीपणे स्वतःची लहान-आकाराची GPS प्रणाली तयार केली होती, ज्यामुळे आमच्या इच्छित क्षेत्रातील Triton चे मीटरमध्ये अचूक निर्देशांक मिळवता येत होते. Optitrack इन्फ्रारेड कॅमेरे आणि त्रिकोणी आकारात लावलेल्या Optitrack च्या राखाडी गोलांचा वापर करून आम्ही आमच्या क्षेत्रातील Triton चे अचूक निर्देशांक निश्चित करू शकत होतो. त्यामुळे हालचालींमध्ये अधिक अचूकता मिळवण्यासाठी closed-loop प्रणाली लागू करता आली.

योग्यरीत्या कॅलिब्रेट केल्यावर Optitrack प्रणालीने सुमारे 120Hz वेगाने, उप-मिलिमीटर अचूकतेसह स्थान आणि दिशा यांची माहिती दिली. प्रत्येक Triton वरील तीन परावर्तक मार्करनी एक अद्वितीय त्रिकोणी नमुना तयार केला होता, ज्याचा प्रणाली rigid body म्हणून मागोवा घेऊ शकत होती. निर्देशांक प्रणाली अशा प्रकारे कॅलिब्रेट केली होती की (0,0) हे ट्रॅकिंग क्षेत्राच्या मध्यभागी होते आणि X व Y अक्ष खोलीच्या रचनेशी संरेखित होते. परंतु या अचूक स्थानविषयक माहिती असूनही, Triton ला हालचालींमध्ये अजूनही अडचणी येत होत्या.

या मांडणीसह, Triton ला द्यायचे असलेले एक मूलभूत वैशिष्ट्य म्हणजे विशिष्ट निर्देशांकापर्यंत जाण्याची क्षमता. वापरकर्ता किंवा त्याचे सॉफ्टवेअर, त्याच्या इच्छित क्षेत्रातील (x, y) निर्देशांक देऊ शकत होते. त्यानंतर रोबोटने त्या निर्देशांकापर्यंत शक्य तितक्या जलद, अचूक आणि सुरळीतपणे जावे अशी अपेक्षा होती. मी सहभागी झालो तेव्हा हे वैशिष्ट्य अस्तित्वात होते, परंतु ते फार चांगल्या प्रकारे कार्य करत नव्हते. मूळ हालचाल-तर्क कसा कार्य करत होता हे दाखवणारे एक साधे अॅनिमेशन येथे आहे:

मूळ उपाय प्रत्यक्ष कार्यरत असताना मी रेकॉर्ड केला नव्हता, म्हणून जुना हालचाल-तर्क प्रत्यक्ष कार्यरत असताना दाखवणारे हे साधे अॅनिमेशन मी तयार केले. हे लक्षात घेता, या पद्धतीतील समस्या कोणत्या आहेत?

1. ती खरोखरच खूप संथ आहे 2. विशिष्ट बिंदूपर्यंत जाण्यासाठी रोबोटला खूप मोठी जागा व्यापावी लागते. त्यामुळे अनेक Tritons आजूबाजूला फिरत असताना हा उपाय वापरणे आमच्यासाठी कठीण झाले.

मग हे वर्तन का घडत होते? समस्या अशी होती की Triton प्रथम वळत असे आणि त्याचा alpha बदलत असे, जोपर्यंत तो विशिष्ट त्रुटी-सीमेच्या आत लक्ष्यबिंदूकडे निर्देशित होत नाही. त्यानंतर तो पुढे वेगाने धावत असे आणि त्याचा theta लक्ष्यापासून विशिष्ट प्रमाणात विचलित झाल्यावर तो थांबत असे व पुन्हा वळण्यास सुरुवात करत असे, जोपर्यंत alpha लक्ष्यासाठी स्वीकारार्ह मर्यादेत येत नाही. त्यानंतर तो पुन्हा वेगाने पुढे जात असे आणि बिंदूपर्यंत पोहोचेपर्यंत ही प्रक्रिया सुरू राहत असे. तसेच, तो लक्ष्यबिंदूच्या जवळ जात असताना, लक्ष्य ओलांडले जाणार नाही याची खात्री करण्यासाठी वळण्याचा आणि पुढे जाण्याचा वेग अधिकाधिक कमी केला जात असे. यामुळे Triton ची हालचाल अनैसर्गिक होत असे, लक्ष्यबिंदूपर्यंत पोहोचण्यासाठी खूप वेळ लागत असे आणि विशिष्ट लक्ष्यबिंदूपर्यंत जाण्यासाठी खूप मोठ्या क्षेत्राची आवश्यकता भासत असे. या सर्व समस्यांमुळे आणि Triton प्रकल्पाच्या विकासासाठी हे वैशिष्ट्य किती महत्त्वाचे होते हे लक्षात घेता, HCR Lab मध्ये काम सुरू केल्यावर माझे पहिले काम Triton ला लक्ष्यबिंदूकडे अधिक चांगल्या प्रकारे मार्गक्रमण करता यावे यासाठी अधिक प्रभावी उपाय विकसित करणे हे होते.

हे लक्षात घेऊन, या समस्येचे निराकरण करण्याचा सर्वोत्तम मार्ग शोधण्यासाठी मी बराच वेळ संशोधन केले. विशेष म्हणजे, मी Mines येथे Introduction to Feedback Control Systems (EENG307) नावाचा वर्ग घेत होतो. त्या वर्गाच्या सुरुवातीला आम्ही Open-loop controllers आणि Closed-loop controllers या संकल्पनांबद्दल शिकलो. ही माहिती आणि त्या वर्गाच्या प्राध्यापकांसोबत तसेच माझ्या हुशार रूममेटसोबत झालेल्या चर्चेनंतर, Triton ला लक्ष्यबिंदूपर्यंत नेण्याचे उद्दिष्ट हे closed-loop प्रणालीचेच एक समस्याप्रकार आहे हे स्पष्ट झाले.

व्हाइटबोर्डवरील नियंत्रण प्रणालीचे आकृतीचित्र

आता, विस्तृत चाचणी आणि संशोधनानंतर, मी Tritons साठी दोन वेगळ्या नियंत्रक पद्धती विकसित केल्या:

पद्धत 1: Distance-Theta Controller

या पद्धतीमध्ये एकाच वेळी कार्यरत असलेले दोन स्वतंत्र proportional controllers वापरण्यात आले:

  • Distance Controller: लक्ष्यापर्यंतचे Euclidean अंतर मोजून पुढे/मागे जाण्याचा वेग निश्चित करण्यासाठी proportional gain लागू केला
  • Theta Controller: रोबोटची सध्याची दिशा आणि लक्ष्याकडे जाण्यासाठी आवश्यक दिशा यांमधील कोनीय त्रुटी मोजून, फिरण्याच्या वेगासाठी स्वतंत्र proportional gain लागू केला

अल्गोरिदमने लक्ष्यापर्यंतचे Euclidean अंतर आणि रोबोटची सध्याची दिशा व इच्छित दिशा यांमधील कोनीय त्रुटी यांची सतत गणना केली. अनुक्रमे रेषीय आणि कोनीय वेग निर्माण करण्यासाठी दोन स्वतंत्र proportional gains लागू करण्यात आले.

यामुळे Triton नैसर्गिकरीत्या लक्ष्याच्या दिशेने वळत असतानाच पुढेही सरकत असे आणि गुळगुळीत वक्र मार्ग तयार होत असत. याचा मुख्य फायदा असा होता की रोबोट आपला पुढील भाग नेहमी गंतव्याच्या दिशेने ठेवत असे, जे कॅमेऱ्यावर आधारित अनुप्रयोगांसाठी अत्यंत महत्त्वाचे होते.

पद्धत २: X-Y निर्देशांक नियंत्रक

या पद्धतीत रोबोटला स्वतंत्र X आणि Y हालचाल नियंत्रण असलेल्या द्विमितीय प्लॉटरप्रमाणे हाताळले गेले:

  • X नियंत्रक: X-निर्दांकातील त्रुटीच्या आधारे पूर्व-पश्चिम हालचालीचे थेट नियंत्रण
  • Y नियंत्रक: Y-निर्दांकातील त्रुटीच्या आधारे उत्तर-दक्षिण हालचालीचे थेट नियंत्रण

अंमलबजावणीमध्ये X आणि Y निर्देशांकांच्या त्रुटी स्वतंत्रपणे मोजल्या गेल्या, स्वतंत्र प्रमाणबद्ध लाभ लागू केले गेले आणि त्यानंतर रोटेशन मॅट्रिक्स वापरून या जागतिक वेग घटकांचे रोबोटच्या स्थानिक निर्देशांक प्रणालीमध्ये रूपांतर करण्यात आले. हे रूपांतर आवश्यक होते, कारण रोबोटच्या सर्वदिशात्मक चाकांच्या ड्राइव्हट्रेनला जागतिक निर्देशांकांमधील नव्हे, तर स्वतःच्या संदर्भ प्रणालीतील वेग आवश्यक होते. या पद्धतीने लक्ष्यापर्यंतचे सर्वात थेट मार्ग मिळाले आणि ती लक्षणीयरीत्या वेगवान होती; परंतु रोबोटची दिशा हळूहळू बदलत राहायची, कारण दिशानियंत्रण स्पष्टपणे केलेले नव्हते.

पद्धत #१ साठी, मी Move Turtle (TurtleSim) ब्लॉग मध्ये या पद्धतीचे संपूर्ण तपशीलवार वर्णन केले आहे. PID नियंत्रक सर्वसाधारणपणे कसे कार्य करतात, तसेच पद्धत #१ कशी कार्य करते, हे सर्व तपशील समजून घेण्यासाठी हा ब्लॉग वाचण्याची मी जोरदार शिफारस करतो. मी पद्धत #१ ROS’s TurtleSim वापरून विकसित केली आणि नंतर तो कोड Triton मध्ये हस्तांतरित करून अधिक वास्तविक वातावरणाचा विचार करण्यासाठी त्यात सुधारणा केली.

पद्धत #२ मध्ये यापेक्षा वेगळी, पण तितकीच प्रभावी पद्धत वापरण्यात आली. रोबोटची दिशा आणि लक्ष्यापर्यंतचे अंतर यांचा विचार करण्याऐवजी, ही पद्धत हालचालीकडे निर्देशांक-समतलावरील समस्येप्रमाणे पाहते. नियंत्रक X आणि Y या दोन्ही दिशांमधील त्रुटींची स्वतंत्रपणे सतत गणना करतो. उदाहरणार्थ, रोबोटला (0,0) पासून (2,3) पर्यंत जायचे असल्यास, त्याला X मध्ये 2 मीटरची आणि Y मध्ये 3 मीटरची त्रुटी दुरुस्त करायची आहे, असे तो पाहतो. दोन प्रमाणबद्ध नियंत्रक एकाच वेळी कार्यरत असतात: एक X-त्रुटीच्या आधारे X दिशेतील रोबोटचा वेग समायोजित करतो, तर दुसरा Y दिशेतील हालचाल नियंत्रित करतो. यामुळे 3D प्रिंटरचे हेड ज्या प्रकारे हालचाल करते, त्याप्रमाणे लक्ष्यापर्यंत अधिक थेट मार्ग तयार झाला आणि गुळगुळीत कर्णरेषीय हालचाली शक्य झाल्या. रोबोटला लक्ष्याकडे तोंड करून स्पष्टपणे वळण्याची गरज नव्हती, त्यामुळे अरुंद जागांमध्ये किंवा अचूक स्थाननिश्चिती आवश्यक असताना ही पद्धत विशेषतः प्रभावी ठरली.

दोन्ही पद्धती मूळ पद्धतीपेक्षा लक्षणीयरीत्या वेगवान आणि अधिक विश्वासार्ह ठरल्या. या नवीन पद्धती प्रत्यक्ष कार्यरत पाहण्यासाठी Tritons in Action Playlist पाहा, ज्यामध्ये नवीन पद्धतींसह सर्व Tritons कार्यरत असल्याचे दाखवले आहे.

पूर्वी साध्या एका बिंदूपासून दुसऱ्या बिंदूपर्यंतच्या हालचालीसाठी 30-45 सेकंद लागत असत; आता त्यासाठी सुमारे 8-12 सेकंद लागत होते. त्याहून महत्त्वाचे म्हणजे, Triton आता अरुंद जागांमध्ये अधिक कार्यक्षमतेने मार्गक्रमण करू शकत होता, जे आमच्या बहु-रोबोट परिस्थितींसाठी उपयुक्त ठरले.

विकासातील आव्हाने आणि डीबगिंग

या नियंत्रकांची अंमलबजावणी सरळसोप्या पद्धतीने झाली नाही आणि त्यात अनेक महत्त्वाची डीबगिंगची आव्हाने होती:

निर्देशांक प्रणालीतील रूपांतरे: निर्देशांक रूपांतरे योग्यरीत्या करणे हा सर्वात अवघड भाग होता. Optitrack प्रणाली स्वतःच्या निर्देशांक प्रणालीमध्ये डेटा देत होती, रोबोटची स्वतःची स्थानिक निर्देशांक प्रणाली होती आणि मला त्यांच्यात अचूक रूपांतर करणे आवश्यक होते. सुरुवातीच्या अंमलबजावण्यांमध्ये रोबोट चुकीच्या दिशेने जात होते, कारण रोटेशन मॅट्रिक्सच्या गणनांमध्ये माझ्याकडून गोंधळ झाला होता.

वास्तविक जगातील विरुद्ध आदर्श वर्तन: पाठ्यपुस्तकातील नियंत्रण सिद्धांतात दिसून न येणाऱ्या वास्तविक जगातील घटकांचा विचार करणे हे सर्वात मोठे आव्हान होते. रोबोटच्या चाकांच्या घर्षणाच्या वैशिष्ट्यांमध्ये फरक होता, मोटर्स एकसारख्या प्रतिसाद देत नव्हत्या आणि Optitrack पासून नियंत्रण सॉफ्टवेअरपर्यंत आणि तेथून रोबोटच्या Arduino पर्यंतच्या संप्रेषण साखळीत नेहमीच काही विलंब होता. या भौतिक वास्तवांचा विचार करण्यासाठी मी प्रमाणबद्ध लाभांचे समायोजन करण्यात आणि डेडबँड फिल्टर जोडण्यात अनेक आठवडे घालवले.

दोलन आणि स्थैर्याच्या समस्या: माझ्या सुरुवातीच्या अंमलबजावण्यांमध्ये दोलनाच्या समस्या होत्या, ज्यामध्ये रोबोट लक्ष्यापलीकडे जाऊन पुन्हा पुढे-मागे डळमळत असत. यामुळे PID नियंत्रकांमधील अवकल घटकांचे महत्त्व आणि योग्य लाभ-समायोजनाची गरज मला समजली. अखेरीस पूर्ण PID ऐवजी, काळजीपूर्वक समायोजित केलेल्या लाभांसह प्रामुख्याने प्रमाणबद्ध नियंत्रण वापरण्याचे मी ठरवले, कारण बहुतेक अनुप्रयोगांसाठी प्रणालीतील नैसर्गिक दमण पुरेसे होते.

बहु-रोबोट हस्तक्षेप: अनेक रोबोट एकाच वेळी कार्यरत असताना मला अनपेक्षित हस्तक्षेपाचे नमुने आढळले. रोबोट कधीकधी एकाच जागेसाठी “झगडत” असत किंवा परस्परांना अनिश्चित काळासाठी अडवून ठेवणाऱ्या डेडलॉक परिस्थिती निर्माण करत असत. यामुळे मला समन्वय यंत्रणा आणि टक्कर-टाळण्याचे अल्गोरिदम लागू करावे लागले.

बहु-Triton नियंत्रण प्रणाली

एकाच Triton च्या हालचालीची समस्या सोडवल्यानंतर, प्रयोगशाळेसमोरील पुढील आव्हान म्हणजे अनेक Tritons ना एकाच वेळी एकत्रितपणे कार्य करण्यास सक्षम करणे. हा माझ्या मुख्य लक्षकेंद्रांपैकी एक ठरला आणि अखेरीस प्रकल्पातील माझे महत्त्वपूर्ण योगदान बनला.

मूळ प्रणाली एका वेळी फक्त एका Triton वर नियंत्रण ठेवू शकत होती, ज्यामुळे संशोधनाच्या शक्यता मोठ्या प्रमाणात मर्यादित झाल्या होत्या. अनेक स्वायत्त वाहनांना त्यांच्या हालचालींचा समन्वय साधावा लागणाऱ्या परिस्थितींचे अनुकरण प्रयोगशाळेला करायचे होते; उदाहरणार्थ, वाहतुकीचा प्रवाह सुधारण्यासाठी आणि अधिक चांगले SLAM (एकाच वेळी स्थाननिश्चिती आणि नकाशांकन) नकाशे तयार करण्यासाठी एकमेकांशी संवाद साधणाऱ्या स्वयंचलित गाड्या.

हे सोडवण्यासाठी, मी Python च्या multiprocessing लायब्ररीचा वापर करून बहु-प्रक्रिया पद्धत लागू केली. प्रत्येक Triton साठी एक स्वतंत्र प्रक्रिया देण्यात आली, जी स्वतंत्रपणे चालू शकत होती आणि तरीही केंद्रीय नियंत्रण प्रणालीद्वारे तिचा समन्वय साधला जात होता. यामुळे अनेक Tritons एकमेकांच्या नियंत्रण लूपमध्ये हस्तक्षेप न करता एकाच वेळी हालचाल करू शकले.

बहु-रोबोट संरचना रचना

मी विकसित केलेल्या प्रणालीच्या संरचनेत पुढील काही प्रमुख घटक होते:

मुख्य नियंत्रक प्रक्रिया: ही केंद्रीय समन्वयक म्हणून कार्यरत होती आणि वापरकर्ता इंटरफेसमधील परस्परसंवाद, मार्ग-नियोजन आणि रोबोटमधील उच्च-स्तरीय समन्वय हाताळत होती. ती जागतिक स्थिती राखत होती आणि स्वतंत्र रोबोट प्रक्रियांना आदेश वितरित करत होती.

स्वतंत्र रोबोट प्रक्रिया: प्रत्येक Triton साठी स्वतंत्र Python प्रक्रिया होती, जी पुढील कार्ये हाताळत होती:

  • सुमारे 50Hz वेगाने रिअल-टाइम PID नियंत्रण गणना
  • रोबोटच्या हार्डवेअरशी (Arduino/Jetson) संप्रेषण
  • स्थानिक मार्गाची अंमलबजावणी आणि अडथळे टाळणे
  • मुख्य नियंत्रकाकडे स्थितीचा अहवाल पाठवणे

सामायिक स्मृतीतील संप्रेषण: प्रक्रियांमधील कार्यक्षम संप्रेषणासाठी मी Python चे multiprocessing.shared_memory आणि Queue ऑब्जेक्ट्स वापरले. यामुळे नेटवर्क संप्रेषणाच्या अतिरिक्त खर्चाशिवाय रिअल-टाइम समन्वय साधता आला.

समकालिकीकरण यंत्रणा: अनेक रोबोटना समन्वय साधण्याची गरज असताना, उदाहरणार्थ टक्कर टाळताना, संघर्ष रोखण्यासाठी मी सेमाफोर आणि लॉक लागू केले. यामुळे रोबोटना कार्यक्षेत्रातील विशिष्ट भागांवर विशेष प्रवेशाची विनंती करता आली.

सर्व रोबोटना त्यांच्या नियंत्रण लूप्स स्वतंत्रपणे चालवता येतील आणि तरीही जागतिक समन्वय राखता येईल, याची खात्री करणे हे आव्हान होते. प्रत्येक रोबोट प्रक्रिया स्वतःच्या PID गणना चालवत होती आणि मोटर आदेश थेट हार्डवेअरकडे पाठवत होती, तर मुख्य प्रक्रिया टक्कर-टाळणे आणि मार्ग-नियोजन यांसारखा उच्च-स्तरीय समन्वय हाताळत होती.

बहु-Triton चौक चाचणी बहु-Triton ची सुरुवातीची मांडणी

भविष्यातील बहु-एजंट कार्यासाठी ड्रोनसह Triton

बहु-Triton प्रणालीमुळे संशोधनाच्या पूर्णपणे नवीन शक्यता खुल्या झाल्या. आता आम्ही पुढील गोष्टींचे अनुकरण करू शकत होतो:

  • वाहन-ते-वाहन संप्रेषणाच्या परिस्थिती
  • अडथळे टाळण्यासह समन्वित मार्ग-नियोजन
  • झुंड रोबोटिक्सचे वर्तन
  • बहु-एजंट SLAM नकाशांकन
  • संरचना नियंत्रण आणि मागोवा घेण्याचे वर्तन

अनेक Tritons एकाच वेळी कार्यरत असताना प्रयोगशाळेची मांडणी अशी दिसत होती:

हिरव्या जाळीवर असलेले रोबोट रोबोटच्या जाळीची मांडणी

मी वापरण्यास सुलभ असा इंटरफेसही विकसित केला, ज्यामुळे संशोधकांना प्रत्येक Triton साठी मार्ग दृश्य स्वरूपात निश्चित करता येत होते. प्रत्येक रोबोटने अनुसरावा असा मार्ग तुम्ही अक्षरशः रेखाटू शकत होतात आणि ते रोबोट हे मार्ग अगदी अचूक समन्वयाने पूर्ण करत असत. प्रत्येक हालचालीचा कोड हाताने लिहावा न लागता गुंतागुंतीचे प्रयोग उभारण्यासाठी हे अत्यंत उपयुक्त ठरले.

ही प्रणाली एकाच वेळी 5 Tritons पर्यंत हाताळू शकत होती. प्रत्येक Triton स्वतःचे PID नियंत्रक चालवत होता आणि केंद्रीय नियंत्रण प्रणालीद्वारे त्यांचा समन्वय साधला जात होता. सर्व रोबोट संघाप्रमाणे एकत्र कार्यरत असतानाही त्यांची वैयक्तिक अचूकता कायम राहिली, त्यामुळे कामगिरी प्रभावी होती.

एकल-रोबोट नियंत्रणापासून बहु-रोबोट समन्वयापर्यंत Tritons कार्यरत असल्याचे दाखवणारी प्लेलिस्ट येथे आहे: Tritons in Action Playlist

खोली संवेदकाचे एकत्रीकरण आणि निर्देशांक सुधारणा

मी केलेल्या आणखी एका महत्त्वपूर्ण प्रगतीमध्ये प्रत्येक Triton वर बसवलेल्या Intel RealSense D435 खोली कॅमेऱ्यांचा उपयोग समाविष्ट होता. Optitrack प्रणालीने आम्हाला अत्यंत अचूक स्थाननिश्चितीचा डेटा दिला असला, तरी रोबोट्सनी त्यांची अवकाशीय जाणीव सुधारण्यासाठी आणि निर्देशांकातील त्रुटी दुरुस्त करण्यासाठी त्यांच्या अंगभूत संवेदकांचा कसा उपयोग करावा, हे मला तपासायचे होते.

Tritons त्यांच्या परिसरातील इतर Tritons शोधण्यासाठी आणि त्यांच्या स्थानांचा परस्पर संदर्भ घेण्यासाठी खोली संवेदकांचा वापर करू शकतील, अशी कल्पना होती. यामुळे अनेक उद्देश साध्य झाले असते:

  1. त्रुटी सुधारणा: Optitrack प्रणालीमध्ये कॅलिब्रेशनचा काही बदल किंवा तात्पुरता अडथळा निर्माण झाल्यास, अचूक निर्देशांक प्रणाली कायम ठेवण्यासाठी रोबोट एकमेकांच्या स्थानांची दृश्य पुष्टी वापरू शकले असते.

  2. सुधारित SLAM: खोली मोजणारे सेन्सर असलेले अनेक रोबोट एकत्र काम करत असल्यामुळे, पुनरावृत्त माहितीबिंदूंसह पर्यावरणाचे अधिक समृद्ध नकाशे तयार करता आले असते.

  3. टक्कर टाळणे: केंद्रीय नियंत्रण प्रणालीमध्ये संदेशवहनास विलंब झाला तरी, रिअल-टाइम खोली मापनामुळे रोबोट एकमेकांना ओळखून टाळू शकले असते.

मी Tritons ना पुढील गोष्टी करता याव्यात यासाठी अल्गोरिदमवर प्रयोग सुरू केले:

  • त्यांच्या वैशिष्ट्यपूर्ण त्रिकोणी आकाराचा आणि परावर्तक गोलचिन्हांचा वापर करून इतर Tritons ओळखणे
  • खोलीच्या माहितीचा वापर करून सापेक्ष स्थाने आणि दिशा मोजणे
  • विसंगती ओळखण्यासाठी या मोजमापांची Optitrack माहितीशी तुलना करणे
  • अचूकता राखण्यासाठी त्यांच्या निर्देशांक प्रणालीमध्ये रिअल-टाइममध्ये संभाव्यतः समायोजन करणे

संगणकीय दृश्य प्रयोग

मी संगणकीय दृश्याच्या अशा पाइपलाइनवर बराच वेळ प्रयोग केला, जी अनेक टप्प्यांमध्ये कार्यरत होती:

संगणकीय दृश्य चाचण्यांसाठी एकमेकांसमोर असलेले दोन Tritons Triton च्या कॅमेऱ्याचे जवळून घेतलेले दृश्य
चाचणीसाठी समोरासमोर असलेले दोन Tritons
एकमेकांसमोर असलेले दोन रोबोट शर्यत सुरू करण्याच्या तयारीत असलेले दोन Tritons

खोलीच्या माहितीवर प्रक्रिया: Intel RealSense D435 ने RGB आणि खोलीच्या माहितीचे दोन्ही प्रवाह उपलब्ध करून दिले. मी प्रामुख्याने खोलीच्या माहितीवर काम केले; ही माहिती 30Hz वेगाने अंतरमापनांच्या 640x480 अॅरेच्या स्वरूपात मिळत होती. या गोंगाटयुक्त खोलीच्या माहितीचे गाळणीकरण करून अर्थपूर्ण भौमितिक माहिती काढणे हे पहिले आव्हान होते.

वस्तू ओळखण्याचे प्रयत्न: मी अनेक-टप्प्यांच्या ओळख अल्गोरिदमवर प्रयोग केले. जमिनीच्या पातळीवरील वस्तू ओळखण्यासाठी खोलीच्या प्रतिमेचे विभाजन करण्यात मला काही प्रमाणात यश आले (भिंती, छत इत्यादी गाळून), तसेच योग्य आकारवैशिष्ट्ये असलेल्या, साधारण 0.3x0.3 मीटर क्षेत्रफळ व्यापणाऱ्या वस्तू शोधण्यातही यश मिळाले. वैशिष्ट्यपूर्ण Triton प्रोफाइल ओळखण्यासाठी मी कडा ओळखणे आणि भौमितिक विश्लेषण वापरण्याचा प्रयत्न केला, मात्र त्याचे परिणाम मिश्र स्वरूपाचे होते.

चिन्ह ओळखण्याचे प्रयोग: प्रत्येक Triton वरील तीन परावर्तक गोलचिन्हे हे ओळखीसाठी सर्वाधिक आशादायक वैशिष्ट्य वाटत होते. खोलीच्या प्रतिमेतील तीन तेजस्वी ठिपक्यांचा वैशिष्ट्यपूर्ण त्रिकोणी नमुना ओळखण्यासाठी मी ब्लॉब-डिटेक्शन अल्गोरिदमवर प्रयोग केले. नियंत्रित प्रकाशमान परिस्थितींमध्ये मला काही आशादायक परिणाम मिळाले, मात्र ही पद्धत सातत्याने विश्वासार्ह ठरली नाही.

निर्देशांक एकत्रीकरणावरील संशोधन: Optitrack माहितीबरोबर दृश्य-आधारित स्थान-अंदाज एकत्र करण्याच्या पद्धतींचा मी अभ्यास केला; यात मूलभूत Kalman फिल्टरच्या अंमलबजावणींचाही समावेश होता. उपलब्ध असताना Optitrack माहितीला अधिक वजन देणे, परंतु गरज पडल्यास दृश्य माहितीवर अवलंबून राहणे, अशी या संकल्पनेची कल्पना होती; मात्र प्रयोगशाळेतील माझा वेळ संपण्यापूर्वी हे पूर्णपणे कार्यान्वित करता आले नाही.

कार्यक्षमता-संबंधित आव्हाने: रोबोटच्या नियंत्रण लूप्ससोबत ही सर्व प्रक्रिया रिअल-टाइममध्ये चालवणे आव्हानात्मक ठरले. Jetson Nano च्या प्रक्रिया क्षमतेवर अतिभार न आणता अल्गोरिदम सुमारे 10-15Hz वेगाने चालवण्यासाठी मी कार्यक्षमता सुधारण्याच्या पद्धतींवर प्रयोग केले.

दुर्दैवाने, हे संगणकीय दृश्याचे काम पूर्णपणे पूर्ण करण्यापूर्वी मला प्रयोगशाळा सोडावी लागली. सुरुवातीला मला काही आशादायक परिणाम मिळाले आणि खोलीच्या सेन्सरच्या माहितीवर प्रक्रिया करण्याबद्दल बरेच काही शिकायला मिळाले, परंतु प्रणाली पूर्णपणे विश्वासार्ह स्थितीत आणता आली नाही. तरीही, ही एक मनोरंजक संशोधन दिशा राहिली, ज्यावर इतरजण पुढे काम करू शकले असते.

संगणकीय दृश्याच्या अल्गोरिदमची चाचणी करतानाचा माझा हा व्हिडिओ आहे:

माझ्या प्रयोगांदरम्यान खोलीच्या सेन्सरचे दृश्य असे दिसत होते:

खोलीच्या सेन्सरचे एकत्रीकरणाचे काम मी पूर्ण केले नसले तरी, बाह्य पायाभूत सुविधांवर पूर्णपणे अवलंबून न राहता वाहने एकमेकांबद्दल जागरूक असणे आवश्यक असलेल्या स्वयंचलित वाहनांच्या परिस्थितीचे अनुकरण करण्यासारख्या अनुप्रयोगांसाठी ही संकल्पना आशादायक ठरली. मी शोधायला सुरुवात केलेली ही संशोधन दिशा प्रयोगशाळेतील भविष्यातील कामात संभाव्यतः योगदान देऊ शकते.

दस्तऐवजीकरण आणि ज्ञानाचे जतन

HCR Lab मधील माझ्या सर्वांत महत्त्वाच्या योगदानांपैकी एक, आणि कदाचित ज्याचा मला सर्वाधिक अभिमान आहे, ते म्हणजे प्रकल्पाच्या सर्व दस्तऐवजांचे आयोजन आणि जतन करणे. मी प्रयोगशाळेत सहभागी झालो तेव्हा Triton प्रकल्पाचे ज्ञान अनेक प्लॅटफॉर्म आणि स्वरूपांमध्ये विखुरलेले होते. महत्त्वाची माहिती पुढील ठिकाणी पसरलेली होती:

  • पदवी पूर्ण करून गेलेल्या वेगवेगळ्या विद्यार्थ्यांच्या मालकीची विविध Google Drive खाती
  • इनबॉक्समध्ये दडलेले जुने ईमेल
  • यादृच्छिक Dropbox फोल्डर्स
  • अनेक GitHub रिपॉझिटरीज
  • विसंगत पद्धतीने आयोजित केलेल्या GitLab रिपॉझिटरीज
  • केवळ विशिष्ट लोकांनाच समजणाऱ्या हस्तलिखित नोंदी

हे विखुरलेले दस्तऐवजीकरण एक मोठी समस्या होती. नवीन विद्यार्थ्यांना सुरुवात कशी करायची हे समजून घेण्यासाठीच अनेक आठवडे खर्च करावे लागत होते, आणि लोक पदवी पूर्ण करून किंवा प्रयोगशाळा सोडून गेल्यावर मौल्यवान ज्ञान सतत नष्ट होत होते.

ही समस्या पद्धतशीरपणे सोडवण्याची जबाबदारी मी स्वतःवर घेतली. Triton प्रकल्पाशी संबंधित दस्तऐवज, कोड, व्हिडिओ आणि नोंदींचा प्रत्येक भाग शोधण्यासाठी मी अगणित तास खर्च केले. त्यानंतर मी सर्व सामग्री स्पष्ट आणि तर्कसंगत रचनेसह एका केंद्रीकृत GitLab रिपॉझिटरीमध्ये आयोजित केली.

टेबलावर ठेवलेला Triton टेबलावरील अनेक Tritons (एकूण 8, त्यांपैकी 5 तयार केले जात आहेत)

सुंदर कोनातून शेल्फवरील Tritons

केंद्रीकृत दस्तऐवजीकरणामध्ये पुढील गोष्टींचा समावेश होता:

  • बांधणी मार्गदर्शिका: सुरुवातीपासून Tritons जोडण्यासाठी टप्प्याटप्प्याने सूचना
  • सॉफ्टवेअरची मांडणी: विकासाचे वातावरण उभारण्यासाठी संपूर्ण मार्गदर्शिका
  • कोडचे दस्तऐवजीकरण: स्पष्ट स्पष्टीकरणांसह चांगल्या प्रकारे टिप्पण्या केलेला कोड
  • हार्डवेअरची वैशिष्ट्ये: सविस्तर भागांची यादी, वायरिंग आकृत्या आणि PCB डिझाइन्स
  • समस्यानिवारण मार्गदर्शिका: सामान्य समस्या आणि त्यांचे उपाय
  • व्हिडिओ शिकवण्या: मी YouTube वर सूचना देणारे व्हिडिओ तयार करून अपलोड केले, ज्यामध्ये Optitrack कॅलिब्रेशनच्या सविस्तर शिकवण्यांचाही समावेश होता:

भविष्यातील योगदानांचे आयोजन सुबद्ध आणि सुलभ राहावे यासाठी मी दस्तऐवजीकरणाची मानकेही स्थापित केली. मी तयार केलेली रिपॉझिटरी रचना प्रयोगशाळेतील त्यानंतरच्या सर्व कामांचा पाया ठरली.

फक्त विद्यमान दस्तऐवजीकरणाचे आयोजन करण्यापलीकडे जाऊन, ज्ञानसंग्रहातील महत्त्वाच्या उणिवा भरून काढणाऱ्या अनेक मूळ मार्गदर्शिका आणि शिकवण्या मी तयार केल्या. यामध्ये प्रयोगशाळेतील नवीन सदस्यांसाठी सविस्तर मांडणीच्या सूचना, सर्वसमावेशक समस्यानिवारण मार्गदर्शिका आणि गुंतागुंतीच्या प्रक्रियांचे व्हिडिओद्वारे मार्गदर्शन यांचा समावेश होता.

याचा परिणाम त्वरित आणि दीर्घकाळ टिकणारा होता. नवीन विद्यार्थी काही आठवड्यांऐवजी काही दिवसांत कामाशी परिचित होऊ शकत होते. मी तयार केलेली दस्तऐवजीकरण रिपॉझिटरी मी प्रयोगशाळा सोडल्यानंतर अनेक वर्षांनीही आज प्रयोगशाळेत वापरली जात आहे. ती Triton प्रकल्पासाठी माहितीचा एकमेव अधिकृत स्रोत बनली आणि भविष्यातील संशोधकांचे असंख्य तास/दिवस वाचवले.

मार्गदर्शन आणि ज्ञानाचे हस्तांतरण

HCR Lab मधील माझ्या काळातील सर्वांत समाधानकारक पैलूंपैकी एक म्हणजे इतरांना मार्गदर्शन करण्याची आणि मी मिळवलेले ज्ञान सामायिक करण्याची संधी. माझे काम पुढे सरकत गेले आणि Triton प्रणालींमधील माझा अनुभव वाढत गेला, तसतशी नवीन टीम सदस्यांना प्रशिक्षण देण्याची वाढती जबाबदारी मी स्वीकारली.

प्रयोगशाळेतील उत्तराधिकाऱ्यांना मार्गदर्शन

पदवी पूर्ण करण्यावर आणि eBay मधील माझ्या कामावर लक्ष केंद्रित करण्यासाठी अखेरीस प्रयोगशाळा सोडण्याची तयारी करत असताना, माझ्या जाण्यानंतर Triton प्रकल्पाची जबाबदारी घेणाऱ्या दोन व्यक्तींना मी सखोल प्रशिक्षण दिले. हे फक्त गोष्टी कशा चालतात हे दाखवण्यापुरते मर्यादित नव्हते; त्यांना मूलभूत तत्त्वे खरोखर समजली आहेत याची खात्री करणे हा त्यामागचा उद्देश होता, जेणेकरून ते पुढेही नवनिर्मिती करत राहू शकतील.

मी त्यांच्यासोबत अनेक आठवडे जवळून काम केले आणि पुढील गोष्टींचा अभ्यास केला:

  • PID नियंत्रण प्रणालींचा गणितीय पाया
  • अनेक रोबोट्समध्ये समन्वय साधण्यासाठीची बहुप्रक्रिया संरचना
  • खोलीच्या सेन्सरचे एकत्रीकरण आणि संगणकीय दृश्याचे अल्गोरिदम
  • दस्तऐवजीकरण प्रणाली आणि तिची देखभाल कशी करावी
  • डीबगिंग तंत्रे आणि सामान्य बिघाडाच्या स्थिती

ज्ञानाचे हस्तांतरण अत्यंत सखोल होते. आम्ही प्रत्यक्ष डीबगिंग सत्रे एकत्र केली, विद्यमान कोडमध्ये बदल आणि विस्तार करण्यास मी त्यांना सांगितले, तसेच नवीन Tritons सुरुवातीपासून स्वतंत्रपणे उभारता येतील याची मी खात्री केली.

माध्यमिक शाळेतील मार्गदर्शन कार्यक्रम

प्रयोगशाळेच्या संपर्क कार्यक्रमाद्वारे एका माध्यमिक शाळेतील विद्यार्थिनीला मार्गदर्शन करण्याचा माझा अनुभव कदाचित याहूनही अधिक समाधानकारक होता. तिच्या शिक्षणाच्या घडणीच्या टप्प्यावर तिला रोबोटिक्स, संगणकशास्त्र आणि संशोधनाची ओळख करून देण्याची ही उत्तम संधी होती.

मी एक सर्वसमावेशक अभ्यासक्रम तयार केला, ज्यामध्ये पुढील गोष्टींचा समावेश होता:

संगणकशास्त्राची मूलतत्त्वे:

  • प्राथमिक भाषा म्हणून Python वापरून प्रोग्रामिंगच्या संकल्पना
  • ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंगची ओळख
  • अल्गोरिदम आणि डेटा संरचना समजून घेणे

रोबोटिक्सच्या संकल्पना:

  • सेन्सर्स कसे कार्य करतात आणि त्यांच्याशी इंटरफेस कसा करावा
  • अॅक्च्युएटर नियंत्रण आणि मोटर प्रणाली
  • स्वायत्त प्रणाली आणि फीडबॅक नियंत्रणाची मूलतत्त्वे

ROS (रोबोट ऑपरेटिंग सिस्टम):

  • प्रकाशन/सदस्यता संदेशवहन प्रणाली समजून घेणे
  • नोड्स आणि सेवा तयार करणे
  • लॉन्च फाइल्स आणि पॅरामीटर सर्व्हर्ससोबत काम करणे

प्रत्यक्ष प्रकल्पाचे काम:

  • Triton च्या डोक्यावरील LED प्रणाली नियंत्रित करणारी ROS सेवा तयार करण्यासाठी आम्ही सहकार्य केले
  • आमच्या विद्यमान प्रणालींमध्ये एकत्रित होणारा स्वच्छ, दस्तऐवजीकृत कोड लिहायला तिने शिकले
  • तिने तयार केलेली LED नियंत्रण सेवा Triton कोडबेसचा कायमस्वरूपी भाग बनली

या मार्गदर्शनाला विशेष बनवणारी गोष्ट म्हणजे प्रोग्रामिंगबद्दल अक्षरशः काहीही माहिती नसण्यापासून सक्रिय संशोधन प्रकल्पासाठी अर्थपूर्ण कोडचे योगदान देण्यापर्यंतची तिची प्रगती पाहणे. “व्हेरिएबल म्हणजे काय?” असे विचारण्यापासून सुरुवात करून ती ROS संदेशवहनातील समस्या स्वतंत्रपणे डीबग करण्यापर्यंत आणि स्वतःच्या सेवा-अंमलबजावणी लिहिण्यापर्यंत पोहोचली.

तिने विकसित केलेल्या LED नियंत्रण प्रणालीमुळे संशोधकांना साध्या ROS कमांड्सद्वारे Triton च्या डोक्यावरील LEDs चे रंग आणि नमुने सहजपणे बदलता येऊ लागले. हे सोपे वाटू शकते, परंतु यासाठी ROS आर्किटेक्चर, हार्डवेअर इंटरफेसिंग आणि योग्य सॉफ्टवेअर डिझाइन पॅटर्न्स समजून घेणे आवश्यक होते. तिचे योगदान आजही प्रयोगशाळेत वापरले जात आहे.

मार्गदर्शनाचा अनुभव तिच्यासाठी जितका शैक्षणिक होता, तितकाच तो माझ्यासाठीही होता. त्याने मला गुंतागुंतीच्या संकल्पनांना समजण्यास सोप्या भागांमध्ये विभागण्यास आणि आपण जे करत होतो त्याच्या मूलभूत तत्त्वांचा खरोखर विचार करण्यास भाग पाडले. दुसऱ्याला शिकवल्यामुळे मी अधिक चांगला अभियंता आणि संशोधक बनलो.

पीएचडी संशोधनासोबत सहकार्य

प्रयोगशाळेतील माझ्या काळातील सर्वाधिक व्यावसायिक समाधान देणाऱ्या पैलूंपैकी एक म्हणजे Peng सोबत जवळून काम करणे. तो स्वयंचलित वाहनांच्या अल्गोरिदम्सवर संशोधन करणारा पीएचडी विद्यार्थी होता. Triton प्रणालीमध्ये मी केलेल्या सॉफ्टवेअर सुधारणांमुळे त्याच्या डॉक्टरेट संशोधनाला मदत मिळाली.

स्वयंचलित वाहनांच्या परिस्थितींचे अनुकरण करण्यासाठी Peng च्या संशोधनाला अचूक आणि विश्वासार्ह बहु-रोबोट समन्वयाची आवश्यकता होती. हालचाल नियंत्रण आणि बहु-रोबोट प्रणालींमध्ये मी सुधारणा करण्यापूर्वी हे प्रयोग करणे अधिक कठीण होते. रोबोट्स अधिक संथ आणि कमी अचूक होते, तसेच ते एकत्रितपणे तितक्या प्रभावीपणे काम करू शकत नव्हते.

माझ्या योगदानामुळे Peng च्या संशोधनाला अनेक क्षेत्रांमध्ये मदत झाली:

चौक व्यवस्थापन अभ्यास: सुधारित PID नियंत्रक आणि बहु-रोबोट समन्वयामुळे Peng अनेक “वाहने” (Tritons) असलेल्या चौकातील परिस्थितींचे अनुकरण करू शकत होता, ज्यामध्ये त्यांना त्यांच्या हालचालींचा समन्वय साधणे आवश्यक होते. अधिक चांगल्या वेळेचे नियोजन आणि स्थिती-नियंत्रणामुळे हे अभ्यास अधिक व्यवहार्य झाले.

वाहन-ते-वाहन संवाद: मी विकसित केलेल्या बहु-प्रक्रिया आराखड्यामुळे Peng ला अनुकरण केलेल्या वाहनांमधील संवाद प्रोटोकॉल्सची अंमलबजावणी आणि चाचणी करता आली. प्रत्येक Triton इतरांशी समन्वय साधत असतानाच निर्णय घेऊ शकत होता, जसे स्वयंचलित वाहनांना कार्य करण्याची आवश्यकता असू शकते.

SLAM आणि नकाशांकन संशोधन: खोली संवेदकाच्या एकत्रीकरणाच्या कामामुळे Peng ला त्याच्या एकाच वेळी स्थान-निर्धारण आणि नकाशांकन संशोधनासाठी अतिरिक्त डेटा मिळाला. समन्वित संवेदन क्षमतांसह अनेक रोबोट्स उपलब्ध असल्यामुळे अधिक व्यापक नकाशांकन प्रयोग करणे शक्य झाले.

आमच्या सहकार्याला विशेष महत्त्व देणारी गोष्ट म्हणजे हे केवळ मी त्याच्या संशोधनाला मदत करत होतो असे नव्हते; ते एक खरे भागीदारीचे नाते होते. स्वायत्त वाहनांच्या सैद्धांतिक पैलूंबद्दलचे Peng चे आकलन माझ्या व्यावहारिक अंमलबजावणीसाठी मार्गदर्शक ठरले. त्याच्या अभिप्रायाने आणि आवश्यकतांनी मला प्रणाली अधिक मजबूत आणि सक्षम बनवण्यास प्रवृत्त केले.

आम्ही प्रयोगशाळेत अनेक तास एकत्र घालवले, परिस्थितींमधील त्रुटी शोधल्या, विविध नियंत्रण धोरणांवर चर्चा केली आणि Triton व्यासपीठाकडून काय साध्य होऊ शकते याचा शोध घेतला. Peng सहकारी आणि मित्र दोन्ही बनला, आणि त्याच्यासोबत काम केल्यामुळे शैक्षणिक संशोधन प्रत्यक्षात कसे कार्य करते याबद्दल मला बरेच काही शिकायला मिळाले.

मी तयार केलेल्या प्रणाली Peng च्या प्रबंधाच्या कामाचा उपयुक्त भाग बनल्या. स्वायत्त वाहन तंत्रज्ञानातील संशोधनाला माझ्या व्यावहारिक अभियांत्रिकी योगदानामुळे मदत होत असल्याचे पाहणे खरोखरच समाधानकारक होते. ठोस अभियांत्रिकी आणि संशोधन एकत्र येऊन उपयुक्त परिणाम कसे निर्माण करू शकतात, याबद्दलची माझी आवड त्यामुळे अधिक दृढ झाली.

मी प्रयोगशाळा सोडल्यानंतरही Peng आणि माझा संपर्क कायम राहिला. माझ्या प्रस्थानानंतरही माझे काम महत्त्वपूर्ण संशोधनाला हातभार लावत राहिले, हे जाणून घेणे अत्यंत समाधानकारक होते.

दृष्टिकोन: 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 ची संधी महत्त्वपूर्ण होती; ती माझी पहिली मोठी सॉफ्टवेअर अभियांत्रिकी भूमिका होती, तिने मला अमूल्य औद्योगिक अनुभव दिला आणि ठोस उत्पन्न मिळवून दिले. मात्र, पूर्णवेळ काम, पदवी पूर्ण करणे आणि संशोधनात अर्थपूर्ण योगदान देणे हे एकाच वेळी टिकवून ठेवणे अशक्यप्राय होते. काहीतरी सोडावेच लागणार होते.

प्रयोगशाळेतील कामावर अधिक लक्ष केंद्रित करण्यासाठी माझा अभ्यासक्रमाचा भार कमी करण्याबाबत मी Dr. Zhang यांच्याशी बोललो, तेव्हा त्यांनी मला तसे न करण्याचा ठाम सल्ला दिला. त्यांचा युक्तिवाद योग्य होता: माझी पदवी पूर्ण करणे हे प्राधान्य असायला हवे होते आणि eBay मधील औद्योगिक अनुभव माझ्या करिअर विकासासाठी मौल्यवान ठरणार होता. संशोधनावर लक्ष केंद्रित करण्यासाठी वर्ग सोडणे मोहक असले तरी दीर्घकालीन दृष्टीने तो सर्वोत्तम निर्णय कदाचित ठरणार नाही, असे त्यांना वाटत होते.

म्हणून सप्टेंबर 2021 मध्ये, प्रयोगशाळेत सुमारे 8 महिने सघन काम केल्यानंतर, माझी पदवी पूर्ण करण्यावर आणि eBay मधील कामावर लक्ष केंद्रित करण्यासाठी मी माझ्या संशोधन सहाय्यकाच्या भूमिकेतून मागे हटण्याचा कठीण निर्णय घेतला. त्या काळात मला घ्यावे लागलेल्या व्यावसायिकदृष्ट्या अधिक कठीण निर्णयांपैकी तो एक होता.

प्रयोगशाळा अधिकृतपणे सोडल्यानंतरही, मी तयार केलेल्या प्रणालींबाबत कोणाला मदत हवी असल्यास मी मदत देत राहिलो. आवश्यकतेनुसार दस्तऐवजीकरण अद्ययावत केले, डीबगिंगसंबंधी प्रश्नांची उत्तरे दिली आणि समस्या दूरस्थपणे शोधून सोडवण्यात मदत केली. मी निर्माण केलेले संबंध आणि प्रकल्पाच्या यशासाठी केलेली माझी गुंतवणूक केवळ मी अधिकृतपणे संघाचा भाग राहिलो नाही म्हणून नाहीशी झाली नाही.

चिंतन आणि मागे वळून पाहताना

आता, 2025 मध्ये, चार वर्षांनंतर, त्या काळाचा विचार करताना माझ्या मनात गुंतागुंतीच्या भावना निर्माण होतात. माझ्या करिअरचा मार्ग मला वेब विकास आणि AI/ML अभियांत्रिकीत खोलवर घेऊन गेला; ही क्षेत्रे अत्यंत समाधानकारक ठरली आणि त्यांनी वाढ व प्रभावासाठी मोठ्या संधी दिल्या.

टेबलवरील Tritons चे वरून घेतलेले दृश्य

तरीही माझ्यातील एक भाग “जर असे झाले असते तर?” असा विचार करतो. रोबोटिक्स ही माझी खरी आवड होती आणि प्रामाणिकपणे सांगायचे तर आजही आहे. भौतिक प्रणालींसोबत काम करणे, आपल्या कोडचे प्रत्यक्ष जगातील हालचाली आणि वर्तनात रूपांतर होताना पाहणे, यात काहीतरी असे आहे जे वेब विकास आणि अगदी AI कामही पूर्णपणे पुनरुत्पादित करू शकत नाही.

मी कधीकधी विचार करतो की मी वेगळा मार्ग निवडला असता तर काय झाले असते. रोबोटिक्स संशोधनात राहण्याचा मार्ग मला सापडला असता तर? पदवीपूर्व पदवी पूर्ण केल्यानंतर लगेचच मी पदव्युत्तर शिक्षण घेतले असते तर? औद्योगिक अनुभवापेक्षा प्रयोगशाळेतील कामाला प्राधान्य देण्याचे मी ठरवले असते तर?

परंतु प्रत्येक मार्गाचे काही ना काही तडजोडीचे परिणाम असतात, हेही मी मान्य करतो. वेब विकास आणि AI मध्ये विकसित केलेली कौशल्ये अत्यंत मौल्यवान ठरली आहेत. औद्योगिक अनुभवामुळे मला मोठ्या प्रमाणावर सॉफ्टवेअर अभियांत्रिकी, वापरकर्ता अनुभव रचना आणि लाखो लोक वापरत असलेली उत्पादने तयार करण्यातील व्यावहारिक आव्हाने समजली. या अनुभवांमुळे मी एकूणच अधिक चांगला अभियंता बनलो.

HCR प्रयोगशाळेत केलेले काम आज मी समस्यांकडे पाहण्याच्या पद्धतीवर प्रभाव टाकत आहे. PID नियंत्रण प्रणालींसाठी आवश्यक असलेला पद्धतशीर विचार सॉफ्टवेअर प्रणालींमध्ये अभिप्राय लूप्सची रचना करताना दिसून येतो. मी विकसित केलेली दस्तऐवजीकरण आणि ज्ञान जतन करण्याची कौशल्ये त्यानंतरच्या प्रत्येक भूमिकेत अमूल्य ठरली आहेत. मार्गदर्शन आणि शिकवण्याच्या अनुभवाने कनिष्ठ विकासकांसोबत काम करण्याची आणि संघातील ज्ञानवाटपात योगदान देण्याची माझी पद्धत घडवली आहे.

सर्वात महत्त्वाचे म्हणजे, वास्तविक जगावर प्रभाव टाकणाऱ्या आव्हानात्मक तांत्रिक समस्यांवर काम करताना मी सर्वोत्तम कामगिरी करतो, हे या अनुभवाने मला शिकवले. मग ते रोबोटच्या हालचालींचे अल्गोरिदम अधिक कार्यक्षम करणे असो किंवा वापरकर्त्यांना त्यांची उद्दिष्टे साध्य करण्यात मदत करणाऱ्या AI प्रणाली तयार करणे असो, महत्त्वाच्या कठीण समस्या सोडवण्यातच समाधान असते.

दीर्घकाळ टिकणारा प्रभाव

HCR प्रयोगशाळेतील अनुभवाकडे मागे वळून पाहताना, तुलनेने कमी कालावधीत मी किती काही साध्य केले याचे मला आश्चर्य वाटते. मी तयार केलेल्या प्रणालींनी Triton व्यासपीठाच्या कार्यपद्धतीत मूलभूत बदल घडवून आणला आणि त्यांपैकी अनेक सुधारणा आजही वापरल्या जात आहेत. मी तयार केलेले दस्तऐवजीकरण भांडार संपूर्ण प्रकल्पासाठी ज्ञानाचा आधार बनले. मी निर्माण केलेल्या मार्गदर्शनाच्या संबंधांचा मी ज्या लोकांसोबत काम केले त्यांच्यावर दीर्घकाळ टिकणारा प्रभाव पडला.

पण कदाचित सर्वांत महत्त्वाचे म्हणजे, ज्या समस्यांबद्दल मला खरोखर उत्कटता आहे त्यांवर काम करताना मी काय करू शकतो, हे त्या अनुभवाने मला दाखवून दिले. त्या आठ महिन्यांत मी:

  • प्लॅटफॉर्मला मर्यादित करणारी रोबोटच्या हालचालींची नियंत्रण प्रणाली सुधारली
  • सुरुवातीपासून बहु-रोबोट समन्वय प्रणाली तयार केली
  • संगणकीय दृष्टी आणि सेन्सर फ्यूजन क्षमता एकत्रित केल्या
  • सर्वसमावेशक दस्तऐवजीकरण आणि ज्ञान-व्यवस्थापन प्रणाली तयार केली
  • अनेक लोकांना मार्गदर्शन केले आणि ज्ञान हस्तांतरणास मदत केली
  • स्वायत्त वाहनांवरील पीएचडी-स्तरीय संशोधनाला पाठबळ दिले

हे केवळ तांत्रिक यशांबद्दल नव्हते, जरी ती माझ्यासाठी अर्थपूर्ण होती. हे याबद्दल होते की चिकाटी आणि पद्धतशीर विचारसरणीच्या साहाय्याने, पदवीपूर्व विद्यार्थी असतानाही तुम्ही उपयुक्त योगदान देऊ शकता, हे शिकण्याबद्दल.

भविष्य आणि रोबोटिक्स

माझ्या कारकिर्दीने मला इतर दिशांकडे नेले असले तरी, रोबोटिक्सबद्दलची माझी उत्कटता कमी झालेली नाही. मी अजूनही या क्षेत्रातील घडामोडींचे अनुसरण करतो, रोबोट लर्निंग आणि स्वायत्त प्रणालींमधील प्रगतीबद्दल मला उत्सुकता आहे, आणि मोकळ्या वेळेत अधूनमधून वैयक्तिक रोबोटिक्स प्रकल्पांवर काम करतो.

भविष्यात काय आहे, हे कोण जाणे? कृत्रिम बुद्धिमत्ता आणि मशीन लर्निंगमध्ये मी विकसित करत असलेली कौशल्ये रोबोटिक्ससाठी अधिकाधिक उपयुक्त ठरत आहेत. उद्योगातील अनुभवाने मला मजबूत, विस्तारक्षम प्रणाली कशा तयार करायच्या हे शिकवले आहे. कदाचित असे एखादे भविष्य असेल जिथे माझ्या अनुभवाच्या या वेगवेगळ्या धाग्यांचे अनपेक्षित मार्गांनी एकत्रीकरण होईल.

सध्या, एचसीआर लॅबमध्ये घालवलेल्या वेळेबद्दल आणि त्यातून मिळालेल्या अनुभवांबद्दल मी कृतज्ञ आहे. हा एक घडणारा काळ होता, ज्याने माझी तांत्रिक कौशल्ये तसेच कोणत्या प्रकारचे काम मला सर्वाधिक समाधान देतात याबद्दलची माझी समज, या दोन्हींना आकार दिला. जरी मला कधीकधी त्याची उणीव भासत असली, तरी मी शिकलेले धडे आणि विकसित केलेल्या पद्धती माझ्या प्रत्येक कृतीवर प्रभाव टाकत राहतात, हे मला माहीत आहे.

ट्रायटन रोबोट्स अजूनही तिथेच आहेत, अजूनही संशोधकांची सेवा करत आहेत, अजूनही महत्त्वाचे काम शक्य करून देत आहेत. आणि हे खरोखरच अद्भुत आहे.