Нэг самбарт зориулсан Ubuntu IMG дүрс дээр ROS суулгаж байна

Танилцуулга

Нөгөө өдөр би дипломын ажил дээрээ ажиллаж байхдаа ROS суулгасан нэг самбарт платформ дээр Ubuntu дүрс үүсгэх шаардлагатай тулгарсан.Робот үйлдлийн систем - робот үйлдлийн систем). Товчхондоо, диплом нь роботуудын бүлэг удирдахад зориулагдсан. Роботууд нь хоёр дугуй, гурван зай хэмжигчээр тоноглогдсон. Бүх зүйлийг ODROID-C2 самбар дээр ажилладаг ROS-ээс удирддаг.

Нэг самбарт зориулсан Ubuntu IMG дүрс дээр ROS суулгаж байна
Robot Ladybug. Зургийн чанар муу байгаад уучлаарай

Робот бүр дээр ROS-ийг тусад нь суулгах цаг хугацаа, хүсэл ч байхгүй байсан тул аль хэдийн суулгасан ROS-тэй системийн дүрс хэрэгтэй болсон. Интернетийг үзсэний дараа би үүнийг хэрхэн хийх талаар хэд хэдэн аргыг олсон.
Ерөнхийдөө олсон бүх шийдлүүдийг дараах бүлгүүдэд хувааж болно.

  1. Бэлэн болон тохируулсан системээс зураг үүсгэдэг програмууд (Ubuntu Imager -ийг түгээх, linux live иж бүрдэл, linux respin, systemback гэх мэт)
  2. Өөрийнхөө дүр төрхийг бий болгох боломжтой төслүүд (ёкто, эхнээс нь Linux)
  3. Зургийг өөрөө угсрах (амьд CD тохируулга и Оростой тэнцэх, нэмэх Хабрегийн тухай нийтлэл)

Эхний бүлгийн шийдлүүдийг ашиглах нь хамгийн энгийн бөгөөд сэтгэл татам сонголт мэт санагдаж байсан ч би хэзээ ч 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 форматтай файлын системтэй хуваалтыг хайж байна. Бидэнд хэсгийн эхлэлийн хаяг хэрэгтэй (дэлгэцэн дээр улаанаар тодруулсан):

    Нэг самбарт зориулсан Ubuntu IMG дүрс дээр ROS суулгаж байна

    Анхаарна уу. Файлын системийн байршлыг мөн хэрэгслийг ашиглан харж болно салсан.

  5. Зургийг суурилуулах

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

    Бидэнд хэрэгтэй хэсэг нь 264192 блокоос эхэлдэг (таны тоо өөр байж болно), нэг блокийн хэмжээ 512 байт бөгөөд тэдгээрийг үржүүлж, байт дахь доголтыг авна уу.

  6. Суулгасан системтэй хавтас руу очиж, дотор нь зүүгээрэй

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

    ~/livecd/mnt — суурилуулсан систем бүхий лавлах руу бүрэн зам
    бин/ш - бүрхүүл (мөн сольж болно бин/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 <файл образа>

Бүгд! Одоо тусламжтайгаар balenaEchcher Та системийн дүрсийг SD карт руу шатааж, ODROID-C2 руу оруулснаар ROS-тэй Ubuntu суулгасан болно!

Ашигласан материал:

  • Энэ видео нь Линукс дээр хэрхэн хууран мэхлэх, яагаад танд хэрэгтэй талаар маш их тусалсан:



Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх