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.

Installazione di ROS in una maghjina IMG Ubuntu per una sola scheda
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.

  1. Programmi chì creanu una maghjina da un sistema prontu è cunfiguratu (Distroshare Ubuntu Imager, kit live di linux, linux respin, systemback, etc.)
  2. Prughjetti chì permettenu di creà a vostra propria imagina (yocto, linux da zero)
  3. Assembla l'imaghjini sè stessu (persunalizazione di CD live и equivalenti russu, un plus articulu nantu à Habré)

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

  1. Scaricate l'immagine Ubuntu per ODROID da situ ufficiali

  2. Unpacking l'archiviu

    unxz –kv <файл архива с образом>

  3. Crea un repertoriu in quale monteremu l'imaghjini

    mkdir mnt

  4. 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):

    Installazione di ROS in una maghjina IMG Ubuntu per una sola scheda

    Nota: U locu di u sistema di fugliale pò ancu esse vistu cù l'utilità partutu.

  5. 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.

  6. 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.

  1. 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:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AB19BAC9

  2. Preparazione di u sistema per installà ROS

    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

    sudo apt update

  3. Installazione di ROS
    Sfortunatamente, ùn aghju micca pussutu installà a versione desktop di ROS, cusì aghju installatu solu i pacchetti basi:

    sudo apt install ros-melodic-ros-base
    apt search ros-melodic

    Nota 1. Durante u prucessu di stallazione, qualchì volta hè accadutu un errore:

    dpkg: error: failed to write status database record about 'iputils-ping' to '/var/lib/dpkg/status': No space left on device

    Hè stata corretta sguassendu a cache cù l'utilità apt:

    sudo apt-get clean; sudo apt-get autoclean

    Nota 2. Dopu a stallazione, fonte cù u cumandimu:

    source /opt/ros/melodic/setup.bash

    ùn hà micca travagliatu, perchè Ùn avemu micca eseguitu bash, per quessa ùn deve micca esse digitatu in u terminal.

  4. Installazione di e dipendenze necessarie

    sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

    sudo apt install python-rosdep

    sudo rosdep init
    rosdep update

  5. 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

  6. Installazione supplementaria di i pacchetti rviz è rqt

    sudo apt-get install ros-melodic-rqt ros-melodic-rviz

Tocchi finali

  1. Esci da chroot:
    exit
  2. Smonta l'imaghjini
    cd ..
    sudo umount mnt/
  3. Imballemu l'imagine di u sistema in un archiviu
    xz –ckv1 <файл образа>

Tuttu ! Avà cù l'aiutu balena Etcher Pudete creme l'imaghjini di u sistema à una carta SD, inserisci in ODROID-C2, è avete Ubuntu cù ROS installatu!

Referenze:

  • Stu video hà aiutatu assai cù cumu ingannà in Linux è perchè avete bisognu:



Source: www.habr.com

Add a comment