ProHoster > Blog > İdarə > Tək lövhə üçün Ubuntu IMG görüntüsündə ROS quraşdırılması
Tək lövhə üçün Ubuntu IMG görüntüsündə ROS quraşdırılması
Giriş
Ötən gün dissertasiyam üzərində işləyərkən ROS artıq quraşdırılmış bir lövhəli platforma üçün Ubuntu görüntüsü yaratmaq ehtiyacı ilə üzləşdim (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.
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.
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, yazının sonundakı videoya keçid) və onun imkanlarını nəzərə alaraq ondan istifadə etmək qərara alınıb. Sonra, Ubuntu-nu robototexnika tərtibatçıları üçün fərdiləşdirməklə bağlı xüsusi halımı təsvir edəcəyəm.
Başlanğıc:
Bütün təsvirin modifikasiyası prosesi (balenaEtcher istifadə edərək SD karta yazmaq istisna olmaqla) Ubuntu 18.04 əməliyyat sistemində həyata keçirilib.
Montajını dəyişdirdiyim əməliyyat sistemi Ubuntu 18.04.3 mate desktop versiyasıdır.
Yığılmış sistemin işləməli olduğu maşın ODROID-C2-dir.
Təsvirin hazırlanması
ODROID üçün Ubuntu şəklini buradan endirin rəsmi saytı
Arxivin qablaşdırılması
unxz –kv <файл архива с образом>
Şəkli quraşdıracağımız bir kataloq yaradın
mkdir mnt
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):
Qeyd edək. Fayl sisteminin yerləşdiyi yerə yardım proqramından istifadə etməklə də baxmaq olar ayrıldı.
Şə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.
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.
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) <[email protected]>
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:
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: