Pag-instalar sa ROS sa usa ka imahe sa Ubuntu IMG alang sa usa ka board

Pasiuna

Sa miaging adlaw, samtang nagtrabaho sa akong thesis, nag-atubang ako sa panginahanglan nga maghimo usa ka imahe sa Ubuntu alang sa usa ka plataporma nga single-board nga na-install na ang ROS (Robot Operating System - robot operating system). Sa laktud, ang diploma gipahinungod sa pagdumala sa usa ka grupo sa mga robot. Ang mga robot adunay duha ka ligid ug tulo ka rangefinder. Ang tibuuk nga butang kontrolado gikan sa ROS, nga nagdagan sa ODROID-C2 board.

Pag-instalar sa ROS sa usa ka imahe sa Ubuntu IMG alang sa usa ka board
Robot Ladybug. Pasensya sa dili maayo nga kalidad sa litrato

Wala'y panahon o tinguha nga i-install ang ROS sa matag robot nga tinagsa, ug busa adunay panginahanglan alang sa usa ka imahe sa sistema nga na-install na ang ROS. Pagkahuman sa pag-browse sa Internet, nakit-an nako ang daghang mga pamaagi kung giunsa kini mahimo.
Sa kinatibuk-an, ang tanan nga mga solusyon nga makit-an mahimong bahinon sa mosunod nga mga grupo.

  1. Mga programa nga naghimo og usa ka imahe gikan sa usa ka andam ug gi-configure nga sistema (Distroshare Ubuntu Imager, linux live kit, linux respin, systemback, ug uban pa)
  2. Mga proyekto nga nagtugot kanimo sa paghimo sa imong kaugalingon nga imahe (yocto, linux gikan sa scratch)
  3. Pag-assemble sa imahe sa imong kaugalingon (live CD customization ΠΈ Russian nga katumbasdugang pa artikulo sa HabrΓ©)

Ang paggamit sa mga solusyon gikan sa unang grupo daw mao ang pinakasimple ug labing madanihon nga kapilian, apan wala gayud ako makahimo sa paghimo og usa ka buhi nga imahe sa sistema alang sa ODROID. Ang mga solusyon sa ikaduhang grupo dili usab angay kanako tungod sa taas nga threshold sa pagsulod. Ang manwal nga asembliya sumala sa magamit nga mga panudlo dili usab angay, tungod kay ... Ang akong imahe walay compressed file system.
Ingon usa ka sangputanan, nakit-an nako ang usa ka video bahin sa chroot (chroot - usba ang gamut, link sa video sa katapusan sa post) ug ang mga kapabilidad niini, nakahukom nga gamiton kini. Sunod, akong ihulagway ang akong partikular nga kaso sa pag-customize sa Ubuntu alang sa mga robotics developers.

Inisyal nga datos:

  • Ang tibuok proseso sa pagbag-o sa imahe (gawas sa pagsulat sa SD card gamit ang balenaEtcher) gihimo sa Ubuntu 18.04 operating system.
  • Ang operating system kansang asembliya akong giusab mao ang Ubuntu 18.04.3 mate desktop nga bersyon.
  • Ang makina diin ang gitigom nga sistema kinahanglang molihok mao ang ODROID-C2.

Pag-andam sa imahe

  1. I-download ang imahe sa Ubuntu para sa ODROID gikan sa opisyal nga site

  2. Pag-unpack sa archive

    unxz –kv <Ρ„Π°ΠΉΠ» Π°Ρ€Ρ…ΠΈΠ²Π° с ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ>

  3. Paghimo usa ka direktoryo diin among i-mount ang imahe

    mkdir mnt

  4. Tinoa ang partisyon diin nahimutang ang file system

    file <Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Π·Π°>

    Nangita kami og partition nga adunay file system sa ext2, ext3 o ext4 nga format. Kinahanglan namon ang adres sa sinugdanan sa seksyon (gi-highlight nga pula sa screen):

    Pag-instalar sa ROS sa usa ka imahe sa Ubuntu IMG alang sa usa ka board

    Matikdi. Ang lokasyon sa file system mahimo usab nga tan-awon gamit ang utility nagbulag.

  5. Pag-mount sa imahe

    sudo mount -o loop,offset=$((264192*512)) <Ρ„Π°ΠΉΠ» с ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ> mnt/

    Ang seksyon nga among gikinahanglan magsugod sa block 264192 (ang imong mga numero mahimong magkalahi), ang gidak-on sa usa ka block mao ang 512 bytes, i-multiply kini aron makuha ang indentation sa bytes.

  6. Adto sa folder nga adunay naka-mount nga sistema ug ibitay kini

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

    ~/livecd/mnt β€” bug-os nga agianan sa direktoryo nga adunay naka-mount nga sistema
    bin/sh - shell (mahimo usab nga pulihan sa bin/bash)
    Karon mahimo ka magsugod sa pag-instalar sa gikinahanglan nga mga pakete ug aplikasyon.

Pag-instalar sa ROS

Gi-install nako ang pinakabag-o nga bersyon sa ROS (ROS Melodic) sumala sa opisyal nga panudlo.

  1. I-update ang listahan sa mga pakete

    sudo apt-get update

    Dinhi nako nakuha ang sayup:

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

    Kini tungod sa kamatuoran nga ang package signing key na-expire na. Aron ma-update ang mga yawe, i-type ang:

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

  2. Pag-andam sa sistema alang sa pag-instalar sa 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. Pag-instalar sa ROS
    Ikasubo, wala nako ma-install ang desktop nga bersyon sa ROS, mao nga nag-install lang ako sa mga batakang pakete:

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

    Nota 1. Atol sa proseso sa pag-instalar usahay adunay usa ka sayup nga nahitabo:

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

    Giayo kini pinaagi sa paglimpyo sa cache gamit ang apt utility:

    sudo apt-get clean; sudo apt-get autoclean

    Nota 2. Human sa pag-instalar, tinubdan gamit ang sugo:

    source /opt/ros/melodic/setup.bash

    dili kini molihok, tungod kay Wala kami nagpadagan sa bash, mao nga DILI kini kinahanglan nga i-type sa terminal.

  4. Pag-instalar sa gikinahanglan nga mga dependency

    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. Pag-set up sa mga katungod sa pag-access
    Tungod kay kami naka-log in ug, sa tinuud, gihimo ang tanan nga mga aksyon alang sa gamut sa sistema nga gitigum, ang ROS ilunsad lamang nga adunay mga katungod sa superuser.
    Kung gisulayan ang pagpadagan sa roscore nga wala sudo, usa ka sayup ang nahitabo:

    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'

    Aron mapugngan ang sayup nga mahitabo, usbon naton ang mga katungod sa pag-access sa direktoryo sa balay sa tiggamit sa ROS. Aron mahimo kini, mag-type kami:

    sudo rosdep fix-permissions

  6. Dugang nga pag-instalar sa rviz ug rqt nga mga pakete

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

Katapusan nga mga paghikap

  1. Paggawas sa chroot:
    exit
  2. I-unmount ang imahe
    cd ..
    sudo umount mnt/
  3. Atong i-pack ang sistema nga imahe sa usa ka archive
    xz –ckv1 <Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Π·Π°>

Tanan! Karon uban sa tabang balenaetcher mahimo nimong sunugon ang imahe sa sistema sa usa ka SD card, isulud kini sa ODROID-C2, ug ma-install nimo ang Ubuntu nga adunay ROS!

Mga reperensiya:

  • Kini nga video nakatabang kaayo kung giunsa ang paglimbong sa Linux ug kung ngano nga kinahanglan nimo kini:



Source: www.habr.com

Idugang sa usa ka comment