ROS'ту бир такта үчүн Ubuntu IMG сүрөтүнө орнотуу

тааныштыруу

Башка күнү, менин диссертациямдын үстүндө иштеп жатып, мен ROS орнотулган бир такта платформасы үчүн Ubuntu сүрөтүн түзүү зарылдыгына туш болдум (Robot Operating System - роботтун операциялык системасы). Кыскасы, диплом роботтор тобун башкарууга арналган. Роботтор эки дөңгөлөк жана үч аралыкты өлчөөчү менен жабдылган. Бардык нерсе ODROID-C2 тактасында иштеген ROS тарабынан башкарылат.

ROS'ту бир такта үчүн Ubuntu IMG сүрөтүнө орнотуу
Robot Ladybug. Сүрөттүн сапаты начар болгону үчүн кечирим сурайбыз

Ар бир роботко ROS орнотууга убакыт да, каалоо да жок болчу, ошондуктан ROS орнотулган системанын сүрөтүнө муктаждык бар болчу. Интернетти карап чыккандан кийин, мен муну кантип жасоонун бир нече ыкмаларын таптым.
Жалпысынан табылган бардык чечимдерди төмөнкү топторго бөлүүгө болот.

  1. Даяр жана конфигурацияланган системадан сүрөт түзүүчү программалар (Ubuntu Imager программасын бөлүшүү, linux тирүү комплект, linux respin, системаны кайтаруу ж.б.)
  2. Өзүңүздүн образыңызды түзүүгө мүмкүндүк берүүчү долбоорлор (yocto, linux нөлдөн баштап)
  3. Сүрөттү өзүң чогултуп (жандуу CD ыңгайлаштыруу и орус эквиваленти, кошуу Habré боюнча макала)

Биринчи топтун чечимдерин колдонуу эң жөнөкөй жана эң жагымдуу вариант болуп көрүндү, бирок мен эч качан ODROID үчүн жандуу системанын сүрөтүн түзө алган жокмун. Экинчи топтун чечимдери да кирүү босогосунан улам мага туура келген жок. Колдо болгон окуу куралдарына ылайык кол менен чогултуу да ылайыктуу эмес, анткени... Менин сүрөтүмдө кысылган файл системасы болгон эмес.
Натыйжада мен chroot жөнүндө видеону таптым (chroot - тамырды өзгөртүү, посттун аягындагы видеого шилтеме) жана анын мүмкүнчүлүктөрү, аны колдонуу чечими кабыл алынды. Андан кийин, мен робототехниканы иштеп чыгуучулар үчүн Ubuntu ыңгайлаштыруу боюнча өзүмдүн өзгөчө окуямды сүрөттөп берем.

Баштапкы маалыматтар:

  • Сүрөттү өзгөртүү процесси (balenaEtcher аркылуу SD картага жазуудан башка) Ubuntu 18.04 операциялык тутумунда аткарылган.
  • Мен монтаждаган операциялык система Ubuntu 18.04.3 mate рабочий версиясы.
  • Чогулган система иштеши керек болгон машина ODROID-C2.

Сүрөттү даярдоо

  1. ODROID үчүн Ubuntu сүрөтүн жүктөп алыңыз расмий сайты

  2. Архивди ачуу

    unxz –kv <файл архива с образом>

  3. Сүрөттү орното турган каталогду түзүңүз

    mkdir mnt

  4. Файл системасы жайгашкан бөлүмдү аныктаңыз

    file <файл образа>

    Биз ext2, ext3 же ext4 форматындагы файл системасы менен бөлүктү издеп жатабыз. Бизге бөлүмдүн башталышынын дареги керек (экранда кызыл менен белгиленген):

    ROS'ту бир такта үчүн Ubuntu IMG сүрөтүнө орнотуу

    Эскертүү. Файл системасынын жайгашкан жерин утилитанын жардамы менен да көрүүгө болот бөлүп.

  5. Сүрөттү орнотуу

    sudo mount -o loop,offset=$((264192*512)) <файл с образом> mnt/

    Бизге керек болгон бөлүм 264192 блоктон башталат (сиздин сандарыңыз ар кандай болушу мүмкүн), бир блоктун көлөмү 512 байт, аларды байт менен чегинүү үчүн көбөйтүңүз.

  6. Орнотулган тутуму бар папкага өтүп, ага илинип туруңуз

    cd mnt/
    sudo chroot ~/livecd/mnt/ bin/sh

    ~/livecd/mnt — орнотулган система менен каталогго толук жол
    бин/ш - кабык (ошондой эле алмаштырылышы мүмкүн bin/bash)
    Эми сиз керектүү пакеттерди жана тиркемелерди орнотуп баштасаңыз болот.

ROS орнотулууда

Мен ылайык ROS (ROS Melodic) акыркы нускасын орноткон расмий окуу куралы.

  1. Пакеттердин тизмесин жаңылоо

    sudo apt-get update

    Бул жерде мен ката алдым:

    Err:6 http://deb.odroid.in/c2 bionic InRelease
    The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <[email protected]>

    Бул пакетке кол коюу ачкычынын мөөнөтү бүткөндүгүнө байланыштуу. Ачкычтарды жаңыртуу үчүн, териңиз:

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

  2. 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. ROS орнотуу
    Тилекке каршы, мен ROSтун рабочий версиясын орното алган жокмун, ошондуктан мен негизги топтомдорду гана орноттум:

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

    Эскертүү: 1. Орнотуу процессинде кээде ката пайда болот:

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

    Бул apt утилитасын колдонуу менен кэшти тазалоо менен чечилди:

    sudo apt-get clean; sudo apt-get autoclean

    Эскертүү: 2. Орнотуудан кийин, буйрукту колдонуп булак:

    source /opt/ros/melodic/setup.bash

    ал иштебейт, анткени Биз bash иштеткен жокпуз, андыктан аны терминалга терүүнүн кереги жок.

  4. Керектүү көз карандылыкты орнотуу

    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. Кирүү укуктарын орнотуу
    Биз киргендиктен жана чындыгында чогултулуп жаткан системанын тамырынын атынан бардык аракеттерди аткаргандыктан, ROS супер колдонуучу укуктары менен гана ишке киргизилет.
    Sudo жок roscore иштетүүгө аракет кылып жатканда, ката пайда болот:

    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'

    Ката пайда болушуна жол бербөө үчүн, келгиле, ROS колдонуучунун үй каталогуна кирүү укуктарын рекурсивдүү түрдө өзгөртөлү. Бул үчүн биз теребиз:

    sudo rosdep fix-permissions

  6. Rviz жана rqt пакеттерин кошумча орнотуу

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

Акыркы тийүү

  1. Чыгуу chroot:
    exit
  2. Сүрөттү ажыратыңыз
    cd ..
    sudo umount mnt/
  3. Системанын сүрөтүн архивге топтоп көрөлү
    xz –ckv1 <файл образа>

Баары! Азыр жардамы менен balenaetcher системанын сүрөтүн SD картага жазып, ODROID-C2ге кыстарсаңыз болот, ошондо сизде ROS орнотулган Ubuntu болот!

шилтеме:

  • Бул видео Linux'та кантип алдамчылык кылууну жана ал эмне үчүн керек экенин түшүнүүгө көп жардам берди:



Source: www.habr.com

Комментарий кошуу