Башка күнү, менин диссертациямдын үстүндө иштеп жатып, мен ROS орнотулган бир такта платформасы үчүн Ubuntu сүрөтүн түзүү зарылдыгына туш болдум (Robot Operating System - роботтун операциялык системасы). Кыскасы, диплом роботтор тобун башкарууга арналган. Роботтор эки дөңгөлөк жана үч аралыкты өлчөөчү менен жабдылган. Бардык нерсе ODROID-C2 тактасында иштеген ROS тарабынан башкарылат.
Robot Ladybug. Сүрөттүн сапаты начар болгону үчүн кечирим сурайбыз
Ар бир роботко ROS орнотууга убакыт да, каалоо да жок болчу, ошондуктан ROS орнотулган системанын сүрөтүнө муктаждык бар болчу. Интернетти карап чыккандан кийин, мен муну кантип жасоонун бир нече ыкмаларын таптым.
Жалпысынан табылган бардык чечимдерди төмөнкү топторго бөлүүгө болот.
Биринчи топтун чечимдерин колдонуу эң жөнөкөй жана эң жагымдуу вариант болуп көрүндү, бирок мен эч качан ODROID үчүн жандуу системанын сүрөтүн түзө алган жокмун. Экинчи топтун чечимдери да кирүү босогосунан улам мага туура келген жок. Колдо болгон окуу куралдарына ылайык кол менен чогултуу да ылайыктуу эмес, анткени... Менин сүрөтүмдө кысылган файл системасы болгон эмес.
Натыйжада мен chroot жөнүндө видеону таптым (chroot - тамырды өзгөртүү, посттун аягындагы видеого шилтеме) жана анын мүмкүнчүлүктөрү, аны колдонуу чечими кабыл алынды. Андан кийин, мен робототехниканы иштеп чыгуучулар үчүн Ubuntu ыңгайлаштыруу боюнча өзүмдүн өзгөчө окуямды сүрөттөп берем.
Баштапкы маалыматтар:
Сүрөттү өзгөртүү процесси (balenaEtcher аркылуу SD картага жазуудан башка) Ubuntu 18.04 операциялык тутумунда аткарылган.
Мен монтаждаган операциялык система Ubuntu 18.04.3 mate рабочий версиясы.
Чогулган система иштеши керек болгон машина ODROID-C2.
Сүрөттү даярдоо
ODROID үчүн Ubuntu сүрөтүн жүктөп алыңыз расмий сайты
Архивди ачуу
unxz –kv <файл архива с образом>
Сүрөттү орното турган каталогду түзүңүз
mkdir mnt
Файл системасы жайгашкан бөлүмдү аныктаңыз
file <файл образа>
Биз ext2, ext3 же ext4 форматындагы файл системасы менен бөлүктү издеп жатабыз. Бизге бөлүмдүн башталышынын дареги керек (экранда кызыл менен белгиленген):
Эскертүү. Файл системасынын жайгашкан жерин утилитанын жардамы менен да көрүүгө болот бөлүп.
Сүрөттү орнотуу
sudo mount -o loop,offset=$((264192*512)) <файл с образом> mnt/
Бизге керек болгон бөлүм 264192 блоктон башталат (сиздин сандарыңыз ар кандай болушу мүмкүн), бир блоктун көлөмү 512 байт, аларды байт менен чегинүү үчүн көбөйтүңүз.
Орнотулган тутуму бар папкага өтүп, ага илинип туруңуз
cd mnt/
sudo chroot ~/livecd/mnt/ bin/sh
~/livecd/mnt — орнотулган система менен каталогго толук жол бин/ш - кабык (ошондой эле алмаштырылышы мүмкүн bin/bash)
Эми сиз керектүү пакеттерди жана тиркемелерди орнотуп баштасаңыз болот.
ROS орнотулууда
Мен ылайык ROS (ROS Melodic) акыркы нускасын орноткон расмий окуу куралы.
Пакеттердин тизмесин жаңылоо
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]>
Бул пакетке кол коюу ачкычынын мөөнөтү бүткөндүгүнө байланыштуу. Ачкычтарды жаңыртуу үчүн, териңиз:
Кирүү укуктарын орнотуу
Биз киргендиктен жана чындыгында чогултулуп жаткан системанын тамырынын атынан бардык аракеттерди аткаргандыктан, 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 колдонуучунун үй каталогуна кирүү укуктарын рекурсивдүү түрдө өзгөртөлү. Бул үчүн биз теребиз: