ProHoster > Blog > Pangangasiwa > Pag-install ng ROS sa isang imahe ng Ubuntu IMG para sa single-board
Pag-install ng ROS sa isang imahe ng Ubuntu IMG para sa single-board
Pagpapakilala
Noong isang araw, habang nagtatrabaho sa aking thesis, nahaharap ako sa pangangailangang lumikha ng imahe ng Ubuntu para sa isang single-board platform na may naka-install na ROS (Robot Operating System - robot operating system). Sa madaling salita, ang diploma ay nakatuon sa pamamahala ng isang grupo ng mga robot. Ang mga robot ay nilagyan ng dalawang gulong at tatlong rangefinder. Ang buong bagay ay kinokontrol mula sa ROS, na tumatakbo sa ODROID-C2 board.
Robot Ladybug. Paumanhin para sa mahinang kalidad ng larawan
Walang oras o pagnanais na i-install ang ROS sa bawat robot nang paisa-isa, at samakatuwid ay may pangangailangan para sa isang imahe ng system na may naka-install na ROS. Pagkatapos mag-browse sa Internet, nakakita ako ng ilang paraan kung paano ito magagawa.
Sa pangkalahatan, ang lahat ng solusyon na matatagpuan ay maaaring hatiin sa mga sumusunod na grupo.
Ang paggamit ng mga solusyon mula sa unang grupo ay tila ang pinakasimple at pinakakaakit-akit na opsyon, ngunit hindi ako nakagawa ng live na imahe ng system para sa ODROID. Ang mga solusyon ng pangalawang pangkat ay hindi rin nababagay sa akin dahil sa medyo mataas na threshold ng pagpasok. Ang manu-manong pagpupulong ayon sa magagamit na mga tutorial ay hindi rin angkop, dahil... Ang aking imahe ay walang naka-compress na file system.
Bilang resulta, nakatagpo ako ng isang video tungkol sa chroot (chroot - baguhin ang ugat, link sa video sa dulo ng post) at ang mga kakayahan nito, napagpasyahan na gamitin ito. Susunod, ilalarawan ko ang aking partikular na kaso ng pagpapasadya ng Ubuntu para sa mga developer ng robotics.
Pinagmulan ng data:
Ang buong proseso ng pagbabago ng imahe (maliban sa pagsulat sa SD card gamit ang balenaEtcher) ay isinagawa sa Ubuntu 18.04 operating system.
Ang operating system na ang assembly ay binago ko ay Ubuntu 18.04.3 mate desktop na bersyon.
Ang makina kung saan dapat gumana ang assembled system ay ODROID-C2.
Paghahanda ng larawan
I-download ang imahe ng Ubuntu para sa ODROID mula sa opisyal na site
Lumikha ng isang direktoryo kung saan ilalagay namin ang imahe
mkdir mnt
Tukuyin ang partisyon kung saan matatagpuan ang file system
file <ΡΠ°ΠΉΠ» ΠΎΠ±ΡΠ°Π·Π°>
Naghahanap kami ng partition na may file system sa ext2, ext3 o ext4 na format. Kailangan namin ang address ng simula ng seksyon (naka-highlight sa pula sa screen):
Tandaan. Ang lokasyon ng file system ay maaari ding matingnan gamit ang utility nahati.
Pag-mount ng imahe
sudo mount -o loop,offset=$((264192*512)) <ΡΠ°ΠΉΠ» Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ> mnt/
Ang seksyon na kailangan namin ay nagsisimula sa block 264192 (maaaring mag-iba ang iyong mga numero), ang laki ng isang bloke ay 512 bytes, i-multiply ang mga ito upang makuha ang indentation sa bytes.
Pumunta sa folder na may naka-mount na system at mag-hang out dito
cd mnt/
sudo chroot ~/livecd/mnt/ bin/sh
~/livecd/mnt β buong landas patungo sa direktoryo na may naka-mount na sistema bin/sh - shell (maaari ding palitan ng bin/bash)
Ngayon ay maaari mong simulan ang pag-install ng mga kinakailangang pakete at application.
Pag-install ng ROS
Nag-install ako ng pinakabagong bersyon ng ROS (ROS Melodic) ayon sa opisyal na tutorial.
Pag-update ng listahan ng mga pakete
sudo apt-get update
Dito ko nakuha ang error:
Err:6 http://deb.odroid.in/c2 bionic InRelease
The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <[email protected]>
Ito ay dahil sa ang katunayan na ang package signing key ay nag-expire na. Upang i-update ang mga susi, i-type ang:
Pag-set up ng mga karapatan sa pag-access
Dahil kami ay naka-log in at, sa katunayan, ginagawa ang lahat ng mga aksyon sa ngalan ng root ng system na binuo, ang ROS ay ilulunsad lamang na may mga superuser na karapatan.
Kapag sinusubukang patakbuhin ang roscore nang walang sudo, nangyayari ang isang error:
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'
Upang maiwasang mangyari ang error, muli nating baguhin ang mga karapatan sa pag-access sa home directory ng user ng ROS. Upang gawin ito, nagta-type kami:
Lahat! Ngayon sa tulong balenaetcher maaari mong sunugin ang imahe ng system sa isang SD card, ipasok ito sa ODROID-C2, at magkakaroon ka ng Ubuntu na may ROS na naka-install!
Link:
Malaki ang naitulong ng video na ito kung paano manloko sa Linux at kung bakit mo ito kailangan: