Gosod ROS mewn delwedd Ubuntu IMG ar gyfer bwrdd sengl

Cyflwyniad

Y diwrnod o'r blaen, wrth weithio ar fy nhraethawd ymchwil, roeddwn yn wynebu'r angen i greu delwedd Ubuntu ar gyfer platfform un bwrdd gyda ROS eisoes wedi'i osod (System Weithredu Robot - system weithredu robotiaid). Yn fyr, mae'r diploma wedi'i neilltuo i reoli grŵp o robotiaid. Mae gan y robotiaid ddwy olwyn a thri darganfyddwr ystod. Mae'r holl beth yn cael ei reoli o ROS, sy'n rhedeg ar fwrdd ODROID-C2.

Gosod ROS mewn delwedd Ubuntu IMG ar gyfer bwrdd sengl
Robot Ladybug. Ymddiheuriadau am ansawdd gwael y llun

Nid oedd amser nac awydd i osod ROS ar bob robot yn unigol, ac felly roedd angen delwedd system gyda ROS eisoes wedi'i gosod. Ar ôl pori'r Rhyngrwyd, darganfyddais sawl dull o wneud hyn.
Yn gyffredinol, gellir rhannu'r holl atebion a geir yn y grwpiau canlynol.

  1. Rhaglenni sy'n creu delwedd o system parod a ffurfweddedig (Deliwr Ubuntu Distroshare, pecyn byw linux, respin linux, systemback, ac ati)
  2. Prosiectau sy'n eich galluogi i greu eich delwedd eich hun (yocto, linux o'r dechrau)
  3. Cydosod y ddelwedd eich hun (addasu CD byw и cyfatebol Rwseg, a mwy erthygl ar Habré)

Roedd yn ymddangos mai defnyddio datrysiadau o'r grŵp cyntaf oedd yr opsiwn symlaf a mwyaf deniadol, ond nid oeddwn byth yn gallu creu delwedd system fyw ar gyfer ODROID. Nid oedd atebion yr ail grŵp yn fy siwtio i chwaith oherwydd y trothwy mynediad eithaf uchel. Nid oedd cydosod â llaw yn ôl y tiwtorialau oedd ar gael yn addas ychwaith, oherwydd... Nid oedd gan fy delwedd system ffeiliau cywasgedig.
O ganlyniad, des i ar draws fideo am chroot (chroot - newid gwraidd, dolen i'r fideo ar ddiwedd y post) a'i alluoedd, penderfynwyd ei ddefnyddio. Nesaf, byddaf yn disgrifio fy achos penodol o addasu Ubuntu ar gyfer datblygwyr roboteg.

Data cychwynnol:

  • Perfformiwyd y broses addasu delwedd gyfan (ac eithrio ysgrifennu at y cerdyn SD gan ddefnyddio balenaEtcher) ar system weithredu Ubuntu 18.04.
  • Y system weithredu y gwnes i ei haddasu yw fersiwn bwrdd gwaith mate Ubuntu 18.04.3.
  • Y peiriant y dylai'r system ymgynnull weithio arno yw ODROID-C2.

Paratoi'r ddelwedd

  1. Lawrlwythwch y ddelwedd Ubuntu ar gyfer ODROID o safle swyddogol

  2. Dadbacio'r archif

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

  3. Creu cyfeiriadur lle byddwn yn gosod y ddelwedd

    mkdir mnt

  4. Darganfyddwch y rhaniad y mae'r system ffeiliau wedi'i lleoli arno

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

    Rydym yn chwilio am raniad gyda system ffeiliau mewn fformat ext2, ext3 neu ext4. Mae angen cyfeiriad dechrau'r adran (wedi'i amlygu mewn coch ar y sgrin):

    Gosod ROS mewn delwedd Ubuntu IMG ar gyfer bwrdd sengl

    Nodyn. Gellir gweld lleoliad y system ffeiliau hefyd gan ddefnyddio'r cyfleustodau parted.

  5. Mowntio'r ddelwedd

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

    Mae'r adran sydd ei hangen arnom yn dechrau gyda bloc 264192 (gall eich niferoedd amrywio), maint un bloc yw 512 beit, lluoswch nhw i gael y mewnoliad mewn beit.

  6. Ewch i'r ffolder gyda'r system wedi'i osod a hongian allan ynddo

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

    ~/livecd/mnt — llwybr llawn i'r cyfeiriadur gyda'r system wedi'i osod
    bin/sh - cragen (gellir ei ddisodli hefyd gyda bin/bash)
    Nawr gallwch chi ddechrau gosod y pecynnau a'r cymwysiadau angenrheidiol.

Gosod ROS

Gosodais y fersiwn diweddaraf o ROS (ROS Melodic) yn ôl tiwtorial swyddogol.

  1. Diweddaru'r rhestr o becynnau

    sudo apt-get update

    Dyma lle cefais y gwall:

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

    Mae hyn oherwydd bod yr allwedd arwyddo pecyn wedi dod i ben. I ddiweddaru'r allweddi, teipiwch:

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

  2. Paratoi'r system ar gyfer gosod 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. Gosod ROS
    Yn anffodus, nid oeddwn yn gallu gosod y fersiwn bwrdd gwaith o ROS, felly gosodais y pecynnau sylfaenol yn unig:

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

    Nodyn 1 Weithiau digwyddodd gwall yn ystod y broses osod:

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

    Cafodd ei drwsio trwy glirio'r storfa gan ddefnyddio'r cyfleustodau priodol:

    sudo apt-get clean; sudo apt-get autoclean

    Nodyn 2 Ar ôl gosod, ffynhonnell gan ddefnyddio'r gorchymyn:

    source /opt/ros/melodic/setup.bash

    ni fydd yn gweithio, oherwydd Ni wnaethom redeg bash, felly NID oes angen ei deipio yn y derfynell.

  4. Gosod y dibyniaethau angenrheidiol

    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. Sefydlu hawliau mynediad
    Gan ein bod wedi mewngofnodi ac, mewn gwirionedd, yn cyflawni'r holl gamau gweithredu ar ran gwraidd y system sy'n cael ei chydosod, dim ond gyda hawliau uwch-ddefnyddiwr y caiff ROS ei lansio.
    Wrth geisio rhedeg roscore heb sudo, mae gwall yn digwydd:

    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'

    Er mwyn atal y gwall rhag digwydd, gadewch i ni newid yn rheolaidd yr hawliau mynediad i gyfeiriadur cartref defnyddiwr ROS. I wneud hyn rydym yn teipio:

    sudo rosdep fix-permissions

  6. Gosodiad ychwanegol o'r pecynnau rviz a rqt

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

Cyffyrddiadau terfynol

  1. Gadael chroot:
    exit
  2. Dadosodwch y ddelwedd
    cd ..
    sudo umount mnt/
  3. Gadewch i ni bacio delwedd y system i mewn i archif
    xz –ckv1 <файл образа>

I gyd! Nawr gyda chymorth balenaetcher gallwch losgi delwedd y system i gerdyn SD, ei fewnosod yn ODROID-C2, a bydd gennych Ubuntu gyda ROS wedi'i osod!

Cyfeiriadau:

  • Helpodd y fideo hwn lawer gyda sut i dwyllo yn Linux a pham mae ei angen arnoch chi:



Ffynhonnell: hab.com

Ychwanegu sylw