Насб кардани ROS дар тасвири Ubuntu IMG барои як тахта

Муқаддима

Рӯзи дигар, ҳангоми кор дар рисолаи худ, ман бо зарурати эҷод кардани тасвири Ubuntu барои платформаи як тахта бо ROS аллакай насбшуда дучор шудам (Robot Operating System - системаи оператсионии робот). Хулоса, диплом ба идоракунии як гурӯҳи роботҳо бахшида шудааст. Роботхо бо ду чарх ва се асбоби масофаи муайянкунанда чихозонида шудаанд. Ҳама чиз аз ROS идора карда мешавад, ки дар тахтаи ODROID-C2 кор мекунад.

Насб кардани ROS дар тасвири Ubuntu IMG барои як тахта
Robot Ladybug. Бубахшед барои сифати пасти акс

На вақт ва на хоҳиши насб кардани ROS дар ҳар як робот ба таври инфиродӣ вуҷуд дошт ва аз ин рӯ, зарурати тасвири система бо ROS аллакай насбшуда вуҷуд дошт. Пас аз дидани Интернет, ман якчанд равишҳоро дар бораи он ки чӣ гуна ин корро кардан мумкин аст, пайдо кардам.
Умуман, ҳамаи роҳҳои ҳалли пайдошударо ба гурӯҳҳои зерин тақсим кардан мумкин аст.

  1. Барномаҳое, ки аз системаи омода ва танзимшуда тасвир эҷод мекунанд (Ubuntu Imagerро тақсим кунед, маҷмӯаи зинда linux, linux respin, бозгашти система ва ғайра)
  2. Лоиҳаҳое, ки ба шумо имкон медиҳанд симои шахсии худро эҷод кунед (йокто, linux аз сифр)
  3. Ҷамъоварии тасвири худ (мутобиқсозии CD зинда и муодили русӣПлюс » мақола дар бораи Habre)

Истифодаи ҳалли гурӯҳи аввал соддатарин ва ҷолибтарин вариант ба назар мерасид, аммо ман ҳеҷ гоҳ натавонистам тасвири зиндаи системаро барои ODROID эҷод кунам. Қарорҳои гурӯҳи дуюм низ ба ман мувофиқ набуданд, зеро ҳадди ниҳоии воридшавӣ хеле баланд аст. Монтажи дастӣ аз рӯи дастурҳои дастрас низ мувофиқ набуд, зеро... Тасвири ман системаи файлии фишурда надошт.
Дар натиҷа, ман як видео дар бораи chroot (chroot - тағир додани реша, истинод ба видео дар охири пост) ва имкониятҳои он, қарор шуд, ки аз он истифода шавад. Минбаъд, ман ҳолати махсуси худро оид ба танзими Ubuntu барои таҳиягарони робототехника тавсиф мекунам.

Маълумоти аввалия:

  • Тамоми раванди тағир додани тасвир (ба истиснои навиштан ба корти SD бо истифода аз balenaEtcher) дар системаи оператсионии Ubuntu 18.04 анҷом дода шуд.
  • Системаи оператсионӣ, ки маҷмӯаи онро ман тағир додам, версияи мизи кории Ubuntu 18.04.3 mate мебошад.
  • Мошине, ки дар он системаи васлшуда бояд кор кунад ODROID-C2.

Омода кардани тасвир

  1. Тасвири Ubuntu-ро барои ODROID аз сомонаи расмии

  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 танҳо бо ҳуқуқҳои суперистифодабаранда оғоз мешавад.
    Ҳангоми кӯшиши иҷро кардани roscore бидуни sudo, хатогӣ рух медиҳад:

    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 <файл образа>

Ҳама! Акнун бо ёрии балена Этчер шумо метавонед тасвири системаро ба корти SD сӯзонед, онро ба ODROID-C2 гузоред ва шумо Ubuntu бо ROS насб кардаед!

Истинодҳо:

  • Ин видео дар бораи чӣ гуна фиреб кардан дар Linux ва чаро ба шумо он лозим аст, кӯмак кард:



Манбаъ: will.com

Илова Эзоҳ