Installeer ROS in 'n Ubuntu IMG-beeld vir 'n enkele bord
Inleiding
Die ander dag, terwyl ek aan my tesis gewerk het, het ek gekonfronteer met die behoefte om 'n Ubuntu-beeld te skep vir 'n enkelbord-platform met ROS reeds geïnstalleer (Robot bedryfstelsel - robot bedryfstelsel). Kortom, die diploma word gewy aan die bestuur van 'n groep robotte. Die robotte is toegerus met twee wiele en drie afstandmeters. Die hele ding word beheer vanaf ROS, wat op die ODROID-C2-bord loop.
Robot Ladybug. Jammer vir die swak foto kwaliteit
Daar was nie tyd of begeerte om ROS individueel op elke robot te installeer nie, en daarom was daar 'n behoefte aan 'n stelselbeeld met ROS reeds geïnstalleer. Nadat ek op die internet geblaai het, het ek verskeie benaderings gevind hoe dit gedoen kan word.
Oor die algemeen kan alle oplossings wat gevind word in die volgende groepe verdeel word.
Die gebruik van oplossings van die eerste groep was die eenvoudigste en aantreklikste opsie, maar ek kon nooit 'n lewendige stelselbeeld vir ODROID skep nie. Die oplossings van die tweede groep het my ook nie gepas nie weens die redelik hoë toegangsdrempel. Handmatige samestelling volgens die beskikbare tutoriale was ook nie geskik nie, want... My beeld het nie 'n saamgeperste lêerstelsel gehad nie.
Gevolglik het ek op 'n video afgekom oor chroot (chroot - verander wortel, skakel na die video aan die einde van die pos) en sy vermoëns, is besluit om dit te gebruik. Vervolgens sal ek my spesifieke geval beskryf van die aanpassing van Ubuntu vir robotika-ontwikkelaars.
Aanvanklike gegewens:
Die hele beeldmodifikasieproses (behalwe om na die SD-kaart te skryf met behulp van balenaEtcher) is op die Ubuntu 18.04-bedryfstelsel uitgevoer.
Die bedryfstelsel waarvan ek die samestelling verander het, is Ubuntu 18.04.3 mate-desktopweergawe.
Die masjien waarop die saamgestelde stelsel moet werk, is ODROID-C2.
Bepaal die partisie waarop die lêerstelsel geleë is
file <файл образа>
Ons is op soek na 'n partisie met 'n lêerstelsel in ext2, ext3 of ext4 formaat. Ons benodig die adres van die begin van die afdeling (in rooi uitgelig op die skerm):
Noot. Die ligging van die lêerstelsel kan ook met die hulpprogram bekyk word geskei.
Monteer die beeld
sudo mount -o loop,offset=$((264192*512)) <файл с образом> mnt/
Die afdeling wat ons benodig begin met blok 264192 (jou getalle kan verskil), die grootte van een blok is 512 grepe, vermenigvuldig hulle om die inkeping in grepe te kry.
Gaan na die gids met die gemonteerde stelsel en kuier daarin
cd mnt/
sudo chroot ~/livecd/mnt/ bin/sh
~/livecd/mnt - volledige pad na die gids met die gemonteerde stelsel bin/sh - dop (kan ook vervang word met bin/bash)
Nou kan jy die nodige pakkette en toepassings begin installeer.
Installeer ROS
Ek het die nuutste weergawe van ROS (ROS Melodies) volgens amptelike tutoriaal.
Opdatering van die lys van pakkette
sudo apt-get update
Dit is waar ek die fout gekry het:
Err:6 http://deb.odroid.in/c2 bionic InRelease
The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <[email protected]>
Dit is te wyte aan die feit dat die pakketondertekeningsleutel verval het. Om die sleutels op te dateer, tik:
Opstel van toegangsregte
Aangesien ons aangemeld is en in werklikheid alle aksies uitvoer namens die wortel van die stelsel wat saamgestel word, sal ROS slegs met supergebruikerregte geloods word.
As u probeer om roscore sonder sudo uit te voer, vind 'n fout plaas:
Traceback (most recent call last): File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 230, in main write_pid_file(options.pid_fn, options.core, options.port) File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 106, in write_pid_file with open(pid_fn, "w") as f: IOError: [Errno 13] Permission denied: '/home/user/.ros/roscore-11311.pid'
Om te verhoed dat die fout voorkom, laat ons die toegangsregte tot die ROS-gebruiker se tuisgids rekursief verander. Om dit te doen tik ons:
sudo rosdep fix-permissions
Bykomende installasie van die rviz- en rqt-pakkette
Almal! Nou met die hulp balenaetcher jy kan die stelselbeeld op 'n SD-kaart verbrand, dit in ODROID-C2 plaas, en jy sal Ubuntu hê met ROS geïnstalleer!
verwysings:
Hierdie video het baie gehelp met hoe om in Linux te kul en hoekom jy dit nodig het: