Муқаддима
Рӯзи дигар, ҳангоми кор дар рисолаи худ, ман бо зарурати эҷод кардани тасвири Ubuntu барои платформаи як тахта бо ROS аллакай насбшуда дучор шудам (Robot Operating System - системаи оператсионии робот). Хулоса, диплом ба идоракунии як гурӯҳи роботҳо бахшида шудааст. Роботхо бо ду чарх ва се асбоби масофаи муайянкунанда чихозонида шудаанд. Ҳама чиз аз ROS идора карда мешавад, ки дар тахтаи ODROID-C2 кор мекунад.
Robot Ladybug. Бубахшед барои сифати пасти акс
На вақт ва на хоҳиши насб кардани ROS дар ҳар як робот ба таври инфиродӣ вуҷуд дошт ва аз ин рӯ, зарурати тасвири система бо ROS аллакай насбшуда вуҷуд дошт. Пас аз дидани Интернет, ман якчанд равишҳоро дар бораи он ки чӣ гуна ин корро кардан мумкин аст, пайдо кардам.
Умуман, ҳамаи роҳҳои ҳалли пайдошударо ба гурӯҳҳои зерин тақсим кардан мумкин аст.
- Барномаҳое, ки аз системаи омода ва танзимшуда тасвир эҷод мекунанд (
Ubuntu Imagerро тақсим кунед ,маҷмӯаи зинда linux ,linux respin , бозгашти система ва ғайра) - Лоиҳаҳое, ки ба шумо имкон медиҳанд симои шахсии худро эҷод кунед (
йокто ,linux аз сифр ) - Ҷамъоварии тасвири худ (
мутобиқсозии CD зинда имуодили русӣ Плюс »мақола дар бораи Habre )
Истифодаи ҳалли гурӯҳи аввал соддатарин ва ҷолибтарин вариант ба назар мерасид, аммо ман ҳеҷ гоҳ натавонистам тасвири зиндаи системаро барои ODROID эҷод кунам. Қарорҳои гурӯҳи дуюм низ ба ман мувофиқ набуданд, зеро ҳадди ниҳоии воридшавӣ хеле баланд аст. Монтажи дастӣ аз рӯи дастурҳои дастрас низ мувофиқ набуд, зеро... Тасвири ман системаи файлии фишурда надошт.
Дар натиҷа, ман як видео дар бораи chroot (chroot - тағир додани реша, истинод ба видео дар охири пост) ва имкониятҳои он, қарор шуд, ки аз он истифода шавад. Минбаъд, ман ҳолати махсуси худро оид ба танзими Ubuntu барои таҳиягарони робототехника тавсиф мекунам.
Маълумоти аввалия:
- Тамоми раванди тағир додани тасвир (ба истиснои навиштан ба корти SD бо истифода аз balenaEtcher) дар системаи оператсионии Ubuntu 18.04 анҷом дода шуд.
- Системаи оператсионӣ, ки маҷмӯаи онро ман тағир додам, версияи мизи кории Ubuntu 18.04.3 mate мебошад.
- Мошине, ки дар он системаи васлшуда бояд кор кунад ODROID-C2.
Омода кардани тасвир
-
Тасвири Ubuntu-ро барои ODROID аз
сомонаи расмии -
Кушодани архив
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]>
Ин ба он вобаста аст, ки мӯҳлати калиди имзои баста ба охир расидааст. Барои навсозии калидҳо, нависед:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AB19BAC9
-
Омода кардани система барои насби 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
-
Насб кардани 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-ро иҷро накардаем, аз ин рӯ онро дар терминал чоп кардан лозим нест.
-
Насб кардани вобастагии зарурӣ
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init rosdep update
-
Муқаррар кардани ҳуқуқҳои дастрасӣ
Азбаски мо ворид шудаем ва воқеан ҳама амалҳоро аз номи решаи системаи ҷамъшуда иҷро мекунем, 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
-
Насби иловагии бастаҳои rviz ва rqt
sudo apt-get install ros-melodic-rqt ros-melodic-rviz
Лахзаҳои ниҳоӣ
- Хуруҷ аз chroot:
exit
- Тасвирро ҷудо кунед
cd .. sudo umount mnt/
- Биёед тасвири системаро ба архив гузорем
xz –ckv1 <файл образа>
Ҳама! Акнун бо ёрии
Истинодҳо:
- Ин видео дар бораи чӣ гуна фиреб кардан дар Linux ва чаро ба шумо он лозим аст, кӯмак кард:
Манбаъ: will.com