سنگل بورڊ لاءِ Ubuntu IMG تصوير ۾ ROS انسٽال ڪرڻ

تعارف

ٻئي ڏينهن، منهنجي مقالي تي ڪم ڪرڻ دوران، مون کي هڪ واحد بورڊ پليٽ فارم لاءِ Ubuntu تصوير ٺاهڻ جي ضرورت هئي جنهن سان ROS اڳ ۾ ئي نصب ٿيل آهي (روبوٽ آپريٽنگ سسٽم - روبوٽ آپريٽنگ سسٽم). مختصر ۾، ڊپلوما روبوٽس جي هڪ گروپ کي منظم ڪرڻ لاء وقف آهي. روبوٽ ٻن ڦيڻن ۽ ٽن رينج فائينرز سان ليس هوندا آهن. سڄي شيء ROS کان ڪنٽرول آهي، جيڪو ODROID-C2 بورڊ تي هلندو آهي.

سنگل بورڊ لاءِ Ubuntu IMG تصوير ۾ ROS انسٽال ڪرڻ
روبوٽ ليڊي بگ. ناقص تصوير جي معيار لاء معذرت

هر روبوٽ تي انفرادي طور تي ROS کي انسٽال ڪرڻ لاءِ نه ئي وقت هو ۽ نه ئي خواهش هئي، ۽ ان ڪري هڪ سسٽم جي تصوير جي ضرورت هئي جنهن ۾ ROS اڳ ۾ ئي نصب ٿيل هجي. انٽرنيٽ کي براؤز ڪرڻ کان پوء، مون ڪيترن ئي طريقن کي ڳولي ورتو ته اهو ڪيئن ٿي سگهي ٿو.
عام طور تي، سڀ حل مليا هيٺين گروپن ۾ تقسيم ڪري سگهجي ٿو.

  1. پروگرام جيڪي تيار ڪيل ۽ ترتيب ڏنل سسٽم مان هڪ تصوير ٺاهي (ڊسٽروشيئر اوبنٽو امجر, لينڪس لائيو ڪٽ, لينڪس ريسپين، سسٽم بيڪ، وغيره)
  2. پروجيڪٽ جيڪي توهان کي پنهنجي تصوير ٺاهڻ جي اجازت ڏين ٿا (يوٽو, لينڪس شروع کان)
  3. تصوير پاڻ کي گڏ ڪرڻ (لائيو سي ڊي حسب ضرورت и روسي برابر، هڪ وڌيڪ Habré تي مضمون)

پهرين گروپ مان حل استعمال ڪرڻ تمام آسان ۽ پرڪشش آپشن لڳي رهيو هو، پر مان ڪڏهن به ODROID لاءِ لائيو سسٽم جي تصوير ٺاهي نه سگهيس. ٻئي گروپ جا حل پڻ مون کي مناسب نه هئا ڇاڪاڻ ته ڪافي اعلي داخلا حد. دستياب سبق مطابق دستي اسيمبلي پڻ مناسب نه هئي، ڇاڪاڻ ته ... منهنجي تصوير ۾ ڪو ڪمپريس ٿيل فائيل سسٽم نه هو.
نتيجي طور، مون کي chroot (chroot - روٽ تبديل ڪريو، پوسٽ جي آخر ۾ وڊيو سان لنڪ) ۽ ان جي صلاحيتون، ان کي استعمال ڪرڻ جو فيصلو ڪيو ويو. اڳيون، مان روبوٽڪس ڊولپرز لاءِ Ubuntu کي ترتيب ڏيڻ جو منهنجو خاص ڪيس بيان ڪندس.

شروعاتي ڊيٽا:

  • سموري تصويري ترميمي عمل (سواءِ balenaEtcher استعمال ڪندي SD ڪارڊ تي لکڻ جي) Ubuntu 18.04 آپريٽنگ سسٽم تي ڪيو ويو.
  • آپريٽنگ سسٽم جنهن جي اسيمبلي مون تبديل ڪئي آهي Ubuntu 18.04.3 ميٽ ڊيسڪ ٽاپ ورزن.
  • مشين جنهن تي گڏ ٿيل سسٽم ڪم ڪرڻ گهرجي 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. نصب ٿيل سسٽم سان فولڊر ڏانهن وڃو ۽ ان ۾ hangout ڪريو

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

    ~/livecd/mnt - ڊاريڪٽري ڏانهن مڪمل رستو نصب ٿيل سسٽم سان
    بن/ش - شيل (پڻ تبديل ڪري سگھجي ٿو بن/بش)
    ھاڻي توھان شروع ڪري سگھوٿا انسٽال ڪرڻ ضروري پيڪيجز ۽ ايپليڪيشنون.

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

    اهو ڪم نه ڪندو، ڇاڪاڻ ته اسان بيش نه هلايو، تنهنڪري ان کي ٽرمينل ۾ ٽائپ ڪرڻ جي ضرورت ناهي.

  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 صرف سپر يوزر جي حقن سان شروع ڪيو ويندو.
    جڏهن 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 صارف جي گهر ڊاريڪٽري تائين رسائي جي حقن کي بار بار تبديل ڪريون. ائين ڪرڻ لاءِ اسان ٽائيپ ڪريون ٿا:

    sudo rosdep fix-permissions

  6. rviz ۽ rqt پيڪيجز جي اضافي تنصيب

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

آخري لمس

  1. ڪروٽ نڪرڻ:
    exit
  2. تصوير کي هٽايو
    cd ..
    sudo umount mnt/
  3. اچو ته سسٽم جي تصوير کي آرڪائيو ۾ پيڪ ڪريون
    xz –ckv1 <файл образа>

سڀ! ھاڻي مدد سان بيلينا ايچر توهان سسٽم جي تصوير کي SD ڪارڊ تي ساڙي سگهو ٿا، ان کي ODROID-C2 ۾ داخل ڪريو، ۽ توهان وٽ هوندو Ubuntu سان ROS نصب ٿيل!

حوالا:

  • هي وڊيو تمام گهڻي مدد ڪئي ته لينڪس ۾ ڪيئن ٺڳي ڪجي ۽ توهان کي ان جي ضرورت ڇو آهي:



جو ذريعو: www.habr.com

تبصرو شامل ڪريو