Turinys:

Sukurkite savo robotą „Turtlebot“: 7 žingsniai
Sukurkite savo robotą „Turtlebot“: 7 žingsniai

Video: Sukurkite savo robotą „Turtlebot“: 7 žingsniai

Video: Sukurkite savo robotą „Turtlebot“: 7 žingsniai
Video: Autonomous Robot Ep. 10-Webots and ROS2 Tutorial by Haris Kasminto Aji 2024, Lapkritis
Anonim
Sukurkite savo robotą „Turtlebot“!
Sukurkite savo robotą „Turtlebot“!
Sukurkite savo robotą „Turtlebot“!
Sukurkite savo robotą „Turtlebot“!
Sukurkite savo robotą „Turtlebot“!
Sukurkite savo robotą „Turtlebot“!

REDAGUOTI:

Daugiau informacijos apie programinę įrangą ir valdymą rasite šioje nuorodoje:

hackaday.io/project/167074-build-your-own-turtlebot-3-backbone

Tiesioginė nuoroda į kodą yra tokia:

github.com/MattMgn/foxbot_core

Kodėl šis projektas?

„Turtlebot 3“yra puiki platforma gilintis į elektroniką, robotiką ir net dirbtinį intelektą! Aš siūlau jums žingsnis po žingsnio sukurti savo griovelį su prieinamomis dalimis, neprarandant funkcijų ir našumo. Turint omenyje vieną dalyką: išlaikyti geriausią iš pradinio roboto, jo moduliškumą, paprastumą ir daugybę paketų, skirtų autonominei navigacijai ir AI iš atviro kodo bendruomenės.

Šis projektas yra galimybė pradedantiesiems įgyti elektronikos, mechanikos ir kompiuterių mokslų sąvokas, o labiau patyrę - galingą platformą, skirtą išbandyti ir kurti dirbtinio intelekto algoritmus.

Ką atrasite šiame projekte?

Jūs netrukus sužinosite, kurios esminės mechaninės ir elektroninės dalys turi būti saugomos nuo pradinio roboto, kad būtų užtikrintas visiškas suderinamumas.

Visas kūrimo procesas bus išsamus: nuo 3D dalių spausdinimo, surinkimo ir kelių komponentų, litavimo ir elektronikos integravimo iki galutinio kodo surinkimo „Arduino“. Ši pamoka baigs „sveiko pasaulio“pavyzdžiu, kad supažindintų jus su ROS. Jei kas nors atrodo neaišku, nedvejodami užduokite klausimą!

Prekės

Elektronika:

1 x vienos plokštės kompiuteris, skirtas ROS paleisti, gali būti, pavyzdžiui, „Raspberry Pi“arba „Jetson Nano“

1 x „Arduino DUE“, taip pat galite naudoti UNO arba MEGA

Čia rasite 1 „Arduino DUE“kištukui tinkančią prototipą

2 x 12 V nuolatinės srovės varikliai su koduotuvu (100 aps./min.)

1 x L298N variklio tvarkyklė

2 x 5V reguliatorius

1 x baterija (pavyzdžiui, 3S/4S LiPo baterija)

2 įjungimo/išjungimo jungikliai

2 x LED

2 x 470 kOhm rezistoriai

3 x 4 kontaktų JST jungtys

1 x USB kabelis (bent vienas tarp SBC ir „Arduino“)

Jutikliai:

1 x srovės jutiklis (neprivaloma)

1 x 9 laisvės laipsniai IMU (neprivaloma)

1 x LIDAR (neprivaloma)

Važiuoklė:

16 x modulinės „Turtlebot“plokštės (kurios taip pat gali būti atspausdintos 3D formatu)

2 x 65 mm skersmens ratai (6 mm pločio pasirinkimas)

4 x nailono tarpikliai 30 mm (neprivaloma)

20 x M3 įdėklai (neprivaloma)

Kiti:

Laidai

M2.5 ir M3 varžtai ir įdėklai

3D spausdintuvas arba kažkas, kas gali atspausdinti dalis už jus

Rankinis gręžtuvas su tokiu gręžimo antgalių rinkiniu

1 žingsnis: aprašymas

apibūdinimas
apibūdinimas
apibūdinimas
apibūdinimas

Šis robotas yra paprasta diferencialinė pavara, kuri naudoja 2 ratus, pritvirtintus tiesiai prie jų variklio, ir ritininį ratuką, kuris yra gale, kad robotas nenukristų. Robotas yra padalintas į du sluoksnius:

apatinis sluoksnis: su varymo grupe (akumuliatorius, variklio valdiklis ir varikliai) ir „žemo lygio“elektronika: „Arduino“mikrovaldiklis, įtampos reguliatorius, jungikliai …

Viršutinis sluoksnis: su „aukšto lygio“elektroniniu kompiuteriu, būtent vienos plokštės kompiuteriu ir LIDAR

Šie sluoksniai yra susieti su atspausdintomis dalimis ir varžtais, kad būtų užtikrintas konstrukcijos tvirtumas.

Elektroninė schema

Schema gali atrodyti šiek tiek netvarkinga. Tai scheminis brėžinys, kuriame nėra visų laidų, jungčių ir plokštės, tačiau jį galima perskaityti taip:

3S litihum jonų polimerų baterija, kurios talpa 3000 mAh, maitina pirmąją grandinę, ji tiekia variklio valdiklio plokštę (L298N) ir pirmąjį 5V reguliatorių, skirtą variklių kodavimo įrenginiams ir „Arduino“. Ši grandinė įjungiama per jungiklį su šviesos diodu, rodančiu jo įjungimo/išjungimo būseną.

Ta pati baterija maitina antrąją grandinę, įėjimo įtampa paverčiama 5 V, kad būtų galima maitinti vienos plokštės kompiuterį. Čia taip pat grandinė įjungiama per jungiklį ir šviesos diodą.

Papildomus jutiklius, tokius kaip LIDAR ar fotoaparatas, galima prijungti tiesiai prie Raspberry Pi per USB arba CSI prievadą.

Mechaninis dizainas

Roboto rėmą sudaro 16 identiškų dalių, kurios sudarė 2 kvadratinius sluoksnius (28 cm pločio). Daugybė skylių leidžia montuoti papildomas dalis, kur jums to reikia, ir siūlo pilną modulinę konstrukciją. Šiam projektui nusprendžiau gauti originalias „TurtleBot3“plokštes, tačiau taip pat galite jas atspausdinti 3D, nes jų dizainas yra atviro kodo.

2 žingsnis: variklio bloko surinkimas

Variklio bloko surinkimas
Variklio bloko surinkimas
Variklio bloko surinkimas
Variklio bloko surinkimas
Variklio bloko surinkimas
Variklio bloko surinkimas

Variklio paruošimas

Pirmasis žingsnis yra pridėti 1 mm storio putų juostą aplink kiekvieną variklį, kad būtų išvengta vibracijos ir triukšmo, kai variklis sukasi.

Spausdintos dalys

Variklio laikiklis susideda iš dviejų dalių, kurios sugriebia variklį kaip ydą. 4 varžtai, skirti varikliui priveržti laikiklyje.

Kiekvienas laikiklis sudarytas iš kelių skylių, kuriose yra M3 įdėklai, kurie turi būti pritvirtinti prie konstrukcijos. Skylių yra daugiau nei iš tikrųjų reikia, papildomos skylės galiausiai gali būti panaudotos papildomai daliai pritvirtinti.

3D spausdintuvo nustatymai: visos dalys spausdinamos naudojant šiuos parametrus

  • 0,4 mm skersmens antgalis
  • 15% medžiagos užpildas
  • 0,2 mm aukščio sluoksnis

Ratas

Pasirinkti ratai yra padengti guma, kad padidintų sukibimą ir užtikrintų neslystantį riedėjimą. Užveržimo varžtas išlaiko ratą, sumontuotą ant variklio veleno. Rato skersmuo turi būti pakankamai didelis, kad būtų galima įveikti nedidelius žingsnius ir žemės nelygumus (tie ratai yra 65 mm skersmens).

Fiksacija

Baigę darbą su vienu variklio bloku, pakartokite ankstesnes operacijas ir tada tiesiog pritvirtinkite jas sluoksnyje M3 varžtais.

3 žingsnis: jungikliai ir kabelio paruošimas

Jungikliai ir kabelių paruošimas
Jungikliai ir kabelių paruošimas
Jungikliai ir kabelių paruošimas
Jungikliai ir kabelių paruošimas
Jungikliai ir kabelių paruošimas
Jungikliai ir kabelių paruošimas

Variklio kabelio paruošimas

Paprastai variklio kodavimo įrenginyje yra kabelis, kurio vienoje pusėje yra 6 kontaktų jungtis, jungianti kodavimo plokštės galinę dalį, ir atviri laidai kitoje pusėje.

Jūs turite galimybę juos tiesiogiai lituoti savo prototipoje ar net „Arduino“, tačiau aš rekomenduoju naudoti moteriškas kaiščių antraštes ir JST-XH jungtis. Taigi galite juos prijungti/atjungti nuo savo plokštės ir palengvinti surinkimą.

Patarimai: prie savo laidų galite pridėti išplečiamą apvalkalo pynę ir susitraukiančio vamzdžio gabalus prie jungčių, todėl gausite „švarų“kabelį.

Jungiklis ir šviesos diodas

Norėdami įjungti dvi maitinimo grandines, paruoškite 2 šviesos diodus ir jungiklius: iš pradžių lituokite 470 kOhm rezistorių ant vieno iš LED kaiščio, tada lituokite šviesos diodą ant vieno jungiklio kaiščio. Čia taip pat galite naudoti susitraukiančio vamzdžio gabalėlį, kad paslėptumėte rezistorių viduje. Būkite atsargūs, kad lituotumėte šviesos diodą teisinga kryptimi! Pakartokite šią operaciją, kad gautumėte du jungiklių/LED laidus.

Surinkimas

Surinkite anksčiau pagamintus kabelius ant atitinkamos 3D spausdintos dalies. Jungikliui prižiūrėti naudokite veržlę, šviesos diodams nereikia klijų, pakanka jėgos, kad tilptų į skylę.

4 žingsnis: Elektroninių plokščių prijungimas

Elektroninių plokščių laidai
Elektroninių plokščių laidai
Elektroninių plokščių laidai
Elektroninių plokščių laidai
Elektroninių plokščių laidai
Elektroninių plokščių laidai

Lentų išdėstymas

Laidų skaičiui sumažinti naudojama „Arduino“plokštės išdėstymą atitinkanti protokolinė plokštė. Proto plokštės viršuje L298N yra sukrauta su „Dupont“moteriška antrašte („Dupont“yra „Arduino tipo“antraštės).

L298N paruošimas

Iš pradžių L298N plokštėje nėra atitinkamos „Dupont“antraštės, po lenta turite pridėti 9 kaiščių eilutę. Turite padaryti 9 skyles su 1 mm skersmens grąžtu lygiagrečiai esamoms skylėms, kaip matote paveikslėlyje. Tada susiekite atitinkamus 2 eilučių kaiščius su litavimo medžiagomis ir trumpais laidais.

L298N kištukas

L298N sudaro 2 kanalai, leidžiantys valdyti greitį ir kryptį:

kryptimi per 2 skaitmeninius išėjimus, vadinamus IN1, IN2 pirmajam kanalui ir IN3 ir IN4 antrajam

greitį per 1 skaitmeninį išėjimą, vadinamą ENA pirmam kanalui ir ENB antram

Su „Arduino“pasirinkau šį PIN kodą:

kairysis variklis: IN1 3 kaištyje, IN2 4 kaištyje, ENA 2 kaištyje

dešinysis variklis: IN3 5 kaištyje, IN4 6 kaištyje, ENB 7 kaištyje

5V reguliatorius

Net jei l298N paprastai gali tiekti 5 V įtampą, aš vis tiek pridedu nedidelį reguliatorių. Jis maitina „Arduino“per VIN prievadą ir 2 variklių kodavimo įrenginius. Šį žingsnį galite praleisti tiesiogiai naudodami įmontuotą L298N 5V reguliatorių.

JST jungtys ir kodavimo kištukas

Naudokite 4 kaiščių moteriškus JST-XH jungčių adapterius, tada kiekviena jungtis yra susieta su:

  • 5V nuo reguliatoriaus
  • a Gruntas
  • du skaitmeniniai įvesties prievadai (pvz., 34 ir 38 dešiniojo kodavimo įrenginio ir 26 ir 30 kairiojo)

Papildomas I2C

Kaip jau pastebėjote, plokštėje yra papildoma 4 kontaktų JST jungtis. Jis naudojamas prijungti I2C įrenginį kaip IMU, galite padaryti tą patį ir netgi pridėti savo prievadą.

5 žingsnis: „Motor Group“ir „Arduino“apatiniame sluoksnyje

„Motor Group“ir „Arduino“apatiniame sluoksnyje
„Motor Group“ir „Arduino“apatiniame sluoksnyje
„Motor Group“ir „Arduino“apatiniame sluoksnyje
„Motor Group“ir „Arduino“apatiniame sluoksnyje
„Motor Group“ir „Arduino“apatiniame sluoksnyje
„Motor Group“ir „Arduino“apatiniame sluoksnyje

Variklio blokų tvirtinimas

Kai apatinis sluoksnis surenkamas su 8 „Turtlebot“plokštėmis, tiesiog naudokite 4 M3 varžtus tiesiai įdėkluose, kad išlaikytumėte variklio blokus. Tada galite prijungti variklio maitinimo laidus prie L298N išėjimų ir anksčiau pagamintus kabelius prie plokštės JST jungčių.

Galios paskirstymas

Elektros paskirstymas tiesiog realizuojamas naudojant barjerinį gnybtų bloką. Vienoje užtvaros pusėje yra prisukamas kabelis su XT60 kištuku, kad būtų galima prijungti prie „LiPo“akumuliatoriaus. Kita vertus, mūsų du LED/jungiklio kabeliai, anksčiau lituoti, yra prisukti. Taigi kiekvieną grandinę („Motor“ir „Arduino“) galima įjungti naudojant savo jungiklį ir atitinkamą žalią šviesos diodą.

Kabelių valdymas

Greitai turėsite susitvarkyti su daugybe kabelių! Norėdami sumažinti netvarkingą aspektą, galite naudoti „lentelę“, anksčiau atspausdintą 3D. Ant stalo laikykite savo elektronines plokštes dvipuse juosta, o po stalu leiskite laidams laisvai tekėti.

Baterijos priežiūra

Kad išvengtumėte akumuliatoriaus išmetimo vairuojant robotą, galite tiesiog naudoti plaukų elastinę juostelę.

Ritininis ratukas

Tikrai ne ritininis ratukas, o paprasta pusė rutulio, pritvirtinta 4 varžtais ant apatinio sluoksnio. Pakanka užtikrinti roboto stabilumą.

6 žingsnis: vienos plokštės kompiuteris ir jutikliai viršutiniame sluoksnyje

Vienkartinis kompiuteris ir jutikliai viršutiniame sluoksnyje
Vienkartinis kompiuteris ir jutikliai viršutiniame sluoksnyje
Vienos plokštės kompiuteris ir jutikliai viršutiniame sluoksnyje
Vienos plokštės kompiuteris ir jutikliai viršutiniame sluoksnyje
Vienkartinis kompiuteris ir jutikliai viršutiniame sluoksnyje
Vienkartinis kompiuteris ir jutikliai viršutiniame sluoksnyje

Kurį vienos plokštės kompiuterį pasirinkti?

Man nereikia jums pristatyti garsiojo „Raspberry Pi“, jo naudojimo atvejų skaičius gerokai viršija robotikos sritį. Tačiau yra daug galingesnis „Raspberry Pi“iššūkis, į kurį galite nekreipti dėmesio. Iš tikrųjų „Jetson Nano“iš „Nvidia“kartu su procesoriumi turi galingą 128 branduolių grafinę plokštę. Ši grafinė kortelė buvo sukurta siekiant paspartinti skaičiavimo brangias užduotis, tokias kaip vaizdo apdorojimas ar neuronų tinklo išvados.

Šiam projektui pasirinkau „Jetson Nano“ir atitinkamą 3D dalį rasite tarp pridėtų failų, tačiau jei norite naudoti „Raspberry Pi“, čia yra daug spausdinamų dėklų.

5V reguliatorius

Kad ir kokią plokštę nuspręstumėte įnešti į savo robotą, jums reikia 5 V reguliatoriaus. Naujausia „Raspberry Pi 4“reikalauja maks. 1,25 A, tačiau „Jetson Nano“reikalauja iki 3 A įtampos, todėl pasirinkau, kad „Pololu 5V 6A“turėtų energijos rezervą būsimiems komponentams (jutikliams, žibintams, žingsneliams …), bet bet koks pigus 5V 2A darbas. „Jetson“naudoja 5,5 mm nuolatinės srovės cilindrą, o „Pi“- mikro USB, paimkite atitinkamą kabelį ir prilituokite prie reguliatoriaus išvesties.

LIDAR išdėstymas

Čia naudojamas LIDAR yra LDS-01, yra ir kitų 2D LIDAR, kuriuos galima naudoti kaip RPLidar A1/A2/A3, YDLidar X4/G4 ar net Hokuyo LIDAR. Vienintelis reikalavimas yra tai, kad jį reikia prijungti per USB ir pastatyti centre virš konstrukcijos. Iš tikrųjų, jei LIDAR nėra gerai sucentruotas, SLAM algoritmu sukurtas žemėlapis gali perkelti apskaičiuotą sienų ir kliūčių padėtį iš tikrosios padėties. Be to, jei roboto kliūtys kerta lazerio spindulį, jis sumažina diapazoną ir matymo lauką.

LIDAR montavimas

LIDAR yra sumontuotas ant 3D atspausdintos dalies, kuri atitinka savo formą, o pati dalis yra laikoma ant stačiakampės plokštės (iš tikrųjų fanera ant paveikslėlio, bet gali būti atspausdinta ir 3D). Tada adapterio dalis leidžia ansamblį pritvirtinti prie viršutinės griovelio plokštės nailoninėmis tarpinėmis.

Fotoaparatas kaip papildomas jutiklis arba LIDAR pakaitalas

Jei nenorite išleisti per daug pinigų į LIDAR (kuris kainuoja apie 100 USD), rinkitės fotoaparatą: taip pat yra SLAM algoritmų, kurie veikia tik su monokuliarine RGB kamera. Abu SBC priima USB arba CSI kameras.

Be to, fotoaparatas leis paleisti kompiuterio viziją ir objektų aptikimo scenarijus!

Surinkimas

Prieš uždarydami robotą, praleiskite kabelius per didesnes skyles viršutinėje plokštėje:

  • atitinkamą kabelį nuo 5 V reguliatoriaus iki jūsų SBC
  • USB kabelį iš „Arduino DUE“programavimo prievado (arčiausiai DC statinės) į jūsų SBC USB prievadą

Tada laikykite viršutinę plokštę vietoje keliolika varžtų. Jūsų robotas dabar paruoštas užprogramuoti, gerai!

7 žingsnis: priverskite jį judėti

Sudarykite „Arduino“

Atidarykite savo mėgstamą „Arduino IDE“ir importuokite projekto aplanką „own_turtlebot_core“, tada pasirinkite savo plokštę ir atitinkamą prievadą, galite perskaityti šią puikią pamoką.

Sureguliuokite pagrindinius nustatymus

Projektą sudaro du failai, o vieną reikia pritaikyti jūsų robotui. Taigi atidarykime own_turtlebot_config.h ir sužinokime, kurios eilutės reikalauja mūsų dėmesio:

#define ARDUINO_DUE // ** KOMENTUOKITE ŠIĄ LINIJĄ, JEI NENAUDOJATE DUE **

Turėtų būti naudojamas tik su „Arduino DUE“, jei nekomentuojate eilutės.

#define RATE_CONTROLLER_KP 130.0 // ** TUNE THIS VERTĖ **

#define RATE_CONTROLLER_KD 5000000000000.0 // ** Nustatykite šią vertę ** #define RATE_CONTROLLER_KI 0.00005 // ** NUSTATYKITE ŠIĄ VERTĘ **

Šie 3 parametrai atitinka greičio reguliatoriaus padidėjimą, kurį PID naudoja norimam greičiui palaikyti. Priklausomai nuo akumuliatoriaus įtampos, roboto masės, rato skersmens ir variklio mechaninės pavaros, turėsite pritaikyti jų vertes. PID yra klasikinis valdiklis, ir jūs čia nebūsite išsamiai aprašytas, tačiau ši nuoroda turėtų suteikti pakankamai įvesties, kad galėtumėte sureguliuoti savo.

/ * Apibrėžkite kaiščius */

// variklis A (dešinėje) const baitas motorRightEncoderPinA = 38; // ** PAKEISTI SU PIN kodu NB ** baitas motorRightEncoderPinB = 34; // ** PAKEISTI SU PIN kodu NB ** baitas enMotorRight = 2; // ** PAKEISKITE SAVO PIN kodu ** ** baitas in1MotorRight = 4; // ** PAKEISTI SU PIN kodu NB ** baitas in2MotorRight = 3; // ** PAKEISTI SAVO PIN kodu ** ** // variklis B (kairėje) const baitas motorLeftEncoderPinA = 26; // ** PAKEISTI SU JŪSŲ PIN kodu ** ** baitų motorLeftEncoderPinB = 30; // ** PAKEISTI SU PIN kodu NB ** baitas enMotorLeft = 7; // ** PAKEISKITE SAVO PIN kodu ** ** baitas in1MotorLeft = 6; // ** PAKEISKITE SAVO PIN kodu ** ** baitas in2MotorLeft = 5; // ** PAKEISTI SU PIN kodu NB **

Šis blokas apibrėžia kontaktą tarp L298N ir „Arduino“, tiesiog pakeiskite PIN kodą, kad jis atitiktų jūsų. Baigę konfigūracijos failą, sukompiliuokite ir įkelkite kodą!

Įdiekite ir sukonfigūruokite ROS

Kai atliksite šį žingsnį, instrukcijos yra visiškai tokios pačios, kaip aprašytos puikiame „TurtleBot3“vadove, todėl turite atidžiai sekti

gerai padaryta „TurtleBot 3“dabar yra jūsų ir jūs galite paleisti visus esamus paketus ir vadovėlius naudodami ROS.

Gerai, bet kas yra ROS?

ROS reiškia robotų operacinę sistemą, iš pradžių tai gali atrodyti gana sudėtinga, tačiau taip nėra, įsivaizduokite komunikacijos būdą tarp aparatūros (jutikliai ir pavaros) ir programinės įrangos (navigacijos, valdymo, kompiuterio vizijos algoritmai …). Pavyzdžiui, galite lengvai pakeisti dabartinį LIDAR į kitą modelį, nenutraukdami sąrankos, nes kiekvienas LIDAR skelbia tą patį „LaserScan“pranešimą. ROS yra plačiai naudojama robotika, Pateikite savo pirmąjį pavyzdį

ROS „labas pasaulis“atitikmuo yra nuotolinis kompiuterio valdymas per jūsų nuotolinį kompiuterį. Tai, ką norite padaryti, yra siųsti greičio komandas, kad varikliai suktųsi, komandos seka šį vamzdį:

  • „turtlebot_teleop“mazgas, veikiantis nuotoliniame kompiuteryje, paskelbti temą „/cmd_vel“, įskaitant „Twist“pranešimą
  • šis pranešimas persiunčiamas per ROS pranešimų tinklą į SBC
  • nuoseklusis mazgas leidžia „/cmd_vel“gauti „Arduino“
  • „Arduino“skaito pranešimą ir nustato kiekvieno variklio kampinį greitį, kad jis atitiktų norimą tiesinį ir kampinį roboto greitį

Ši operacija yra paprasta ir ją galima pasiekti vykdant aukščiau išvardytas komandų eilutes! Jei norite gauti išsamesnės informacijos, tiesiog žiūrėkite vaizdo įrašą.

[SBC]

rožinis

[SBC]

rosrun rosserial_python serial_node.py _port: =/dev/ttyACM0 _baud: = 115200

[Nuotolinis kompiuteris]

eksportuoti TURTLEBOT3_MODEL = $ {TB3_MODEL}

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

Norėdami eiti toliau

Prieš bandydami visus oficialius pavyzdžius, pateiktus vadove, turite žinoti paskutinį dalyką kiekvieną kartą, kai susiduriate su šia komanda:

roslaunch turtlebot3_bringup turtlebot3_robot.launch

vietoj to turite paleisti šią komandą savo SBC:

rosrun rosserial_python serial_node.py _port: =/dev/ttyACM0 _baud: = 115200

Ir jei turite LIDAR paleisti susietą komandą savo SBC, mano atveju aš paleidžiu LDS01 su žemiau pateikta eilute:

roslaunch hls_lfcd_lds_driver hlds_laser.launch

Ir viskas, jūs galutinai sukūrėte savo turtlebot:) Jūs esate pasirengęs atrasti fantastiškas ROS galimybes ir koduoti regėjimą bei mašinų mokymosi algoritmus.

Rekomenduojamas: