Installazione di ROS in una maghjina IMG Ubuntu per una sola scheda
Introduzione
L'altru ghjornu, mentre travagliava à a mo tesi, aghju avutu a necessità di creà una maghjina Ubuntu per una piattaforma unica cù ROS digià stallatu (Sistema Operativu Robot - sistema operatore robot). In corta, u diploma hè cunsacratu à gestisce un gruppu di robots. I robots sò furnuti cù dui roti è trè telemetri. A cosa sana hè cuntrullata da ROS, chì corre nantu à u bordu ODROID-C2.
Robot Ladybug. Scusate per a cattiva qualità di foto
Ùn ci era nè u tempu nè u desideriu di installà ROS nantu à ogni robot individualmente, è per quessa ci era bisognu di una maghjina di sistema cù ROS digià stallatu. Dopu avè navigatu in Internet, aghju trovu parechji approcci à cumu si puderia fà.
In generale, tutte e suluzione truvate pò esse divisu in i gruppi seguenti.
Utilizà suluzioni da u primu gruppu pareva esse l'opzione più simplice è più attrattiva, ma ùn aghju mai statu capace di creà una maghjina di u sistema in diretta per ODROID. E suluzioni di u sicondu gruppu ùn mi cunvene micca per via di u limitu di ingressu abbastanza altu. L'assemblea manuale secondu i tutoriali dispunibuli ùn era ancu adattatu, perchè ... A mo maghjina ùn hà micca un sistema di fugliale cumpressu.
In u risultatu, aghju trovu un video nantu à chroot (chroot - cambià a radica, ligame à u video à a fine di u post) è e so capacità, hè statu decisu di usà. In seguitu, descriveraghju u mo casu particulare di persunalizà Ubuntu per i sviluppatori di robotica.
Dati iniziali:
Tuttu u prucessu di mudificazione di l'imaghjini (eccettu per scrive à a carta SD cù balenaEtcher) hè statu realizatu nantu à u sistema operatore Ubuntu 18.04.
U sistema operatore chì l'assemblea aghju mudificatu hè Ubuntu 18.04.3 mate versione desktop.
A macchina nantu à quale u sistema assemblatu deve travaglià hè ODROID-C2.
Preparazione di l'imaghjini
Scaricate l'immagine Ubuntu per ODROID da situ ufficiali
Unpacking l'archiviu
unxz –kv <файл архива с образом>
Crea un repertoriu in quale monteremu l'imaghjini
mkdir mnt
Determina a partizione nantu à quale si trova u sistema di fugliale
file <файл образа>
Cerchemu una partizione cù un sistema di schedari in u formatu ext2, ext3 o ext4. Avemu bisognu di l'indirizzu di u principiu di a rùbbrica (evidenziatu in rossu nantu à u screnu):
Nota: U locu di u sistema di fugliale pò ancu esse vistu cù l'utilità partutu.
Muntà l'imaghjini
sudo mount -o loop,offset=$((264192*512)) <файл с образом> mnt/
A rùbbrica chì avemu bisognu principia cù u bloccu 264192 (i vostri numeri pò esse diffirenti), a dimensione di un bloccu hè 512 byte, multiplicate per ottene l'indentazione in byte.
Andà à u cartulare cù u sistema muntatu è stallà fora in lu
cd mnt/
sudo chroot ~/livecd/mnt/ bin/sh
~/livecd/mnt - percorsu sanu à u cartulare cù u sistema muntatu bin/sh - shell (pò ancu esse rimpiazzatu cù bin/bash)
Avà pudete inizià a stallazione di i pacchetti è l'applicazioni necessarii.
Installazione di ROS
Aghju installatu l'ultima versione di ROS (ROS Melodic) secondu tutoriale ufficiale.
Aghjurnà a lista di i pacchetti
sudo apt-get update
Questu hè induve aghju avutu l'errore:
Err:6 http://deb.odroid.in/c2 bionic InRelease
The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <[email protected]>
Questu hè duvuta à u fattu chì a chjave di signatura di u pacchettu hè scaduta. Per aghjurnà e chjave, scrivite:
Configurazione di diritti d'accessu
Siccomu simu cunnessi è, in fattu, eseguite tutte l'azzioni in nome di a radica di u sistema chì hè assemblatu, ROS serà lanciatu solu cù diritti superuser.
Quandu si prova à eseguisce roscore senza sudo, si verifica un errore:
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'
Per impediscenu l'errore, cambiemu recursivamente i diritti d'accessu à u cartulare di casa di l'utilizatori ROS. Per fà questu, scrivemu:
sudo rosdep fix-permissions
Installazione supplementaria di i pacchetti rviz è rqt