Uppsetning ROS í Ubuntu IMG mynd fyrir eitt borð

Inngangur

Um daginn, þegar ég vann að ritgerðinni minni, stóð ég frammi fyrir því að þurfa að búa til Ubuntu mynd fyrir eins borðs vettvang með ROS þegar uppsett (Vélmennastýrikerfi - vélmennastýrikerfi). Í stuttu máli er prófskírteinið helgað því að stjórna hópi vélmenna. Vélmennin eru búin tveimur hjólum og þremur fjarlægðarmælum. Allt er stjórnað frá ROS, sem keyrir á ODROID-C2 borðinu.

Uppsetning ROS í Ubuntu IMG mynd fyrir eitt borð
Vélmenni Ladybug. Afsakið léleg myndgæði

Það var hvorki tími né vilji til að setja upp ROS á hvert vélmenni fyrir sig og því var þörf á kerfismynd með ROS þegar uppsett. Eftir að hafa vafrað á netinu fann ég nokkrar leiðir til að gera þetta.
Almennt séð má skipta öllum lausnum sem finnast í eftirfarandi hópa.

  1. Forrit sem búa til mynd úr tilbúnu og stilltu kerfi (Distroshare Ubuntu Imager, linux lifandi sett, linux respin, systemback osfrv.)
  2. Verkefni sem gera þér kleift að búa til þína eigin mynd (jóktó, linux frá grunni)
  3. Að setja saman myndina sjálfur (aðlaga geisladiska í beinni útsendingu и Rússneskt jafngildi, plús grein um Habré)

Að nota lausnir frá fyrsta hópnum virtist vera einfaldasti og aðlaðandi kosturinn, en ég gat aldrei búið til lifandi kerfismynd fyrir ODROID. Lausnir seinni hópsins hentuðu mér heldur ekki vegna nokkuð hás aðgangsþröskulds. Handvirk samsetning í samræmi við fyrirliggjandi kennsluefni hentaði heldur ekki, vegna þess að... Myndin mín var ekki með þjappað skráarkerfi.
Í kjölfarið rakst ég á myndband um chroot (chroot - breyta rót, tengill á myndbandið í lok færslunnar) og möguleika þess, var ákveðið að nota það. Næst mun ég lýsa sérstöku tilviki mínu um að sérsníða Ubuntu fyrir vélfærafræðihönnuði.

Upphafleg gögn:

  • Allt myndbreytingarferlið (fyrir utan að skrifa á SD-kortið með balenaEtcher) var framkvæmt á Ubuntu 18.04 stýrikerfinu.
  • Stýrikerfið sem ég breytti í er Ubuntu 18.04.3 mate skrifborðsútgáfa.
  • Vélin sem samsetta kerfið ætti að virka á er ODROID-C2.

Að undirbúa myndina

  1. Sæktu Ubuntu myndina fyrir ODROID frá opinbera síða

  2. Að taka upp skjalasafnið

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

  3. Búðu til möppu þar sem við munum setja myndina upp

    mkdir mnt

  4. Ákvarða skiptinguna sem skráarkerfið er staðsett á

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

    Við erum að leita að skipting með skráarkerfi á ext2, ext3 eða ext4 sniði. Við þurfum heimilisfangið á byrjun hlutans (auðkennt með rauðu á skjánum):

    Uppsetning ROS í Ubuntu IMG mynd fyrir eitt borð

    Ath. Einnig er hægt að skoða staðsetningu skráarkerfisins með því að nota tólið skildu.

  5. Að setja myndina upp

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

    Hlutinn sem við þurfum byrjar á blokk 264192 (númerin þín geta verið mismunandi), stærð eins blokkar er 512 bæti, margfaldaðu þau til að fá inndráttinn í bætum.

  6. Farðu í möppuna með uppsettu kerfinu og hanga í henni

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

    ~/livecd/mnt — full slóð að möppunni með uppsettu kerfinu
    bin/sh - skel (einnig hægt að skipta út fyrir bin/bash)
    Nú geturðu byrjað að setja upp nauðsynlega pakka og forrit.

Að setja upp ROS

Ég setti upp nýjustu útgáfuna af ROS (ROS Melodic) skv opinber kennsluefni.

  1. Uppfærir lista yfir pakka

    sudo apt-get update

    Þetta er þar sem ég fékk villuna:

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

    Þetta er vegna þess að pakkaundirritunarlykillinn er útrunninn. Til að uppfæra lyklana skaltu slá inn:

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

  2. Að undirbúa kerfið fyrir uppsetningu 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. Að setja upp ROS
    Því miður gat ég ekki sett upp skrifborðsútgáfuna af ROS, svo ég setti aðeins upp grunnpakkana:

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

    Athugasemd 1. Við uppsetningarferlið kom stundum upp villa:

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

    Það var lagað með því að hreinsa skyndiminni með því að nota apt tólið:

    sudo apt-get clean; sudo apt-get autoclean

    Athugasemd 2. Eftir uppsetningu, uppspretta með því að nota skipunina:

    source /opt/ros/melodic/setup.bash

    það mun ekki virka, því Við keyrðum ekki bash, svo það þarf EKKI að slá það inn í flugstöðina.

  4. Að setja upp nauðsynlegar ósjálfstæði

    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. Að setja upp aðgangsréttindi
    Þar sem við erum skráð inn og í raun framkvæmum allar aðgerðir fyrir hönd rótar kerfisins sem verið er að setja saman, verður ROS aðeins ræst með ofurnotendaréttindum.
    Þegar reynt er að keyra roscore án sudo kemur upp villa:

    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'

    Til að koma í veg fyrir að villan komi upp, skulum við breyta aðgangsréttindum að heimaskrá ROS notandans endurkvæmt. Til að gera þetta skrifum við:

    sudo rosdep fix-permissions

  6. Viðbótaruppsetning á rviz og rqt pakkanum

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

Lokaatriði

  1. Hætta chroot:
    exit
  2. Aftengja myndina
    cd ..
    sudo umount mnt/
  3. Pökkum kerfismyndinni inn í skjalasafn
    xz –ckv1 <файл образа>

Allt! Nú með hjálp balenaetcher þú getur brennt kerfismyndina á SD kort, sett það í ODROID-C2, og þú munt hafa Ubuntu með ROS uppsett!

Tilvísanir:

  • Þetta myndband hjálpaði mikið við hvernig á að svindla í Linux og hvers vegna þú þarft það:



Heimild: www.habr.com

Bæta við athugasemd