ROS-i installimine Ubuntu IMG-pildile üherahalise arvuti jaoks

Sissejuhatus

Hiljuti, töötades diplomitöö kallal, kohtusin vajadusega luua Ubuntu pilt üherahalisele arvutile, millel on juba installitud ROS (Robot Operating System – robotite operatsioonisüsteem). Lühidalt öeldes on diplom pühendatud robotirühma juhtimisele. Robotid on varustatud kahe ratta ja kolme kaugusanduriga. Kõike seda juhitakse ROS-i kaudu, mis töötab ODROID-C2 plaadil.

ROS-i installimine Ubuntu IMG-pildile üherahalise arvuti jaoks
Robot Ladybug. Vabandust halva foto kvaliteedi pärast

ROS-i installimine iga robotile eraldi ei olnud võimalik ei aja ega sooviga, mistõttu tekkis vajadus süsteemi pildi järele, kus ROS on juba installitud. Jalutades internetis ringi, leidsin mitmeid lähenemisviise, kuidas seda oleks võimalik teha.
Üldiselt saab kõik leitud lahendused jagada järgmiseks gruppideks.

  1. Programmid, mis loovad pildi valmis ja seadistatud süsteemist (Distroshare Ubuntu Imager, linux live kit, linux respin, systemback jne.)
  2. Projektid, mis võimaldavad koguda oma pildi (yocto, linux from scratch)
  3. Pildi käsitsi koostamine (liveCD kohandamine ja vene analoog, pluss article on Habr)

Esimese rühma lahenduste kasutamine tundus kõige lihtsam ja atraktiivsem variant, kuid mul ei õnnestunud ODROID-ile live-süsteemi luua. Teise rühma lahendused ei sobinud mulle ka piisavalt kõrge sissejuhatuspiiri tõttu. Käsitsi kokku panemine olemasolevate õpikute põhjal ei sobinud samuti, kuna minu pildil puudus kokku surutud failisüsteem.
Lõpuks sattudes chroot'i videole (chroot — change root, video link postituse lõpus) ja selle võimalustele, otsustasin selle kasutada. Järgnevalt kirjeldan oma konkreetset juhtumit Ubuntu kohandamisest robootika arendajatele.

Algandmed:

  • Kogu pildi modifitseerimise protsess (välja arvatud SD-kaardile kirjutamine balenaEtcher'i abil) toimus Ubuntu 18.04 operatsioonisüsteemis.
  • Operatsioonisüsteem, mille kogumine on muudetud – Ubuntu 18.04.3 mate desktop versioon.
  • Seade, millel kokku pandud süsteem tööle peaks hakkama – ODROID-C2.

Pildi ettevalmistamine

  1. Laadime alla Ubuntu pildi ODROID-ile ametlik veebisait

  2. Pakkige arhiiv lahti

    unxz –kv

  3. Loome kausta, kuhu mäntime pildi

    mkdir mnt

  4. Määrame osa, kus failisüsteem asub

    file

    Otsime ext2, ext3 või ext4 formaadis failisüsteemi partitsiooni. Vajame partitsiooni algusenaadu (millel on punane kast pildil):

    ROS-i installimine Ubuntu IMG-pildile üherahalise arvuti jaoks

    Märkus. Failisüsteemi asukohta saab samuti vaadata utiliidi abil parted.

  5. Seame pilt

    sudo mount -o loop,offset=$((264192*512))  mnt/

    Meie vajalik partitsioon algab plokist 264192 (teie numbrid võivad erineda), ühe ploki suurus on 512 baiti, korrutame need, et saada hajutust baitides.

  6. Liigume montitud süsteemi kausta ja chrootime sinna

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

    ~/livecd/mnt — täispikk tee montitud süsteemi katalooge.
    bin/sh — shell (saab asendada ka bin/bash)
    Nüüd saab juba alustada vajalike paketide ja rakenduste paigaldamist.

ROS-i paigaldamine

Paigaldasin ROS-i viimase versiooni (ROS Melodic) vastavalt ametlikule juhendile.

  1. Uuendame paketide loendit.

    sudo apt-get update

    Siin tekkis mul viga:

    Err:6 http://deb.odroid.in/c2 bionic InRelease
    Järgmised allkirjad olid kehtetud: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr)

    See on seotud selle faktiga, et pakettide allkirjastamise võtme kehtivusaeg on lõppenud. Võtmete uuendamiseks sisestame:

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

  2. Valmistame süsteemi ROS-i installimiseks.

    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. Paigaldame ROS
    Kahjuks ei suutnud ma desktop versiooni ROS-i installida, seetõttu installisin ainult põhikomponendid:

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

    Märkus 1. Installimise käigus tekkis vahel viga:

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

    Selle sain parandatud apt tööriista vahemälu puhastamisega:

    sudo apt-get clean; sudo apt-get autoclean

    Märkus 2. Pärast installimist on vajalik allika aktiveerimine (source) käsuga:

    source /opt/ros/melodic/setup.bash

    ei toimi, kuna me ei käivitanud bash-i, nii et seda EI OLE vaja terminalis sisestada.

  4. Paigaldame vajalikud sõltuvused

    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. Seame õigused
    Kuna tegutseme root-i õigustes, hakkab ROS töötama ainult superkasutaja õigustes.
    Kui proovida roscore'i ilma sudo-ta käivitada, tekib viga:

    Viga (viimane kutsumine): Fail "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", rida 230, funktsioonis main, write_pid_file(options.pid_fn, options.core, options.port) Fail "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", rida 106, funktsioonis write_pid_file, with open(pid_fn, "w") as f: IOError: [Errno 13] Juurdepääs keelatud: '/home/user/.ros/roscore-11311.pid'

    Kuna viga ei tohiks tekkida, muudetakse rekursiivselt ROSi kasutaja kodukatalooge õigusi. Selleks kirjutame:

    sudo rosdep fix-permissions

  6. Paigaldame paketid rviz ja rqt

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

Viimased näpunäited

  1. Väljumine chrootist:
    exit
  2. Keskuse lahtiühendamine
    cd ..
    sudo umount mnt/
  3. Pakendame süsteemi pildi arhiivi
    xz –ckv1

Kõik! Nüüd saab balenaEtcher kirjutada süsteemi pildi SD-kaardile, sisestada see ODROID-C2-sse ja teil on Ubuntu koos paigaldatud ROS-iga!

Lingid:

  • Linuxis chrootimise õppimine ja selle eesmärk aitasid väga see video:

Vaata videot


Allikas: habr.com
Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster