Instalimi i ROS në imazhin IMG të Ubuntu për një kompjuter të njëbordit

Hyrje

KohĂ« mĂ« parĂ«, gjatĂ« punĂ«s mbi diplomĂ«n, u ndesha me nevojĂ«n pĂ«r tĂ« krijuar njĂ« imazh tĂ« Ubuntu pĂ«r njĂ« kompjuter tĂ« vetĂ«m me ROS tĂ« instaluar (Sistemi i Operimit tĂ« RobotĂ«ve – njĂ« sistem operativ pĂ«r robotĂ«t). NĂ« thelb, diploma i kushtohet menaxhimit tĂ« njĂ« grupi robotĂ«sh. RobotĂ«t janĂ« tĂ« pajisur me dy rrota dhe tre skanerĂ«. TĂ« gjitha kĂ«to drejtohen nga ROS, i cili funksionon nĂ« bordin ODROID-C2.

Instalimi i ROS në imazhin IMG të Ubuntu për një kompjuter të njëbordit
Robot Ladybug. Më falni për cilësinë e dobët të fotos

Nuk kishte as kohë, as dëshirë për të instaluar ROS në secilin robot veçmas, prandaj lindi nevoja për një imazh të sistemit me ROS të instaluar tashmë. Pas një shëtitjeje në hapësirën e internetit, gjeta disa qasje për të realizuar këtë.
Në përgjithësi, të gjitha zgjidhjet e gjetura mund të ndahen në grupe të mëposhtme.

  1. Programet që krijojnë një imazh nga një sistem i gatshëm dhe i konfiguruar (Distroshare Ubuntu Imager, linux live kit, linux respin, systemback etj.)
  2. Projektet që lejojnë ndërtimin e imazhit tuaj (yocto, linux from scratch)
  3. Ndërtimi manual i imazhit (liveCD customization dhe një analog rus, plus artikulli në habra)

Përdorimi i zgjidhjeve nga grupi i parë dukej opsioni më i thjeshtë dhe më tërheqës, megjithatë nuk mund të krijoja një imazh të sistemit live për ODROID. Zgjidhjet nga grupa e dytë gjithashtu nuk më përshtatën për shkak të një kese të lartë hyrëse. Ndërtimi manual sipas tutoraleve të disponueshme gjithashtu nuk funksionoi, pasi nuk kishte një sistem të compressuar të skedarëve në imazhin tim.
Si rezultat, pasi pashĂ« njĂ« video mbi chroot (chroot — ndrysho root, lidhja nĂ« video nĂ« fund tĂ« postit) dhe mundĂ«sitĂ« e tij, u vendos tĂ« pĂ«rdoret. MĂ« pas do tĂ« pĂ«rshkruaj rastin tim tĂ« veçantĂ« tĂ« personalizimit tĂ« Ubuntu pĂ«r zhvilluesit e robotikĂ«s.

Të dhënat e origjinës:

  • I gjithĂ« procesi i modifikimit tĂ« imazhit (pĂ«rveç shkrimit nĂ« kartĂ«n SD duke pĂ«rdorur balenaEtcher) u krye nĂ« sistemin operativ Ubuntu 18.04.
  • Sistemi operativ, tĂ« cilin e modifikova – Ubuntu 18.04.3 me versionin mate desktop.
  • MakinĂ«, nĂ« tĂ« cilĂ«n duhet tĂ« funksionojĂ« sistemi i mbledhur – ODROID-C2.

Përgatitja e imazhit

  1. Shkarkoni imazhin e Ubuntu për ODROID nga faqja zyrtare

  2. Zhbllokoni arkivin

    unxz –kv

  3. Krijoni direktorinë, në të cilën do të montoni imazhin

    mkdir mnt

  4. Përcaktoni ndarjen, në të cilën ndodhet sistemi dosjeve

    file

    Kërkoni ndarjen me sistem dosjesh në formatin ext2, ext3 ose ext4. Na nevojitet adresa e fillimit të ndarjes (e shënuar me të kuqe në skrin):

    Instalimi i ROS në imazhin IMG të Ubuntu për një kompjuter të njëbordit

    Shënim. Pozicioni i sistemit të skedarëve mund të shikohet gjithashtu me anë të utilitarit parted.

  5. Muntimi i imazhit

    sudo mount -o loop,offset=$((264192*512))  mnt/

    Pjesa që na nevojitet fillon nga blloku 264192 (numrat tuaj mund të ndryshojnë), madhësia e një blloku është 512 byte, i shumëzojmë për të marrë offsetin në byte.

  6. Shkoni në dosjen me sistemin e montuar dhe hyni brenda saj

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

    ~/livecd/mnt — rruga e plotĂ« deri nĂ« direktorinĂ« me sistemin e montuar
    bin/sh — shell (mund ta zĂ«vendĂ«soni gjithashtu me bin/bash)
    Tani mund të filloni me instalimin e pakove dhe aplikacioneve të nevojshme.

Instalimi i ROS

Unë kam instaluar ROS versionin më të fundit (ROS Melodic) sipas tutorialit zyrtar.

  1. Përditësoni listën e pakove

    sudo apt-get update

    Këtu kam hasur një gabim:

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

    Ky është i lidhur me skadimin e çelësit për nënshkrimin e pakove. Për të përditësuar çelësat shkruani:

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

  2. Përgatisim sistemin për instalimin e 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. Instalojmë ROS
    Fatkeqësisht, nuk mund të instaloj versionin desktop të ROS, prandaj kam instaluar vetëm paketat bazë:

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

    Shënim 1. Në procesin e instalimit ndonjëherë ka ndodhur një gabim:

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

    Korrje me anë të pastrimit të caches nga utilitari apt:

    sudo apt-get clean; sudo apt-get autoclean

    Shënim 2. Pas instalimit duhet të përmblidhet (source) me komandën:

    source /opt/ros/melodic/setup.bash

    nuk do të funksionojë, pasi nuk kemi ekzekutuar bash, prandaj nuk duhet ta shkruani në terminal.

  4. Instalojmë varësitë e nevojshme

    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. Konfigurojmë të drejtat e aksesit
    Pasi jemi brenda sistemit dhe, në fakt, po kryejmë të gjitha veprimet si root i sistemit të ndërtuar, po ashtu ROS do të ekzekutohet vetëm me të drejtat e super përdoruesit.
    Kur përpiqemi të ekzekutojmë roscore pa sudo ndodh një gabim:

    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'

    Për të parandaluar që gabimi të ndodhë, do të ndryshojmë në mënyrë rekursive të drejtat e aksesit në katalogun e shtëpisë së përdoruesit ROS. Për këtë, shkruajmë:

    sudo rosdep fix-permissions

  6. Instalojmë paketat rviz dhe rqt

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

Prekjet përfundimtare

  1. Dalim nga chroot:
    exit
  2. Zbrazim imazhin
    cd ..
    sudo umount mnt/
  3. Paketojmë imazhin e sistemit në arkiv
    xz –ckv1

E gjitha! Tani me ndihmën e balenaEtcher mund të shkruani imazhin e sistemit në kartën SD, ta vendosni në ODROID-C2, dhe do keni Ubuntu me ROS të instaluar!

Lidhjet:

  • Me atĂ« si tĂ« chroot nĂ« linux dhe pĂ«r çfarĂ« Ă«shtĂ« e nevojshme, ky video mĂ« ka ndihmuar shumĂ«:

Luaj videon


Burimi: habr.com
Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster