ROS-un IMG görüntüsünə quraşdırılması Ubuntu tək ödəniş üçün

Giriş

O biri gün diplomum üzərində işləyərkən bir obraz yaratmaq ehtiyacı ilə qarşılaşdım. Ubuntu ROS artıq quraşdırılmış tək lövhəli kompüter üçün (Robot Əməliyyat Sistemi - robot əməliyyat sistemi). Bir sözlə, diplom robotlar qrupunu idarə etməyə həsr olunub. Robotlar iki təkər və üç məsafəölçənlə təchiz olunub. Hər şey ODROID-C2 lövhəsində işləyən ROS-dan idarə olunur.

ROS-un IMG görüntüsünə quraşdırılması Ubuntu tək ödəniş üçün
Robot Ladybug. Fotonun keyfiyyətsizliyinə görə üzr istəyirik

Hər robotda ROS-u ayrı-ayrılıqda quraşdırmaq üçün nə vaxt, nə də arzu var idi və buna görə də ROS artıq quraşdırılmış sistem şəklinə ehtiyac var idi. İnternetə baxdıqdan sonra bunun necə edilə biləcəyinə dair bir neçə yanaşma tapdım.
Ümumiyyətlə, tapılan bütün həlləri aşağıdakı qruplara bölmək olar.

  1. Hazır və konfiqurasiya edilmiş sistemdən görüntü yaradan proqramlar (Distroshare Ubuntu görüntüleyicisi, linux canlı dəsti, linux respin, systemback və s.)
  2. Öz imicinizi yaratmağa imkan verən layihələr (yocto, linux sıfırdan)
  3. Şəklin özünüz yığılması (canlı CD fərdiləşdirmə и rus ekvivalenti, bir artı Habré haqqında məqalə)

Birinci qrupdan olan həllərdən istifadə etmək ən sadə və ən cəlbedici seçim kimi görünürdü, lakin mən heç vaxt ODROID üçün canlı sistem görüntüsünü yarada bilmədim. İkinci qrupun həlləri də kifayət qədər yüksək giriş həddinə görə mənə uyğun gəlmədi. Mövcud dərsliklərə uyğun olaraq əl ilə montaj da uyğun deyildi, çünki... Mənim şəklimdə sıxılmış fayl sistemi yox idi.
Nəticədə chroot haqqında videoya rast gəldim (chroot - kök dəyişdirin(Video linki yazının sonundadır) və imkanları ilə bağlı istifadə etmək qərarına gəldim. Aşağıda özəlləşdirmə işimi təsvir edəcəyəm. Ubuntu robototexnika inkişaf etdiriciləri üçün.

Başlanğıc:

  • Şəklin dəyişdirilməsinin bütün prosesi (balenaEtcher istifadə edərək SD karta yazmaq istisna olmaqla) əməliyyat sistemində həyata keçirildi. Ubuntu 18.04.
  • Yığılması dəyişdirilən əməliyyat sistemi – Ubuntu 18.04.3 mate masaüstü versiyası.
  • Yığılmış sistemin işləməli olduğu maşın ODROID-C2-dir.

Təsvirin hazırlanması

  1. Şəkli yükləyin Ubuntu ODROID üçün rəsmi saytı

  2. Arxivin qablaşdırılması

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

  3. Şəkli quraşdıracağımız bir kataloq yaradın

    mkdir mnt

  4. Fayl sisteminin yerləşdiyi bölməni müəyyənləşdirin

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

    Biz ext2, ext3 və ya ext4 formatında fayl sistemi olan bölmə axtarırıq. Bölmənin başlanğıcının ünvanına ehtiyacımız var (ekranda qırmızı ilə vurğulanmışdır):

    ROS-un IMG görüntüsünə quraşdırılması Ubuntu tək ödəniş üçün

    Qeyd edək. Fayl sisteminin yerləşdiyi yerə yardım proqramından istifadə etməklə də baxmaq olar ayrıldı.

  5. Şəklin quraşdırılması

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

    Bizə lazım olan bölmə 264192 blokundan başlayır (rəqəmləriniz fərqli ola bilər), bir blokun ölçüsü 512 baytdır, baytlarda abzas almaq üçün onları çoxaldın.

  6. Quraşdırılmış sistemlə qovluğa gedin və orada oturun

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

    ~/livecd/mnt — quraşdırılmış sistemlə kataloqa tam yol
    bin/ş - qabıq (həmçinin ilə əvəz edilə bilər bin/bash)
    İndi lazımi paketləri və proqramları quraşdırmağa başlaya bilərsiniz.

ROS quraşdırılması

Mən ROS-un (ROS Melodic) ən son versiyasını quraşdırdım rəsmi dərslik.

  1. Paketlərin siyahısının yenilənməsi

    sudo apt-get update

    Budur səhvi aldım:

    Err:6 http://deb.odroid.in/c2 bionic InRelease
    The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <mauro.ribeiro@hardkernel.com>

    Bu, paket imzalama açarının müddətinin bitməsi ilə bağlıdır. Açarları yeniləmək üçün yazın:

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

  2. Sistemin ROS quraşdırmaq üçün hazırlanması

    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 quraşdırılması
    Təəssüf ki, ROS-un masaüstü versiyasını quraşdıra bilmədim, ona görə də yalnız əsas paketləri quraşdırdım:

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

    Qeyd 1. Quraşdırma zamanı bəzən xəta baş verdi:

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

    Apt yardım proqramından istifadə edərək önbelleği təmizləməklə düzəldildi:

    sudo apt-get clean; sudo apt-get autoclean

    Qeyd 2. Quraşdırıldıqdan sonra əmrdən istifadə edərək mənbə:

    source /opt/ros/melodic/setup.bash

    işləməyəcək, çünki Biz bash-ı işlətməmişik, ona görə də onu terminalda yazmağa ehtiyac DEYİL.

  4. Lazımi asılılıqların quraşdırılması

    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. Giriş hüquqlarının qurulması
    Biz daxil olduğumuz və əslində yığılan sistemin kökü adından bütün hərəkətləri yerinə yetirdiyimiz üçün ROS yalnız super istifadəçi hüquqları ilə işə salınacaq.
    Sudo olmadan roscore işlətməyə çalışarkən xəta baş verir:

    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'

    Xətanın baş verməsinin qarşısını almaq üçün ROS istifadəçisinin ev kataloquna giriş hüquqlarını rekursiv şəkildə dəyişdirək. Bunu etmək üçün yazırıq:

    sudo rosdep fix-permissions

  6. Rviz və rqt paketlərinin əlavə quraşdırılması

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

Son toxunuşlar

  1. Xrootdan çıxın:
    exit
  2. Şəkli ayırın
    cd ..
    sudo umount mnt/
  3. Sistem şəklini arxivə yığaq
    xz –ckv1 <файл образа>

Hamısı! İndi köməyi ilə balenaetcher Sistem görüntüsünü SD karta yaza, ODROID-C2-yə yerləşdirə bilərsiniz və sizdə olacaq Ubuntu ROS quraşdırılmış!

Referanslar:

  • Bu video Linux-da necə fırıldaq etmək və niyə buna ehtiyacınız olduğuna dair çox kömək etdi:

Videonu çalın


Mənbə: www.habr.com
DDoS mühafizəsi, VPS VDS serverləri olan saytlar üçün etibarlı hostinq alın 🔥 DDoS qorunması, VPS VDS serverləri ilə etibarlı veb sayt hostinqi alın | ProHoster