ProHoster > blog > Utawala > Kufunga ROS kwenye picha ya Ubuntu IMG kwa ubao mmoja
Kufunga ROS kwenye picha ya Ubuntu IMG kwa ubao mmoja
Utangulizi
Siku nyingine, nilipokuwa nikifanya kazi kwenye nadharia yangu, nilikabiliwa na hitaji la kuunda picha ya Ubuntu kwa jukwaa la bodi moja na ROS tayari imewekwa (Mfumo wa Uendeshaji wa Robot - mfumo wa uendeshaji wa roboti) Kwa kifupi, diploma imejitolea kusimamia kikundi cha roboti. Roboti hizo zina vifaa vya magurudumu mawili na vitafuta vitu vitatu. Jambo zima linadhibitiwa kutoka kwa ROS, ambayo inaendesha kwenye bodi ya ODROID-C2.
Robot Ladybug. Samahani kwa ubora duni wa picha
Hakukuwa na wakati wala hamu ya kusanikisha ROS kwenye kila roboti kibinafsi, na kwa hivyo kulikuwa na hitaji la picha ya mfumo na ROS tayari imewekwa. Baada ya kuvinjari mtandao, nilipata mbinu kadhaa za jinsi hii inaweza kufanywa.
Kwa ujumla, suluhisho zote zinazopatikana zinaweza kugawanywa katika vikundi vifuatavyo.
Kutumia suluhisho kutoka kwa kikundi cha kwanza kilionekana kuwa chaguo rahisi na cha kuvutia zaidi, lakini sikuwahi kuunda picha ya mfumo wa moja kwa moja kwa ODROID. Suluhisho za kikundi cha pili pia hazikufaa kwa sababu ya kizingiti cha juu cha kuingia. Mkusanyiko wa mwongozo kulingana na mafunzo yanayopatikana pia haukufaa, kwa sababu ... Picha yangu haikuwa na mfumo wa faili uliobanwa.
Kama matokeo, nilipata video kuhusu chroot (chroot - kubadilisha mizizi, kiungo kwa video mwishoni mwa chapisho) na uwezo wake, iliamuliwa kuitumia. Ifuatayo, nitaelezea kesi yangu maalum ya kubinafsisha Ubuntu kwa watengenezaji wa roboti.
Data ya awali:
Mchakato mzima wa kurekebisha picha (isipokuwa kwa kuandika kwa kadi ya SD kwa kutumia balenaEtcher) ulifanyika kwenye mfumo wa uendeshaji wa Ubuntu 18.04.
Mfumo wa uendeshaji ambao mkusanyiko wake nilirekebisha ni toleo la kompyuta ya kompyuta ya Ubuntu 18.04.3.
Mashine ambayo mfumo uliokusanyika unapaswa kufanya kazi ni ODROID-C2.
Kuandaa picha
Pakua picha ya Ubuntu kwa ODROID kutoka tovuti rasmi
Tunatafuta kizigeu chenye mfumo wa faili katika umbizo la ext2, ext3 au ext4. Tunahitaji anwani ya mwanzo wa sehemu (iliyoangaziwa kwa nyekundu kwenye skrini):
Kumbuka. Eneo la mfumo wa faili pia linaweza kutazamwa kwa kutumia matumizi kugawanyika.
Kuweka picha
sudo mount -o loop,offset=$((264192*512)) <ΡΠ°ΠΉΠ» Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ> mnt/
Sehemu tunayohitaji huanza na block 264192 (nambari zako zinaweza kutofautiana), saizi ya block moja ni 512 byte, zizidishe ili kupata indentation kwa ka.
Nenda kwenye folda iliyo na mfumo uliowekwa na hangout ndani yake
cd mnt/
sudo chroot ~/livecd/mnt/ bin/sh
~/livecd/mnt - njia kamili ya saraka na mfumo uliowekwa pipa/sh - shell (inaweza pia kubadilishwa na bin/bash)
Sasa unaweza kuanza kusanikisha vifurushi muhimu na programu.
Inaweka ROS
Niliweka toleo la hivi karibuni la ROS (ROS Melodic) kulingana na mafunzo rasmi.
Inasasisha orodha ya vifurushi
sudo apt-get update
Hapa ndipo nilipata kosa:
Err:6 http://deb.odroid.in/c2 bionic InRelease
The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <[email protected]>
Hii ni kutokana na ukweli kwamba ufunguo wa kusaini kifurushi umekwisha muda wake. Ili kusasisha funguo, chapa:
Kuweka haki za ufikiaji
Kwa kuwa tumeingia na, kwa kweli, tunafanya vitendo vyote kwa niaba ya mzizi wa mfumo unaokusanywa, ROS itazinduliwa tu na haki za superuser.
Wakati wa kujaribu kuendesha roscore bila sudo, hitilafu hutokea:
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'
Ili kuzuia kosa kutokea, wacha tubadilishe kwa kurudia haki za ufikiaji kwenye saraka ya nyumbani ya mtumiaji wa ROS. Ili kufanya hivyo, tunaandika: