Sura Yangu cha Utafiti wa Roboti
Table of Contents
Chapisho hili linasimulia safari yangu ya roboti, kuanzia kugundua shauku yangu kwa roboti katika FRC wakati wa shule ya sekondari mnamo 2015 hadi wakati wangu kama msaidizi wa utafiti katika Colorado School of Mines’s Human Centered Robotics (HCR) Lab kuanzia Februari 2021 hadi Septemba 2021. Kumbuka kwamba tangu mwishoni mwa 2022, HCR Lab imehamia kutoka Colorado School of Mines kwenda University of Massachusetts Amherst, pamoja na tovuti yake kutoka hcr.mines.edu kwenda hcr.cs.umass.edu.
Asili
Nilianza masomo yangu ya shahada ya kwanza katika Colorado School of Mines katika muhula wa Vuli 2018. Shahada yangu kuu ilikuwa Sayansi ya Kompyuta kwa mwelekeo wa Roboti & Mifumo Akili. Na nilihitimu katika Masika 2022.
Nilikuwa na bahati ya kupata shauku yangu mapema maishani mwangu. Wakati wa shule ya sekondari, nilitumia muda mwingi kujua kile nilichopenda na kile ambacho ningeweza kuwa mzuri nacho. Baada ya majaribio na makosa kadhaa, niliweza kugundua kwamba shauku yangu ilikuwa sayansi ya kompyuta. Lakini pia ilikuwa wakati huu kwamba niligundua nilikuwa na upendo mkubwa sana wa kujenga kupitia msimbo.
Katika Mines, nilipata fursa ya kufanya kazi katika Human Centered Robotics (HCR) Lab ya Mines chini ya Dkt. Hao Zhang. Kwa mara ya kwanza nilikutana na Dkt. Zhang katika Masika 2020 kupitia darasa lake “Human Centered Robotics” (CSCI473), na baada ya vurugu za COVID na kazi za darasani, nilianza kufanya kazi katika maabara yake katika mapema ya Masika 2021.
Darasa la Human Centered Robotics (CSCI473)
Human Centered Robotics (CSCI473) ya Mines lilikuwa moja ya madarasa machache katika uzoefu wangu wa chuo ambavyo vilikuwa na athari kubwa kwangu. Darasa hilo lilifundishwa na Dkt. Hao Zhang. Alama yetu yote ya darasa ilijumuisha miradi mitatu tu, kila moja ikiwa na changamoto iliyowasilisha tatizo gumu lililoanzisha dhana za msingi za roboti. Miradi hii ilikuwa na:
- Kujifunza Mfumo wa Uendeshaji wa Roboti (ROS)
- Kujifunza kwa Kuimarisha kwa Ufuatiliaji wa Ukuta wa Roboti
- Uelewa wa Roboti wa Tabia za Binadamu kwa Kutumia Uwakilishi Kulingana na Mifupa
Kujifunza Mfumo wa Uendeshaji wa Roboti (ROS)
Hii ilikuwa mradi wa kwanza tuliokabidhiwa. Mradi huo ulikuwa na kazi tatu:
- Sanidi Mazingira ya Maendeleo
- Elewa Kiiga cha Gazebo
- Andika ROS “Hello World”
Kwa kazi za 1 na 2, tulipaswa tu kusanidi mazingira yetu ya maendeleo na kufuata mafunzo ya utangulizi ya Gazebo. Hii ilijumuisha:
- Kuseti ROS Melodic, ambayo nilifanya kwenye kompyuta yangu ya mkononi 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 kuufanya kobe achore nembo ya “M” ya Mines:
![]() |
![]() |
Kazi hii, ingawa ilisikika kuwa rahisi, ilikuwa ngumu zaidi kuliko ilivyoonekana. Mradi huu hatimaye ulinitambulisha kwa dhana ya Mifumo ya Wazi-Mzunguko na Mifumo ya Funga-Mzunguko. Kwa maelezo kamili ya mradi, angalia csci473-p1.pdf au unaweza kujifunza zaidi kuhusu mradi huu na suluhisho langu kwenye ukurasa wa mradi wa ROS Move Turtle.
Kujifunza kwa Kuimarisha kwa Ufuatiliaji wa Ukuta wa Roboti
Huu ulikuwa mradi wa pili tuliokabidhiwa, na ulikuwa mmoja wa miradi migumu zaidi niliyowahi kufanyia kazi chuoni. Maelezo ya mradi yalikuwa kama ifuatavyo:
Katika mradi huu, wanafunzi watabuni na kutekeleza algoriti za kujifunza kwa kuimarisha ili kufundisha roboti ya simu inayojitegemea ifuate ukuta na kuepuka kugonga vizuizi. Wanafunzi watatumia kiiga cha Gazebo katika ROS Melodic kuiga roboti ya simu ya omni-directional inayoitwa Triton, na kutumia ramani ya mazingira iliyotolewa kwenu. Wanafunzi watatumia skana ya masafa ya leza kwenye roboti kufanya hisi na kujifunza, ambapo roboti inadhibitiwa kwa kutumia amri za uelekezaji na kasi. Wanafunzi wanatakiwa kupanga mradi huu kwa kutumia C++ au Python katika ROS Melodic inayoendeshwa kwenye Ubuntu 18.04 LTS (yaani, mazingira yale yale ya maendeleo yaliyotumika katika Mradi wa 1). Pia, wanafunzi wanatakiwa kuandika ripoti kufuata muundo wa kawaida wa makongamano ya roboti ya IEEE kwa kutumia LATEX.
Kwa algoriti ya kujifunza kwa kuimarisha, tuliagizwa kutumia Q-Learning. Pia tulitumia mazingira ya kiiga ya Gazebo ya Stingray yaliyotolewa na darasa. Stingray ilikuwa na muundo wa Triton na mantiki ya fizikia. Pia tulipewa mazingaomazima ambayo roboti ilipaswa kufuata. Kwa jumla, mazingira yalionekana hivi:
Sikuchapisha suluhisho langu kwenye GitHub au wavuti kwa sababu halikuwa zuri sana na lilikuwa na kasoro nyingi. Pia, kupata msimbo ufanye kazi katika mazingira sahihi ni vigumu sana na kunakera. Hata hivyo, nina video ya onyesho niliyoiwasilisha darasani, inayoonyesha suluhisho langu. Unaweza kuiona hapa:
Kwa maelezo kamili ya mradi, angalia csci473-p2.pdf
Uelewa wa Roboti wa Tabia za Binadamu kwa Kutumia Uwakilishi Kulingana na Mifupa
Kwa mradi wa tatu, maelezo ya mradi yalikuwa kama ifuatavyo:
Katika mradi huu, wanafunzi watatekeleza uwakilishi kadhaa unaotegemea mifupa (Toleo la 1) na kutumia Mashine za Vekta za Usaidizi (SVMs) (Toleo la 2) kuainisha tabia za binadamu kwa kutumia mkusanyiko wa data wa shughuli za umma uliokusanywa kutoka kwa kihisi cha Kinect V1. Zaidi ya hayo, wanafunzi wanatakiwa kuandika ripoti kufuata muundo wa kawaida wa makongamano ya roboti ya IEEE kwa kutumia LATEX katika Toleo la 3.
Mradi huu ulikuwa wa changamoto lakini haukuwa mgumu kama mradi wa pili. Lengo kuu lilikuwa kutumia data ya kihisi ya Kinect V1, kutoka MSR Daily Activity 3D Dataset, na Mashine za Vekta za Usaidizi ili kuainisha 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 la Predict Human Actions Using LIBSVM.
Hitimisho la CSCI473
CSCI473 ni mojawapo ya, ikiwa si darasa bora zaidi nililochukua wakati wa masomo yangu ya shahada ya kwanza katika Mines. Miradi hii yote ilinifundisha mengi na kuniruhusu kuwa na katalogi nzuri ya miradi ya kuikumbuka na kuirejelea kwenye wasifu wangu. Pia lilikuwa darasa la kwanza nililohisi niko mahali pangu, kwani sikuwahi kuwa mzuri katika kufanya mitihani lakini nilifanikisha vizuri kukamilisha miradi. Pia ilikuwa kupitia darasa hili kwamba nilikutana na Dkt. Hao Zhang, ambaye hatimaye alisaidia kunipatia nafasi kama msaidizi wa utafiti katika Human-Centered Robotics (HCR) Lab ya Mines.
Kipindi cha Uga wa CS (Kiangazi 2020)
Wakati wa Kiangazi cha 2020, kati ya kumaliza CSCI473 na kujiunga na HCR Lab, nilichukua CSCI370 au “Uhandisi wa Programu wa Juu” kama sehemu ya programu yangu ya shahada ya kwanza ya CS katika Colorado School of Mines. CSCI370 ni kozi inayowafanya wanafunzi wabuni, watekeleze, na kuandika suluhisho zinazohusiana na programu kwa ajili ya kampuni. Inawaruhusu wanafunzi kutumia maarifa yao ya kozi katika matatizo halisi ya sayansi ya kompyuta. Unaweza kujifunza zaidi kuhusu kozi hapa.
Katika kozi, unapata kuamua ni mradi/kampuni gani utaifanyia kazi. Kozi ilitoa PDF zilizoeleza kwa undani kila mradi na kampuni. Hatimaye niliamua kufanya kazi kwenye mradi uliowekwa na kampuni inayoitwa Lunar Outpost unaoitwa “Real Time Wheel Slip Detection and Error Corrections for Enhanced Lunar Navigation”. Kwa kuwa jina ni refu, tuupe mradi lakabu ya “Wheel Slippage Detection”.
Tatizo
Lunar Outpost ni kampuni changa inayojaribu kuunda roboti za mwendo za mwezi zinazojitegemea. Kwenye mwezi, kuna vumbi nyingi la mwezi linalojulikana kusababisha kuteleza kwa magurudumu kwa kiwango kikubwa. Hii si nzuri kwa sababu kuteleza kwa magurudumu kunaweza kusababisha mifumo inayojitegemea kupoteza ufuatiliaji wa eneo lao halisi duniani. Duniani, hili hutatuliwa kwa kutumia data ya GPS kusahihisha mkengeuko wowote unaosababishwa na kuteleza kwa magurudumu. Lakini tatizo la GPS ni kwamba hufanya kazi tu kwa kuwa na 30+ setilaiti za urambazaji zinazozunguka Dunia kwa mzunguko kila wakati na kutuma ishara za kipekee zinazoruhusu kompyuta kukokotoa nafasi yao. Lakini kwenye mwezi, kwa sasa hakuna kitu kama GPS. Kwa kujua hili, mbinu nyingine tofauti na GPS lazima itumike kugundua kuteleza kwa magurudumu. Ripoti ya kina zaidi ya tatizo la mradi inaweza kutazamwa hapa.
Timu
Mradi huu haukuwa mradi rahisi, kwa hivyo ulipaswa kufanywa katika timu. Timu ilijumuisha wanafunzi watano wenzangu wa Colorado School of Mines:
Mradi huu haukuwa mradi rahisi, kwa hivyo ulipaswa kufanywa katika timu. Timu hii ilijumuisha Mehmet Yilmaz (mimi), Kane Bruce, Braedon O’Callaghan, Liam Williams, na Kevin Grant.
Mradi ulihitaji tujue baadhi ya ROS, C++, Python, Linux, Raspberry Pi, na Arduino. Wengi wetu tulikuwa na uzoefu katika moja au zaidi ya teknolojia hizi lakini mimi ndiye pekee niliyekuwa na uzoefu katika ROS kwa sababu nilitumia ROS katika darasa langu la Human Centered Robotics (CSCI473) wakati wa muhula wa Masika 2020. Kwa sababu hii, mapema nilisaidia kila mtu kupata uelewa wa haraka kuhusu ROS na jinsi ya kuendeleza kwa ajili yake.
Changamoto
Katika mradi huu kulikuwa na changamoto nyingi. Lakini changamoto kubwa zaidi tuliyokabiliana nayo ilikuwa kutokuwa na ufikiaji wa roboti halisi wa ulimwengu kwa ajili ya majaribio. Hii ilitokana na COVID kufanya kila kitu kwa mbali na kutuzuia kufanya kazi katika maabara/majengo ya Lunar Outpost. Kwa sababu ya hili, tulilazimika kutumia uigaji.
Pia, tulipitia baadhi ya utafiti wa kitaaluma kutoka WVU Navigation Lab ili kupata wazo la jinsi tatizo la Kuteleza kwa Gurudumu lingeweza kutatuliwa kwa kesi ya matumizi ya Lunar Outpost, ambayo kwetu, kama wanafunzi wa mwaka wa pili na wa tatu wa shahada ya kwanza, ilikuwa ngumu zaidi kuliko tulivyotarajia.
Changamoto nyingine tuliyokabiliana nayo ilikuwa kiasi cha muda tulichokuwa nacho wa kufanya kazi kwenye mradi huu. CSCI370 ni darasa la mwezi mmoja. Lakini tatizo lenyewe ni tatizo kubwa sana ambalo makampuni na wasomi wengi wamekuwa wakijaribu kulitatua/kulikamilisha kwa miongo kadhaa. Hivyo mwezi mmoja ni mbali sana na kuwa muda wa kutosha kutatua suala hili. Lakini, licha ya changamoto hizi zote tuliendelea kusukuma mbele na kuhakikisha tunakamilisha uwasilishaji.
Hitimisho
Baada ya kupitia utafiti na maendeleo yote, tulibaini kwamba karibu haiwezekani kuiga fizikia sahihi ya mwezi kidijitali, hivyo kujaribu kweli algoriti hii katika uigaji hakufai na hakutatoa utafiti wowote wenye maana katika utambuzi wa kuteleza kwa gurudumu angani na kwenye mwezi. Tulihitimisha kwamba kusanidi mazingira sahihi ya majaribio kwa kutumia kitu kama mchanga na maunzi halisi, kama roboti ya Husky, ni muhimu zaidi kwa aina hii ya utafiti. Tulisasisha msimbo wa utambuzi wa kuteleza kwa gurudumu ili ufanye kazi kama nodi ya ROS na ulifanya kazi ipasavyo na ungeweza kuingizwa kwa urahisi katika maunzi halisi kwa majaribio. Mradi huu uliniruhusu kuchukua jukumu la uongozi, kuwaelimisha wenzangu kuhusu uundaji wa ROS, na kupata uzoefu na Python, ROS, na Gazebo huku nikikabiliana na tatizo tata ambalo sikuwa nimewahi kulikumbana nalo hapo awali. Muhimu zaidi, uzoefu huu uliimarisha zaidi shauku yangu ya roboti na kuimarisha azma yangu ya kufuata utafiti katika uwanja huu, ukiweka msingi wa kile ambacho kingekuja baadaye katika safari yangu ya roboti.
Kuanza Katika Maabara ya HCR
Baada ya kumaliza CSCI473, kipindi changu cha Field Session cha CS katika majira ya kiangazi ya 2020, na muhula wangu wa Fall 2020, niliamua kuendelea na utafiti katika roboti. Nilikuwa na uzoefu mzuri sana na CSCI473 pamoja na CS Field Session kiasi kwamba niliamua nilitaka kufanya utafiti kwa ajili ya Maabara ya HCR. Kwa kuwa nilikuwa nimemfahamu Dk. Zhang mwaka uliotangulia, niliamua kumwandikia barua pepe na kumuuliza kuhusu nafasi zozote ambazo maabara ingeweza kuwa nazo Januari 2021. Ndani ya takribani wiki 2, Dk. Zhang alionyesha nia, akanipatia chaguzi za utafiti, na akanipa nafasi katika maabara. Kisha nilianza kufanya kazi kwa maabara Februari 2021.
Video ya Utangulizi
Hii hapa video yangu ya utangulizi ambayo niliirekodi miezi michache baada ya kuanza kwangu katika Maabara ya HCR. Ilirekodiwa Mei 2021 na inashughulikia utafiti ningeuzingatia katika Maabara ya HCR wakati wa majira ya kiangazi ya 2021:
Mradi Wangu
Katika muda wangu wote katika Maabara ya HCR, hasa nilizingatia mradi wa Triton. Mradi wa Triton ni roboti ya rununu iliyotengenezwa na Human Centered Robotics Lab katika Colorado School of Mines. Ni roboti ya ardhini yenye gurudumu la omnikazi la pembetatu inayoendeshwa na Jetson Nano ya NVIDIA.
Triton, kwa muhtasari rahisi, ilikuwa na sehemu zifuatazo:
- NVIDIA Jetson Nano
- Bodi ya Kubebea A205 ya Seed Studio ya NVIDIA
- Arduino Mega
- Kadi ya 64 GB Micro SD
- Mwili maalum uliochapishwa kwa 3D
- Magurudumu 3 ya mecanum
- Betri 1 ya AR
- Saketi maalum kwa ajili ya ugawaji wa nguvu ulioboreshwa na nyaya
- Kamera ya Realsense D435 ya Intel
- Baadhi ya taa za LED
Ilibuniwa, kujengwa, na kutengenezwa kuzunguka mwaka 2018-2020 kama roboti kwa madhumuni ya kielimu. Kufikia wakati nilijiunga, Triton ilikuwa tayari imara kiasi, na maabara ilikuwa inafikiria kutengeneza toleo jipya lake. Hata hivyo, tatizo kuu la Triton lilikuwa programu yake. Triton ingeweza kusonga, kuchaji, na kufanya kazi kwa maana ya msingi lakini haikufanya chochote cha akili kweli. Hata ilikuwa haina uwezo wa kufanya mienendo ya hali ya juu zaidi.
![]() |
![]() |
![]() |
![]() |
Ili kuanza kushughulikia hili, maabara iliweka eneo ambapo tunaweza kufuatilia Triton. Ili kufanya hivi, waliunda eneo la mita 2 kwa mita 2 lenye Kamera 8 za Optitrack Flex (Infrared Red) katika umbo linalofanana na mraba takribani futi 6-7 juu ya sakafu.
![]() |
![]() |
Pamoja na kujengwa kwa eneo hili, kila Triton ilikuwa na mipira mitatu ya duara ya kijivu iliyounganishwa juu ya miili yao.
Kwa usanidi huu, kwa kweli tulikuwa tumejenga mfumo wetu wenyewe mdogo wa GPS ulioturuhusu kupata viwianishi halisi kwa mita vya Triton katika eneo letu la kuvutia. Kwa kutumia kamera za infraredi za Optitrack na duara za kijivu za Optitrack katika umbo la pembetatu, tuliweza kubainisha kwa usahihi viwianishi halisi vya Triton katika eneo letu. Hii ilituruhusu kutumia mfumo wa mzunguko funge kwa usahihi bora katika mwendo.
Mfumo wa Optitrack ulitoa data ya nafasi na mwelekeo kwa takribani 120Hz na usahihi wa chini ya milimita unapokalibishwa ipasavyo. Alama tatu zinazorejea za kila Triton ziliunda muundo wa kipekee wa pembetatu ambao mfumo ungeweza kufuatilia kama mwili mgumu. Mfumo wa viwianishi ulikalibishwa ili kwamba (0,0) ulikuwa katikati ya eneo la ufuatiliaji, huku mhimili wa X na Y ukiwa umewekwa sambamba na jiometri ya chumba. Lakini licha ya data hii sahihi ya nafasi, Triton bado ilihangaika na mwendo.
Kwa usanidi huu, kipengele kimoja kikuu ambacho tulitaka kumpa Triton kilikuwa uwezo wa kwenda kwenye kiwianishi maalum. Mtumiaji, au programu yake, angeweza kutoa kiwianishi cha (x, y) ndani ya eneo lao la kuvutia. Kisha roboti ingeenda kwenye kiwianishi hicho kwa kasi iwezekanavyo, kwa usahihi, na kwa urahisi bila kukwama. Nilipojiunga, kipengele hiki kilikuwepo lakini hakikufanya kazi vizuri sana. Hapa kuna uhuishaji rahisi unaoonyesha jinsi mantiki ya awali ya kusogea ilivyofanya kazi:
Sikurekodi suluhisho la awali likifanya kazi, kwa hivyo niliunda uhuishaji huu rahisi unaokuonyesha mantiki ya zamani ya kusogea ikifanya kazi. Tukijua hili, ni zipi shida za njia hii?
- Ni ya polepole sana
- Inaifanya roboti kuchukua nafasi kubwa sana ili tu iende kwenye hatua mahususi. Hii ilifanya iwe vigumu kwetu kutumia suluhisho hili wakati Triton nyingi zilikuwa zinasogea kuzunguka.
Kwa hiyo, kwa nini tabia hii ilikuwa ikitokea? Tatizo lilikuwa kwamba Triton kwanza iligeuka, ikibadilisha alpha yake, hadi ilipolenga sehemu lengwa ndani ya ukingo fulani wa kosa. Kisha ingeruka mbele, na baada ya theta yake kupotoka kutoka kwa lengwa kwa kiasi fulani, ingeacha na kuanza kugeuka tena hadi alpha iwe ndani ya kiwango hicho kinachokubalika kwa lengo lengwa. Kisha inaruka tena na kuendelea kufanya hivi hadi ifike kwenye pointi. Pia, ilipokuwa ikikaribia zaidi na zaidi kwenye pointi ya lengo, kasi ya kugeuka na kuruka ilikuwa ikizidi kupungua ili kuhakikisha haipitishi lengo. Hii ilisababisha Triton kuwa na mwendo usio wa kawaida, kuchukua muda mrefu sana kufika kwenye pointi lengwa, na kuhitaji eneo kubwa sana ili tu kufika kwenye pointi mahususi lengwa. Kwa hivyo kwa matatizo haya yote, na kutokana na jinsi kipengele hiki kilivyokuwa muhimu kwa maendeleo ya mradi wa Triton, nilipoanza kufanya kazi katika Maabara ya HCR, kazi yangu ya kwanza ilikuwa kuendeleza suluhisho bora zaidi ambazo zingeruhusu Triton kuabiri vizuri zaidi kuelekea pointi ya lengo.
Nikijua hili, nilitumia muda mwingi kufanya utafiti kuhusu njia bora zaidi ya kushughulikia tatizo hili. Kwa ajabu, nilikuwa nikichukua darasa linaloitwa Introduction to Feedback Control Systems (EENG307) huko Mines. Mapema katika darasa hilo, tulijifunza kuhusu dhana ya Open-loop controllers na Closed-loop controllers. Nikijua hili, na baada ya mazungumzo fulani niliyofanya na profesa wa darasa hilo pamoja na mwenzi wangu mwerevu wa chumba, ikawa wazi kwamba lengo hili la kuifanya Triton ifike kwenye pointi ya lengo lilikuwa tatizo la mfumo wa mzunguko funge.
Sasa, baada ya majaribio na utafiti wa kina, nilitengeneza mbinu mbili tofauti za kidhibiti kwa ajili ya Tritons:
Njia ya 1: Kidhibiti cha Umbali-Theta
Njia hii ilitumia vidhibiti viwili tofauti vya uwiano vikifanya kazi kwa wakati mmoja:
- Kidhibiti cha Umbali: Kilihesabu umbali wa Euclidean hadi kwenye lengwa na kutumia faida ya uwiano kubainisha kasi ya mbele/nyuma
- Kidhibiti cha Theta: Kilihesabu kosa la angular kati ya mwelekeo wa sasa wa roboti na mwelekeo unaotakiwa kuelekea lengwa, kikitumia faida tofauti ya uwiano kwa kasi ya mzunguko
Algoriti iliendelea kuhesabu umbali wa Euclidean hadi kwenye lengwa na kosa la angular kati ya mwelekeo wa sasa wa roboti na mwelekeo unaotakiwa. Faida mbili tofauti za uwiano zilitumika kuzalisha kasi za mstari na za angular mtawalia.
Hii ilisababisha Triton kugeukia kwa kawaida kuelekea lengo huku ikisogea mbele kwa wakati mmoja, ikitengeneza njia laini zilizopinda. Faida kuu ilikuwa kwamba roboti ilidumisha kila wakati uso wake wa mbele ukiwa umeelekezwa kwenye unakoenda, jambo ambalo lilikuwa muhimu kwa programu zinazotegemea kamera.
Njia ya 2: Kidhibiti cha Kuratibu X-Y
Mbinu hii ilimtazama roboti kama kichapishi cha 2D, ikiwa na udhibiti huru wa mwendo wa X na Y:
- Kidhibiti cha X: Kilidhibiti moja kwa moja mwendo wa mashariki-magharibi kulingana na hitilafu ya kuratibu la X
- Kidhibiti cha Y: Kilidhibiti moja kwa moja mwendo wa kaskazini-kusini kulingana na hitilafu ya kuratibu la Y
Utekelezaji ulihesabu hitilafu za kuratibu za X na Y kwa kujitegemea, ukatumia faida tofauti za uwiano, kisha ukabadilisha vipengele hivi vya kasi ya kimataifa kuwa fremu ya kuratibu ya ndani ya roboti kwa kutumia matriki za mzunguko. Mabadiliko haya yalikuwa ya lazima kwa sababu mfumo wa uendeshaji wa magurudumu ya omni wa roboti ulihitaji kasi katika fremu yake ya marejeo, si katika kuratibu za kimataifa. Njia hii ilizalisha njia za moja kwa moja zaidi kuelekea malengo na ilikuwa ya haraka zaidi kwa kiasi kikubwa, lakini mwelekeo wa roboti ungesogea taratibu kwa sababu hakukuwa na udhibiti wa wazi wa uelekeo.
Kwa njia #1, niliingia kwa kina kamili kuhusu mbinu hii katika blogu yangu ya Move Turtle (TurtleSim). Ninapendekeza sana usome blogu hii ili upate maelezo yote kuhusu jinsi vidhibiti vya PID hufanya kazi kwa ujumla, pamoja na jinsi njia #1 inavyofanya kazi. Nilikuza njia #1 kwa kutumia TurtleSim ya ROS, kisha nikahamisha msimbo huo hadi kwenye Triton na kuusasisha ili uzingatie mazingira halisi zaidi ya ulimwengu wa kweli.
Njia #2 ilitumia mbinu tofauti kabisa lakini yenye ufanisi sawa. Badala ya kufikiria kuhusu uelekeo wa roboti na umbali hadi lengwa, mbinu hii hutazama mwendo kama tatizo la ndege ya kuratibu. Kidhibiti huhesabu kila mara hitilafu katika maelekeo ya X na Y kwa kujitegemea. Kwa mfano, ikiwa roboti inahitaji kusogea kutoka (0,0) hadi (2,3), huona hili kama hitaji la kusahihisha hitilafu ya mita 2 katika X na hitilafu ya mita 3 katika Y. Vidhibiti viwili vya uwiano vilifanya kazi kwa wakati mmoja: kimoja kilirekebisha kasi ya roboti katika mwelekeo wa X kulingana na hitilafu ya X, wakati kingine kilishughulikia mwendo wa mwelekeo wa Y kulingana na hitilafu ya Y. Hii iliunda njia ya moja kwa moja zaidi kuelekea lengwa, sawa na jinsi kichwa cha kichapishi cha 3D husogea, na ikaruhusu mienendo laini ya mshazari. Roboti haikuhitaji kugeuka waziwazi ili kuelekea kwenye lengwa lake, jambo lililofanya mbinu hii kuwa yenye ufanisi hasa katika nafasi finyu au pale uwekaji sahihi unapohitajika.
Mbinu zote mbili zilithibitika kuwa za haraka zaidi na za kuaminika zaidi kuliko mbinu ya awali. Ili kuona mbinu hizi mpya zikifanya kazi, angalia Orodha ya Kucheza ya Tritons in Action, ambayo inaonyesha Tritons zote zikitenda kazi kwa mbinu mpya.
Kile ambacho awali kilichukua sekunde 30-45 kwa mwendo rahisi kutoka pointi moja hadi nyingine sasa kilichukua takribani sekunde 8-12. Muhimu zaidi, Triton sasa iliweza kuabiri kwa ufanisi zaidi katika nafasi finyu, jambo ambalo lilikuwa muhimu kwa hali zetu za roboti nyingi.
Changamoto za Uendelezaji na Utatuzi wa Hitilafu
Utekelezaji wa vidhibiti hivi haukuwa wa moja kwa moja na ulihusisha changamoto kadhaa kubwa za utatuzi wa hitilafu:
Mabadiliko ya Mfumo wa Kuratibu: Moja ya vipengele vigumu zaidi ilikuwa kupata mabadiliko ya mfumo wa kuratibu kwa usahihi. Mfumo wa Optitrack ulitoa data katika fremu yake ya kuratibu, roboti ilikuwa na fremu yake ya kuratibu ya ndani, na nilihitaji kubadilisha kati ya mifumo hiyo kwa usahihi. Utekelezaji wa awali ulisababisha roboti kusogea katika mwelekeo usio sahihi kwa sababu nilichanganya hesabu za matriki za mzunguko.
Tabia Halisi dhidi ya Tabia Bora ya Kidhahania: Changamoto kubwa zaidi ilikuwa kuzingatia mambo ya ulimwengu halisi ambayo hayaonekani katika nadharia ya udhibiti ya vitabuni. Magurudumu ya roboti yalikuwa na sifa tofauti za msuguano, mota hazikujibu kwa namna ile ile, na kila mara kulikuwa na ucheleweshaji fulani katika mlolongo wa mawasiliano kutoka Optitrack kwenda kwenye programu ya udhibiti hadi Arduino ya roboti. Nilitumia wiki nyingi nikirekebisha faida za uwiano na kuongeza vichujio vya deadband ili kuzingatia uhalisia huu wa kimwili.
Masuala ya Mtetemeko na Uthabiti: Utekelezaji wangu wa kwanza ulipatwa na matatizo ya mtetemo ambapo roboti zilizidi malengo yao na kuyumba mbele na nyuma. Hili lilinifundisha kuhusu umuhimu wa vijenzi vya derivative katika vidhibiti vya PID na umuhimu wa kurekebisha kwa usahihi faida. Hatimaye nilibaki hasa na udhibiti wa uwiano wenye faida zilizorekebishwa kwa uangalifu badala ya PID kamili, kwa sababu unyonyaji wa asili wa mfumo ulitosha kwa matumizi mengi.
Uingiliaji wa Roboti Nyingi: Wakati roboti nyingi zilikimbia kwa wakati mmoja, niligundua mifumo isiyotazamiwa ya uingiliaji. Roboti zilikuwa wakati mwingine “kugombania” nafasi ile ile au kuunda hali za kufungana ambapo zingezuiliana kwa muda usio na kikomo. Hii ilinifanya nitekeleze mifumo ya uratibu na algoriti za kuepuka migongano.
Mfumo wa Udhibiti wa Triton Nyingi
Mara tu nilipokuwa nimetatua tatizo la mwendo wa Triton moja, changamoto iliyofuata ya maabara ilikuwa kupata Tritons wengi wafanye kazi pamoja kwa wakati mmoja. Hii ikawa moja ya maeneo yangu makuu ya kuzingatia na hatimaye ikawa mchango muhimu kwa mradi.
Mfumo wa awali uliweza kudhibiti Triton mmoja tu kwa wakati mmoja, jambo lililopunguza sana uwezekano wa utafiti. Maabara ilitaka kuiga hali ambapo magari mengi huru yalihitaji kuratibu mienendo yao, kama magari yanayojiendesha yakijadiliana ili kuboresha mtiririko wa trafiki na kuunda ramani bora za SLAM (Ujanibishaji na Uchoraji Ramani kwa Wakati Uleule).
Ili kutatua hili, nilitekeleza mbinu ya usindikaji mwingi kwa kutumia maktaba ya multiprocessing ya Python. Kila Triton alipata mchakato wake maalum ambao uliweza kufanya kazi kwa kujitegemea huku bado ukiratibiwa na mfumo wa kati wa udhibiti. Hii iliruhusu Tritons wengi kusogea kwa wakati mmoja bila kuingiliana na miduara ya udhibiti ya wenzao.
Ubunifu wa Usanifu wa Roboti Nyingi
Usanifu wa mfumo niliouunda ulikuwa na vipengele kadhaa muhimu:
Mchakato wa Kidhibiti Kikuu: Huu ulitumika kama mratibu mkuu, ukishughulikia mwingiliano wa kiolesura cha mtumiaji, upangaji wa njia, na uratibu wa kiwango cha juu kati ya roboti. Ulihifadhi hali ya kimataifa na kusambaza amri kwa michakato ya roboti binafsi.
Michakato ya Roboti Binafsi: Kila Triton alikuwa na mchakato wake maalum wa Python ulioshughulikia:
- Hesabu za udhibiti wa PID kwa wakati halisi kwa ~50Hz
- Mawasiliano na vifaa vya roboti (Arduino/Jetson)
- Utekelezaji wa njia za ndani na kuepuka vizuizi
- Kuripoti hali kurudi kwa kidhibiti kikuu
Mawasiliano ya Kumbukumbu-Shirikishi: Nilitumia vitu vya multiprocessing.shared_memory na Queue vya Python kuwezesha mawasiliano yenye ufanisi kati ya michakato. Hii iliruhusu uratibu wa wakati halisi bila mzigo wa ziada wa mawasiliano ya mtandao.
Mifumo ya Usawazishaji: Ili kuzuia migongano wakati roboti nyingi zilipohitaji kuratibiana (kama kuepuka migongano), nilitekeleza semaphores na locks zilizoruhusu roboti kuomba ufikiaji wa kipekee kwa baadhi ya maeneo ya nafasi ya kazi.
Changamoto ilikuwa kuhakikisha roboti zote zingeweza kuendesha miduara yao ya udhibiti kwa kujitegemea huku bado zikidumisha uratibu wa kimataifa. Kila mchakato wa roboti uliendesha hesabu zake za PID na kutuma amri za mota moja kwa moja kwa vifaa, huku mchakato mkuu ukishughulikia uratibu wa kiwango cha juu kama vile kuepuka migongano na upangaji wa njia.
![]() |
![]() |
Mfumo wa Triton nyingi ulifungua uwezekano mpya kabisa wa utafiti. Sasa tuliweza kuiga:
- Hali za mawasiliano kati ya gari na gari
- Upangaji wa njia ulioratibiwa pamoja na kuepuka vizuizi
- Tabia za roboti kundi
- Uchoraji ramani wa SLAM wa mawakala wengi
- Udhibiti wa umbo la kikundi na tabia za kufuata
Hivi ndivyo mpangilio wa maabara ulivyoonekana ukiwa na Tritons wengi wakifanya kazi kwa wakati mmoja:
![]() |
![]() |
Pia nilitengeneza kiolesura rafiki kwa mtumiaji kilichowaruhusu watafiti kufafanua kwa macho njia za kila Triton. Kihalisi ungeweza kuchora njia unayotaka kila roboti ifuate, nao wangetekeleza njia hizi kwa uratibu kamili. Hii ilikuwa muhimu sana kwa kusanidi majaribio tata bila kulazimika kuandika kwa mkono kila mwendo.
Mfumo uliweza kushughulikia hadi Tritons 5 kwa wakati mmoja, kila mmoja akiendesha vidhibiti vyake vya PID huku akikuratibiwa kupitia mfumo mkuu wa udhibiti. Utendaji ulikuwa wa kuvutia, huku roboti zote zikidumisha usahihi wao binafsi wakati zikifanya kazi pamoja kama timu.
Huu hapa ni orodha ya kucheza inayoonyesha Tritons wakiwa kazini, kuanzia udhibiti wa roboti moja hadi uratibu wa roboti nyingi: Orodha ya Kucheza ya Tritons in Action
Ujumuishaji wa Sensa ya Kina na Usahihishaji wa Kuratibu
Maendeleo mengine makubwa niliyofanyia kazi yalihusisha matumizi ya kamera za kina za Intel RealSense D435 zilizowekwa kwenye kila Triton. Ingawa mfumo wa Optitrack ulitupa data ya uwekaji nafasi yenye usahihi wa ajabu, nilitaka kuchunguza jinsi roboti zinavyoweza kutumia sensa zao za ndani kuboresha ufahamu wao wa anga na kusahihisha hitilafu za kuratibu.
Wazo lilikuwa kwamba Tritons wangeweza kutumia sensa zao za kina kugundua Tritons wengine waliokuwa karibu nao na kulinganisha upya nafasi zao. Hii ingehudumia madhumuni kadhaa:
-
Usahihishaji wa Hitilafu: Ikiwa mfumo wa Optitrack ungekuwa na mkengeuko wowote wa kalibresheni au kufunikwa kwa muda, roboti zingeweza kutumia uthibitisho wa kuona wa nafasi za wenzao ili kudumisha mifumo sahihi ya kuratibu.
-
SLAM Iliyoimarishwa: Kwa kuwa na roboti nyingi zenye sensa za kina zikifanya kazi pamoja, tuliweza kuunda ramani tajiri zaidi za mazingira zenye sehemu za data za ziada.
-
Kuepusha Migongano: Kuhisi kina kwa wakati halisi kungewaruhusu roboti kugundua na kuepuka kila mmoja hata kama mfumo mkuu wa udhibiti ungekuwa na ucheleweshaji wa mawasiliano.
Nilianza kufanya majaribio na algoriti ambazo zingewaruhusu Tritons ku:
- Kugundua Tritons wengine kwa kutumia umbo lao la pembetatu la kipekee na alama zao za tufe zenye kuakisi
- Kukokotoa nafasi na mwelekeo wa jamaa kwa kutumia data ya kina
- Kulinganisha vipimo hivi na data ya Optitrack ili kutambua tofauti
- Huenda kurekebisha mfumo wao wa kuratibu kwa wakati halisi ili kudumisha usahihi
Majaribio ya Maono ya Kompyuta
Nilitumia muda mwingi nikifanya majaribio na bomba la maono ya kompyuta ambalo lilifanya kazi katika hatua kadhaa:
![]() |
![]() |
![]() |
![]() |
![]() |
Uchakataji wa Data ya Kina: Intel RealSense D435 ilitoa mitiririko ya data ya RGB na kina. Kimsingi nilifanya kazi na data ya kina, ambayo ilikuja kama mkusanyiko wa 640x480 wa vipimo vya umbali kwa 30Hz. Changamoto ya kwanza ilikuwa kuchuja data hii ya kina yenye kelele ili kutoa taarifa ya kijiometri yenye maana.
Majaribio ya Ugunduzi wa Kitu: Nilifanya majaribio na algoriti za ugunduzi za hatua nyingi. Nilipata mafanikio fulani katika kugawa picha ya kina ili kutambua vitu vilivyo kwenye kiwango cha sakafu (kuondoa kuta, dari, n.k.) na kutafuta vitu vilivyo na sifa sahihi za ukubwa, takriban eneo la chini la mita 0.3x0.3. Nilijaribu kutumia utambuzi wa kingo na uchambuzi wa kijiometri kutambua wasifu tofauti wa Triton, kwa matokeo mchanganyiko.
Majaribio ya Utambuzi wa Alama: Tufe tatu zenye kuakisi kwenye kila Triton zilionekana kama kipengele cha utambuzi kilichoahidi zaidi. Nilifanya majaribio na algoriti za utambuzi wa blob ili kutambua mpangilio wa pembetatu wa tabia wa madoa matatu angavu kwenye picha ya kina. Nilipata matokeo yenye matumaini katika hali za mwangaza unaodhibitiwa, ingawa hayakuwa ya kuaminika kila mara.
Utafiti wa Kuunganisha Kuratibu: Nilitafiti mbinu za kuunganisha makadirio ya nafasi yanayotegemea maono na data ya Optitrack, ikijumuisha utekelezaji wa msingi wa kichujio cha Kalman. Dhana ilikuwa kutoa uzito zaidi kwa data ya Optitrack inapopatikana lakini kurudi kwenye maono inapohitajika, ingawa sikufanikiwa kuifanya hii ifanye kazi kikamilifu kabla ya muda wangu maabara kumalizika.
Changamoto za Utendaji: Kufanya uchakataji huu wote uendeshe kwa wakati halisi sambamba na mizunguko ya udhibiti ya roboti kulithibitika kuwa changamoto. Nilifanya majaribio na mbinu za uboreshaji ili kuendesha algoriti kwa takriban 10-15Hz bila kuzidisha uwezo wa uchakataji wa Jetson Nano.
Kwa bahati mbaya, ilibidi niondoke maabara kabla ya kumaliza kikamilifu kazi hii ya maono ya kompyuta. Ingawa nilikuwa na baadhi ya matokeo ya mapema yenye matumaini na nilijifunza mengi kuhusu uchakataji wa sensa za kina, sikufikisha mfumo katika hali ya kuaminika kikamilifu. Ulisalia kuwa mwelekeo wa kuvutia wa utafiti ambao wengine wangeweza kujenga juu yake.
Hapa kuna video yangu nikijaribu algoriti za maono ya kompyuta:
Hivi ndivyo mwonekano wa sensa ya kina ulivyokuwa wakati wa majaribio yangu:
Ingawa sikukamilisha kazi ya kuunganisha sensa ya kina, dhana hiyo ilionyesha matumaini kwa matumizi kama kuiga hali za magari ya kujiongoza, ambapo magari yanahitaji kufahamu uwepo wa kila mmoja bila kutegemea tu miundombinu ya nje. Mwelekeo wa utafiti niliouanza kuchunguza ungeweza kuchangia kazi ya baadaye maabara.
Hati na Uhifadhi wa Maarifa
Mojawapo ya michango yangu muhimu zaidi kwa HCR Lab, na pengine ile ninayojivunia zaidi, ilikuwa kuandaa na kuhifadhi hati zote za mradi. Nilipojiunga na maabara, maarifa ya mradi wa Triton yalitawanyika kwenye majukwaa na fomati nyingi. Taarifa muhimu zilikuwa zimezagaa katika:
- Akaunti mbalimbali za Google Drive zinazomilikiwa na wanafunzi tofauti waliokuwa wamehitimu
- Barua pepe za zamani zilizozama ndani ya vikasha vya barua
- Folda za Dropbox za nasibu
- Hazina nyingi za GitHub
- Hazina za GitLab zenye upangaji usio thabiti
- Dondoo zilizoandikwa kwa mkono ambazo ni watu maalum tu walioweza kuzitafsiri
Hati hizi zilizogawanyika zilikuwa tatizo kubwa sana. Wanafunzi wapya walitumia wiki nyingi wakijaribu tu kubaini jinsi ya kuanza, na maarifa muhimu yalikuwa yakipotea kila mara watu walipohitimu au kuondoka maabara.
Nilijichukulia jukumu la kutatua tatizo hili kwa mfumo. Nilitumia saa nyingi zisizo na idadi nikitafuta kila kipande cha hati, msimbo, video, na dondoo linalohusiana na mradi wa Triton. Kisha niliandaa kila kitu ndani ya hazina kuu ya GitLab yenye muundo wazi na wa kimantiki.
![]() |
![]() |
Hati kuu zilizoandaliwa zilijumuisha:
- Miongozo ya Ujenzi: Maagizo ya hatua kwa hatua ya kukusanya Tritons kuanzia mwanzo
- Usanidi wa Programu: Miongozo kamili ya kusanidi mazingira ya maendeleo
- Hati za Msimbo: Msimbo ulioelezwa vizuri kwa maelezo wazi
- Maelezo ya Vifaa: Orodha za sehemu za kina, michoro ya nyaya, na miundo ya PCB
- Miongozo ya Utatuzi wa Matatizo: Matatizo ya kawaida na suluhu zake
- Mafunzo ya Video: Niliunda na kupakia video za mafunzo kwenye YouTube, ikijumuisha mafunzo ya kina ya urekebishaji wa Optitrack:
Pia niliweka viwango vya hati ili kuhakikisha michango ya baadaye ingepangwa na kupatikana kwa urahisi. Muundo wa hazina niliouunda ukawa msingi wa kazi zote zilizofuata maabara.
Zaidi ya kuandaa tu hati zilizokuwapo, niliunda miongozo na mafunzo kadhaa ya asili yaliyojaza mapengo muhimu katika msingi wa maarifa. Haya yalijumuisha maagizo ya kina ya usanidi kwa wanachama wapya wa maabara, miongozo kamili ya utatuzi wa matatizo, na maelezo ya video ya taratibu tata.
Athari ilikuwa ya haraka na ya kudumu. Wanafunzi wapya waliweza kufikia kiwango cha uelewa ndani ya siku badala ya wiki. Hazina ya hati niliyounda bado inatumiwa na maabara hadi leo, miaka kadhaa baada ya kuondoka. Ilikuwa chanzo kimoja cha ukweli kwa mradi wa Triton na iliokoa saa/siku nyingi kwa watafiti wa baadaye.
Uongozi wa Ushauri na Uhamishaji wa Maarifa
Mojawapo ya vipengele vilivyoniletea kuridhika zaidi wakati wangu katika HCR Lab ilikuwa fursa ya kuwashauri wengine na kushiriki maarifa niliyopata. Kadiri kazi yangu ilivyoendelea na nilivyozidi kuwa na uzoefu zaidi na mifumo ya Triton, nilichukua jukumu kubwa zaidi la kuwafundisha wanachama wapya wa timu.
Kuwashauri Wafuasi wa Maabara
Nilipokuwa nikijiandaa hatimaye kuondoka maabara ili kuzingatia kukamilisha shahada yangu na kazi yangu katika eBay, nilihakikisha kuwa nimewafundisha kwa kina watu wawili ambao wangetwaa mradi wa Triton baada ya kuondoka kwangu. Hili halikuwa tu kuhusu kuwaonyesha jinsi mambo yalivyofanya kazi, bali lilikuwa kuhusu kuhakikisha wanaelewa kweli kanuni za msingi ili waweze kuendelea kubuni.
Nilitumia wiki nikifanya kazi nao kwa karibu, tukipitia:
- Misingi ya kihesabu ya mifumo ya udhibiti ya PID
- Usanifu wa usindikaji mwingi wa kuratibu roboti nyingi
- Uunganishaji wa sensa ya kina na algoriti za maono ya kompyuta
- Mfumo wa hati na jinsi ya kuutunza
- Mbinu za utatuzi na njia za kawaida za kushindwa
Uhamishaji wa maarifa ulikuwa wa kina sana. Tulipitia vikao halisi vya utatuzi pamoja, niliwafanya wabadili na kupanua msimbo uliokuwapo, na nilihakikisha wanaweza kuanzisha Tritons wapya kutoka mwanzo bila msaada wa mtu mwingine.
Mpango wa Uongozi kwa Mwanafunzi wa Shule ya Sekondari
Labda kilichokuwa cha kuridhisha zaidi ilikuwa uzoefu wangu wa kumwongoza mwanafunzi wa shule ya sekondari kupitia mpango wa uhamasishaji wa maabara. Hii ilikuwa fursa nzuri ya kumtambulisha mtu kwenye robotiki, sayansi ya kompyuta, na utafiti katika hatua ya malezi katika elimu yake.
Nilibuni mtaala wa kina ulioshughulikia:
Misingi ya Sayansi ya Kompyuta:
- Dhana za upangaji programu kwa kutumia Python kama lugha kuu
- Utangulizi wa upangaji programu unaotumia vitu
- Uelewa wa algoriti na miundo ya data
Dhana za Robotiki:
- Jinsi sensa zinavyofanya kazi na jinsi ya kuziunganisha
- Udhibiti wa viamilishi na mifumo ya mota
- Misingi ya mifumo huru na udhibiti wa mrejesho
ROS (Mfumo wa Uendeshaji wa Roboti):
- Uelewa wa mfumo wa ujumbe wa kuchapisha/kujisajili
- Kuunda nodi na huduma
- Kufanya kazi na faili za uzinduzi na seva za vigezo
Kazi za Mradi za Vitendo:
- Tulishirikiana kuunda huduma ya ROS iliyodhibiti mfumo wa LED kwenye kichwa cha Triton
- Alijifunza kuandika msimbo safi, wenye hati, uliounganishwa na mifumo yetu iliyokuwapo
- Huduma ya udhibiti wa LED aliyoiumba ikawa sehemu ya kudumu ya msimbo wa Triton
Kilichofanya ushauri huu kuwa wa pekee hasa ilikuwa kumwona akipiga hatua kutoka kutojua karibu chochote kuhusu upangaji programu hadi kuchangia msimbo wenye maana katika mradi hai wa utafiti. Alitoka kuuliza, “Tofauti ni nini?” hadi kutatua kwa kujitegemea matatizo ya mawasiliano ya ROS na kuandika utekelezaji wake mwenyewe wa huduma.
Mfumo wa udhibiti wa LED aliouendeleza uliwaruhusu watafiti kubadilisha kwa urahisi rangi na mifumo ya LED za kichwa cha Triton kupitia amri rahisi za ROS. Hili linaweza kuonekana rahisi, lakini lilihitaji uelewa wa usanifu wa ROS, uunganishaji wa vifaa, na mifumo sahihi ya usanifu wa programu. Michango yake bado inatumika maabara hadi leo.
Ushauri huo ulikuwa wa kielimu kwangu kama ulivyokuwa kwake. Ulinilazimisha kuvunja dhana tata kuwa vipande vinavyoweza kumeng’enywa na kufikiri kweli kuhusu misingi ya kile tulichokuwa tukifanya. Kumfundisha mtu mwingine kulinifanya kuwa mhandisi na mtafiti bora zaidi.
Ushirikiano na Utafiti wa PhD
Mojawapo ya vipengele vilivyonipa kuridhika zaidi kitaaluma wakati wangu maabara ilikuwa kufanya kazi kwa karibu na Peng, mwanafunzi wa PhD ambaye utafiti wake ulilenga algoriti za magari yanayojiendesha. Maboresho ya programu niliyofanya kwenye mfumo wa Triton yalisaidia kuunga mkono utafiti wake wa udaktari.
Utafiti wa Peng ulihitaji uratibu sahihi na wa kuaminika wa roboti nyingi ili kuiga hali za magari yanayojiendesha. Kabla ya maboresho yangu ya udhibiti wa mwendo na mifumo ya roboti nyingi, majaribio haya yalikuwa magumu zaidi kuyafanya. Roboti zilikuwa polepole zaidi, zisizo sahihi zaidi, na hazingeweza kufanya kazi pamoja kwa ufanisi ule ule.
Michango yangu ilisaidia utafiti wa Peng katika maeneo kadhaa:
Utafiti wa Usimamizi wa Makutano: Kwa vidhibiti vya PID vilivyoboreshwa na uratibu wa roboti nyingi, Peng aliweza kuiga hali za makutano ambapo “magari” mengi (Tritons) yalihitaji kuratibu mienendo yao. Muda na uwekaji nafasi bora vilisaidia kufanya tafiti hizi ziwezekane zaidi.
Mawasiliano Kati ya Gari na Gari: Mfumo wa uchakataji wa vingi niliouunda ulimruhusu Peng kutekeleza na kupima itifaki za mawasiliano kati ya magari yaliyoiga. Kila Triton ingeweza kufanya maamuzi huku bado ikiratibu na mengine, sawa na jinsi magari yanayojiendesha yanavyoweza kuhitaji kufanya kazi.
Utafiti wa SLAM na Uchoraji Ramani: Kazi ya ujumuishaji wa kihisi cha kina ilimpa Peng data ya ziada kwa utafiti wake wa ujanibishaji na uchoraji ramani wa wakati mmoja. Kuwa na roboti nyingi zenye uwezo wa kuhisi ulioratibiwa kuliruhusu majaribio ya uchoraji ramani ya kina zaidi.
Kilichofanya ushirikiano wetu kuwa wa thamani hasa ni kwamba haikuwa tu mimi nikisaidia utafiti wake; ilikuwa ni ushirikiano wa kweli. Uelewa wa Peng wa vipengele vya kinadharia vya magari yanayojiendesha ulisaidia kufahamisha utekelezaji wangu wa vitendo. Maoni yake na mahitaji yake yalinisukuma kufanya mifumo iwe thabiti zaidi na yenye uwezo zaidi.
Tulitumia saa nyingi pamoja maabara, tukirekebisha kasoro za hali mbalimbali, tukijadili mikakati tofauti ya udhibiti, na kuchunguza kile jukwaa la Triton lingeweza kutimiza. Peng aligeuka kuwa mwenza na pia rafiki, na kufanya kazi naye kulinifundisha mengi kuhusu jinsi utafiti wa kitaaluma unavyofanya kazi kweli.
Mifumo niliyoijenga ikawa sehemu yenye manufaa ya kazi ya tasnifu ya Peng. Kuona michango yangu ya vitendo ya kihandisi ikiunga mkono utafiti katika teknolojia ya magari yanayojiendesha kuliniridhisha sana. Kulihakikisha tena upendezi wangu katika jinsi uhandisi thabiti na utafiti vinavyoweza kufanya kazi pamoja ili kuleta matokeo yenye manufaa.
Hata baada ya kuondoka maabara, Peng na mimi tuliendelea kuwasiliana. Kujua kwamba kazi yangu iliendelea kuchangia utafiti muhimu hata baada ya kuondoka kulikuwa na thawabu kubwa sana.
Mtazamo: Enzi ya Kabla ya LLM ya Uendelezaji
Ni vyema kutambua kwamba kazi hii yote ilikamilishwa wakati wa enzi ya kabla ya LLM ya uendelezaji wa programu. Yote haya yalifanyika kati ya 2020 hadi 2021 (hasa 2021), kabla ya ChatGPT, Claude, Perplexity, au zana za uendelezaji zinazotumia AI kama Cursor IDE kuwepo.
Kila mstari wa msimbo uliandikwa kutoka mwanzo, kila algoriti ilitafitiwa kupitia makala za kitaaluma na vitabu vya kiada, na kila kikao cha utatuzi wa kasoro kilihusisha mbinu za kitamaduni kama kauli za kuchapisha, viwashi vya kasoro, na majaribio ya kimfumo. Nilipokwama kwenye tatizo la ubadilishaji wa kuratibu au urekebishaji wa PID, sikuweza tu kumuuliza msaidizi wa AI anieleze dhana hiyo au anisaidie kutatua tatizo.
Hili lilifanya mchakato wa uendelezaji kuwa na changamoto zaidi kwa kiasi kikubwa lakini pia kuwa wa kielimu zaidi. Ilibidi:
Kufanya Utafiti wa Kila Kitu Kwa Mikono: Kuelewa nadharia ya udhibiti wa PID kulimaanisha kusoma vitabu vya kiada na makala za kitaaluma. Kubaini ubadilishaji wa kuratibu kulihitaji kufanya hesabu mwenyewe kwa mkono. Kila dhana ilipaswa kueleweka kikamilifu kabla ya utekelezaji.
Kutatua Hitilafu Bila Msaada wa AI: Roboti zilipohamia katika mwelekeo usiotarajiwa au kuzunguka-zunguka karibu na malengo, ilibidi nifuate kwa utaratibu mantiki, niweke matokeo ya utatuzi wa kasoro, na nipime dhana moja baada ya nyingine. Hakukuwa na AI ya kupendekeza matatizo yanayoweza kuwepo au kusaidia kutafsiri mifumo ya makosa.
Kujifunza Kutoka kwenye Kanuni za Msingi: Bila uwezo wa kuuliza haraka “natekelezaje uchakataji wa vingi katika Python kwa robotiki?” ilibidi nielewe kwa kina dhana za msingi. Hili lilinilazimisha kujenga msingi thabiti katika programu sambamba, mifumo ya udhibiti, na uoni wa kompyuta.
Nyaraka Zilikuwa Muhimu Sana: Kwa kuwa sikuweza kutegemea AI kueleza msimbo baadaye, ilibidi niandike nyaraka na maelezo kwa uwazi wa hali ya juu. Nidhamu hii ilionekana kuwa ya thamani isiyopimika nilipokuwa nikihamisha maarifa kwa wengine.
Nikirejea nyuma, ingawa zana za kisasa za AI zingeharakisha vipengele vingi vya uendelezaji, kufanya kazi bila hizo kulinilazimisha kukuza ujuzi wa kina zaidi wa kutatua matatizo na uelewa mpana zaidi wa mifumo ya msingi. Inavutia kufikiria jinsi mradi huu ungekuwa tofauti sana kama zana za leo za uendelezaji zingekuwapo.
Uamuzi Mgumu wa Kuondoka
Japokuwa nilipenda sana kufanya kazi katika HCR Lab, kufikia mwisho wa 2021 nilikabiliwa na uamuzi mgumu ambao wanafunzi wengi hukumbana nao: kusawazisha fursa na majukumu mengi. Wakati huohuo nilikuwa nikifanya kazi kwa muda wote kama mhandisi wa programu katika eBay, nikihitimisha shahada yangu ya sayansi ya kompyuta katika Mines, na kuchangia utafiti katika HCR Lab.
Fursa ya eBay ilikuwa muhimu; ilikuwa nafasi yangu ya kwanza kubwa ya uhandisi wa programu, ilinipa uzoefu muhimu sana wa sekta, na ilinipa kipato thabiti. Hata hivyo, kujaribu kudumisha kazi ya muda wote, kukamilisha shahada yangu, na kuchangia kwa maana katika utafiti kulikuwa tu hakukuwa endelevu. Kulihitajika kitu kukosa.
Nilipomwendea Dk. Zhang kuhusu uwezekano wa kupunguza mzigo wa kozi zangu ili nizingatie zaidi kazi ya maabara, alinishauri vikali nisiifanye. Hoja yake ilikuwa ya busara: kukamilisha shahada yangu kunapaswa kuwa kipaumbele, na uzoefu wa sekta katika eBay ungekuwa wa thamani kwa maendeleo yangu ya taaluma. Aliona kwamba kuacha masomo ili kuzingatia utafiti, ingawa kulivutia, huenda kusingekuwa uamuzi bora wa muda mrefu.
Kwa hiyo mnamo Septemba 2021, baada ya takriban miezi 8 ya kazi ya kina maabara, nilifanya uamuzi mgumu wa kujiondoa kutoka jukumu langu la msaidizi wa utafiti ili nizingatie kukamilisha shahada yangu na kazi yangu katika eBay. Ilikuwa mojawapo ya maamuzi magumu zaidi ya kitaaluma ambayo nilipaswa kufanya wakati huo.
Hata baada ya kuondoka rasmi maabara, niliendelea kutoa msaada wakati wowote mtu yeyote alipohitaji msaada na mifumo niliyokuwa nimeijenga. Nilisasisha nyaraka inapohitajika, nilijibu maswali kuhusu utatuzi wa kasoro, na nilisaidia kutatua matatizo kwa mbali. Mahusiano niliyokuwa nimejenga na uwekezaji niliokuwa nao katika mafanikio ya mradi havikutoweka tu kwa sababu sikuwa tena rasmi sehemu ya timu.
Tafakari na Kuangalia Nyuma
Sasa, mnamo 2025, miaka minne baadaye, najikuta nikitafakari kuhusu wakati huo kwa hisia changamano. Njia yangu ya taaluma ilienda mbali katika uendelezaji wa wavuti na uhandisi wa AI/ML, maeneo ambayo yamekuwa ya kuridhisha sana na yamenipa fursa kubwa sana za ukuaji na athari.
Hata hivyo kuna sehemu yangu inayouliza “vipi kama.” Robotiki ilikuwa, na kwa kweli bado ni, shauku yangu ya kweli. Kuna jambo fulani kuhusu kufanya kazi na mifumo ya kimwili, kuona msimbo wako ukigeuka kuwa mwendo na tabia halisi ulimwenguni, ambalo uendelezaji wa wavuti na hata kazi ya AI haviwezi kuiga kikamilifu.
Wakati mwingine hujiuliza nini kingetokea kama ningechukua njia tofauti. Vipi kama ningepata njia ya kubaki katika utafiti wa robotiki? Vipi kama ningeendelea na shule ya wahitimu mara moja baada ya kumaliza shahada yangu ya kwanza? Vipi kama ningechagua kutanguliza kazi ya maabara kuliko uzoefu wa sekta?
Lakini pia natambua kwamba kila njia ina mabadilishano yake. Ujuzi niliouendeleza katika uendelezaji wa wavuti na AI umekuwa wa thamani sana. Uzoefu wa sekta ulinifundisha kuhusu uhandisi wa programu katika kiwango kikubwa, usanifu wa uzoefu wa mtumiaji, na changamoto za vitendo za kujenga bidhaa zinazotumiwa na mamilioni ya watu. Uzoefu huu ulinenifanya kuwa mhandisi bora kwa ujumla.
Kazi niliyofanya katika HCR Lab inaendelea kuathiri jinsi ninavyokabiliana na matatizo leo. Fikra za kimfumo zinazohitajika kwa mifumo ya udhibiti wa PID zinaonekana katika jinsi ninavyobuni mifumo ya mrejesho katika mifumo ya programu. Ujuzi wa nyaraka na uhifadhi wa maarifa niliouendeleza umekuwa wa thamani isiyopimika katika kila jukumu tangu hapo. Uzoefu wa kuwa mshauri na mwalimu umeunda jinsi ninavyofanya kazi na watengenezaji wachanga na kuchangia katika kushirikiana maarifa ndani ya timu.
Muhimu zaidi, uzoefu huo ulinifundisha kwamba hustawi ninapofanya kazi kwenye matatizo ya kiufundi yenye changamoto ambayo yana athari halisi duniani. Iwe ni kuboresha algoriti za mwendo wa roboti au kujenga mifumo ya AI inayosaidia watumiaji kufanikisha malengo yao, uridhisho unatokana na kutatua matatizo magumu ambayo yana maana.
Athari ya Kudumu
Nikirejelea uzoefu wa HCR Lab, nashangazwa na kiasi nilichotimiza ndani ya muda mfupi kiasi. Mifumo niliyobuni kimsingi ilibadilisha jinsi jukwaa la Triton lilivyofanya kazi, na maboresho mengi ya hapo bado yanatumika hadi leo. Repozitri ya nyaraka niliyounda ikawa hazina ya maarifa kwa mradi mzima. Mahusiano ya ushauri niliyounda yalikuwa na athari ya kudumu kwa watu niliokutana nao kazini.
Lakini pengine kwa umuhimu zaidi, uzoefu huo ulinionyesha kile ninachoweza kufanya ninapofanya kazi kwenye matatizo ninayoyapenda kweli. Katika miezi hiyo minane, mimi:
- Niliboresha mfumo wa udhibiti wa mwendo wa roboti uliokuwa unapunguza uwezo wa jukwaa
- Niliunda mfumo wa uratibu wa roboti nyingi kuanzia mwanzo
- Niliunganisha uwezo wa maono ya kompyuta na muunganiko wa vihisi
- Niliunda mfumo wa kina wa hati na usimamizi wa maarifa
- Niliwashauri watu kadhaa na nikasaidia katika uhamishaji wa maarifa
- Niliunga mkono utafiti wa kiwango cha PhD katika magari yanayojiendesha
Hili halikuwa tu kuhusu mafanikio ya kiufundi, ingawa yale yalikuwa na maana kwangu. Lilikuwa kuhusu kujifunza kwamba kwa uvumilivu na fikra za kimfumo, unaweza kutoa michango yenye manufaa hata ukiwa mwanafunzi wa shahada ya kwanza.
Mustakabali na Roboti
Ingawa taaluma yangu imenipeleka katika mwelekeo mwingine, shauku yangu kwa roboti haijapungua. Bado ninafuatilia maendeleo katika uwanja huu, ninafurahishwa na maendeleo katika kujifunza kwa roboti na mifumo inayojiendesha, na mara kwa mara hufanya kazi kwenye miradi binafsi ya roboti katika muda wangu wa ziada.
Nani anajua mustakabali una nini? Ujuzi ninaoendeleza katika AI na ujifunzaji wa mashine unazidi kuwa muhimu kwa roboti. Uzoefu wa sekta ambao nimepata umenifundisha jinsi ya kujenga mifumo imara, inayoweza kupanuka. Huenda kukawa na mustakabali ambapo nyuzi hizi tofauti za uzoefu wangu zinaungana kwa njia zisizotarajiwa.
Kwa sasa, ninashukuru kwa muda nilioutumia katika Maabara ya HCR na uzoefu uliotokana nayo. Ulikuwa kipindi cha mafunzo kilichounda ustadi wangu wa kiufundi pamoja na uelewa wangu wa aina gani ya kazi ninayoipata kuwa yenye kuridhisha zaidi. Ingawa wakati mwingine naukosa, najua kwamba masomo niliyojifunza na mbinu nilizokuza vinaendelea kuathiri kila kitu ninachofanya.
Roboti za Triton bado zipo, bado zinahudumia watafiti, bado zinawezesha kazi muhimu. Na hilo ni jambo la ajabu sana.

















