ٻئي ڏينهن، منهنجي مقالي تي ڪم ڪرڻ دوران، مون کي هڪ واحد بورڊ پليٽ فارم لاءِ Ubuntu تصوير ٺاهڻ جي ضرورت هئي جنهن سان ROS اڳ ۾ ئي نصب ٿيل آهي (روبوٽ آپريٽنگ سسٽم - روبوٽ آپريٽنگ سسٽم). مختصر ۾، ڊپلوما روبوٽس جي هڪ گروپ کي منظم ڪرڻ لاء وقف آهي. روبوٽ ٻن ڦيڻن ۽ ٽن رينج فائينرز سان ليس هوندا آهن. سڄي شيء ROS کان ڪنٽرول آهي، جيڪو ODROID-C2 بورڊ تي هلندو آهي.
روبوٽ ليڊي بگ. ناقص تصوير جي معيار لاء معذرت
هر روبوٽ تي انفرادي طور تي ROS کي انسٽال ڪرڻ لاءِ نه ئي وقت هو ۽ نه ئي خواهش هئي، ۽ ان ڪري هڪ سسٽم جي تصوير جي ضرورت هئي جنهن ۾ ROS اڳ ۾ ئي نصب ٿيل هجي. انٽرنيٽ کي براؤز ڪرڻ کان پوء، مون ڪيترن ئي طريقن کي ڳولي ورتو ته اهو ڪيئن ٿي سگهي ٿو.
عام طور تي، سڀ حل مليا هيٺين گروپن ۾ تقسيم ڪري سگهجي ٿو.
پهرين گروپ مان حل استعمال ڪرڻ تمام آسان ۽ پرڪشش آپشن لڳي رهيو هو، پر مان ڪڏهن به ODROID لاءِ لائيو سسٽم جي تصوير ٺاهي نه سگهيس. ٻئي گروپ جا حل پڻ مون کي مناسب نه هئا ڇاڪاڻ ته ڪافي اعلي داخلا حد. دستياب سبق مطابق دستي اسيمبلي پڻ مناسب نه هئي، ڇاڪاڻ ته ... منهنجي تصوير ۾ ڪو ڪمپريس ٿيل فائيل سسٽم نه هو.
نتيجي طور، مون کي chroot (chroot - روٽ تبديل ڪريو، پوسٽ جي آخر ۾ وڊيو سان لنڪ) ۽ ان جي صلاحيتون، ان کي استعمال ڪرڻ جو فيصلو ڪيو ويو. اڳيون، مان روبوٽڪس ڊولپرز لاءِ Ubuntu کي ترتيب ڏيڻ جو منهنجو خاص ڪيس بيان ڪندس.
شروعاتي ڊيٽا:
سموري تصويري ترميمي عمل (سواءِ balenaEtcher استعمال ڪندي SD ڪارڊ تي لکڻ جي) Ubuntu 18.04 آپريٽنگ سسٽم تي ڪيو ويو.
هڪ ڊاريڪٽري ٺاهيو جنهن ۾ اسان تصوير کي نصب ڪنداسين
mkdir mnt
ورهاڱي جو اندازو لڳايو جنهن تي فائيل سسٽم واقع آهي
file <файл образа>
اسان ext2، ext3 يا ext4 فارميٽ ۾ فائل سسٽم سان ورهاڱي جي ڳولا ڪري رهيا آهيون. اسان کي سيڪشن جي شروعات جي ايڊريس جي ضرورت آهي (اسڪرين تي ڳاڙهي ۾ نمايان ٿيل):
نوٽ: فائل سسٽم جو مقام پڻ استعمال ڪندي ڏسي سگھجي ٿو حصو ورتو.
تصوير لڳائڻ
sudo mount -o loop,offset=$((264192*512)) <файл с образом> mnt/
جنهن حصي کي اسان کي ضرورت آهي اهو بلاڪ 264192 سان شروع ٿئي ٿو (توهان جا نمبر مختلف ٿي سگهن ٿا)، هڪ بلاڪ جي سائيز 512 بائيٽ آهي، ان کي ضرب ڪريو بائيٽس ۾ انڊينٽيشن حاصل ڪرڻ لاءِ.
نصب ٿيل سسٽم سان فولڊر ڏانهن وڃو ۽ ان ۾ hangout ڪريو
رسائي جي حقن کي ترتيب ڏيڻ
جيئن ته اسان لاگ ان آهيون ۽، حقيقت ۾، گڏ ڪيل سسٽم جي روٽ جي طرفان سڀني عملن کي انجام ڏيو، 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 صارف جي گهر ڊاريڪٽري تائين رسائي جي حقن کي بار بار تبديل ڪريون. ائين ڪرڻ لاءِ اسان ٽائيپ ڪريون ٿا: