Instalimi i ROS në një imazh Ubuntu IMG për një bord të vetëm
Paraqitje
Një ditë tjetër, ndërsa punoja në tezën time, u përballa me nevojën për të krijuar një imazh të Ubuntu për një platformë me një tabelë me ROS të instaluar tashmë (Robot Operating System - sistem operativ robot). Me pak fjalë, diploma i kushtohet menaxhimit të një grupi robotësh. Robotët janë të pajisur me dy rrota dhe tre distanca. E gjithë gjëja kontrollohet nga ROS, i cili funksionon në tabelën ODROID-C2.
Robot Ladybug. Na vjen keq për cilësinë e dobët të fotografisë
Nuk kishte as kohë dhe as dëshirë për të instaluar ROS në secilin robot individualisht, dhe për këtë arsye kishte nevojë për një imazh të sistemit me ROS të instaluar tashmë. Pasi shfletova internetin, gjeta disa mënyra se si mund të bëhej kjo.
Në përgjithësi, të gjitha zgjidhjet e gjetura mund të ndahen në grupet e mëposhtme.
Përdorimi i zgjidhjeve nga grupi i parë dukej se ishte opsioni më i thjeshtë dhe më tërheqës, por nuk arrita kurrë të krijoja një imazh të drejtpërdrejtë të sistemit për ODROID. Zgjidhjet e grupit të dytë gjithashtu nuk më përshtateshin për shkak të pragut mjaft të lartë të hyrjes. Asambleja manuale sipas udhëzimeve të disponueshme gjithashtu nuk ishte e përshtatshme, sepse... Imazhi im nuk kishte një sistem skedari të ngjeshur.
Si rezultat, hasa në një video rreth chroot (chroot - ndërroj rrënjë, lidhje me videon në fund të postimit) dhe aftësitë e saj, u vendos që ta përdorni. Më pas, unë do të përshkruaj rastin tim të veçantë të personalizimit të Ubuntu-së për zhvilluesit e robotikës.
Të dhënat fillestare:
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, montimi i të cilit kam modifikuar është versioni desktop i Ubuntu 18.04.3 mate.
Makina në të cilën duhet të funksionojë sistemi i montuar është ODROID-C2.
Përgatitja e imazhit
Shkarkoni imazhin e Ubuntu për ODROID nga faqen zyrtare
Shpaketimi i arkivit
unxz –kv <файл архива с образом>
Krijoni një direktori në të cilën do të montojmë imazhin
mkdir mnt
Përcaktoni ndarjen në të cilën ndodhet sistemi i skedarëve
file <файл образа>
Ne jemi duke kërkuar për një ndarje me një sistem skedari në formatin ext2, ext3 ose ext4. Na duhet adresa e fillimit të seksionit (e theksuar me të kuqe në ekran):
Shënim. Vendndodhja e sistemit të skedarëve mund të shihet gjithashtu duke përdorur programin i ndarë.
Montimi i imazhit
sudo mount -o loop,offset=$((264192*512)) <файл с образом> mnt/
Seksioni që na nevojitet fillon me bllokun 264192 (numrat tuaj mund të ndryshojnë), madhësia e një blloku është 512 bajt, shumëzojini ato për të marrë dhëmbëzimin në bajt.
Shkoni te dosja me sistemin e montuar dhe rri në të
cd mnt/
sudo chroot ~/livecd/mnt/ bin/sh
~/livecd/mnt — shtegu i plotë drejt drejtorisë me sistemin e montuar bin/sh - guaskë (mund të zëvendësohet edhe me bin/bash)
Tani mund të filloni të instaloni paketat dhe aplikacionet e nevojshme.
Instalimi i ROS
Kam instaluar versionin më të fundit të ROS (ROS Melodic) sipas tutorial zyrtar.
Përditësimi i listës së paketave
sudo apt-get update
Ja ku mora gabimin:
Err:6 http://deb.odroid.in/c2 bionic InRelease
The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <[email protected]>
Kjo për faktin se çelësi i nënshkrimit të paketës ka skaduar. Për të përditësuar çelësat, shkruani:
Vendosja e të drejtave të aksesit
Meqenëse jemi të kyçur dhe, në fakt, kryejmë të gjitha veprimet në emër të rrënjës së sistemit që po montohet, ROS do të lansohet vetëm me të drejtat e superpërdoruesit.
Kur përpiqeni të ekzekutoni 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 shfaqjen e gabimit, le të ndryshojmë në mënyrë rekursive të drejtat e hyrjes në drejtorinë kryesore të përdoruesit ROS. Për ta bërë këtë ne shkruajmë:
Të gjitha! Tani me ndihmën balenaetcher mund ta digjni imazhin e sistemit në një kartë SD, ta futni në ODROID-C2 dhe do të keni të instaluar Ubuntu me ROS!
referencat:
Kjo video ndihmoi shumë se si të mashtroni në Linux dhe pse ju nevojitet: