Dev Container-ak ROS garapenerako

 In Berrikuntza Teknologikoa eta Sistema Adimendunak, Komunikazioak eta hodei-konputazioa

Sarrera hau beste hizkuntza hauetan dago eskuragarri: Español

Azken asteetan, Tknikako espezializazio-arloen arteko lankidetza bultzatu nahi duen ekimen berri baten barruan, Komunikazioak eta Hodei-Konputazioa arloan Robotika Autonomoko taldeari Dev Containers-etan oinarritutako garapen-ingurune bat eskaintzeko lanean aritu gara. Baina zer da Dev container bat (garapenerako edukiontzia)?

“Container” teknologiak (batez ere Docker sortu zenetik) iraultza bat suposatu du softwarea hedatzerakoan; izan ere, gaur egun garatzaileek sistema eragileaz eta aurrez instalatutako tresnez arduratu behar izan gabe beren programak ekoizpenean jartzeko aukera dute. Programatzaileak bere kodea eta dependentziak kutxa batean sartzen ditu eta kutxa hori makina batetik bestera eraman dezake, horietako bakoitzean behar bezala exekutatuko dela ziurtatuta.

Beraz, “container” teknologia oso tresna ezaguna bihurtu bada programak hedatzeko orduan, ezin al ditugu kontzeptu berberak softwarearen garapenera eraman? “Dev container” baten ideia ingurune isolatu eta eramangarri bat sortzea da, kodea modu eraginkorrean, erreproduzigarrian eta eskalagarrian garatzeko erabiliko dena. Horri esker, konpilazio-tresnak, liburutegi espezifikoak eta programazio-framework-ak sistema eragiletik aparteko unitate baten barruan daude, eta erraz eraman daiteke beste ordenagailu batera. Eta zer lotura izan dezake horrek hezkuntza-sistemarekin?

Ideia horiek ikasgelan inplementatzeak, adibidez, ikasleek ahalik eta denbora gutxien galtzea eta beren lan-espazioa konfiguratzea ahalbidetzen du, irakasleak aldez aurretik definituta izango baititu horiek ebazteko beharrezkoak diren tresnak eta liburutegiak. Ariketa batetik bestera aldatzea ere askoz errazagoa izango da eta konfigurazioa akatsak asko murriztuko dira, ikasleek ez baitituzte beren tresnak berriz konfiguratu beharko, dena edukiontziaren barruan paketatuta egongo baita, ez beren sistema eragile nagusian.

Helburu hau lortzeko, gure lantaldeak txantiloi-biltegi bat sortu du GitHub-en, honako ezaugarri hauekin:

  • Ubuntu 20.04 eta ROS Noetic-en oinarritutako docker irudia.
  • Dev container-aren definizioa, erabiltzailea, ingurune-aldagaiak eta gomendatutako VS Code luzapenekin.
  • VS Code pertsonalizatua ROSen garapena errazteko botoi batzuekin: ROSen nukleoaren abiaraztea sinplifikatu (ROS Core), lan-espazioa konpilatu, ROS pakete bat sortu eta topic batean harpidetu.
  • Klik soil batekin (VS Code lokalki instalatuta izanda) proiektua zuzenean irekitzea ahalbidetzen duen botoiarekin.

Eta hori guztia, kodea GitHub-en dagoela kontuan hartuta, git bidez bertsio-kontrola egiteko jatorrizko euskarriarekin. Horrela, informatikaren munduan lantzen diren kontzeptuak elektronikarekin lotura handiagoa duen ingurune batean sartzen saiatzen gara.

Garapen honi esker, ROSen proba txiki bat egin nahi duen edozein erabiltzailek (irakasleak edo ikasleak) urrats hauek baino ez ditu egin behar:

  • (Aldez aurretik VS Code instalatua eta GitHub kontu bat izan)
  • GitHub-en, “Use this template” botoiaren bidez, errepositorio bat sortu
  • 30 bat segundo itxaron errepositorioa behar bezala sortu eta konfiguratuta egon arte
  • “Remote – Containers: Open” botoia sakatu
  • VS Code behar bezala konfiguratu arte itxaron (lehen aldian 2-3 minutu iraun dezake prozesuak, Interneteko konexioaren eta ordenagailuaren potentziaren arabera, baina hurrengo hedapenak segundo gutxi batzuetan egongo dira prest)
  • ROS nodo bat, “Create package” botoiaren bidez, sortu
  • Nodoaren kodea garatu
  • Dena ondo dabilela egiaztatu eta inplementazioa GitHub-era igo git erabiliz

Honako bideo honek, denbora errealean eta zerotik hasita, lan-espazioa hastea, ROS nodo oso erraz bat exekutatzea eta aldaketak GitHub-eko errepositorio batean argitaratzea zein erraza den erakusten du:

Azkenik, txantiloi hori ROSen oinarrizko garapen bat egiteko bada ere, erraz alda daiteke tresna gehiago sartzeko: Gazebo bezalako simulagailu bat, ikusmen artifizialeko kamera baterako liburutegiak…

Komunikazio eta hodei-konputazio sailetik Tknikako gainerako espezializazio arloekin elkarlanean jarraituko dugu eta, proiektu hau aurrera eramateko erabili diren teknologiei buruz gehiago jakiteko interesa baduzue, adi egon Tknikaren webguneari, etorkizuneko formakuntzetan izena emateko.

Erlazionatutako proiektua

Komunikazioak eta hodei-konputazioa