Um daginn, þegar ég vann að ritgerðinni minni, stóð ég frammi fyrir því að þurfa að búa til Ubuntu mynd fyrir eins borðs vettvang með ROS þegar uppsett (Vélmennastýrikerfi - vélmennastýrikerfi). Í stuttu máli er prófskírteinið helgað því að stjórna hópi vélmenna. Vélmennin eru búin tveimur hjólum og þremur fjarlægðarmælum. Allt er stjórnað frá ROS, sem keyrir á ODROID-C2 borðinu.
Vélmenni Ladybug. Afsakið léleg myndgæði
Það var hvorki tími né vilji til að setja upp ROS á hvert vélmenni fyrir sig og því var þörf á kerfismynd með ROS þegar uppsett. Eftir að hafa vafrað á netinu fann ég nokkrar leiðir til að gera þetta.
Almennt séð má skipta öllum lausnum sem finnast í eftirfarandi hópa.
Að nota lausnir frá fyrsta hópnum virtist vera einfaldasti og aðlaðandi kosturinn, en ég gat aldrei búið til lifandi kerfismynd fyrir ODROID. Lausnir seinni hópsins hentuðu mér heldur ekki vegna nokkuð hás aðgangsþröskulds. Handvirk samsetning í samræmi við fyrirliggjandi kennsluefni hentaði heldur ekki, vegna þess að... Myndin mín var ekki með þjappað skráarkerfi.
Í kjölfarið rakst ég á myndband um chroot (chroot - breyta rót, tengill á myndbandið í lok færslunnar) og möguleika þess, var ákveðið að nota það. Næst mun ég lýsa sérstöku tilviki mínu um að sérsníða Ubuntu fyrir vélfærafræðihönnuði.
Upphafleg gögn:
Allt myndbreytingarferlið (fyrir utan að skrifa á SD-kortið með balenaEtcher) var framkvæmt á Ubuntu 18.04 stýrikerfinu.
Stýrikerfið sem ég breytti í er Ubuntu 18.04.3 mate skrifborðsútgáfa.
Vélin sem samsetta kerfið ætti að virka á er ODROID-C2.
Búðu til möppu þar sem við munum setja myndina upp
mkdir mnt
Ákvarða skiptinguna sem skráarkerfið er staðsett á
file <файл образа>
Við erum að leita að skipting með skráarkerfi á ext2, ext3 eða ext4 sniði. Við þurfum heimilisfangið á byrjun hlutans (auðkennt með rauðu á skjánum):
Ath. Einnig er hægt að skoða staðsetningu skráarkerfisins með því að nota tólið skildu.
Að setja myndina upp
sudo mount -o loop,offset=$((264192*512)) <файл с образом> mnt/
Hlutinn sem við þurfum byrjar á blokk 264192 (númerin þín geta verið mismunandi), stærð eins blokkar er 512 bæti, margfaldaðu þau til að fá inndráttinn í bætum.
Farðu í möppuna með uppsettu kerfinu og hanga í henni
cd mnt/
sudo chroot ~/livecd/mnt/ bin/sh
~/livecd/mnt — full slóð að möppunni með uppsettu kerfinu bin/sh - skel (einnig hægt að skipta út fyrir bin/bash)
Nú geturðu byrjað að setja upp nauðsynlega pakka og forrit.
Að setja upp aðgangsréttindi
Þar sem við erum skráð inn og í raun framkvæmum allar aðgerðir fyrir hönd rótar kerfisins sem verið er að setja saman, verður ROS aðeins ræst með ofurnotendaréttindum.
Þegar reynt er að keyra roscore án sudo kemur upp villa:
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'
Til að koma í veg fyrir að villan komi upp, skulum við breyta aðgangsréttindum að heimaskrá ROS notandans endurkvæmt. Til að gera þetta skrifum við: