ROS instalÄ“Å”ana Ubuntu IMG attēlā vienai platei

Ievads

Citu dienu, strādājot pie sava diplomdarba, es saskāros ar nepiecieÅ”amÄ«bu izveidot Ubuntu attēlu viena plates platformai ar jau instalētu ROS (Robot Operating System - robotu operētājsistēma). ÄŖsāk sakot, diploms ir veltÄ«ts robotu grupas vadÄ«Å”anai. Roboti ir aprÄ«koti ar diviem riteņiem un trim attāluma mērÄ«tājiem. Visa lieta tiek kontrolēta no ROS, kas darbojas uz ODROID-C2 plates.

ROS instalÄ“Å”ana Ubuntu IMG attēlā vienai platei
Robots Mārīte. Atvainojos par slikto foto kvalitāti

Nebija ne laika, ne vēlÄ“Å”anās uzstādÄ«t ROS katram robotam atseviŔķi, un tāpēc radās nepiecieÅ”amÄ«ba pēc sistēmas attēla ar jau instalētu ROS. Pēc interneta pārlÅ«koÅ”anas es atradu vairākas pieejas, kā to varētu izdarÄ«t.
Kopumā visus atrastos risinājumus var iedalīt Ŕādās grupās.

  1. Programmas, kas izveido attēlu no gatavas un konfigurētas sistēmas (Izplatiet Ubuntu Imager, linux tieÅ”raides komplekts, Linux respin, systemback utt.)
  2. Projekti, kas ļauj izveidot savu tēlu (yocto, Linux no nulles)
  3. PaÅ”a attēla salikÅ”ana (tieÅ”raides CD pielāgoÅ”ana Šø Krievu ekvivalentsplus raksts par Habrē)

Pirmās grupas risinājumu izmantoÅ”ana Ŕķita vienkārŔākā un pievilcÄ«gākā iespēja, taču es nekad nevarēju izveidot tieÅ”o sistēmas attēlu priekÅ” ODROID. ArÄ« otrās grupas risinājumi man nederēja diezgan augstā iestāŔanās sliekŔņa dēļ. ArÄ« manuālā montāža pēc pieejamajām pamācÄ«bām nebija piemērota, jo... Manam attēlam nebija saspiestas failu sistēmas.
Tā rezultātā es uzgāju video par chroot (chroot - mainÄ«t sakni, saite uz video ieraksta beigās) un tā iespējām, tika nolemts to izmantot. Tālāk es aprakstÄ«Å”u savu Ä«paÅ”o Ubuntu pielāgoÅ”anas gadÄ«jumu robotikas izstrādātājiem.

Sākotnējie dati:

  • Viss attēla modificÄ“Å”anas process (izņemot ierakstÄ«Å”anu SD kartē, izmantojot balenaEtcher) tika veikts operētājsistēmā Ubuntu 18.04.
  • Operētājsistēma, kuras komplektāciju es modificēju, ir Ubuntu 18.04.3 mate darbvirsmas versija.
  • Iekārta, kurā jādarbojas samontētajai sistēmai, ir ODROID-C2.

Attēla sagatavoÅ”ana

  1. Lejupielādējiet Ubuntu attēlu ODROID no vietnes oficiālā vietne

  2. Arhīva izpakoŔana

    unxz ā€“kv <фŠ°Š¹Š» Š°Ń€Ń…ŠøŠ²Š° с Š¾Š±Ń€Š°Š·Š¾Š¼>

  3. Izveidojiet direktoriju, kurā mēs uzstādīsim attēlu

    mkdir mnt

  4. Nosakiet nodalījumu, kurā atrodas failu sistēma

    file <фŠ°Š¹Š» Š¾Š±Ń€Š°Š·Š°>

    Mēs meklējam nodalÄ«jumu ar failu sistēmu ext2, ext3 vai ext4 formātā. Mums ir nepiecieÅ”ama sadaļas sākuma adrese (ekrānā iezÄ«mēta sarkanā krāsā):

    ROS instalÄ“Å”ana Ubuntu IMG attēlā vienai platei

    PiezÄ«me. Failu sistēmas atraÅ”anās vietu var apskatÄ«t arÄ«, izmantojot utilÄ«tu Ŕķīrās.

  5. Attēla uzstādÄ«Å”ana

    sudo mount -o loop,offset=$((264192*512)) <фŠ°Š¹Š» с Š¾Š±Ń€Š°Š·Š¾Š¼> mnt/

    VajadzÄ«gā sadaļa sākas ar bloku 264192 (jÅ«su skaitļi var atŔķirties), viena bloka izmērs ir 512 baiti, reiziniet tos, lai iegÅ«tu atkāpi baitos.

  6. Dodieties uz mapi, kurā ir uzstādīta sistēma, un pakavējieties tajā

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

    ~/livecd/mnt ā€” pilns ceļŔ uz direktoriju ar uzstādÄ«to sistēmu
    bin/sh - apvalks (var arī aizstāt ar bin/bash)
    Tagad varat sākt instalēt nepiecieÅ”amās pakotnes un lietojumprogrammas.

ROS instalēŔana

Es instalēju jaunāko ROS versiju (ROS Melodic) saskaņā ar oficiālā apmācība.

  1. PakeŔu saraksta atjaunināŔana

    sudo apt-get update

    Šeit es saņēmu kļūdu:

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

    Tas ir saistÄ«ts ar faktu, ka ir beidzies paketes parakstÄ«Å”anas atslēgas derÄ«guma termiņŔ. Lai atjauninātu atslēgas, ierakstiet:

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

  2. Sistēmas sagatavoÅ”ana ROS instalÄ“Å”anai

    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 instalēŔana
    Diemžēl es nevarēju instalēt ROS darbvirsmas versiju, tāpēc es instalēju tikai pamata pakotnes:

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

    PiezÄ«me 1. InstalÄ“Å”anas procesa laikā dažreiz radās kļūda:

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

    Tas tika novērsts, notÄ«rot keÅ”atmiņu, izmantojot apt utilÄ«tu:

    sudo apt-get clean; sudo apt-get autoclean

    PiezÄ«me 2. Pēc instalÄ“Å”anas iegÅ«stiet avotu, izmantojot komandu:

    source /opt/ros/melodic/setup.bash

    tas nedarbosies, jo Mēs nepalaidām bash, tāpēc tas NAV jāievada terminālī.

  4. NepiecieŔamo atkarību instalēŔana

    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. Piekļuves tiesību iestatīŔana
    Tā kā mēs esam pieteikuÅ”ies un faktiski veicam visas darbÄ«bas montējamās sistēmas saknes vārdā, ROS tiks palaists tikai ar superlietotāja tiesÄ«bām.
    Mēģinot palaist roscore bez sudo, rodas kļūda:

    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'

    Lai novērstu kļūdas raÅ”anos, rekursÄ«vi mainÄ«sim piekļuves tiesÄ«bas ROS lietotāja mājas direktorijai. Lai to izdarÄ«tu, mēs ierakstām:

    sudo rosdep fix-permissions

  6. rviz un rqt pakotņu papildu instalÄ“Å”ana

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

Pēdējie pieskārieni

  1. Iziet no chroot:
    exit
  2. Atvienojiet attēlu
    cd ..
    sudo umount mnt/
  3. Iesaiņosim sistēmas attēlu arhīvā
    xz ā€“ckv1 <фŠ°Š¹Š» Š¾Š±Ń€Š°Š·Š°>

Visi! Tagad ar palīdzību balēna spiedējs Jūs varat ierakstīt sistēmas attēlu SD kartē, ievietot to ODROID-C2, un jums būs instalēts Ubuntu ar ROS!

Saites:

  • Å is video ļoti palÄ«dzēja, kā krāpties operētājsistēmā Linux un kāpēc tas jums ir nepiecieÅ”ams:



Avots: www.habr.com

Pievieno komentāru