ماڈیول 01 · بنیادیں
روبوٹکس چند بنیادی تصورات پر چلتی ہے جو بار بار استعمال ہوتے ہیں۔ ایک روبوٹ 3D میں حرکت کرتا ہے، لہذا آپ کو ویکٹرز اور روٹیشنز کی ضرورت ہوتی ہے۔ اس کے سینسرز شور (noise) والے ہوتے ہیں، لہذا آپ کو امکانیات (probability) کی ضرورت ہوتی ہے۔ اسے ڈیٹا کے ساتھ ماڈلز کو فٹ کرنا اور کنٹرولرز کو ٹیون کرنا ہوتا ہے، لہذا آپ کو گریڈینٹس اور لیسٹ سکوائرز (least squares) کی ضرورت ہوتی ہے۔ اور یہ لینکس پر چلتا ہے، لہذا آپ کو شیل (shell)، Git اور کنٹینرز کی ضرورت ہوتی ہے۔ یہ ماڈیول بالکل وہی چیزیں سکھاتا ہے، اور کوئی ایسی چیز نہیں جو آپ استعمال نہ کریں۔
ہر تصور کو کوڈ کے ساتھ سکھایا گیا ہے جسے آپ چلاتے ہیں، اور تجریدی مثالوں کے بجائے روبوٹ کی مثالیں دی گئی ہیں۔ آپ کیمرہ پوائنٹ کو روبوٹ کے فریم میں روٹیٹ کریں گے، دو شور والے رینج سینسرز کو فیوز کریں گے، اور سمیولیٹڈ lidar ڈیٹا پر ایک لائن فٹ کریں گے۔ اگر آپ نے یہ ریاضی پہلے پڑھی ہے، تو لیبز کو ایک چیک کے طور پر لیں۔ اگر آپ نے نہیں پڑھی، تو آپ ماڈیولز 02 سے 10 پر عمل کرنے کے لیے کافی علم حاصل کر لیں گے۔
اس ماڈیول کے اختتام پر آپ…
- روبوٹکس ڈیٹا جیسے پوز (poses)، پوائنٹ سیٹس اور ٹریجیکٹریز کے لیے صاف، ویکٹرائزڈ NumPy کوڈ لکھ سکتے ہیں۔
- روٹیشن میٹرکسز اور ہوموجینیس ٹرانسفارمز بنا سکتے ہیں، انہیں زنجیر (chain) میں جوڑ سکتے ہیں، اور انہیں صحیح طریقے سے انورٹ (invert) کر سکتے ہیں۔
- وضاحت کر سکتے ہیں کہ کوآٹرنین (quaternion) کیا ہے اور کوآٹرنینز اور روٹیشن میٹرکسز کے درمیان تبدیلیاں کر سکتے ہیں۔
- گوسیئن (Gaussians) کے ساتھ سینسر کے شور کو ماڈل کر سکتے ہیں اور بیز رول (Bayes rule) کے ساتھ عقیدے (belief) کو اپ ڈیٹ کر سکتے ہیں۔
- گریڈینٹس کا حساب لگا سکتے ہیں، گریڈینٹ ڈیسنٹ (gradient descent) چلا سکتے ہیں، اور لیسٹ سکوائرز کے مسائل حل کر سکتے ہیں۔
- لینکس شیل، Git اور ایک Docker کنٹینر میں اعتماد کے ساتھ کام کر سکتے ہیں۔
اسباق
| سبق | آپ کیا بناتے ہیں | وقت |
|---|---|---|
| روبوٹکس کے لیے پائتھن | ایک ویکٹرائزڈ ڈفرنشل-ڈرائیو روبوٹ سمیولیٹر | 40 منٹ |
| لینیئر الجبرا اور ٹرانسفارمز | روبوٹ پر کیمرے کے لیے فریم-چین کیلکولیٹر | 45 منٹ |
| روبوٹس کے لیے امکانیات | ایک سینسر-فیوژن روٹین اور راہداری کا لوکلائزر | 45 منٹ |
| کیلکولس اور آپٹیمائزیشن | گریڈینٹ ڈیسنٹ اور لیسٹ سکوائرز کے ذریعے ایک لائن فٹ | 40 منٹ |
| لینکس، Git اور ٹولنگ | ایک سکرپٹڈ، ورژنڈ ورک سپیس اور ایک ROS 2 کنٹینر | 35 منٹ |
ماڈیول پروجیکٹ
بنیادی ٹول کٹ (The foundations toolkit)۔ اپنے kinemata-workspace ریپوزیٹری میں، تین چھوٹے ماڈیولز کے ساتھ ایک پیکیج فولڈر toolkit/ بنائیں: transforms.py (روٹیشن میٹرکسز، ہوموجینیس ٹرانسفارمز، کمپوزیشن اور انورژن)، fusion.py (گوسیئن فیوژن اور ہسٹوگرام فلٹر)، اور fit.py (لیسٹ سکوائرز اور گریڈینٹ ڈیسنٹ کے ذریعے لائن فٹنگ)۔ کم از کم چھ اسرشنز (assertions) کے ساتھ ایک test_toolkit.py اور ایک مختصر README.md شامل کریں۔ واضح پیغامات کے ساتھ چھوٹے قدموں میں اپنے کام کو کمیٹ (commit) کریں۔ آپ ماڈیولز 02 اور 05 میں اس ٹول کٹ کا دوبارہ استعمال کریں گے۔