Skip to main content

سبق 7.3: جانچ، توثیق اور عکاسی (Testing, Validation & Reflection)

اپنے نفاذ (Implementation) کی توثیق کریں

اب اہم مرحلہ آتا ہے: کیا آپ کا نفاذ آپ کی تفصیل (specification) سے میل کھاتا ہے؟

یہ عام جانچ نہیں ہے۔ یہ منظم توثیق (systematic validation) ہے۔ سبق 7.1 سے ہر کامیابی کا معیار (success criterion) ایک ٹیسٹ کیس بن جاتا ہے۔ آپ کی تفصیل میں ہر دعویٰ کی تصدیق کی جاتی ہے۔


توثیق کی جانچ کی فہرست (Validation Checklist)

اپنی تفصیل سے ہر کامیابی کے معیار سے گزریں۔ ہر ایک کے لیے، ایک ٹیسٹ لکھیں۔

ہر معیار کے لیے خاکہ (Template for Each Criterion)

✅ کامیابی کا معیار: [اپنی تفصیل سے کاپی کریں، سبق 7.1]

جانچ کا طریقہ (Test Method):
[آپ اس معیار کو ROS 2 CLI ٹولز سے کیسے جانچیں گے]

متوقع نتیجہ (Expected Outcome):
[اگر تفصیل پوری ہو جائے تو کیا ہونا چاہیے]

حقیقی نتیجہ (Actual Outcome):
[جب آپ نے جانچا تو اصل میں کیا ہوا]

پاس/فیل: [ہاں یا نہیں]

اگر فیل ہوا:
مسئلہ (Issue): [کیا غلط ہوا؟]
بنیادی وجہ (Root Cause): [کیوں؟]
اصلاح لاگو کی گئی (Fix Applied): [آپ نے اسے کیسے ٹھیک کیا؟]
دوبارہ جانچ کا نتیجہ (Re-Test Result): [کیا اصلاح کے بعد یہ پاس ہوا؟]

مثالی توثیق: کچھوے کی نیویگیشن (Example Validation: Turtle Navigation)

آئیے ایک مکمل مثال پر کام کریں۔ فرض کریں آپ کی تفصیل کہتی ہے:

کامیابی کا معیار: "سروس کال کے 2 سیکنڈ کے اندر کچھوا ہدف کی پوزیشن تک پہنچ جاتا ہے"

ٹیسٹ 1: بنیادی نیویگیشن

# ٹرمینل 1: turtlesim شروع کریں
ros2 run turtlesim turtlesim_node

# ٹرمینل 2: اپنا روبوٹ کنٹرولر شروع کریں
ros2 launch robot_controller start_system.launch.py

# ٹرمینل 3: نیویگیشن سروس کو کال کریں (خود وقت ناپیں)
time ros2 service call /navigate_to robot_controller/srv/NavigateTo "{x: 5.0, y: 5.0, theta: 0.0}"

متوقع: سروس 2 سیکنڈ سے کم میں واپس آئے، کچھوا پوزیشن پر چلا جائے

حقیقی نتیجہ (اگر سب کچھ کام کرتا ہے):

real	1.87s
response:
success: true
time_taken: 1.87

پاس: ✅ ہاں (1.87s < 2.0s)


ٹیسٹ 2: متعدد ہدف کالز (Multiple Goal Calls)

# مضبوطی (robustness) جانچنے کے لیے متعدد اہداف کو ترتیب سے کال کریں
for i in {1..5}; do
time ros2 service call /navigate_to robot_controller/srv/NavigateTo "{x: $((RANDOM % 10)), y: $((RANDOM % 10)), theta: 0.0}"
sleep 1
done

متوقع: تمام 5 کالز وقت کی حد کے اندر کامیاب ہوں

پاس/فیل: ✅ یا ❌ (ہر ایک کے لیے response success=true چیک کریں)


ٹیسٹ 3: اسٹیٹس ٹاپک کی فریکوئنسی (Status Topic Frequency)

تفصیل کہتی ہے: "اسٹیٹس ہر 100ms (±10ms رواداری کے ساتھ) شائع ہوتا ہے"

# ٹرمینل 1: موصول ہونے والے ہر پیغام کے ٹائم سٹیمپ ریکارڈ کریں
ros2 topic echo /robot/status | awk '{print NR, strftime("%T"), $0}' > status_log.txt

# اسے 10 سیکنڈ تک چلنے دیں، پھر تجزیہ کریں
# پیغامات شمار کریں، وقفے (intervals) کا حساب لگائیں

متوقع: 10 سیکنڈ میں تقریباً 100 پیغامات (10 Hz)، وقفے ≈ 100ms

تجزیہ:

# موٹا چیک: tail -20 status_log.txt کو باقاعدہ وقفے دکھانے چاہئیں
# زیادہ درست: وقفوں کے اوسط/معیاری انحراف (mean/std) کا حساب لگانے کے لیے پائتھن اسکرپٹ لکھیں

ٹیسٹ 4: رکاوٹ سے نمٹنا (Obstacle Handling)

تفصیل کہتی ہے: "3+ رکاوٹیں پتہ چلنے پر سسٹم چلتا رہتا ہے"

# ٹرمینل 1: /obstacles ٹاپک کی نگرانی کریں اور پتہ لگانے والوں کی تعداد شمار کریں
ros2 topic echo /obstacles | grep -c "ranges:" &
ECHO_PID=$!

# سسٹم کو 30 سیکنڈ تک چلنے دیں
sleep 30
kill $ECHO_PID

# باقاعدگی سے شائع ہونے والے پتہ لگانے والوں کو دیکھنا چاہیے (5 Hz = 30 سیکنڈ میں ~150 پیغامات)
# زیادہ اہم: کیا سسٹم کریش ہوا یا کوئی خرابی آئی؟ (نوڈ کی حیثیت چیک کریں)

ros2 node list # اب بھی تمام 3 نوڈز چلتے ہوئے دکھانے چاہئیں

متوقع:

  • رکاوٹ کے پیغامات باقاعدگی سے شائع ہوں
  • نوڈ لاگز میں کوئی خرابی نہ ہو
  • نیویگیٹر اب بھی سروس کالز کا جواب دے

پاس: ✅ اگر تمام نوڈز اب بھی چل رہے ہیں، کوئی خرابی لاگ نہیں


منظم جانچ کا اسکرپٹ (Systematic Testing Script)

تمام معیاروں کی توثیق کرنے والا ایک ٹیسٹ اسکرپٹ بنائیں:

robot_controller_test.sh:

#!/bin/bash

echo "=== TURTLE CONTROLLER SYSTEM VALIDATION ==="
echo ""

# پاس/فیل کے لیے رنگ کوڈز
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m' # کوئی رنگ نہیں

PASS_COUNT=0
FAIL_COUNT=0

# ٹیسٹ 1: نوڈ کی دستیابی
echo "Test 1: All nodes running..."
NODES=$(ros2 node list)
if echo "$NODES" | grep -q "navigator" && \
echo "$NODES" | grep -q "status_monitor" && \
echo "$NODES" | grep -q "obstacle_detector"; then
echo -e "${GREEN}✅ PASS${NC}: All nodes running"
((PASS_COUNT++))
else
echo -e "${RED}❌ FAIL${NC}: Not all nodes found"
((FAIL_COUNT++))
fi
echo ""

# ٹیسٹ 2: ٹاپکس کی دستیابی
echo "Test 2: Topics published..."
TOPICS=$(ros2 topic list)
if echo "$TOPICS" | grep -q "/robot/status" && \
echo "$TOPICS" | grep -q "/obstacles" && \
echo "$TOPICS" | grep -q "/turtle1/cmd_vel"; then
echo -e "${GREEN}✅ PASS${NC}: All topics available"
((PASS_COUNT++))
else
echo -e "${RED}❌ FAIL${NC}: Expected topics not found"
echo "Available topics: $TOPICS"
((FAIL_COUNT++))
fi
echo ""

# ٹیسٹ 3: سروس کی دستیابی
echo "Test 3: Navigation service..."
SERVICES=$(ros2 service list)
if echo "$SERVICES" | grep -q "/navigate_to"; then
echo -e "${GREEN}✅ PASS${NC}: /navigate_to service available"
((PASS_COUNT++))
else
echo -e "${RED}❌ FAIL${NC}: /navigate_to service not found"
((FAIL_COUNT++))
fi
echo ""

# ٹیسٹ 4: سروس کا جواب دینا
echo "Test 4: Service responds to call..."
RESPONSE=$(timeout 5 ros2 service call /navigate_to robot_controller/srv/NavigateTo "{x: 2.0, y: 2.0, theta: 0.0}" 2>&1)
if echo "$RESPONSE" | grep -q "success:"; then
if echo "$RESPONSE" | grep -q "success: true"; then
echo -e "${GREEN}✅ PASS${NC}: Service succeeded"
((PASS_COUNT++))
else
echo -e "${RED}❌ FAIL${NC}: Service returned success=false"
((FAIL_COUNT++))
fi
else
echo -e "${RED}❌ FAIL${NC}: Service did not respond"
((FAIL_COUNT++))
fi
echo ""

# ٹیسٹ 5: اسٹیٹس ٹاپک کا شائع ہونا
echo "Test 5: Status messages flowing..."
COUNT=$(timeout 3 ros2 topic echo /robot/status 2>/dev/null | grep -c "x:")
if [ "$COUNT" -gt 0 ]; then
echo -e "${GREEN}✅ PASS${NC}: Received $COUNT status messages in 3 seconds"
((PASS_COUNT++))
else
echo -e "${RED}❌ FAIL${NC}: No status messages received"
((FAIL_COUNT++))
fi
echo ""

# خلاصہ
echo "=== VALIDATION SUMMARY ==="
echo -e "Passed: ${GREEN}$PASS_COUNT${NC}"
echo -e "Failed: ${RED}$FAIL_COUNT${NC}"
echo ""

if [ $FAIL_COUNT -eq 0 ]; then
echo -e "${GREEN}✅ ALL TESTS PASSED${NC}"
exit 0
else
echo -e "${RED}❌ SOME TESTS FAILED${NC}"
exit 1
fi

اسے چلائیں:

chmod +x robot_controller_test.sh
./robot_controller_test.sh

انٹیگریشن کے مسائل کو ڈیبگ کرنا (Debugging Integration Issues)

جب ٹیسٹ فیل ہوتے ہیں، تو منظم طریقے سے ڈیبگ کریں:

علامت: سروس کال کا ٹائم آؤٹ ہو جانا

تشخیص:

# کیا نیویگیٹر نوڈ چل رہا ہے؟
ros2 node list | grep navigator

# کیا سروس رجسٹرڈ ہے؟
ros2 service list | grep navigate_to

# کیا نیویگیٹر لاگز میں کوئی خرابی ہے؟
ros2 node info /navigator

اصلاح:

  1. نوڈ بغیر کسی خرابی کے شروع ہوا چیک کریں: ros2 launch robot_controller start_system.launch.py --log-level DEBUG
  2. سروس کال بیک رجسٹرڈ ہے چیک کریں (کوڈ میں لاگنگ شامل کریں)
  3. انحصار (dependencies) چیک کریں: import statements، میسج ٹائپس دستیاب ہیں

علامت: اسٹیٹس ٹاپک شائع نہیں ہو رہا

تشخیص:

# کیا status_monitor نوڈ چل رہا ہے؟
ros2 node list | grep status_monitor

# کیا ٹاپک بنایا گیا ہے؟
ros2 topic list | grep robot/status

# کوڈ میں پبلشر کو صحیح ٹاپک نام استعمال کرتے ہوئے چیک کریں
grep "create_publisher" status_monitor_node.py

اصلاح:

  1. تصدیق کریں کہ کسٹم میسج مرتب (compiled) ہو گیا ہے: colcon build --packages-select robot_controller
  2. ٹائمر کال بیک رجسٹرڈ ہے چیک کریں (لاگنگ شامل کریں)
  3. تصدیق کریں کہ میسج فیلڈز تفصیل سے میل کھاتے ہیں

علامت: کچھوا حرکت نہیں کرتا

تشخیص:

# کیا cmd_vel ٹاپک شائع ہو رہا ہے؟
ros2 topic list | grep cmd_vel

# دستی طور پر پبلشر سے جانچ کریں
ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/Twist "{linear: {x: 0.5}}"

# چیک کریں کہ کچھوا دستی کمانڈ کا جواب دیتا ہے

اصلاح:

  1. تصدیق کریں کہ turtlesim چل رہا ہے: ros2 run turtlesim turtlesim_node
  2. نیویگیٹر نوڈ میں ویلوسٹی میگنیٹیوڈ چیک کریں
  3. یقینی بنائیں کہ ٹاپک کا نام بالکل مماثل ہے: /turtle1/cmd_vel ( /turtle1 کے ساتھ)

عکاسی: سیکھنے کا انجماد (Reflection: Learning Crystallization)

اب جب آپ کا سسٹم بن گیا ہے اور توثیق ہو گئی ہے، تو غور کریں۔ یہ وہ جگہ ہے جہاں سیکھنا سمجھ میں بدل جاتا ہے۔

عکاسی کے سوالات

1. تفصیل کا معیار (Specification Quality)

  • کیا آپ کی تفصیل نے ان تمام نفاذی تفصیلات کا اندازہ لگایا جو آپ نے دریافت کیں؟
  • آپ نے شروع میں کیا چھوٹ دیا؟
  • کیا واضح تھا جس نے نفاذ کو ہموار بنایا؟

مثال جواب: "میں یہ بھول گیا کہ مجھے نیویگیٹر میں اسٹیٹ (state) کو ٹریک کرنے کی ضرورت ہے۔ تفصیل میں یہ نہیں بتایا گیا تھا کہ اسٹیٹ کہاں سے آئے گا۔ حقیقی نظام میں، یہ اوڈومیٹری (odometry) سے آئے گا۔"

2. تخلیق بمقابلہ ترکیب (Composition vs Creation)

  • کیا آپ نے واقعی نیا کوڈ بنایا، یا موجودہ پیٹرن کو ترتیب دیا؟
  • آپ نے باب 4-6 کی کون سی مہارتیں سب سے زیادہ استعمال کیں؟
  • اگر آپ کے پاس زیادہ وقت ہوتا تو آپ کیا دوبارہ ترتیب دیتے؟

مثال جواب: "میں نے زیادہ تر باب 4 کے پبلشر پیٹرن اور باب 6 کے لانچ فائلوں کا استعمال کیا۔ سب سے مشکل حصہ یہ سمجھنا تھا کہ سروس کال بیکس کیسے کام کرتے ہیں۔ میں ایک سے زیادہ بیک وقت کے اہداف کو سنبھالنے کے لیے دوبارہ ترتیب دیتا۔"

3. ڈیزائن کے تبادلے (Design Trade-Offs)

  • آپ نے ٹاپک کے بجائے نیویگیشن کے لیے سروس کا انتخاب کیوں کیا؟
  • آپ نے اسٹیٹس کے لیے سروس کے بجائے ٹاپک کا استعمال کیوں کیا؟
  • اگر آپ کو کم لیٹنسی (latency) کی ضرورت ہوتی تو کیا بدلتا؟

مثال جواب: "سروسز ریکویسٹ/رسپانس ہیں، جو 'ہدف قبول کریں، تکمیل کی حیثیت واپس کریں' سے میل کھاتی ہیں۔ ٹاپکس سٹریمز ہیں، جو 'مسلسل اسٹیٹس اپ ڈیٹس' سے میل کھاتی ہیں۔ اگر ہمیں کم لیٹنسی کی ضرورت ہوتی، تو ہم ROS مڈل ویئر کے بجائے براہ راست DDS اوور UDP استعمال کرتے۔"

4. ناکامی کے نکات (Failure Points)

  • انٹیگریشن کے دوران کیا غلط ہوا؟
  • آپ پہلے کیا جانچتے؟
  • کون سا بنیادی علم غائب تھا؟

مثال جواب: "انٹیگریشن مشکل تھی کیونکہ میں نوڈ لائف سائیکل کو نہیں سمجھتا تھا۔ اگلی بار میں مواصلاتی راستوں (communication paths) کو جلد جانچتا۔ مجھے باب 4 میں rclpy.spin() کے بارے میں بہتر سیکھنا چاہیے تھا۔"

5. نظام کی سوچ بمقابلہ نوڈ کی سوچ (System Thinking vs Node Thinking)

  • باب 4 سے باب 7 تک آپ کا نقطہ نظر کیسے بدلا؟
  • باب 4 میں، آپ نے ایک پبلشر بنایا۔ یہاں آپ نے 3 نوڈز کو مربوط کیا۔ کیا مختلف ہے؟
  • آپ نظام کی ترتیب (system architecture) کو کسی ایسے شخص کو کیسے سمجھائیں گے جس نے ابھی باب 3 مکمل کیا ہے؟

مثال جواب: "باب 4 میں، میں نے سوچا 'میں پبلشر کیسے بناؤں؟' باب 7 میں، میں سوچتا ہوں 'یہ 3 نوڈز ایک دوسرے سے کیسے بات کرتے ہیں؟' فرق انٹرفیسز اور معاہدوں (contracts) کے بارے میں سوچنا ہے، نہ کہ صرف انفرادی اجزاء کے بارے میں۔"

اپنی عکاسی دستاویز کریں

500-800 الفاظ پر محیط 1-2 صفحات کی عکاسی لکھیں جس میں شامل ہوں:

  1. کیا اچھا کام کیا (2-3 مخصوص چیزیں)
  2. کیا توقع سے زیادہ مشکل تھا (2-3 مخصوص چیلنجز)
  3. آپ نے مسائل کیسے حل کیے (ڈیبگنگ کا طریقہ، کس نے مدد کی، وسائل)
  4. آپ کیا مختلف کریں گے (ڈیزائن تبدیلیاں، آرکیٹیکچرل بہتری)
  5. اگلا کیا ہے (ماڈیول 2 کا پیش منظر—آپ کن تصورات کے لیے تیار ہیں؟)

ماڈیول 2 کا پیش منظر: آگے کیا ہے (Module 2 Preview: What's Next)

آپ نے ماڈیول 1 مکمل کر لیا ہے۔ آپ سمجھتے ہیں:

  • ✅ ROS 2 آرکیٹیکچر (نوڈز، ٹاپکس، سروسز)
  • ✅ ملٹی-نوڈ سسٹمز
  • ✅ تفصیل-اول ڈیزائن (Specification-first design)
  • ✅ سسٹم انٹیگریشن اور ڈیبگنگ

ماڈیول 2 اس پر تعمیر کرتا ہے:

1. روبوٹ کی تفصیل (URDF)

کیا: روبوٹ کی ساخت، جوڑوں، لنکس، سینسرز کی وضاحت کرنے والا XML فارمیٹ

کیوں: حقیقت پسندانہ روبوٹ کائنمیٹکس کی سمولیشن کرنے اور اپنے روبوٹ کو بصری طور پر پیش کرنے کے لیے

ماڈیول 1 سے تعلق: آپ نے براہ راست turtlesim کو کمانڈ کیا۔ ماڈیول 2 میں آپ اپنے بیان کردہ روبوٹ کو ایک فزکس سمولیٹر میں کمانڈ کریں گے۔

تہہ (Layer): L1 (URDF نحو کی دستی بنیاد) → L2 (AI تفصیلات بنانے میں مدد کرتا ہے) → L3 (پیرامیٹرائزڈ URDF مہارتیں)

2. فزکس سمولیشن (Gazebo/Unity)

کیا: کشش ثقل، ٹکراؤ، حقیقت پسندانہ سینسر آؤٹ پٹ کے ساتھ مکمل فزکس سمولیشن

کیوں: حقیقی روبوٹ سے پہلے محفوظ جانچ؛ کنٹرول الگورتھم کے لیے حقیقت پسندانہ فیڈ بیک

ماڈیول 1 سے تعلق: ماڈیول 1 میں آپ نے turtlesim (کائنمیٹک سمولیشن) استعمال کیا۔ ماڈیول 2 میں آپ Gazebo (فزکس سمولیشن) استعمال کریں گے۔

تہہ (Layer): L1 (سمولیشن کے فرق کو سمجھنا) → L2 (دنیا بنانا اور روبوٹ کو سپان کرنا) → L3 (دوبارہ استعمال کے قابل دنیا کے ٹیمپلیٹس)

3. ادراک (Perception - سینسرز)

کیا: کیمرہ امیجز، LIDAR پوائنٹ کلاؤڈز، IMU ڈیٹا پر عملدرآمد

کیوں: روبوٹ اپنے ماحول کو دیکھتے اور محسوس کرتے ہیں؛ آپ کو اس ڈیٹا پر عمل کرنے کی ضرورت ہے

ماڈیول 1 سے تعلق: آپ نے رکاوٹوں کو ڈیٹا کے طور پر سمولیٹ کیا۔ ماڈیول 2 میں آپ سمولیشن سے حقیقت پسندانہ سینسر ڈیٹا تیار کریں گے۔

تہہ (Layer): L1 (سینسر ڈیٹا فارمیٹس کو سمجھنا) → L2 (OpenCV، پوائنٹ کلاؤڈ لائبریریوں کے ساتھ پروسیسنگ) → L3 (دوبارہ استعمال کے قابل ادراک پائپ لائنیں)

4. نیویگیشن اسٹیک (Navigation Stack)

کیا: پاتھ پلاننگ، رکاوٹ سے بچاؤ، خود مختار حرکت

کیوں: آپ کا روبوٹ اب صرف کمانڈز کا جواب دینے کے بجائے اہداف تک خود مختار طور پر جا سکتا ہے

ماڈیول 1 سے تعلق: آپ نے دستی طور پر حرکت کی منصوبہ بندی کی۔ ماڈیول 2 میں روبوٹ خود مختار طور پر منصوبہ بناتا اور عمل درآمد کرتا ہے۔

تہہ (Layer): L1 (A*، گراف سرچ کو سمجھنا) → L2 (ROS 2 Nav2 اسٹیک کا استعمال) → L3 (منصوبہ سازوں اور کنٹرولرز کو حسب ضرورت بنانا)

5. سمولیشن سے حقیقت میں منتقلی (Simulation-to-Real Transfer)

کیا: کوڈ کو سمولیشن سے فزیکل روبوٹس پر تعینات کرنا

کیوں: فزیکل روبوٹس مہنگے اور خطرناک ہوتے ہیں؛ آپ پہلے سمولیشن میں توثیق کرتے ہیں

ماڈیول 1 سے تعلق: ماڈیول 1 میں سب کچھ سمولیشن تھا۔ ماڈیول 2 میں آپ Gazebo اور Jetson/فزیکل روبوٹس کے درمیان فرق کو سمجھیں گے۔

تہہ (Layer): L1 (سمولیشن-ٹو-ریل چیلنجز کو سمجھنا) → L2 (کوڈ منتقل کرنا، فرق کو سنبھالنا) → L3 (مضبوط، قابل منتقلی نظام بنانا)


آپ کا ROS 2 سفر

غور کریں کہ آپ کہاں تک پہنچے ہیں:

ماڈیولتوجہآپ کی مہارت
باب 1-2روبوٹکس کو سمجھناتصوراتی بنیاد
باب 3ROS 2 کی کھوجآرکیٹیکچر کی آگاہی
باب 4پبلشر/سبسکرائبرمواصلاتی پیٹرن
باب 5سروسز اور میسجزRPC اور کسٹم ٹائپس
باب 6پیرامیٹرز اور لانچنظام کا انتظام (Orchestration)
باب 7تفصیل اور انٹیگریشنپیشہ ورانہ ترقی
ماڈیول 2روبوٹ کی تفصیل اور سمولیشنحقیقت پسندانہ ماحول
ماڈیول 3AI-روبوٹ انٹیگریشنمجسم ذہانت (Embodied Intelligence)
ماڈیول 4ہیومنائڈ VLAمکمل خود مختار نظام

AI کے ساتھ کوشش کریں (Try With AI)

سیٹ اپ: عکاسی اور منصوبہ بندی کے لیے چیٹ AI استعمال کریں۔

عکاسی کا پرامپٹ:

میں نے ماڈیول 1 کا کیپ اسٹون مکمل کر لیا ہے۔ میرا سسٹم یہ کرتا ہے:
[اپنے 3-نوڈ کنٹرولر کی تفصیل دیں]

یہ توقع سے زیادہ مشکل تھا:
[چیلنجز کی تفصیل دیں]

میں نے جو سیکھا اس پر غور کرتے ہوئے: [1-2 پیراگراف عکاسی کا مسودہ]

کیا یہ عکاسی گہری سیکھ کو ظاہر کرتی ہے، یا میں اہم بصیرت سے محروم ہوں؟
مجھے کیا شامل کرنا چاہیے؟

ماڈیول 2 کی تیاری کا پرامپٹ:

میں نے ماڈیول 1 (ROS 2 بنیادی باتیں) مکمل کر لی ہے۔ ماڈیول 2 (URDF اور Gazebo) کے لیے،
میں سوچ رہا ہوں: سب سے بڑا تصوراتی چھلانگ کیا ہے؟

ماڈیول 1 سے میں یہ سمجھتا ہوں:
[تصورات کی فہرست دیں]

اس پر تعمیر کرنے کے لیے مجھے ماڈیول 2 میں کس چیز پر توجہ دینی چاہیے؟

متوقع نتیجہ:

  • ماڈیول 1 سے سیکھنے کو حاصل کرنے والی عکاسی دستاویز
  • ماڈیول 2 میں کیا آنے والا ہے اس کی وضاحت
  • بیان کردہ کچھوؤں سے بیان کردہ روبوٹس کی طرف بڑھنے کے لیے تیاری

حفاظتی نوٹ: ماڈیول 2 میں، آپ حقیقی فزکس سمولیشن کے ساتھ کام کریں گے۔ Gazebo turtlesim سے کہیں زیادہ حقیقت پسندانہ ہے۔ رفتار اور کنٹرول کے بارے میں آپ کے پرانے مفروضات درست نہیں ہو سکتے۔ جسمانی تعیناتی سے پہلے ان فرقوں کو محفوظ طریقے سے سیکھنے کے لیے سمولیشن کا استعمال کریں۔


توثیق کی تکمیل کی جانچ کی فہرست (Validation Completion Checklist)

کیپ اسٹون کو مکمل سمجھنے سے پہلے:

  • تفصیل لکھی گئی (سبق 7.1) - واضح، غیر مبہم، جانچ کے قابل
  • نظام کا نفاذ کیا گیا (سبق 7.2) - تمام 3+ نوڈز چل رہے ہیں، مربوط ہیں
  • تمام کامیابی کے معیار جانچے گئے (سبق 7.3) - ہر ایک کی منظم توثیق کی گئی
  • کوئی انٹیگریشن ناکامی نہیں - ڈیبگنگ مکمل، نظام مستحکم
  • عکاسی لکھی گئی - 500-800 الفاظ جس میں سیکھنے کے انجماد کا احاطہ کیا گیا ہو
  • نظام لانچ کے قابل ہے - ایک ہی ros2 launch کمانڈ سب کچھ شروع کر دیتی ہے
  • تفصیل نفاذ سے میل کھاتی ہے - ڈیزائن کے فیصلے دستاویز شدہ ہیں
  • آپ اسے سمجھا سکتے ہیں - آرکیٹیکچر، تبادلے، ڈیزائن کی منطق واضح ہے

ماڈیول 1 مکمل

مبارک ہو۔ آپ "ROS 2 کیا ہے؟" سے "میں ملٹی-نوڈ روبوٹ سسٹم کو ڈیزائن اور بنا سکتا ہوں" تک پہنچ گئے ہیں۔

باب 1 کے تصوراتی بنیاد سے لے کر باب 7 کی تفصیل پر مبنی انٹیگریشن تک۔

آپ نے سیکھا:

  • روبوٹ کیسے دیکھتے اور حرکت کرتے ہیں (باب 1-2)
  • ROS 2 مواصلات کو کیسے فعال کرتا ہے (باب 3)
  • کیسے شائع اور سبسکرائب کریں (باب 4)
  • سروسز اور انٹرفیس کیسے بنائیں (باب 5)
  • پیرامیٹرز اور لانچ کے ساتھ نظاموں کو کیسے منظم کریں (باب 6)
  • تفصیلات سے ڈیزائن اور توثیق کیسے کریں (باب 7)

اور آپ نے 4-تہہ تدریسی طریقہ لاگو کیا ہے:

  1. دستی بنیاد: تصورات کو گہرائی سے سمجھنا
  2. AI تعاون: AI شراکت کے ساتھ تعمیر کرنا
  3. انٹیلی جنس ڈیزائن: دوبارہ استعمال کے قابل مہارتیں بنانا
  4. تفصیل پر مبنی انٹیگریشن: بڑے پیمانے پر انتظام

AI کے ساتھ کوشش کریں (آخری کیپ اسٹون پرامپٹ)

سیٹ اپ: پورے ماڈیول کے بارے میں اپنے AI ساتھی سیکھنے والے کے ساتھ ایک آخری گفتگو۔

کیپ اسٹون ترکیب پرامپٹ:

میں نے ROS 2 نصاب کا ماڈیول 1 مکمل کر لیا ہے:
- باب 1: فزیکل AI کیا ہے
- باب 2: روبوٹ سسٹم
- باب 3: ROS 2 سے ملو
- باب 4: آپ کا پہلا ROS 2 کوڈ (پبلشرز/سبسکرائبرز)
- باب 5: مواصلات میں مہارت (سروسز/میسجز)
- باب 6: نظام بنانا (پیرامیٹرز/لانچ)
- باب 7: کیپ اسٹون (تفصیل پر مبنی ملٹی-نوڈ سسٹم)

میں نے کیپ اسٹون کے لیے یہ بنایا ہے:
[اپنے سسٹم کی تفصیل دیں]

پورے ماڈیول پر غور کرتے ہوئے: اصل ربط کیا ہے؟
وہ بنیادی خیال کیا ہے جو تمام 7 ابواب کو جوڑتا ہے؟
یہ مجھے ماڈیول 2 کے لیے کیسے تیار کرتا ہے؟

متوقع ردعمل: آپ کے AI کو سیکھنے کے فن تعمیر کو دیکھنے میں مدد کرنی چاہیے—کہ دستی بنیادیں AI تعاون کو کیسے فعال کرتی ہیں، کہ ترکیب نظام کی سوچ کو کیسے فعال کرتی ہے، کہ تفصیل-اول کیپ اسٹون مہارت ہے۔


آپ ماڈیول 2 کے لیے تیار ہیں۔

روبوٹس زیادہ حقیقت پسندانہ ہو جاتے ہیں۔ نظام زیادہ پیچیدہ ہو جاتے ہیں۔ ذہانت بڑھتی جاتی ہے۔

لیکن بنیادی مہارتیں جو آپ نے سیکھی ہیں—مواصلاتی پیٹرن، نظام کی ترتیب، تفصیل-اول ڈیزائن—وہ بنیاد ہیں جس پر باقی سب کچھ تعمیر ہوتا ہے۔

مجسم AI ڈویلپمنٹ میں خوش آمدید۔


اگلا: ماڈیول 2: Gazebo کے ساتھ روبوٹ کی دنیا بنانا →