ROS-i installimine Ubuntu IMG-pildile ühe plaadi jaoks

Sissejuhatus

Teisel päeval, töötades oma lõputöö kallal, seisin silmitsi vajadusega luua Ubuntu pilt ühe tahvli platvormi jaoks, millel on juba installitud ROS (Roboti operatsioonisüsteem – roboti operatsioonisüsteem). Lühidalt öeldes on diplom pühendatud robotite rühma juhtimisele. Robotid on varustatud kahe ratta ja kolme kaugusmõõturiga. Kogu asja juhitakse ROS-ist, mis töötab ODROID-C2 plaadil.

ROS-i installimine Ubuntu IMG-pildile ühe plaadi jaoks
Robot Lepatriinu. Vabandame kehva fotokvaliteedi pärast

Ei olnud aega ega soovi paigaldada ROS-i igale robotile eraldi ja seetõttu tekkis vajadus juba installitud ROS-iga süsteemipildi järele. Pärast Internetis sirvimist leidsin mitu lähenemisviisi, kuidas seda teha.
Üldiselt võib kõik leitud lahendused jagada järgmistesse rühmadesse.

  1. Programmid, mis loovad pildi valmis ja konfigureeritud süsteemist (Jagage Ubuntu Imager, linux live komplekt, linux respin, systemback jne)
  2. Projektid, mis võimaldavad teil luua oma pildi (yocto, linux nullist)
  3. Pildi ise kokku panemine (live CD kohandamine и venekeelne vaste, pluss artikkel Habré kohta)

Esimese grupi lahenduste kasutamine tundus kõige lihtsam ja atraktiivsem variant, kuid ma ei saanud kunagi ODROIDi jaoks reaalajas süsteemipilti luua. Ka teise grupi lahendused ei sobinud mulle üsna kõrge sisseastumisläve tõttu. Ka käsitsi kokkupanek olemasolevate õpetuste järgi ei sobinud, sest... Minu pildil ei olnud tihendatud failisüsteemi.
Selle tulemusena sattusin videole chrooti kohta (chroot - muuda juurt, link postituse lõpus olevale videole) ja selle võimalused, otsustati seda kasutada. Järgmisena kirjeldan oma konkreetset juhtumit Ubuntu kohandamiseks robootikaarendajatele.

Esialgsed andmed:

  • Kogu pildi muutmise protsess (välja arvatud SD-kaardile kirjutamine balenaEtcheri abil) viidi läbi operatsioonisüsteemis Ubuntu 18.04.
  • Operatsioonisüsteem, mille koostu muutsin, on Ubuntu 18.04.3 mate töölauaversioon.
  • Masin, millel kokkupandud süsteem peaks töötama, on ODROID-C2.

Pildi ettevalmistamine

  1. Laadige ODROIDi jaoks alla Ubuntu pilt aadressilt ametlik veebileht

  2. Arhiivi lahti pakkimine

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

  3. Looge kataloog, kuhu pildi paigaldame

    mkdir mnt

  4. Määrake partitsioon, millel failisüsteem asub

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

    Otsime partitsiooni ext2, ext3 või ext4 formaadis failisüsteemiga. Vajame jaotise alguse aadressi (ekraanil punasega esile tõstetud):

    ROS-i installimine Ubuntu IMG-pildile ühe plaadi jaoks

    Märkus. Failisüsteemi asukohta saab vaadata ka utiliidi abil lahus.

  5. Pildi paigaldamine

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

    Vajalik jaotis algab plokiga 264192 (teie numbrid võivad erineda), ühe ploki suurus on 512 baiti, korrutage need, et saada taane baitides.

  6. Minge paigaldatud süsteemiga kausta ja veetke selles aega

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

    ~/livecd/mnt — täielik tee ühendatud süsteemiga kataloogi
    prügikast/sh - kest (saab ka asendada prügikast/bash)
    Nüüd saate alustada vajalike pakettide ja rakenduste installimist.

ROS-i installimine

Installisin ROS-i uusima versiooni (ROS Melodic) vastavalt ametlik õpetus.

  1. Pakettide nimekirja uuendamine

    sudo apt-get update

    Siit sain vea:

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

    Selle põhjuseks on asjaolu, et paketi allkirjastamise võti on aegunud. Võtmete värskendamiseks tippige:

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

  2. Süsteemi ettevalmistamine 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. ROS-i installimine
    Kahjuks ei saanud ma ROS-i töölauaversiooni installida, mistõttu installisin ainult põhipaketid:

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

    Märkus 1. Installimise ajal ilmnes mõnikord tõrge:

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

    See parandati vahemälu tühjendamise teel sobiva utiliidi abil:

    sudo apt-get clean; sudo apt-get autoclean

    Märkus 2. Pärast installimist hankige allikas käsuga:

    source /opt/ros/melodic/setup.bash

    see ei tööta, sest Me ei käivitanud bashi, seega EI pea seda terminali sisestama.

  4. Vajalike sõltuvuste paigaldamine

    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. Juurdepääsuõiguste seadistamine
    Kuna oleme sisse logitud ja tegelikult teeme kõik toimingud kokkupandava süsteemi juure nimel, käivitatakse ROS ainult superkasutaja õigustega.
    Kui proovite käivitada roscore'i ilma sudota, ilmneb tõrge:

    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'

    Vea vältimiseks muutkem rekursiivselt ROS-i kasutaja kodukataloogi juurdepääsuõigusi. Selleks sisestame:

    sudo rosdep fix-permissions

  6. Rviz ja rqt pakettide täiendav installimine

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

Viimased lihvid

  1. Välju chrootist:
    exit
  2. Ühendage pilt lahti
    cd ..
    sudo umount mnt/
  3. Pakime süsteemipildi arhiivi
    xz –ckv1 <файл образа>

Kõik! Nüüd abiga baleneetser saate kirjutada süsteemipildi SD-kaardile, sisestada selle ODROID-C2-sse ja teil on installitud ROS-iga Ubuntu!

Lingid:

  • See video aitas palju, kuidas Linuxis petta ja miks seda vaja on:



Allikas: www.habr.com

Lisa kommentaar