سنگل بورڈ کے لیے Ubuntu IMG امیج میں ROS انسٹال کرنا
تعارف
دوسرے دن، اپنے تھیسس پر کام کرتے ہوئے، مجھے پہلے سے نصب ROS کے ساتھ سنگل بورڈ پلیٹ فارم کے لیے Ubuntu امیج بنانے کی ضرورت کا سامنا کرنا پڑا (روبوٹ آپریٹنگ سسٹم - روبوٹ آپریٹنگ سسٹم)۔ مختصر میں، ڈپلومہ روبوٹ کے ایک گروپ کو منظم کرنے کے لیے وقف ہے۔ روبوٹ دو پہیوں اور تین رینج فائنڈرز سے لیس ہیں۔ پوری چیز کو ROS سے کنٹرول کیا جاتا ہے، جو ODROID-C2 بورڈ پر چلتا ہے۔
روبوٹ لیڈی بگ۔ ناقص تصویر کے معیار کے لیے معذرت
ہر روبوٹ پر انفرادی طور پر ROS انسٹال کرنے کا نہ تو وقت تھا اور نہ ہی خواہش، اور اس لیے پہلے سے نصب ROS کے ساتھ سسٹم امیج کی ضرورت تھی۔ انٹرنیٹ براؤز کرنے کے بعد، میں نے کئی طریقے تلاش کیے کہ یہ کیسے کیا جا سکتا ہے۔
عام طور پر، پائے جانے والے تمام حل کو درج ذیل گروپوں میں تقسیم کیا جا سکتا ہے۔
پہلے گروپ کے حل کا استعمال سب سے آسان اور پرکشش آپشن لگتا تھا، لیکن میں کبھی بھی ODROID کے لیے لائیو سسٹم امیج بنانے کے قابل نہیں تھا۔ دوسرے گروپ کے حل بھی کافی زیادہ داخلے کی حد کی وجہ سے میرے مطابق نہیں تھے۔ دستیاب ٹیوٹوریلز کے مطابق دستی اسمبلی بھی مناسب نہیں تھی، کیونکہ... میری تصویر میں کمپریسڈ فائل سسٹم نہیں تھا۔
نتیجے کے طور پر، میں نے chroot (chroot - جڑ کو تبدیل کریں۔، پوسٹ کے آخر میں ویڈیو کا لنک) اور اس کی صلاحیتوں کو استعمال کرنے کا فیصلہ کیا گیا۔ اگلا، میں روبوٹکس ڈویلپرز کے لیے Ubuntu کو حسب ضرورت بنانے کے اپنے خاص معاملے کی وضاحت کروں گا۔
ماخذ ڈیٹا:
تصویر میں ترمیم کا پورا عمل (سوائے balenaEtcher کا استعمال کرتے ہوئے SD کارڈ پر لکھنے کے) Ubuntu 18.04 آپریٹنگ سسٹم پر انجام دیا گیا تھا۔
آپریٹنگ سسٹم جس کی اسمبلی میں میں نے ترمیم کی ہے وہ اوبنٹو 18.04.3 میٹ ڈیسک ٹاپ ورژن ہے۔
وہ مشین جس پر اسمبل سسٹم کو کام کرنا چاہیے وہ ہے ODROID-C2۔
ایک ڈائریکٹری بنائیں جس میں ہم امیج کو ماؤنٹ کریں گے۔
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 صارف کی ہوم ڈائریکٹری تک رسائی کے حقوق کو بار بار تبدیل کریں۔ ایسا کرنے کے لیے ہم ٹائپ کریں:
سب! اب مدد کے ساتھ balenaetcher آپ سسٹم کی تصویر کو SD کارڈ میں جلا سکتے ہیں، اسے ODROID-C2 میں داخل کر سکتے ہیں، اور آپ کے پاس ROS کے ساتھ Ubuntu انسٹال ہوگا!
حوالہ جات:
اس ویڈیو نے لینکس میں دھوکہ دینے کا طریقہ اور آپ کو اس کی ضرورت کیوں ہے اس میں بہت مدد کی: