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.

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.
- Programet që krijojnë një imazh nga një sistem i gatshëm dhe i konfiguruar (, , , systemback etj.)
- Projektet që lejojnë ndërtimin e imazhit tuaj (, )
- Ndërtimi manual i imazhit ( dhe , plus )
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
Shkarkoni imazhin e Ubuntu për ODROID nga
Zhbllokoni arkivin
unxz âkvKrijoni direktorinĂ«, nĂ« tĂ« cilĂ«n do tĂ« montoni imazhin
mkdir mntPërcaktoni ndarjen, në të cilën ndodhet sistemi dosjeve
fileKë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):

Shënim. Pozicioni i sistemit të skedarëve mund të shikohet gjithashtu me anë të utilitarit parted.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.
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 .
Përditësoni listën e pakove
sudo apt-get updateKë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 AB19BAC9Pë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 C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654sudo apt updateInstalojmë 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-melodicShë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 deviceKorrje me anë të pastrimit të caches nga utilitari apt:
sudo apt-get clean; sudo apt-get autocleanShënim 2. Pas instalimit duhet të përmblidhet (source) me komandën:
source /opt/ros/melodic/setup.bashnuk do të funksionojë, pasi nuk kemi ekzekutuar bash, prandaj nuk duhet ta shkruani në terminal.
Instalojmë varësitë e nevojshme
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essentialsudo apt install python-rosdepsudo rosdep init rosdep updateKonfigurojmë 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-permissionsInstalojmë paketat rviz dhe rqt
sudo apt-get install ros-melodic-rqt ros-melodic-rviz
Prekjet përfundimtare
- Dalim nga chroot:
exit - Zbrazim imazhin
cd .. sudo umount mnt/ - Paketojmë imazhin e sistemit në arkiv
xz âckv1
E gjitha! Tani me ndihmën e 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ë:

Burimi: habr.com

