ROS ynstalleare yn in Ubuntu IMG-ôfbylding foar single-board

Ynlieding

De oare deis, wylst ik oan myn proefskrift wurke, waard ik konfrontearre mei de needsaak om in Ubuntu-ôfbylding te meitsjen foar in platfoarm mei ien boerd mei ROS al ynstalleare (Robot bestjoeringssysteem - robot bestjoeringssysteem). Koartsein, it diploma is wijd oan it behearjen fan in groep robots. De robots binne foarsjoen fan twa tsjillen en trije ôfstânmeters. It hiele ding wurdt regele fan ROS, dat rint op it ODROID-C2 board.

ROS ynstalleare yn in Ubuntu IMG-ôfbylding foar single-board
Robot Ladybug. Sorry foar de minne fotokwaliteit

D'r wie gjin tiid noch winsk om ROS op elke robot yndividueel te ynstallearjen, en dêrom wie d'r ferlet fan in systeemôfbylding mei ROS al ynstalleare. Nei it blêdzjen fan it ynternet fûn ik ferskate oanpak foar hoe't dit koe wurde dien.
Yn 't algemien kinne alle fûne oplossingen wurde ferdield yn' e folgjende groepen.

  1. Programma's dy't in ôfbylding meitsje fan in klear en ynsteld systeem (Distroshare Ubuntu Imager, linux live kit, linux respin, systemback, ensfh.)
  2. Projekten wêrmei jo jo eigen byld meitsje kinne (yocto, linux fanôf it begjin)
  3. It byld sels gearstalle (live CD maatwurk и Russyske ekwivalint, in plus artikel oer Habré)

It brûken fan oplossings fan 'e earste groep like de ienfâldichste en meast oantreklike opsje te wêzen, mar ik koe noait in live systeemôfbylding meitsje foar ODROID. De oplossings fan de twadde groep stienen my ek net troch de frij hege yntreedrompel. Hânlieding montage neffens de beskikbere tutorials wie ek net geskikt, om't ... Myn ôfbylding hie gjin komprimearre triemsysteem.
As resultaat kaam ik in fideo oer chroot (chroot - feroarje root, keppeling nei de fideo oan 'e ein fan' e post) en har mooglikheden, waard besletten om it te brûken. Folgjende sil ik myn bysûndere gefal beskriuwe fan it oanpassen fan Ubuntu foar robotika-ûntwikkelders.

Earste gegevens:

  • It hiele proses fan ôfbyldingsferoaring (útsein it skriuwen nei de SD-kaart mei balenaEtcher) waard útfierd op it Ubuntu 18.04-bestjoeringssysteem.
  • It bestjoeringssysteem waans gearstalling ik feroare is Ubuntu 18.04.3 mate buroblêd ferzje.
  • De masine wêrop it gearstalde systeem moat wurkje is ODROID-C2.

It tarieden fan it byld

  1. Download de Ubuntu-ôfbylding foar ODROID fan offisjele webstee

  2. It argyf útpakke

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

  3. Meitsje in map wêryn wy de ôfbylding sille mount

    mkdir mnt

  4. Bepale de partysje wêrop it bestânsysteem leit

    file <файл образа>

    Wy sykje in partysje mei in bestânssysteem yn ext2, ext3 of ext4 formaat. Wy hawwe it adres nedich fan it begjin fan 'e seksje (markearre yn read op it skerm):

    ROS ynstalleare yn in Ubuntu IMG-ôfbylding foar single-board

    Opmerking: De lokaasje fan it bestânsysteem kin ek besjoen wurde mei it hulpprogramma skieden.

  5. Montearje de ôfbylding

    sudo mount -o loop,offset=$((264192*512)) <файл с образом> mnt/

    De seksje dy't wy nedich binne begjint mei blok 264192 (jo nûmers kinne ferskille), de grutte fan ien blok is 512 bytes, fermannichfâldigje se om de ynspringing yn bytes te krijen.

  6. Gean nei de map mei it monteare systeem en hingje deryn

    cd mnt/
    sudo chroot ~/livecd/mnt/ bin/sh

    ~/livecd/mnt - folslein paad nei de map mei it monteare systeem
    bin/sh - shell (kin ek wurde ferfongen troch bin/bash)
    No kinne jo begjinne mei it ynstallearjen fan de nedige pakketten en applikaasjes.

ROS ynstallearje

Ik ynstallearre de lêste ferzje fan ROS (ROS Melodyske) neffens offisjele tutorial.

  1. It bywurkjen fan de list mei pakketten

    sudo apt-get update

    Dit is wêr't ik de flater krige:

    Err:6 http://deb.odroid.in/c2 bionic InRelease
    The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <[email protected]>

    Dit komt troch it feit dat de pakketûndertekeningskaai ferrûn is. Om de kaaien te aktualisearjen, typ:

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

  2. It systeem tariede foar it ynstallearjen fan 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. ROS ynstallearje
    Spitigernôch koe ik de buroblêdferzje fan ROS net ynstallearje, sadat ik allinich de basispakketten ynstalleare:

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

    Opmerking 1. Tidens it ynstallaasjeproses is soms in flater bard:

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

    It waard reparearre troch de cache te wiskjen mei it apt-hulpprogramma:

    sudo apt-get clean; sudo apt-get autoclean

    Opmerking 2. Nei ynstallaasje, boarne mei help fan it kommando:

    source /opt/ros/melodic/setup.bash

    it sil net wurkje, want Wy hawwe gjin bash útfierd, dus it hoecht NET yn 'e terminal te typen.

  4. It ynstallearjen fan de nedige ôfhinklikens

    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. It ynstellen fan tagongsrjochten
    Sûnt wy binne oanmeld en yn feite alle aksjes útfiere út namme fan 'e root fan it systeem dat wurdt gearstald, sil ROS allinich wurde lansearre mei superuser-rjochten.
    As jo ​​​​probearje om roscore sûnder sudo út te fieren, bart der in flater:

    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 foar te kommen dat de flater foarkomt, litte wy de tagongsrjochten rekursyf feroarje nei de thúsmap fan de ROS-brûker. Om dit te dwaan typen wy:

    sudo rosdep fix-permissions

  6. Oanfoljende ynstallaasje fan de rviz- en rqt-pakketten

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

Finale touches

  1. Chroot ôfslute:
    exit
  2. Unmount de ôfbylding
    cd ..
    sudo umount mnt/
  3. Litte wy it systeemôfbylding yn in argyf ynpakke
    xz –ckv1 <файл образа>

Alle! No mei help balenaetcher jo kinne it systeemôfbylding op in SD-kaart ferbaarne, ynfoegje yn ODROID-C2, en jo sille Ubuntu hawwe mei ROS ynstalleare!

Ferwizings:

  • Dizze fideo holp in protte mei hoe't jo cheat yn Linux en wêrom jo it nedich hawwe:



Boarne: www.habr.com

Add a comment