Sura Yangu ya Utafiti wa Robotiki

Table of Contents

Chapisho hili linaelezea safari yangu ya robotiki, kuanzia kugundua shauku yangu kwa robotiki katika FRC wakati wa shule ya upili mwaka 2015 hadi wakati wangu kama msaidizi wa utafiti katika Chuo cha Madini cha Colorado Maabara ya Robotics Inayomlenga Binadamu (HCR) kutoka Februari 2021 hadi Septemba 2021. Kumbuka kwamba tangu mwishoni mwa 2022, Maabara ya HCR imehamia kutoka Chuo cha Madini cha Colorado kwenda University of Massachusetts Amherst, pamoja na tovuti yake kutoka hcr.mines.edu hadi hcr.cs.umass.edu.

Historia

Nilianza masomo yangu ya shahada ya kwanza katika Colorado School of Mines katika muhula wa vuli wa 2018. Kozi niliyokuwa nayo ilikuwa Sayansi ya Kompyuta nikiwa nikizingatia Robotiki na Mifumo Yenye Akili. Na nilihitimu katika muhula wa masika wa 2022.

Nilikuwa na bahati ya kupata shauku yangu mapema maishani mwangu. Wakati wa shule ya upili, nilitumia muda mwingi kuelewa kile nilichokipenda na kile ambacho ningekuwa mzuri nacho. Baada ya majaribio na makosa, niliweza kubaini kwamba shauku yangu ilikuwa sayansi ya kompyuta. Lakini pia ilikuwa wakati huo niligundua kwamba nilikuwa na upendo mkubwa wa kujenga kupitia nambari.

Katika Mines, nilipata fursa ya kufanya kazi katika Maabara ya Robotics Inayomlenga Binadamu (HCR) ya Mines chini ya Dr Hao Zhang. Nilimpata kwanza Dr. Zhang katika muhula wa masika wa 2020 kupitia darasa lake “Human Centered Robotics” (CSCI473), na baada ya vurugu za COVID na kazi za darasani, nilipata kufanya kazi katika maabara yake mapema muhula wa masika wa 2021.

Darasa la Robotics Inayomlenga Binadamu (CSCI473)

Darasa la Robotics Inayomlenga Binadamu (CSCI473) la Mines lilikuwa mojawapo ya madarasa machache katika uzoefu wangu wa chuo yaliyonipa athari kubwa. Darasa lilifundishwa na Dr. Hao Zhang. Alama zetu zote kwa darasa zilijumuisha miradi mitatu tu, kila moja ikiwasilisha tatizo lenye changamoto ambalo lilitambulisha dhana za msingi za robotiki. Miradi hii ilijumuisha:

  1. Kujifunza Mfumo wa Uendeshaji wa Roboti (ROS)
  2. Kujifunza kwa Reinforcement kwa Kufuatilia Ukuta kwa Roboti
  3. Uelewa wa Roboti wa Tabia za Binadamu kwa Kutumia Muwakilishi wa Mfupa (Skeleton-Based Representations)

Kujifunza Mfumo wa Uendeshaji wa Roboti (ROS)

Huu ulikuwa mradi wa kwanza uliotupangwa. Mradi ulijumuisha kazi tatu:

  1. Sanidi Mazingira ya Maendeleo
  2. Elewa Simulator ya Gazebo
  3. Andika ‘Halo Dunia’ ya ROS

Kwa kazi za 1 na 2, tulilazimika tu kusanidi mazingira yetu ya maendeleo na kufuata mafunzo ya utangulizi ya Gazebo. Hii ilijumuisha:

  • Kusanidi ROS Melodic, niliyoifanya kwenye kompyuta yangu mpakato ya HP ya 2011 ambayo ilikuwa ya kutosha
  • Kusakinisha na kusanidi ROS na Gazebo
  • Kupitia mafunzo ya gazebosim na mafunzo ya e-manual.

Kazi ya 3, kwa upande mwingine, ilikuwa changamoto halisi. Kazi ilikuwa kutumia turtlesim na kumfanya kobe kuchora nembo ya “M” ya Mines:

Kazi hii, ingawa ilisikika rahisi, ilikuwa ngumu zaidi kuliko ilivyonekana. Mradi huu hatimaye ulikutambulisha dhana ya mifumo ya Mzunguko Wazi (Open-Loop) na Mzunguko wa Kufungwa (Closed-Loop). Kwa maelezo kamili ya mradi, angalia csci473-p1.pdf au unaweza kujifunza zaidi kuhusu mradi huu na suluhisho langu kwenye ukurasa wa mradi ROS Move Turtle.

Kujifunza kwa Reinforcement kwa Kufuatilia Ukuta kwa Roboti

Huu ulikuwa mradi wa pili uliotupangwa, na ilikuwa mojawapo ya miradi ngumu zaidi niliyofanya chuoni. Maelezo ya mradi yalikuwa kama ifuatavyo:

Katika mradi huu, wanafunzi watatengeneza na kutekeleza algoriti za kujifunza kwa reinforcement ili kumfundisha roboti ya kusafiri yenye uhuru kufuata ukuta na kuepuka kugonga vizuizi. Wanafunzi watatumia uigaji wa Gazebo katika ROS Melodic kuiga roboti ya simu ya mwelekeo wote inayoitwa Triton, na kutumia ramani ya mazingira ambayo itatolewa kwako. Wanafunzi watatumia skana ya mzunguko wa laser kwenye roboti kufanya upimaji na kujifunza, ambapo roboti inadhibitiwa kwa kutumia amri za kugeuza na mwendo. Wanafunzi wanahitajika kuprogramu mradi huu kwa kutumia C++ au Python katika ROS Melodic ikitumia Ubuntu 18.04 LTS (yaani, mazingira yale yale ya maendeleo yaliyotumika katika Mradi wa 1). Pia, wanafunzi wanahitajika kuandika ripoti inayofuata muundo wa mikutano ya kawaida ya IEEE ya robotiki kwa kutumia LATEX.

Kwa algoriti ya kujifunza kwa reinforcement, tuliagizwa kutumia Q-Learning. Tuliotumika pia mazingira ya uigaji ya Gazebo ya Stingray yaliyotolewa na darasa. Stingray ilijumuisha modeli ya Triton na mantiki ya fizikia. Pia tulipewa laberinthi kwa roboti kufuata. Kwa ujumla, mazingira yalionekana kama hii:

Sikuchapisha suluhisho langu kwenye GitHub au wavuti kwa sababu haikukuwa nzuri sana na ilikuwa na dosari nyingi. Pia, kupata nambari ikiendeshwa katika mazingira sahihi ni ngumu na inachosha. Hata hivyo, nina video ya demo ambayo niliyawasilisha darasani, ikionyesha suluhisho langu. Unaweza kuiangalia hapa:

Kwa maelezo kamili ya mradi, angalia csci473-p2.pdf

Uelewa wa Roboti wa Tabia za Binadamu kwa Kutumia Muwakilishi wa Mfupa (Skeleton-Based Representations)

Kwa mradi wa tatu, maelezo ya mradi yalikuwa kama ifuatavyo:

Katika mradi huu, wanafunzi watatekeleza uwakilishi kadhaa wa msingi wa mfupa (Deliverable 1) na kutumia Mashine za Msaada wa Vector (SVMs) (Deliverable 2) kubainisha tabia za binadamu kwa kutumia seti ya data ya shughuli za umma iliyokusanywa kutoka kwa sensa ya Kinect V1. Zaidi ya hayo, wanafunzi wanahitajika kuandika ripoti inayofuata muundo wa mikutano ya kawaida ya IEEE ya robotiki kwa kutumia LATEX katika Deliverable 3.

Mradi huu ulikuwa wa changamoto lakini si ngumu kama mradi wa pili. Lengo kuu lilikuwa kutumia data ya sensa ya Kinect V1 kutoka MSR Daily Activity 3D Dataset, na Support Vector Machines kubainisha vitendo/tabia fulani za binadamu. Kwa maelezo kamili ya mradi, angalia csci473-p3.pdf au unaweza kujifunza zaidi kuhusu mradi huu na suluhisho langu kwenye chapisho la blogu Predict Human Actions Using LIBSVM.

Hitimisho la CSCI473

CSCI473 ni mojawapo ya, au labda darasa bora nililochukua wakati wa masomo yangu ya shahada ya kwanza katika Mines. Miradi yote hii ilinionyesha mengi na iliniruhusu kuwa na katalo la miradi nzuri ya kuonyesha na kurejelea kwenye wasifu wangu. Pia ilikuwa darasa la kwanza ambapo nilihisi kama nilikuwa katika mazingira yangu, kwani sikuwa mzuri katika mtihani lakini nilikuwa bora katika kukamilisha miradi. Pia kupitia darasa hili nilimjua Dr. Hao Zhang, ambaye hatimaye alininusuru nafasi ya kuwa msaidizi wa utafiti katika Maabara ya Robotics Inayomlenga Binadamu (HCR) ya Mines.

Kipindi cha Shamba cha CS (Majira ya Joto 2020)

CG_GUI_19

Wakati wa Majira ya Joto ya 2020, kati ya kumaliza CSCI473 na kujiunga na Maabara ya HCR, nilichukua CSCI370 au “Advanced Software Engineering” kama sehemu ya programu yangu ya Sayansi ya Kompyuta katika Colorado School of Mines. CSCI370 ni kozi inayowafanya wanafunzi kubuni, kutekeleza, na kuandika suluhisho zinazohusiana na programu kwa kampuni. Inawawezesha wanafunzi kutumia maarifa ya kazi zao za kozi kwenye matatizo halisi ya sayansi ya kompyuta. Unaweza kujifunza zaidi kuhusu kozi hiyo hapa.

Katika kozi, unapata kuamua ni mradi/kompani gani utakayofanya kazi nayo. Kozi ilitoa PDF zilizoelezea kila mradi na kampuni. Mwishowe niliamua kufanya kazi kwenye mradi uliowekwa na kampuni iitwayo Lunar Outpost uitwao “Real Time Wheel Slip Detection and Error Corrections for Enhanced Lunar Navigation”. Kwa kuwa jina ni refu, tutaipa mradi jina fupi “Ugunduzi wa Kuteleza kwa Gurudumu”.

Tatizo

Lunar Outpost ni kampuni changa inayojaribu kuunda rova za mwezi zenye uhuru. Kwenye mwezi, kuna vumbi la kimwezi linalojulikana kusababisha kuteleza kwa magurudumu kwa wingi. Hii si nzuri kwa sababu kuteleza kwa magurudumu kunaweza kusababisha mifumo ya kujiendesha kupoteza nafasi yao halisi duniani. Hapo Dunia, hili linatatuliwa kwa kutumia data za GPS kurekebisha upotofu wowote unaosababishwa na kuteleza kwa magurudumu. Lakini tatizo la GPS ni kwamba inafanya kazi tu kwa kuwa na vituo vya urambazaji 30+ vinavyozunguka Dunia orbit na kutuma ishara za kipekee ambazo zinamruhusu kompyuta kuhesabu nafasi yake. Lakini kwenye mwezi, kwa sasa hakuna kitu kama GPS. Kutambua hili, njia mbadala kwa GPS lazima itumike kugundua kuteleza kwa magurudumu. Ripoti ya kina zaidi ya tatizo la mradi inaweza kuangaliwa hapa.

Timu

Mradi huu haukuwa rahisi, kwa hivyo ulikuwa lazima ufanywe kwa timu. Timu ilijumuisha wanafunzi watano wa Colorado School of Mines:

Mradi huu haukuwa rahisi, kwa hivyo ulikuwa lazima ufanywe kwa timu. Timu hii ilijumuisha Mehmet Yilmaz (mimi), Kane Bruce, Braedon O’Callaghan, Liam Williams, na Kevin Grant.

Mradi ulihitaji tujuwe ROS, C++, Python, Linux, Raspberry Pi, na Arduino. Wengi wetu tulikuwa na uzoefu katika moja au zaidi ya teknolojia hizi lakini mimi ndiye niliyekuwa na uzoefu wa ROS tangu nilitumie ROS katika darasa langu la Human Centered Robotics (CSCI473) wakati wa muhula wa masika wa 2020. Kwa sababu hiyo, mapema, niliwasaidia wote kupata ujuzi wa ROS na jinsi ya kuendeleza kwa ajili yake.

Changamoto

Katika mradi huu kulikuwa na changamoto nyingi. Lakini changamoto kubwa tuliyokutana nayo ilikuwa kutokuwa na ufikiaji wa roboti halisi kwa ajili ya kufanya majaribio. Hili lilitokana na COVID kufanya kila kitu kuwa kwa umbali na kutuzuia kufanya kazi katika maabara/majengo ya Lunar Outpost. Kutokana na hili, tulilazimika kutumia uigaji wa kimasimuli.

Pia, tulipitia baadhi ya utafiti wa kitaaluma kutoka WVU Navigation Lab kupata wazo la jinsi tatizo la kuteleza kwa magurudumu (Wheel Slippage) lingeweza kutatuliwa kwa matumizi ya Lunar Outpost, ambalo kwetu, kama wanafunzi wa mwaka wa pili na wa tatu wa shahada ya kwanza, lilikuwa gumu zaidi kuliko tulivyotarajia.

Changamoto nyingine tuliyokutana nayo ilikuwa ni muda tuliokuwa nao wa kufanya kazi kwenye mradi huu. CSCI370 ni darasa la mwezi mmoja. Lakini tatizo lenyewe ni tatizo kubwa ambalo kampuni nyingi na wataalamu wamekuwa wakijaribu kutatua/kukamilisha kwa miongo mingi. Hivyo mwezi mmoja haukubaliki kabisa kutatua suala hili. Lakini, licha ya changamoto zote hizi tulidumu na tukahakikisha tuliwasilisha.

Hitimisho

Baada ya kupitia utafiti na maendeleo yote, tuliamua kwamba karibu haiwezekani kuiga fizikia sahihi ya mwezi kwa dijitali, kwa hivyo kujaribu kweli algoriti hii katika uigaji wa kimasimuli haifai na haitatoa utafiti wenye maana katika utambuzi wa kuteleza kwa magurudumu angani na kwenye mwezi. Tulihitimisha kwamba kuandaa mazingira sahihi ya majaribio kwa kutumia kitu kama mchanga na vifaa halisi, kama roboti ya Husky, ni muhimu zaidi kwa aina hii ya utafiti. Tuliboresha msimbo wa utambuzi wa kuteleza kwa magurudumu ili ufanye kazi kama nodi ya ROS na ulifanya kazi vizuri na ulikuwa unaweza kuingizwa kwa urahisi katika vifaa halisi kwa ajili ya majaribio. Mradi huu uliniruhusu kuchukua jukumu la uongozi, kuwafundisha wenzangu juu ya maendeleo ya ROS, na kupata uzoefu na Python, ROS, na Gazebo huku nikikabiliana na tatizo tata niliokosa kuwahi kukutana nalo hapo awali. Muhimu zaidi, uzoefu huu uliimarisha zaidi shauku yangu kwa robotiki na kuthibitisha tamaa yangu ya kuendelea na utafiti katika uwanja huu, kuweka hatua za kile kilichokuja katika safari yangu ya robotiki.

Kuanza Kwenye Maabara ya HCR

Baada ya kumaliza CSCI473, Kikao changu cha Shamba cha CS katika majira ya joto ya 2020, na muhula wangu wa Autumn 2020, niliamua kufuata utafiti katika robotiki. Nilipata uzoefu mzuri sana na CSCI473 na Kikao cha Shamba cha CS kiasi kwamba niliamua nilitaka kufanya utafiti kwa Maabara ya HCR. Kwa kuwa nilikutana na Dk. Zhang mwaka uliopita, niliamua kumtumia barua pepe kumuuliza kuhusu fursa yoyote maabara ingekuwa nayo mwezi Januari 2021. Ndani ya takriban wiki 2, Dk. Zhang alionyesha nia, akaniletea chaguzi za utafiti, na akanitoa nafasi katika maabara. Kisha nilianza kufanya kazi kwa maabara Februari 2021.

Video ya Utambulisho

Huyu ni video yangu ya utambulisho niliyorekodi miezi michache baada ya kuanza wakati wangu katika Maabara ya HCR. Ilirekodiwa Mei 2021 na inashughulikia utafiti ningeazingatia katika Maabara ya HCR wakati wa msimu wa joto wa 2021:

Mradi Wangu

Wakati wote nikiwa katika Maabara ya HCR, nililenga hasa kwenye mradi wa Triton. Mradi wa Triton ni roboti ya kusogea iliyoendelezwa na Human Centered Robotics Lab katika Colorado School of Mines. Ni roboti ya ardhini yenye gurudumu za omni za pembetatu inayotumika na NVIDIA Jetson Nano.

Kwa muhtasari rahisi, Triton ilikuwa na sehemu zifuatazo:

  • NVIDIA Jetson Nano
  • Bodi ya Carrier ya NVIDIA Seed Studio A205
  • Arduino Mega
  • Kadi ya Micro SD ya 64 GB
  • Mwili uliotengenezwa kwa uchapishaji wa 3D maalum
  • Magurudumu 3 ya mecanum
  • Betri 1 ya AR
  • Mizunguko maalum kwa mgawanyo wa nguvu na waya iliyoboreshwa
  • Kamera ya Intel Realsense D435
  • Baadhi ya LED

Iliyoundwa, kujengwa, na kutengenezwa kati ya 2018-2020 kama roboti kwa madhumuni ya elimu. Wakati nilijiunga, Triton ulikuwa tayari umeanzishwa vizuri, na maabara ilikuwa ikifikiria kutengeneza toleo jipya la hizo. Hata hivyo, tatizo kuu na Triton ilikuwa programu zake. Triton ingeweza kusogea, kuchaji, na kufanya kazi kwa msingi wa msingi lakini haikufanya chochote chenye akili kwa kweli. Hata haikuwa na uwezo wa kutekeleza mienendo ya kuimarishwa.

Mpangilio wa chaja ya betri Mpangilio wa eneo la majaribio
Tritons katika hatua ya mapema ya majaribio Tritons kwenye rafu

Ili kuanza kushughulikia hili, maabara iliandaa eneo ambapo tunaweza kufuatilia Triton. Kwa kufanya hivyo, waliunda eneo la mita 2 kwa mita 2 na Kamera 8 za Optitrack Flex (Infrared Red) katika mduara wa mraba karibu miguu 6-7 juu ya sakafu.

Eneo I1 Eneo I2

Pamoja na kuwa na eneo hili lililojengwa, kila Triton alikuwa na mabadiliko matatu ya mpira wa kijivu yaliyowekwa juu ya miili yao.

Kwa mpangilio huu, tulijenga kwa ufanisi mfumo wetu mdogo wa GPS ulioitupa uwezo wa kupata kuratibu sahihi kwa mita za Triton katika eneo letu la maslahi. Kwa kutumia kamera za infrared za Optitrack na mizunguko ya kijivu ya Optitrack kwa umbo la pembetatu, tuliweza kutambua kwa usahihi kuratibu za Triton katika eneo letu. Hii ilituruhusu kutumika mfumo wa mzunguko uliofungwa kwa usahihi bora wa mwendo.

Mfumo wa Optitrack ulitoa data ya nafasi na mwelekeo kwa takriban 120Hz kwa usahihi wa chini ya milimita wakati ulipokuwa umebadilishwa vizuri. Alama tatu za tafakari za kila Triton zilounda muundo wa pembetatu wa kipekee ambao mfumo ungeweza kufuatilia kama mwili thabiti. Mfumo wa kuratibu uliwekwa ili (0,0) iwe katikati ya eneo la ufuatiliaji, na mihimili X na Y iliyopangwa kulingana na jiometri ya chumba. Lakini licha ya data hii sahihi ya upimaji wa nafasi, Triton bado ilikumbana na matatizo ya mwendo.

Kwa mpangilio huu, moja ya sifa kuu tulizotaka kumpa Triton ilikuwa uwezo wa kusogea hadi kuratibu maalum. Mtumiaji, au programu yao, angeweza kutoa kuratibu (x, y) ndani ya eneo lao la maslahi. Kisha roboti ingetoka hadi kuratibu hiyo kwa haraka, kwa usahihi, na kwa ufanisi iwezekanavyo. Nilipokuja, sifa hii ilikuwapo lakini haikuwa ikiendeshwa vizuri. Hapa kuna michoro rahisi inayoonyesha jinsi mantiki ya mwendo wa asili ilivyofanya kazi:

Sikurekodi suluhisho la asili likifanya kazi, hivyo niliumba michoro hii rahisi kuonyesha mantiki ya zamani ya mwendo ikifanya kazi. Ukijua hili, ni matatizo gani yanayotokea na mbinu hii?

  1. Ni polepole sana
  2. Inafanya roboti kuchukua nafasi nyingi tu ili kufika kwenye nukta maalum. Hili lilikuwa ngumu kwetu kutumia suluhisho hii wakati Tritons kadhaa zilikuwa zinasogea eneo hilo.

Kwa hivyo kwa nini tabia hii ilitokea? Tatizo lilikuwa kwamba Triton ilinageuka kwanza, ikibadilisha alpha yake, hadi ilipoelekea njia ya lengo ndani ya kosa maalum la makosa. Kisha ingekimbia mbele, na baada theta yake kukosekana kutoka kwa lengo kwa kiasi maalum, ingesimama na kuanza kugeuka tena hadi alpha iwe ndani ya kiwango kinachokubalika kwa lengo. Kisha ingekimbia tena na kuendelea kufanya hivyo hadi ifike nukta hiyo. Pia, ilipokaribia nukta ya lengo, kasi ya kugeuka na kukimbia ilipungua sana ili kuhakikisha haipiti. Hii ilisababisha Triton kuwa na mwendo usio wa asili, kuchukua muda mrefu kufika kwenye nukta ya lengo, na kuhitaji eneo kubwa tu kufika kwenye nukta maalum. Hivyo kwa matatizo haya yote, na ikizingatiwa jinsi sifa hii ilivyokuwa muhimu kwa maendeleo ya mradi wa Triton, nilipoanza kufanya kazi katika Maabara ya HCR, kazi yangu ya kwanza ilikuwa kuendeleza suluhisho zaidi zenye ufanisi ambazo zingeweza kumruhusu Triton kuvinjari vizuri hadi sehemu ya lengo.

Nikijua hili, nilitumia muda mwingi kufanya utafiti juu ya njia bora ya kushughulikia tatizo hili. Kwa kuchekesha, nilikuwa nikichukua darasa liitwalo Introduction to Feedback Control Systems (EENG307) katika Mines. Mapema katika darasa hilo, tulijifunza kuhusu dhana ya Open-loop controllers na Closed-loop controllers. Ukijua hili, na baada ya mjadala nilioufanya na profesa wa darasa hilo na mpangani wangu mwenye akili, ilibainika kwamba lengo la kumfikisha Triton hadi nukta ya lengo ilikuwa tatizo la mfumo wa mzunguko uliofungwa.

Mchoro wa mfumo wa udhibiti kwenye ubao mweupe

Sasa, baada ya majaribio na utafiti mwingi, niliunda mbinu mbili tofauti za kidhibiti kwa Tritons:

Mbinu 1: Kidhibiti Umbali-Theta

Mbinu hii ilitumia vidhibiti viwili vya uwiano vinavyofanya kazi kwa wakati mmoja:

  • Kidhibiti Umbali: Kilihesabu umbali wa Euklidia hadi lengo na kutumia faida ya uwiano kuamua mwendo wa mbele/nyuma
  • Kidhibiti Theta: Kilihesabu kosa la mzunguko kati ya mwelekeo wa sasa wa roboti na mwelekeo unaotakiwa kuelekea lengo, kikitumia faida tofauti ya uwiano kwa kasi ya mzunguko

Algoriti ilihesabu kwa mfululizo umbali wa Euklidia hadi lengo na kosa la mzunguko kati ya mwelekeo wa sasa wa roboti na mwelekeo unaotakiwa. Faida mbili tofauti za uwiano zilitumika kuzalisha kasi za mstari na za mzunguko mtawalia.

Hii ilisababisha Triton kugeuka kwa asili kuelekea lengo sambamba na kusogea mbele kwa wakati mmoja, ikitengeneza njia laini zenye miondoko ya mviringo. Faida kuu ilikuwa kwamba roboti daima ilihifadhi uso wake wa mbele ukielekea katika mwelekeo wa kusafiri, jambo lililokuwa muhimu kwa programu zinazotegemea kamera.

Njia ya 2: Kidhibiti cha Kuratibu X-Y

Mbinu hii ilimtendea roboti kama mchoro wa 2D, kwa udhibiti huru wa mwendo wa X na Y:

  • Kudhibiti X: Ilidhibiti moja kwa moja mwendo wa mashariki-magharibi kulingana na kosa la uratibu wa X
  • Kudhibiti Y: Ilidhibiti moja kwa moja mwendo wa kaskazini-kusini kulingana na kosa la uratibu wa Y

Utekelezaji ulihesabu makosa ya uratibu wa X na Y kwa kujitegemea, ukaweka gawio la upendeleo tofauti, kisha ukageuza vipengele hivi vya kasi ya ulimwengu kuwa fremu ya kuratibu ya ndani ya roboti kwa kutumia matrisi za mzunguko. Mabadiliko haya yalihitajika kwa sababu mfumo wa gurudumu la omni wa roboti ulihitaji kasi katika fremu yake ya marejeleo, sio katika kuratibu za ulimwengu. Njia hii ilizalisha njia za moja kwa moja zaidi kuelekea malengo na ilikuwa ya kasi zaidi kwa kiasi kikubwa, lakini kichwa cha roboti kingeweza kupinduka kwa sababu hakukuwa na udhibiti maalum wa mwelekeo.

Kwa njia nambari #1, nilielezea kwa undani njia hii katika Move Turtle (TurtleSim) blogi. Ninapendekeza kwa nguvu usome blogi hii ili kupata maelezo yote kuhusu jinsi vidhibiti vya PID vinavyofanya kazi kwa ujumla, pamoja na jinsi njia nambari #1 inavyofanya kazi. Nilikuza njia nambari #1 kwa kutumia ROS’s TurtleSim, kisha nikahamisha hiyo nambari kwa Triton na kuiboresha ili kuzingatia mazingira ya ulimwengu halisi.

Njia #2 ilitumia mbinu tofauti kabisa lakini yenye ufanisi sawa. Badala ya kufikiri kuhusu mwelekeo wa roboti na umbali hadi lengo, mbinu hii inachukulia mwendo kama tatizo la ndege ya kuratibu. Kidhibiti kilihesabu mabadiliko kwa mwelekeo wa X na Y kila mara kwa kujitegemea. Kwa mfano, ikiwa roboti inahitaji kusonga kutoka (0,0) hadi (2,3), inaona hili kama hitaji la kurekebisha kosa la mita 2 katika X na kosa la mita 3 katika Y. Vidhibiti viwili vya uwiano vilifanya kazi wakati mmoja: kimoja kilirekebisha kasi ya roboti katika mwelekeo wa X kulingana na kosa la X, wakati kingine kilishughulikia mwendo wa mwelekeo wa Y kulingana na kosa la Y. Hii ilifanya njia ya moja kwa moja zaidi kuelekea lengo, kama vile jinsi kichwa cha printer ya 3D kinavyoenda, na kuruhusu mikondo laini ya mstatili. Roboti haikuwa inahitaji kugeuka wazi ili kuzungumza na lengo lake, na kufanya njia hii kuwa maalumu yenye ufanisi katika nafasi nyembamba au wakati nafasi sahihi zinahitajika.

Mbinu zote mbili zilithibitisha kuwa zilikuwa zaidi ya mara nyingi haraka na za kuaminika zaidi kuliko mbinu ya awali. Ili kuona mbinu hizi mpya zikiendeshwa, angalia Orodha ya Video ya Tritons Wakienda Kazi, ambayo inaonyesha Tritons wote wakiwa kazini na mbinu mpya.

Kilichokuwa kikitumia sekunde 30-45 kwa mwendo rahisi wa nukta-kwa-nukta sasa kilichukua takriban sekunde 8-12. Muhimu zaidi, Triton sasa ilikuwepo kusafiri kwa ufanisi zaidi katika nafasi nyembamba, jambo lililokuwa muhimu kwa matukio yetu ya roboti nyingi.

Changamoto za Maendeleo na Utatuaji Hitilafu

Kutekeleza vidhibiti hivi hakukuwa rahisi na ilikuwa na changamoto kadhaa kubwa za utatuaji hitilafu:

Mabadiliko ya Mfumo wa Kuratibu: Moja ya mambo magumu zaidi ilikuwa kupata mabadiliko ya kuratibu kwa usahihi. Mfumo wa Optitrack ulitoa data katika fremu yake ya kuratibu, roboti ilikuwa na fremu yake ya kuratibu ya ndani, na nilihitaji kubadilishana kati yao kwa usahihi. Utekelezaji wa mapema uliwafanya roboti kusonga kwa mwelekeo usio sahihi kwa sababu nilikuwa nimechanganya mahesabu ya matrisi za mzunguko.

Tabia ya Ulimwengu Halisi vs. Iliyotabiriwa: Changamoto kubwa ilikuwa kuzingatia mambo ya ulimwengu halisi ambayo hayaonekani katika nadharia za kudhibiti za vitabu. Magurudumu ya roboti yalikuwa na sifa tofauti za msuguano, motors hazikutenda kwa utendaji sawa, na palikuwa na ucheleweshaji fulani katika mnyororo wa mawasiliano kutoka Optitrack hadi programu ya udhibiti hadi Arduino ya roboti. Nilitumia wiki kadhaa kuunda gawio za uwiano na kuongeza vichujio vya deadband ili kuzingatia ukweli huu wa kimwili.

Mzunguko na Masuala ya Utulivu: Utekelezaji wangu wa kwanza ulikumbwa na matatizo ya mzunguko ambapo roboti zingekuwa zikishindwa kusimama kwenye malengo yao na kunengua mbele na nyuma. Hili lilinionyesha umuhimu wa vigezo vya msemo katika vidhibiti vya PID na hitaji la urekebishaji sahihi wa gawio. Mwishowe niliamua kutumia zaidi udhibiti wa uwiano uliopangwa kwa uangalifu badala ya PID kamili, kwa kuwa msongamano wa mfumo ulikuwa wa kutosha kwa programu nyingi.

Madhara ya Roboti Nyingi: Wakati roboti nyingi zilifanya kazi kwa wakati mmoja, niligundua mifumo isiyotarajiwa ya kuingiliana. Wakati mwingine roboti zingepigana juu ya nafasi moja au kuleta hali za kukwama ambapo zingekataana milele. Hili lilinileta kutekeleza taratibu za uratibu na algoriti za kuepuka mgongano.

Mfumo wa Udhibiti wa Triton Nyingi

Mara nilipotatua shida ya mwendo wa Triton mmoja, changamoto inayofuata ya maabara ilikuwa kuifanya Tritons nyingi zifanye kazi pamoja kwa wakati mmoja. Hili likawa mojawapo ya maeneo niliyolenga zaidi na ikawa mchango mkubwa kwa mradi.

Mfumo wa awali ulikuwa unaweza kudhibiti Triton mmoja tu kwa wakati, jambo ambalo lilipunguza sana uwezekano wa utafiti. Maabara ilitaka kuiga matukio ambapo magari mengi ya kujitegemea yalihitaji kuratibisha mienendo yao, kama magari yanayojiendesha yakiwa wanawasiliana ili kuboresha mtiririko wa trafiki na kuunda ramani bora za SLAM (Simultaneous Localization and Mapping).

Ili kutatua hili, nilitekereza mbinu ya uendeshaji wa michakato mingi kwa kutumia maktaba ya multiprocessing ya Python. Kila Triton alipata mchakato wake maalum ulioweza kukimbia kwa kujitegemea huku ukiratibiwa na mfumo mkuu wa udhibiti. Hii iliruhusu Tritons wengi kusonga kwa wakati mmoja bila kuingiliana katika mzunguko wa udhibiti wa kila mmoja.

Muundo wa Usanifu wa Roboti Nyingi

Usanifu wa mfumo niliouunda ulikuwa na vipengele kadhaa muhimu:

Mchakato Mkuu wa Kidhibiti: Huu ulitumika kama ratiba kuu, ukishughulikia mwingiliano wa kiolesura cha mtumiaji, upangaji wa njia, na uratibu wa ngazi ya juu kati ya roboti. Ulidumisha hali ya ulimwengu na kusambaza amri kwa michakato ya roboti binafsi.

Michakato ya Roboti Kila Moja: Kila Triton alikuwa na mchakato wa Python mwenyewe aliyeshughulikia:

  • Hesabu za udhibiti za PID kwa wakati halisi takriban 50Hz
  • Mawasiliano na vifaa vya roboti (Arduino/Jetson)
  • Utekelezaji wa njia ya ndani na kuepuka vizuizi
  • Kuripoti hali nyuma kwa kidhibiti mkuu

Mawasiliano ya Kumbukumbu Iliyoshirikiwa: Nilitumia multiprocessing.shared_memory na vitu vya Queue vya Python kuwezesha mawasiliano yenye ufanisi kati ya michakato. Hii iliruhusu uratibu wa wakati halisi bila mzigo wa mawasiliano ya mtandao.

Mbinu za Usawazishaji: Ili kuzuia migogoro wakati roboti nyingi zilipohitaji kuratibiana (kama kuepuka migongano), nilitekeleza semaforo na kufunga ambazo ziliruhusu roboti kuomba upatikanaji wa kipekee kwa maeneo fulani ya eneo la kazi.

Changamoto ilikuwa kuhakikisha roboti zote zinaweza kuendesha mzunguko wao wa udhibiti kwa kujitegemea huku zikidumisha uratibu wa ulimwengu. Kila mchakato wa roboti ulikimbia hesabu zake za PID na kutuma amri za mota moja kwa moja kwa vifaa, wakati mchakato mkuu ulisimamia uratibu wa ngazi ya juu kama kuepuka mgongano na upangaji wa njia.

Jaribio la msongamano wa Triton nyingi Mpangilio wa awali wa Triton nyingi

Triton na drones kwa kazi za wakala wengi zijazo

Mfumo wa Triton nyingi ulifungua uwezekano mpya kabisa wa utafiti. Sasa tunaweza kuiga:

  • Matukio ya mawasiliano kati ya magari
  • Uandaaji wa njia ziliratibiwa pamoja na kuepuka vizuizi
  • Tabia za swarm robotics
  • Ramani za SLAM kwa wakala wengi
  • Udhibiti wa muundo na tabia za kufuata

Hivi ndivyo mpangilio wa maabara ulivyokuwa ukionekana na Tritons nyingi zikifanya kazi kwa wakati mmoja:

Roboti kwenye gridi ya kijani Mpangilio wa gridi ya roboti

Pia nilikuza kiolesura rafiki kwa mtumiaji kilichomruhusu mtafiti kufafanua kwa kuona njia kwa kila Triton. Unaweza kutegea njia unayotaka kila roboti ifuate, na zingetekeleza njia hizi zikiwa na uratibu kamili. Hii ilikuwa muhimu sana kwa kuandaa majaribio magumu bila kuandika kila mwendo kwa mikono.

Mfumo uliweza kushughulikia hadi Tritons 5 kwa wakati mmoja, kila mmoja akiendesha vidhibiti vya PID vyake huku ikiratibiwa kupitia mfumo mkuu wa udhibiti. Utendaji ulikuwa wa kuvutia, na roboti zote zikidumisha usahihi wa kibinafsi huku zikifanya kazi pamoja kama timu.

Hapa kuna orodha ya video inayoonyesha Tritons wakiwa kazini, kutoka udhibiti wa roboti mmoja hadi uratibu wa roboti nyingi: Orodha ya Video ya Tritons Wakienda Kazi

Uingizaji wa Sensor ya Kina na Marekebisho ya Kuratibu

Mageuzi mengine makubwa niliyofanya yalihusisha kutumia kamera za kina za Intel RealSense D435 zilizowekwa kwenye kila Triton. Wakati mfumo wa Optitrack ulitupa data ya usahihi wa uainishaji, nilitaka kuchunguza jinsi roboti zingeweza kutumia sensa zao za ndani kuboresha ufahamu wa nafasi na kurekebisha makosa ya kuratibu.

Wazo lilikuwa kwamba Tritons zingeweza kutumia sensa zao za kina kugundua Tritons wengine katika uwanja wao na kulinganisha nafasi zao. Hii ingefanya kazi kadhaa:

  1. Marekebisho ya Makosa: Ikiwa mfumo wa Optitrack ungeweza kuwa na mabadiliko ya kalibrishaji au kufunikwa kwa muda, roboti zingeweza kutumia uthibitisho wa kuona wa nafasi za kila mmoja kudumisha mifumo ya kuratibu sahihi.

  2. SLAM Ilioboreshwa: Kwa kuwa na roboti nyingi zenye sensa za kina zikifanya kazi pamoja, tunaweza kuunda ramani tajiri zaidi za mazingira zikiwa na pointi nyingi za data za ziada.

  3. Kuzuia Migongano: Utambuzi wa kina kwa wakati halisi ungeruhusu roboti kugundua na kuepukana na kila mmoja hata kama mfumo wa udhibiti wa kati ungekuwa na ucheleweshaji wa mawasiliano.

Nilianza kujaribu algoriti ambazo zingewezesha Tritons:

  • Kutambua Tritons wengine kwa kutumia umbo lao la pembetatu la kipekee na alama za mviringo zinazoakisi
  • Kuhesabu nafasi na mwelekeo wa uhusiano kwa kutumia data ya kina
  • Kulinganisha vipimo hivi na data ya Optitrack ili kubaini tofauti
  • Kwa uwezekano kurekebisha mfumo wao wa kuratibu kwa wakati halisi ili kudumisha usahihi

Eksperimenti za Uoni wa Kompyuta

Nilitumia muda mwingi nikijaribu mnyororo wa uoni wa kompyuta uliotumika kwa hatua kadhaa:

Tritons wawili wakimtazamana kwa ajili ya majaribio ya uoni wa kompyuta Picha ya karibu ya kamera ya Triton
Tritons wawili uso kwa uso kwa ajili ya majaribio
Roboti wawili wakimtazamana Tritons wawili wakiwa karibu kuanza mbio

Usindikaji wa Data ya Kina: Intel RealSense D435 ilitoa mikondo ya data ya RGB na kina. Nilifanya kazi hasa na data ya kina, ambayo ilikuja kama mfululizo wa 640x480 wa vipimo vya umbali kwa 30Hz. Changamoto ya kwanza ilikuwa kuchuja data hii yenye kelele ya kina ili kupata taarifa za kijiometri zenye maana.

Jaribio la Utambuzi wa Vitu: Nilijaribu algoriti za utambuzi zenye hatua nyingi. Nilipata mafanikio kadhaa katika kugawanya picha ya kina ili kutambua vitu vilivyo katika kiwango cha sakafu (kwa kuchuja nje kuta, dari, n.k.) na kutafuta vitu vyenye sifa za ukubwa sahihi, takriban eneo la msingi lenye takriban 0.3x0.3 mita. Nilijaribu kutumia utambuzi wa mipaka na uchambuzi wa kijiometri kutambua wasifu wa kipekee wa Triton, kwa matokeo mchanganyiko.

Jaribio la Utambuzi wa Alama: Mipira mitatu inayong’aa kwenye kila Triton ilionekana kuwa kipengele cha kutegemewa zaidi kwa utambuzi. Nilijaribu algoriti za utambuzi wa blob ili kutambua muundo wa pembetatu wa alama tatu zinazong’aa katika picha ya kina. Nilipata matokeo ya kuahidi katika masharti ya mwanga yaliyodhibitiwa, ingawa hayakuwa ya kuaminika kwa wakati wote.

Utafiti wa Muungano wa Kuratibu: Nilipeleleza mbinu za kuunganisha makadirio ya nafasi yanayotokana na uoni na data ya Optitrack, ikijumuisha utekelezaji wa msingi wa kichujio cha Kalman. Dhana ilikuwa kutoa uzito zaidi kwa data ya Optitrack inapopatikana lakini kumtegemea uoni pale panapohitajika, ingawa sikuweza kuifanya kazi kikamilifu kabla ya kipindi changu kwenye maabara kumalizika.

Changamoto za Utendaji: Kupakua usindikaji huu wote ufanye kazi kwa wakati halisi sambamba na mizunguko ya udhibiti ya roboti ilibainika kuwa changamoto. Nilijaribu mbinu za uboreshaji ili kufanya algoriti zifanye kazi kwa takriban 10-15Hz bila kuzidi uwezo wa usindikaji wa Jetson Nano.

Kwa bahati mbaya, nililazimika kuondoka maabara kabla sijamaliza kikamilifu kazi hii ya uoni wa kompyuta. Ingawa nilipata matokeo ya awali yaliyoahidi na nilijifunza mengi kuhusu usindikaji wa sensa ya kina, sikuweza kufanya mfumo uwe katika hali ya kuaminika kabisa. Ilibaki kuwa mwelekeo wa utafiti wenye kuvutia ambao wengine wanaweza kujenga juu yake.

Hii ni video ya mimi nikijaribu algoriti za uoni wa kompyuta:

Hivi ndivyo mtazamo wa sensa ya kina ulivyokuwa wakati wa majaribio yangu:

Ingawa sikuimaliza kazi ya uingizaji sensa ya kina, dhana ilionyesha ahadi kwa matumizi kama kuiga mazingira ya magari yenye kujiendesha, ambapo magari yanahitaji kujua kuhusu kila mmoja bila kutegemea kabisa miundombinu ya nje. Mwelekeo wa utafiti niliouanza kuuchunguza unaweza kuchangia kazi za baadaye maabarani.

Nyaraka na Uhifadhishaji wa Maarifa

Moja ya michango yangu muhimu zaidi kwa Maabara ya HCR, na labda ile ninayoijivunia zaidi, ilikuwa kupanga na kuhifadhi nyaraka zote za mradi. Nilipokuja maabara, maarifa ya mradi wa Triton yalikuwa yameenea kwenye majukwaa na miundo mbalimbali. Taarifa muhimu zilienea katika:

  • Akaunti mbalimbali za Google Drive za wanafunzi tofauti waliomaliza masomo
  • Barua pepe za zamani zilizokuwa ziko kwenye folda za ingizo
  • Folda mbalimbali za Dropbox
  • Hifadhidata nyingi za GitHub
  • Hifadhidata za GitLab zenye mpangilio usio thabiti
  • Vidokezo vilivyoandikwa kwa mkono ambavyo watu maalum tu waliweza kufasiri

Nyaraka hizi zilizoenezwa zilikuwa tatizo kubwa. Wanafunzi wapya walitumia wiki nyingi tu kujaribu kuelewa jinsi ya kuanza, na maarifa muhimu yalikuwa yakipotea mara kwa mara wakati watu walipomaliza masomo au kuondoka maabara.

Nilichukua jukumu la kutatua tatizo hili kwa mfumo. Nilitumia masaa mengi kutafuta kila kipande cha nyaraka, msimbo, video, na kumbukumbu zinazohusiana na mradi wa Triton. Kisha niliandaa kila kitu katika hifadhidata kuu ya GitLab yenye muundo wazi na wa kimantiki.

Triton kwenye dawati Tritons nyingi kwenye meza (jumla 8, 5 zikiendelea kujengwa)

Tritons kwenye rafu kwa pembe nzuri

Nyaraka zilizowekezwa pamoja zilijumuisha:

  • Miongozo ya Ujenzi: Maelekezo ya hatua kwa hatua ya kukusanya Tritons kutoka mwanzoni
  • Usanidi wa Programu: Miongozo kamili ya kusanidi mazingira ya maendeleo
  • Nyaraka za Msimbo: Msimbo ulioandikwa maoni vizuri na maelezo wazi
  • Maelezo ya Vifaa: Orodha za vipengele kwa undani, michoro ya waya, na miundo ya PCB
  • Miongozo ya Utatuzi: Matatizo yanayojirudia na suluhisho zao
  • Mafunzo ya Video: Niliunda na kupakia video za mafunzo kwenye YouTube, ikiwa ni pamoja na mafunzo ya kina ya urekebishaji wa Optitrack:

Pia nilianzisha viwango vya nyaraka ili kuhakikisha michango ya baadaye itakuwa imepangwa na kupatikana kwa urahisi. Muundo wa hifadhidata niliouunda uligeuka msingi wa kazi zote zilizofuata katika maabara.

Mbali na kupanga nyaraka zilizokuwepo, niliunda miongozo na mafunzo kadhaa asili yaliyojaza mapengo muhimu katika msingi wa maarifa. Hii ilijumuisha maelekezo ya kina ya usanidi kwa wanachama wapya wa maabara, miongozo ya kina ya utatuzi tatizo, na video za hatua kwa hatua za taratibu ngumu.

Madhara yalikuwa ya papo kwa papo na ya kudumu. Wanafunzi wapya wangeweza kupata mwamko kwa siku badala ya wiki. Hifadhidata ya nyaraka niliyoianzisha bado inatumiwa na maabara hadi leo, miaka baada ya mimi kuondoka. Ilichelewa kuwa chanzo kimoja cha ukweli kwa mradi wa Triton na kuokoa masaa na siku zisizo hesabika kwa watafiti wa baadaye.

Ufundishaji na Uhamisho wa Maarifa

Moja ya mambo ya kuridhisha zaidi wakati wangu katika Maabara ya HCR ilikuwa fursa ya kuwa mshauri kwa wengine na kushiriki maarifa niliyopata. Kadiri kazi yangu ilivyoendelea na nilivyozidi kupata uzoefu na mifumo ya Triton, nilichukua jukumu kubwa la kufundisha wanachama wapya wa timu.

Kumsomesha Waliokuja Baadaye wa Maabara

Nilipokuwa nikiandaa hatimaye kuondoka maabara ili kuzingatia kumaliza shahada yangu na kazi yangu eBay, nilihakikisha kuwafundisha kwa kina watu wawili ambao wangechukua mradi wa Triton baada ya kwenda kwangu. Hii haikuwa tu kuwonyesha jinsi vitu vilivyofanya kazi, bali ilikuwa kuhakikisha walielewa kwa kweli kanuni za msingi ili waendelee kubuni mambo mapya.

Nilitumia wiki kadhaa nikifanya kazi kwa karibu nao, tukipitia:

  • Misingi ya kihisabati ya mifumo ya udhibiti wa PID
  • Muundo wa utendaji wa mchakato wa kusimamia roboti nyingi
  • Uunganishaji wa sensa za kina na algoriti za uoni wa kompyuta
  • Mfumo wa nyaraka na jinsi ya kuutunza
  • Mbinu za kupiga dosari (debugging) na hali za kawaida za kushindwa

Uhamishaji wa maarifa ulikuwa wa kina sana. Tulipitia vikao halisi vya kupiga dosari pamoja, niliwaagiza wabadilishe na kupanua msimbo uliokuwepo, na nilihakikisha wangeweza kusanidi Tritons mpya wenyewe kutoka mwanzo.

Programu ya Ushauri kwa Wanafunzi wa Shule ya Sekondari

Pengine kilicho kuwa cha kuridhisha zaidi ilikuwa uzoefu wangu wa kumshauri mwanafunzi wa shule ya sekondari kupitia programu ya mawasiliano ya maabara. Hii ilikuwa fursa kubwa ya kumtambulisha mtu kwa uhandisi wa roboti, sayansi ya kompyuta, na utafiti katika hatua ya kuandaa elimu yao.

Nilibuni mtaala kamili uliogusa:

Misingi ya Sayansi ya Kompyuta:

  • Dhana za programu kwa kutumia Python kama lugha kuu
  • Utangulizi wa programu zenye mwelekeo wa vitu (object-oriented programming)
  • Uelewa wa algoriti na muundo wa data

Dhana za Roboti:

  • Jinsi sensa zinavyofanya kazi na jinsi ya kuunganisha nazo
  • Udhibiti wa actuator na mifumo ya motor
  • Misingi ya mifumo ya kujitegemea na udhibiti wa mrejesho

ROS (Mfumo wa Uendeshaji wa Roboti):

  • Kuelewa mfumo wa ujumbe wa kuchapisha/kujisajili
  • Kuumba nodes na huduma
  • Kufanya kazi na faili za uzinduzi na seva za vigezo

Kazi ya Mradi Mikononi:

  • Tulishirikiana kuunda huduma ya ROS iliyodhibiti mfumo wa LED kwenye kichwa cha Triton
  • Alijifunza kuandika msimbo safi, ulioandikwa maandishi na kuunganishwa na mifumo yetu iliyokuwepo
  • Huduma ya kudhibiti LED aliyounda ikawa sehemu ya kudumu ya msimbo wa Triton

Kilichofanya ushauri huu kuwa maalum hasa ilikuwa kutazama maendeleo yake kutoka kujua karibu hakuna kitu kuhusu programu hadi kuchangia msimbo wenye maana kwa mradi wa utafiti unaofanya kazi. Alianza kwa kuuliza “Je, ‘variable’ ni nini?” hadi kuwa anaweza kwa kujitegemea kupiga dosari masuala ya mawasiliano ya ROS na kuandika utekelezaji wa huduma zake mwenyewe.

Mfumo wa kudhibiti LED aliyetengeneza ulimruhusu watafiti kubadilisha kwa urahisi rangi na mifumo ya LED za kichwa cha Triton kupitia amri rahisi za ROS. Hili linaweza kuonekana rahisi, lakini lilihitaji kuelewa usanifu wa ROS, kuingiliana na vifaa, na mifano sahihi ya kubuni programu. Mchango wake bado unatumika maabara hadi leo.

Malezi yalikuwa ya kielimu kwangu kama ilivyokuwa kwake. Yalianifanya nivunje dhana ngumu katika vipande vinavyoweza kumezwa na kufikiri kwa undani kuhusu misingi ya kile tulichokuwa tukifanya. Kumfundisha mtu mwingine kulinifanya niwe mhandisi na mtafiti bora.

Ushirikiano na Utafiti wa PhD

Moja ya vipengele vilivyokuwa na malipo ya kitaalamu wakati wangu maabara ilikuwa kufanya kazi kwa karibu na Peng, mwanafunzi wa PhD ambaye utafiti wake ulilenga algorithms za magari yanayoendesha yenyewe. Maboresho ya programu niliyofanya kwenye mfumo wa Triton yalisaidia kuunga mkono utafiti wake wa uzamili.

Utafiti wa Peng ulihitaji uratibu sahihi, wa kuaminika wa roboti nyingi kuiga matukio ya magari yanayoendesha wenyewe. Kabla ya maboresho niliyofanya kwenye udhibiti wa mwendo na mifumo ya roboti nyingi, majaribio haya yalikuwa magumu zaidi kufanyika. Roboti zilikuwa polepole, hazikuwa sahihi sana, na hazikuweza kufanya kazi pamoja kwa ufanisi kama zilivyoweza baada ya maboresho.

Mchango wangu ulisaidia utafiti wa Peng katika maeneo kadhaa:

Utafiti wa Usimamizi wa Vikao vya Kivuko cha Barabara: Kwa kutumia controllers za PID zilizoboreshwa na uratibu wa roboti nyingi, Peng aliweza kuiga matukio ya kivuko cha barabara ambapo “magari” kadhaa (Tritons) yalihitaji kuratibu mienendo yao. Ulinganifu bora wa wakati na nafasi ulifanya tafiti hizi kustahimili.

Mawasiliano Gari kwa Gari: Mfumo wa usindikaji wa michakato mingi niliouunda ulimruhusu Peng kutekeleza na kujaribu itifaki za mawasiliano kati ya magari yaliyoiga. Kila Triton angeweza kufanya maamuzi huku bado akiendeleza uratibu na wengine, kama jinsi magari yanayoendesha wenyewe yanavyoweza kuhitaji kufanya kazi.

Utafiti wa SLAM na Ramani: Kazi ya kuingiza sensa ya undani ilimpa Peng data ya ziada kwa ajili ya utafiti wake wa uwekaji mahali kwa wakati mmoja na upangaji ramani. Kuwa na roboti nyingi zenye uwezo wa kuhisia kwa uratibu kuliruhusu majaribio ya upangaji ramani yenye ufanisi zaidi.

Kinachofanya ushirikiano wetu kuwa muhimu sana ni kwamba haikuwa tu mimi nikimsaidia katika utafiti wake, bali ilikuwa ushirikiano wa kweli. Uelewa wa Peng wa nyanja za kinadharia za magari yanayoendesha wenyewe uliwajibisha utekelezaji wangu wa vitendo. Maoni yake na mahitaji yake yalinisukuma kufanya mifumo kuwa thabiti zaidi na yenye uwezo zaidi.

Tulitumia masaa mengi katika maabara pamoja, tukirekebisha matatizo, tukijadili mikakati tofauti ya udhibiti, na kuchunguza kile ambacho jukwaa la Triton lilingeweza kufanikisha. Peng alibadilika kuwa mwenzangu na rafiki, na kufanya kazi naye kulinifundisha mengi kuhusu jinsi utafiti wa kitaaluma unavyofanya kweli kazi.

Mifumo niliyoiunda ikawa sehemu muhimu ya kazi ya dissertation ya Peng. Kuona michango yangu ya uhandisi ya vitendo ikiwa inaunga mkono utafiti katika teknolojia za magari yanayoendesha wenyewe ilikuwa ya kuridhisha sana. Ilithibitisha hamu yangu ya kuona jinsi uhandisi imara na utafiti vinaweza kushirikiana kuleta matokeo yanayofaa.

Hata baada ya kuondoka maabara, Peng na mimi tulibaki katika mawasiliano. Kujua kwamba kazi yangu iliendelea kuchangia katika utafiti muhimu hata baada ya kuondoka kwangu kulikuwa faraja kubwa.

Mtazamo: Enzi ya Maendeleo Kabla ya LLM

Ni muhimu kutaja kwamba kazi yote hii ilifanyika kabla ya enzi ya LLM katika maendeleo ya programu. Haya yote yalitokea kati ya 2020 na 2021 (hasa 2021), kabla ya ChatGPT, Claude, Perplexity, au zana za maendeleo zinazoendeshwa na AI kama Cursor IDE kuwepo.

Kila mstari wa msimbo ulianzishwa kutoka mwanzo, kila algorithimu ilichunguzwa kupitia makala za kitaaluma na vitabu, na kila kikao cha kurekebisha hitilafu kilihusisha mbinu za jadi kama vya printi, debuggers, na upimaji wa kimfumo. Nilipokwama kwenye mabadiliko ya uratibu au tatizo la kusawazisha PID, sikuweza kumuuliza tu msaidizi wa AI afafanue dhana au kusaidia kutatua tatizo.

Hili liliufanya mchakato wa maendeleo kuwa mgumu zaidi lakini pia wa kielimu zaidi. Nililazimika:

Kufanya Utafiti Wote Kwa Mikono: Kuelewa nadharia ya udhibiti wa PID kulimaanisha kusoma vitabu na makala za kitaaluma. Kufumbua mabadiliko ya uratibu kulihitaji kufanya hesabu kwa mkono. Kila dhana ilibidi ifafanuliwe kabisa kabla ya utekelezaji.

Kurekebisha Bila Msaada wa AI: Wakati roboti zilipoenda kwa mwelekeo usiotarajiwa au kupita juu chini karibu na malengo, nilibidi kufuatilia kwa kifupi mantiki, kuongeza matokeo ya urekebishaji, na kujaribu nadharia moja baada ya nyingine. Hakukuwa na AI ya kupendekeza matatizo yanayowezekana au kusaidia kutafsiri mifumo ya makosa.

Kujifunza Kutoka kwa Misingi ya Kwanza: Bila uwezo wa kuuliza kwa haraka “jinsi ya kutekeleza usindikaji wa michakato mingi katika Python kwa ajili ya roboti?”, nililazimika kuelewa dhana za msingi kwa undani. Hili lilinilazimisha kujenga msingi imara katika programu sambamba, mifumo ya udhibiti, na kuona kwa kompyuta.

Nyaraka Zilikuwa Muhimu Sana: Kwa kuwa sikuwezi kutegemea AI kuelezea msimbo baadaye, nililazimika kuandika nyaraka na maelezo ya maoni kwa uwazi sana. Nidhamu hii ilithibitishwa kuwa ya thamani wakati wa kuhamisha ujuzi kwa wengine.

Nikirejea nyuma, ingawa zana za AI za kisasa zingekuwa zimeharakisha nyanja nyingi za maendeleo, kufanya kazi bila hizo ziliniimarisha ujuzi wangu wa kutatua matatizo na kunipa ufahamu wa kina wa mifumo ya msingi. Inavutia kufikiria jinsi mradi huu ungevuka tofauti ikiwa zana za maendeleo za leo zingewezekana.

Uamuzi Mgumu wa Kuondoka

Ingawa nilifurahia sana kufanya kazi katika HCR Lab, mwishoni mwa 2021 nilikabiliwa na uamuzi mgumu ambao wanafunzi wengi hukutana nao: kusawazisha fursa na majukumu mengi. Nilikuwa nikifanya kazi kwa wakati wote kama mhandisi wa programu katika eBay, nikimaliza shahada yangu ya sayansi ya kompyuta katika Mines, na nikichangia utafiti katika HCR Lab.

Fursa ya eBay ilikuwa muhimu; ilikuwa nafasi yangu ya kwanza kubwa ya uhandisi wa programu, ilinipa uzoefu wa tasnia usio na kifani, na ilinipa kipato thabiti. Hata hivyo, kujaribu kudumisha kazi ya muda wote, kumaliza shahada, na kuchangia utafiti kwa njia yenye maana haikuwezekana kifedha na kwa muda. Lazima kitu kigeuzwe.

Nilipomwendea Dkt. Zhang kuhusu kupunguza mzigo wa masomo ili kujikita zaidi kwenye kazi za maabara, alinielekeza sana kinyume cha hilo. Sababu yake ilikuwa nzuri: kumaliza shahada yangu ingepaswa kuwa kipaumbele, na uzoefu wa tasnia huko eBay ungekuwa wa thamani kwa maendeleo ya taaluma yangu. Aliona kuwa kuacha masomo ili kujikita kwenye utafiti, ingawa kunavutia, inaweza kuwa sio uamuzi bora wa muda mrefu.

Hivyo mnamo Septemba 2021, baada ya takriban miezi 8 ya kazi kali katika maabara, nilifanya uamuzi mgumu wa kujiondoa kwenye nafasi yangu ya msaidizi wa utafiti ili kujikita katika kumaliza shahada yangu na kazi yangu huko eBay. Huu ulikuwa mmoja wa maamuzi magumu ya kitaalamu ambayo nilibidi kuyafanya wakati huo.

Hata baada ya kuondoka rasmi maabara, niliendelea kutoa msaada pale palipotakiwa kwa mtu yeyote aliyekuwa anaweka hitaji kwa mifumo niliyoiunda. Niliboresha nyaraka inapohitajika, nilijibu maswali kuhusu urekebishaji wa hitilafu, na kusaidia kutatua matatizo kwa mbali. Mifungo niliyokuwa nayo na uwekezaji niliokuwa nao katika mafanikio ya mradi hayakuisha kwa sababu sikuwa tena rasmi sehemu ya timu.

Tafakari na Kutazama Nyuma

Sasa, mwaka 2025, miaka minne baadaye, ninajikuta nikitafakari wakati huo kwa hisia mchanganyiko. Njia ya kazi yangu iliniletea ndani ya maendeleo ya wavuti na uhandisi wa AI/ML, nyanja ambazo zimekuwa za kuridhisha sana na zimenipa fursa kubwa za ukuaji na athari.

Mtazamo wa juu wa Tritons kwenye meza

Hata hivyo kuna sehemu ya mimi inayouliza “vipi kama.” Roboti ilikuwa, na kwa kweli bado ni, shauku yangu ya kweli. Kuna kitu kuhusu kufanya kazi na mifumo ya kimwili, kuona msimbo wako ukitafsiriwa kuwa mwendo halisi na tabia, ambacho maendeleo ya wavuti na hata kazi za AI hayawezi kulinganisha kabisa.

Wakati mwingine hujiuliza kilichotokea ikiwa ningechukua njia tofauti. Vipi kama ningepata njia ya kubaki katika utafiti wa roboti? Vipi kama ningefuata masomo ya uzamili mara moja baada ya kumaliza shahada yangu ya kwanza? Vipi kama ningechagua kuipa kipaumbele kazi ya maabara badala ya uzoefu wa tasnia?

Lakini pia ninatambua kwamba kila njia ina mapungufu yake. Ujuzi nilioupata katika maendeleo ya wavuti na AI umekuwa wa thamani kubwa. Uzoefu wa tasnia ulimfundisha kuhusu uhandisi wa programu kwa kiwango kikubwa, muundo wa uzoefu wa mtumiaji, na changamoto za vitendo za kujenga bidhaa zinazoonekana na mamilioni ya watu. Uzoefu hizi zimenifanya niwe mhandisi bora kwa ujumla.

Kazi niliyofanya katika HCR Lab inaendelea kuathiri jinsi ninavyoshughulikia matatizo leo. Fikra za kimfumo zinazohitajika kwa mifumo ya udhibiti wa PID zinaonekana jinsi ninavyobuni mizunguko ya mrejesho katika mifumo ya programu. Ujuzi wa nyaraka na utunzaji wa maarifa niliouendeleza umekuwa wa thamani kila jukumu tangu wakati huo. Uzoefu wa kuwa mshauri na kufundisha umeunda jinsi ninavyofanya kazi na waendelezaji wapya na kuchangia katika kubadilishana maarifa ya timu.

Jambo muhimu zaidi, uzoefu huo ilinifundisha kwamba ninafanikiwa ninapofanya kazi kwenye matatizo ya kiufundi changamoto yenye athari za ulimwengu halisi. Iwe ni kuboresha algorithms za mwendo wa roboti au kujenga mifumo ya AI inayosaidia watumiaji kufanikisha malengo yao, kuridhika kunatokana na kutatua matatizo magumu ambayo yana umuhimu.

Athari Zinazoendelea

Nikitazama nyuma uzoefu wa HCR Lab, ninashangazwa na ni kiasi gani nilichofanikiwa katika muda mfupi. Mifumo niliyoiunda ilibadilisha kwa msingi jinsi jukwaa la Triton lilivyofanya kazi, na maboresho mengi bado yanatumiwa hadi leo. Hifadhidata ya nyaraka niliyoanzisha ikawa msingi wa maarifa kwa mradi mzima. Uhusiano wa malezi niliouunda ulikuwa na athari ya kudumu kwa watu niliowafanya kazi nao.

Lakini labda ya muhimu zaidi, uzoefu ulinionyesha ni nini ninaweza kufanya ninapofanya kazi kwenye matatizo ninayopendezwa nayo kweli. Katika miezi hiyo minane, nilifanya:

  • Niliboresha mfumo wa udhibiti wa mwendo wa roboti uliokuwa ukizuia jukwaa
  • Nilijenga mfumo wa uratibu wa roboti nyingi kuanzia mwanzo
  • Niliunganisha uwezo wa kuona kwa kompyuta na muungano wa sensa
  • Nilitengeneza mfumo kamili wa nyaraka na usimamizi wa maarifa
  • Niliongoza watu kadhaa na kusaidia katika uhamishaji wa maarifa
  • Niliunga mkono utafiti wa ngazi ya PhD kuhusu vyombo vinavyojiendesha

Hii haikuwa tu kuhusu mafanikio ya kiufundi, ingawa yale yalikuwa na maana kwangu. Ilikuwa kuhusu kujifunza kwamba kwa uvumilivu na fikra za kimfumo, unaweza kutoa mchango mzuri hata kama mwanafunzi wa shahada ya kwanza.

Mustakabali na Roboti

Ingawa kazi yangu imenielekeza kwa mwelekeo mwingine, shauku yangu kwa roboti haijapungua. Bado ninafuatilia maendeleo katika nyanja hiyo, nina hamu kuhusu maendeleo katika ujifunzaji wa roboti na mifumo ya kujitegemea, na mara kwa mara nafanya miradi ya kibinafsi ya roboti katika muda wangu wa ziada.

Nani ajuaye nini mustakabali utakupatia? Ujuzi ninauendeleza katika akili bandia (AI) na ujifunzaji wa mashine unaendelea kuwa muhimu zaidi kwa roboti. Uzoefu wa tasnia nilioupata umenifundisha jinsi ya kujenga mifumo imara, inayoweza kupanuka. Labda kuna mustakabali ambapo nyuzi hizi tofauti za uzoefu wangu zitakuja pamoja kwa njia zisizotarajiwa.

Kwa sasa, nina shukrani kwa muda niliotumia katika Maabara ya HCR na uzoefu uliotolewa. Ilikuwa kipindi cha malezi kilichoumba ujuzi wangu wa kiufundi na uelewa wangu wa aina za kazi ninazopata kuridhika nazo zaidi. Ingawa wakati mwingine nakikosa, najua kuwa masomo niliyoyajifunza na mbinu niliyotengeneza zinaendelea kuathiri kila kitu ninaofanya.

Roboti za Triton bado zipo pale, bado zinawahudumia watafiti, bado zinawawezesha kazi muhimu. Na hilo ni jambo la kupendeza sana.