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.

Kufunga ROS kwenye picha ya Ubuntu IMG kwa ubao mmoja
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.

  1. Programu zinazounda picha kutoka kwa mfumo uliotengenezwa tayari na uliosanidiwa (Sambaza picha ya Ubuntu, seti ya moja kwa moja ya linux, linux respin, mfumo wa nyuma, nk.)
  2. Miradi inayokuruhusu kuunda picha yako mwenyewe (yocto, linux kutoka mwanzo)
  3. Kukusanya picha mwenyewe (ubinafsishaji wa moja kwa moja wa CD ΠΈ Kirusi sawapamoja makala kuhusu Habre)

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

  1. Pakua picha ya Ubuntu kwa ODROID kutoka tovuti rasmi

  2. Inafungua kumbukumbu

    unxz –kv <Ρ„Π°ΠΉΠ» Π°Ρ€Ρ…ΠΈΠ²Π° с ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ>

  3. Unda saraka ambayo tutaweka picha

    mkdir mnt

  4. Tambua kizigeu ambacho mfumo wa faili iko

    file <Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Π·Π°>

    Tunatafuta kizigeu chenye mfumo wa faili katika umbizo la ext2, ext3 au ext4. Tunahitaji anwani ya mwanzo wa sehemu (iliyoangaziwa kwa nyekundu kwenye skrini):

    Kufunga ROS kwenye picha ya Ubuntu IMG kwa ubao mmoja

    Kumbuka. Eneo la mfumo wa faili pia linaweza kutazamwa kwa kutumia matumizi kugawanyika.

  5. 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.

  6. 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.

  1. 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:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AB19BAC9

  2. Kuandaa mfumo kwa ajili ya kufunga 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 C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

    sudo apt update

  3. Inaweka ROS
    Kwa bahati mbaya, sikuweza kusanikisha toleo la desktop la ROS, kwa hivyo niliweka vifurushi vya msingi tu:

    sudo apt install ros-melodic-ros-base
    apt search ros-melodic

    Kumbuka 1 Wakati wa mchakato wa usakinishaji wakati mwingine hitilafu ilitokea:

    dpkg: error: failed to write status database record about 'iputils-ping' to '/var/lib/dpkg/status': No space left on device

    Ilirekebishwa kwa kufuta kashe kwa kutumia matumizi ya apt:

    sudo apt-get clean; sudo apt-get autoclean

    Kumbuka 2 Baada ya usakinishaji, chanzo kwa kutumia amri:

    source /opt/ros/melodic/setup.bash

    haitafanya kazi, kwa sababu Hatukuendesha bash, kwa hivyo HAITAJI kuandikwa kwenye terminal.

  4. Kuweka tegemezi zinazohitajika

    sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

    sudo apt install python-rosdep

    sudo rosdep init
    rosdep update

  5. 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:

    sudo rosdep fix-permissions

  6. Ufungaji wa ziada wa vifurushi vya rviz na rqt

    sudo apt-get install ros-melodic-rqt ros-melodic-rviz

Miguso ya mwisho

  1. Ondoka kwenye chroot:
    exit
  2. Fungua picha
    cd ..
    sudo umount mnt/
  3. Wacha tupakie picha ya mfumo kwenye kumbukumbu
    xz –ckv1 <Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Π·Π°>

Wote! Sasa kwa msaada balenaetcher unaweza kuchoma picha ya mfumo kwenye kadi ya SD, ingiza kwenye ODROID-C2, na utakuwa na Ubuntu na ROS imewekwa!

Marejeo:

  • Video hii ilisaidia sana jinsi ya kudanganya kwenye Linux na kwa nini unahitaji:



Chanzo: mapenzi.com

Kuongeza maoni