Skip to main content

سبق 11.4: سینسر ڈیبگنگ اور ویژولائزیشن (Sensor Debugging and Visualization)

سینسر ڈیبگنگ کیوں اہم ہے؟

آپ نے اپنے روبوٹ میں کیمرے، LIDAR، اور IMU شامل کر دیے ہیں۔ سب کچھ لانچ ہو جاتا ہے۔ لیکن پھر:

  • آپ کا کیمرہ تصاویر پبلش کر رہا ہے، لیکن وہ سب سیاہ ہیں
  • آپ کا LIDAR کچھ بھی ڈیٹیکٹ نہیں کر رہا حالانکہ دیواریں 2 میٹر دور ہیں
  • آپ کے IMU کی سمت مسلسل سائیڈ ویز ڈرفٹ ہو رہی ہے

پیشہ ور روبوٹکس میں، سینسر کے مسائل کو ڈیبگ کرنا ایک بنیادی مہارت ہے۔ سینسر خاموشی سے (غلط ڈیٹا پبلش کر کے) یا شور کے ساتھ (بالکل بھی پبلش نہ کر کے) فیل ہو جاتے ہیں۔ آپ کو مسائل کی تشخیص کے لیے منظم طریقوں اور جو واقعی ہو رہا ہے اسے دیکھنے کے لیے ٹولز کی ضرورت ہوتی ہے۔

یہ سبق آپ کو ڈیبگنگ کا طریقہ کار اور مسائل کے حل کے لیے AI سے مدد لینا سکھائے گا۔


سینسر ڈیبگنگ کا ورک فلو

جب کوئی سینسر خراب کارکردگی دکھائے، تو یہ منظم ورک فلو استعمال کریں:

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

ٹاپکس کی موجودگی چیک کریں:

ros2 topic list | grep -E "camera|lidar|imu"

اگر ٹاپکس موجود نہیں ہیں:

  • سینسر SDF فائل میں نہیں ہے
  • پلگ ان کا فائل نام غلط ہے (libgazebo_ros_camera.so میں ٹائپو)
  • Gazebo پلگ ان کا راستہ سیٹ نہیں ہے: export LD_LIBRARY_PATH=/opt/ros/humble/lib:$LD_LIBRARY_PATH
  • Gazebo کو ROS 2 سپورٹ کے ساتھ نہیں بنایا گیا

حل: SDF کی تصدیق کریں، پلگ ان کے فائل نام کی جانچ کریں، انوائرنمنٹ ویری ایبلز کی تصدیق کریں۔

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

ٹاپک کی فریکوئنسی چیک کریں:

ros2 topic bw /camera/image_raw

آؤٹ پٹ دکھاتا ہے:

Subscribed to [/camera/image_raw]
average: 300.00B, mean: 300.00B, min: 300B, max: 300B
Window size: 1000 messages

اگر فریکوئنسی صفر ہے:

  • سینسر موجود ہے لیکن ڈیٹا پبلش نہیں کر رہا
  • ممکنہ وجہ: کنفیگریشن کی غلطی (update_rate = 0, always_on = false)

اگر فریکوئنسی متوقع سے کم ہے:

  • رینڈرنگ کا رکاوٹ (منظر بہت پیچیدہ ہے، ریزولوشن بہت زیادہ ہے)
  • GPU کا زیادہ استعمال (متعدد بھاری سینسر، تیز فریم ریٹ)

حل: ریزولوشن/update_rate کم کریں، منظر کو سادہ بنائیں، کم درستگی والی رینڈرنگ استعمال کریں۔

مرحلہ 3: اصل سینسر ڈیٹا کا معائنہ کریں

کیمروں کے لیے:

ros2 topic echo /camera/image_raw --once

width, height, step, اور data سائز چیک کریں۔ اگر سب کچھ سیاہ ہے:

width: 640
height: 480
step: 1920
data: [0, 0, 0, 0, 0, ...] # سب صفر = سیاہ تصویر

LIDAR کے لیے:

ros2 topic echo /lidar/scan --once

ranges[] ویلیوز چیک کریں۔ اگر سب صفر ہیں یا سب inf ہیں:

ranges: [0.0, 0.0, 0.0, ...]  # کوئی ڈیٹیکشن نہیں
# یا
ranges: [inf, inf, inf, ...] # رینج سے باہر

IMU کے لیے:

ros2 topic echo /imu --once

linear_acceleration اور angular_velocity چیک کریں۔ آپ کو یہ دیکھنا چاہیے:

linear_acceleration: {x: small, y: small, z: 9.81}  # z میں کشش ثقل (Gravity)
angular_velocity: {x: small, y: small, z: small}

اگر سب صفر ہیں:

linear_acceleration: {x: 0.0, y: 0.0, z: 0.0}  # غلط!

یہ کنفیگریشن کے مسئلے کی نشاندہی کرتا ہے (سینسر فریم اپ ڈیٹ نہیں ہو رہا)۔

مرحلہ 4: Gazebo GUI میں ویژولائز کریں

کیمروں کے لیے:

  • Plugins پر کلک کریں → Camera
  • لائیو ویو دیکھیں
  • اگر سیاہ ہے: کیمرہ غلط سمت میں ہے یا دور کا کاٹنے کا فاصلہ (far clip) بہت قریب ہے

LIDAR کے لیے:

  • RViz لانچ کریں: rviz2
  • PointCloud2 ڈسپلے شامل کریں، /lidar/points منتخب کریں
  • 3D پوائنٹ کلاؤڈ دیکھیں
  • اگر کوئی پوائنٹ نہیں ہیں: رینج بہت کم ہے، بیم کسی چیز سے نہیں ٹکرا رہا

IMU کے لیے:

  • براہ راست ویژولائزیشن نہیں (3D گردش دیکھنا مشکل ہے)
  • وقت کے ساتھ ایکسلریشن/ویلاسٹی پلاٹ کرنے کے لیے RViz استعمال کریں

عام سینسر مسائل اور تشخیص

مسئلہ 1: کیمرے کا آؤٹ پٹ مکمل طور پر سیاہ

علامات:

کیمرہ پبلش کر رہا ہے (/camera/image_raw ٹاپک موجود ہے)
لیکن تصاویر سب صفر ہیں (سیاہ پکسلز)

ممکنہ وجوہات:

  1. کیمرہ غلط سمت میں ہے

    • جوائنٹ کی اصل پوزیشن چیک کریں: <origin xyz="..." rpy="...">
    • rpy کو آگے کی طرف ہونا چاہیے (0, 0, 0) یا اصل ماؤنٹنگ کے مطابق ایڈجسٹ کیا جانا چاہیے
    • حل: جوائنٹ کی سمت کو ایڈجسٹ کریں
  2. دور کا کاٹنے کا طیارہ (Far clip plane) بہت قریب ہے

    • چیک کریں: <far>1</far> (صرف 1 میٹر دیکھتا ہے)
    • منظر 1 میٹر سے آگے ہے
    • حل: بڑھائیں: <far>100</far>
  3. قریب کا کاٹنے کا طیارہ (Near clip plane) بہت دور ہے

    • چیک کریں: <near>5</near> (5 میٹر سے قریب کچھ بھی نہیں دیکھتا)
    • منظر میں ہر چیز قریب ہے
    • حل: کم کریں: <near>0.1</near>
  4. منظر میں کوئی روشنی نہیں ہے

    • Gazebo منظر تاریک ہے (کوئی سورج نہیں، کوئی روشنی نہیں)
    • حل: Gazebo GUI میں روشنی شامل کریں (Light آئیکن پر کلک کریں)
  5. کیمرہ ماڈل غلط ہے

    • سینسر کی قسم camera کے بجائے camera_depth ہے
    • حل: <sensor type="camera"> استعمال کریں

تشخیص کا ورک فلو:

کیمرہ مکمل سیاہ ہے؟
├─ ٹاپک پبلشنگ چیک کریں (مرحلہ 1-2)
├─ امیج ڈیٹا کا سائز چیک کریں (RGB کے لیے 640*480*3 ہونا چاہیے)
├─ Gazebo GUI میں معائنہ کریں
│ ├─ کیا کیمرہ نظر آ رہا ہے؟ (3D ویو میں دیکھ سکتے ہیں؟)
│ ├─ کیا یہ منظر کی طرف ہے؟ (ماؤس سے گھمائیں، دیکھیں کہ کیا ویو بدلتا ہے؟)
│ └─ کیمرہ پراپرٹیز میں قریب/دور کے کاٹنے کے طیارے چیک کریں
└─ اگر کچھ نظر نہیں آتا، تو ممکنہ طور پر کاٹنے کے طیارے یا سمت کا مسئلہ ہے

مسئلہ 2: LIDAR کی رینج بہت کم ہے

علامات:

LIDAR /lidar/scan پبلش کر رہا ہے
لیکن رینجز سب 1 میٹر سے کم ہیں (max_range = 10 ہے، لیکن اس سے زیادہ کچھ ڈیٹیکٹ نہیں ہوتا)

ممکنہ وجوہات:

  1. زیادہ سے زیادہ رینج بہت کم ہے

    • چیک کریں: <max>1</max>
    • زیادہ تر مناظر کے لیے 10 یا اس سے زیادہ ہونا چاہیے
    • حل: بڑھائیں: <max>50</max>
  2. کم سے کم رینج بہت زیادہ ہے

    • چیک کریں: <min>5</min>
    • 5 میٹر سے قریب کچھ بھی ڈیٹیکٹ نہیں کر سکتا
    • حل: کم کریں: <min>0.05</min>
  3. شور (Noise) بہت زیادہ ہے

    • گوسیئن شور دور کے پوائنٹس کو چھپا رہا ہے
    • حل: stddev کم کریں: <stddev>0.001</stddev>
  4. منظر میں کوئی دیوار/رکاوٹیں نہیں ہیں

    • LIDAR کام کر رہا ہے، لیکن خالی جگہ کوئی ہٹ واپس نہیں کرتی
    • عام رویہ (خاموش کلاؤڈ)
    • حل: منظر میں رکاوٹیں شامل کریں
  5. LIDAR GPU ایکسلریشن ناکام ہو رہا ہے

    • سینسر کی قسم gpu_lidar ہونی چاہیے
    • اگر GPU سپورٹ دستیاب نہیں ہے، تو یہ سافٹ ویئر رینڈرنگ پر واپس آ جاتا ہے (سست)
    • حل: libgazebo_ros_gpu_lidar.so کے بجائے libgazebo_ros_lidar.so پلگ ان استعمال کریں

تشخیص کا ورک فلو:

LIDAR کی رینج بہت کم ہے؟
├─ /lidar/scan ڈیٹا کا معائنہ کریں (مرحلہ 3)
│ ├─ ranges: [1.0, 0.95, 1.1, ...] = سب قریب ہیں؟ → کاٹنے کے طیارے کا مسئلہ
│ └─ ranges: [inf, inf, inf, ...] = سب رینج سے باہر ہیں؟ → max_range بہت کم ہے
├─ منظر کا ویژولائزیشن چیک کریں
│ └─ کیا آپ Gazebo میں رینڈر ہونے پر دیواروں/رکاوٹوں کو دیکھ سکتے ہیں؟
└─ اگر خالی جگہ ہے، تو یہ درست رویہ ہے (خاموش کلاؤڈ)

مسئلہ 3: IMU اپ ڈیٹ نہیں ہو رہا

علامات:

IMU /imu ٹاپک پبلش کر رہا ہے
لیکن ایکسلریشن ہمیشہ (0, 0, 0) رہتا ہے
یا روبوٹ کے حرکت کرنے پر بھی سمت کبھی تبدیل نہیں ہوتی

ممکنہ وجوہات:

  1. سینسر اپ ڈیٹ ہونے والے لنک پر نہیں ہے

    • IMU کو جامد (static) لنک پر بیان کیا گیا ہے
    • حل: IMU سینسر کو حرکت پذیر لنک (base_link، world نہیں) پر منتقل کریں
  2. سینسر کی کشش ثقل (Gravity) لاگو نہیں ہو رہی

    • ساکن ہونے پر IMU (0, 0, 0) پڑھتا ہے (غلط!)
    • اسے (0, 0, 9.81) پڑھنا چاہیے
    • حل: فزکس میں کشش ثقل فعال ہے یا نہیں چیک کریں: <gravity>1</gravity>
  3. اپ ڈیٹ کی شرح صفر ہے

    • چیک کریں: <update_rate>0</update_rate>
    • حل: غیر صفر پر سیٹ کریں: <update_rate>100</update_rate>
  4. فریم حوالہ غلط ہے

    • پلگ ان چیک کریں: <frame_name>base_link</frame_name>
    • اگر لنک موجود نہیں ہے، تو کوئی اپ ڈیٹ نہیں ہوگی
    • حل: لنک کے نام کی تصدیق کریں جو اصل روبوٹ لنک سے میل کھاتا ہو

تشخیص کا ورک فلو:

IMU اپ ڈیٹ نہیں ہو رہا؟
├─ /imu ٹاپک کی فریکوئنسی چیک کریں (مرحلہ 2)
│ └─ 0 Hz؟ → update_rate 0 ہے یا سینسر حرکت پذیر لنک پر نہیں ہے
├─ ڈیٹا کا معائنہ کریں (مرحلہ 3)
│ ├─ سب صفر؟ → کشش ثقل لاگو نہیں ہو رہی، یا سینسر جامد لنک پر ہے
│ └─ ہر فریم میں ایک ہی ویلیو؟ → سینسر منجمد ہے، فریم حوالہ غلط ہے
└─ روبوٹ کو حرکت دیں اور چیک کریں کہ کیا ایکسلریشن بدلتا ہے

ویژولائزیشن ٹولز

ٹول 1: ROS 2 ٹاپک کمانڈز

ریئل ٹائم میں ڈیٹا مانیٹر کریں:

# مسلسل ایکو (Ctrl+C دبا کر روکیں)
ros2 topic echo /camera/image_raw

# ایک پیغام دکھائیں اور پھر باہر نکلیں
ros2 topic echo /camera/image_raw --once

# پیغام کی شرح دکھائیں
ros2 topic bw /camera/image_raw

# ڈیٹا کی قسم دکھائیں
ros2 topic info /camera/image_raw

ٹول 2: Gazebo GUI ویژولائزیشن

بنا ہوا کیمرہ ڈسپلے:

  1. Gazebo ونڈو → Plugins → Camera
  2. کیمرے کا نام منتخب کریں (مثلاً "camera")
  3. لائیو ویڈیو فیڈ کھل جائے گا

پوائنٹ کلاؤڈ ویژولائزیشن:

  1. RViz کھولیں: rviz2
  2. "Add" پر کلک کریں → "PointCloud2"
  3. ٹاپک کو /lidar/points پر سیٹ کریں
  4. 3D ویو میں 3D پوائنٹ کلاؤڈ دیکھیں

ٹول 3: RViz (ROS ویژولائزیشن)

RViz لانچ کریں:

rviz2

ڈسپلے شامل کریں:

  1. نیچے بائیں طرف "Add" بٹن پر کلک کریں
  2. ڈسپلے کی قسم منتخب کریں:
    • Image: کیمرہ فیڈ دکھاتا ہے
    • PointCloud2: LIDAR پوائنٹ کلاؤڈ دکھاتا ہے
    • Axes: روبوٹ کی سمت دکھاتا ہے
    • Plot: وقت کے ساتھ ڈیٹا (ایکسیلریشن، ویلاسٹی) دکھاتا ہے

ڈسپلے کو کنفیگر کریں:

  • Topic: /camera/image_raw, /lidar/points وغیرہ منتخب کریں۔
  • Size: دیکھنے کے لیے پوائنٹ کا سائز ایڈجسٹ کریں۔
  • Color scheme: پوائنٹس کو رنگنے کا طریقہ منتخب کریں۔

AI سے مدد یافتہ ڈیبگنگ

جب معیاری ڈیبگنگ کام نہیں کرتا، تو AI اسسٹنٹ کے ساتھ تعاون کریں۔ علامت کو واضح طور پر بیان کریں، اور AI وجوہات اور حل تجویز کر سکتا ہے۔

سینسر کے مسائل کو مؤثر طریقے سے بیان کرنا

برا بیان:

"میرا LIDAR کام نہیں کر رہا"

اچھا بیان:

"میرا LIDAR /lidar/scan ٹاپک کو 10 Hz پر پبلش کر رہا ہے۔
روبوٹ بائیں اور دائیں دیواروں کے ساتھ 10 میٹر کی راہداری میں ہے۔
ranges[] میں تمام ویلیوز 8-10 میٹر کے درمیان دکھا رہی ہیں۔
لیکن دیواریں 2 میٹر دور ہیں، 9 میٹر نہیں۔
SDF میں Max range <max>10</max> ہے۔
کیا غلط ہے؟"

دوسرا بہتر کیوں ہے:

  • کیا پبلش ہو رہا ہے (ٹاپک، فریکوئنسی) بتاتا ہے
  • ماحول (راہداری، دیوار کا فاصلہ) بیان کرتا ہے
  • اصل ڈیٹا دکھاتا ہے (8-10 میٹر کی رینجز)
  • کنفیگریشن دکھاتا ہے (max_range = 10)
  • مسئلہ واضح کرتا ہے (توقع 2m، ملا 9m)

AI کے ساتھ ڈیبگنگ میں کام کرنا

آپ پیش کرتے ہیں:

  1. آپ کیا ہونے کی توقع کر رہے تھے
  2. اصل میں کیا ہوا
  3. آپ کی کنفیگریشن (متعلقہ SDF ٹکڑا)
  4. آپ کا ڈیٹا (اصل سینسر آؤٹ پٹ)

AI فراہم کرتا ہے:

  1. ممکنہ وجہ/وجوہات
  2. ہر وجہ کی جانچ کیسے کریں
  3. آزمانے کے لیے حل
  4. ہر حل کیوں اہم ہے

آپ دہراتے ہیں:

  1. ایک حل آزمائیں
  2. نتائج کی اطلاع دیں
  3. AI تشخیص کو بہتر بناتا ہے
  4. ٹھیک ہونے تک جاری رکھیں

مشق: ایک سینسر مسئلہ ڈیبگ کریں

اس مشق میں، آپ ڈیبگنگ کے ورک فلو کا استعمال کرتے ہوئے سینسر کنفیگریشن کے مسائل کی شناخت اور انہیں ٹھیک کریں گے۔

جان بوجھ کر غلط ترتیب دیا گیا خراب روبوٹ SDF:

<model name="broken_robot">
<link name="base_link">
<!-- Body -->
</link>

<!-- کیمرہ پیچھے کی طرف ہے (rpy="0 0 3.14159") -->
<link name="camera_link">
<sensor name="camera" type="camera">
<camera>
<horizontal_fov>1.047</horizontal_fov>
<image><width>640</width><height>480</height></image>
<clip><near>10</near><far>11</far></clip>
</camera>
<always_on>1</always_on>
<update_rate>30</update_rate>
<plugin name="camera_controller" filename="libgazebo_ros_camera.so">
<camera_name>camera</camera_name>
<frame_name>camera_link</frame_name>
</plugin>
</sensor>
</link>
<joint name="camera_joint" type="fixed">
<parent>base_link</parent>
<child>camera_link</child>
<!-- پیچھے کی طرف ہے! -->
<origin xyz="-0.1 0 0" rpy="0 0 3.14159"/>
</joint>

<!-- ناقابل یقین حد تک کم رینج والا LIDAR -->
<link name="lidar_link">
<sensor name="lidar" type="gpu_lidar">
<lidar>
<scan>
<horizontal>
<samples>180</samples>
<min_angle>-3.14159</min_angle>
<max_angle>3.14159</max_angle>
</horizontal>
</scan>
<!-- صرف 0.5 میٹر دیکھتا ہے! -->
<range><min>0.05</min><max>0.5</max></range>
</lidar>
<always_on>1</always_on>
<update_rate>10</update_rate>
<plugin name="lidar_controller" filename="libgazebo_ros_gpu_lidar.so">
<frame_name>lidar_link</frame_name>
</plugin>
</sensor>
</link>
<joint name="lidar_joint" type="fixed">
<parent>base_link</parent>
<child>lidar_link</child>
<origin xyz="0 0 0.2"/>
</joint>
</model>

آپ کا کام:

  1. اسے broken_robot.sdf کے طور پر محفوظ کریں۔
  2. روبوٹ کے ساتھ Gazebo لانچ کریں۔
  3. چیک کریں کہ ہر سینسر کیا پبلش کرتا ہے (کیا ٹاپکس موجود ہیں؟ کیا ڈیٹا موجود ہے؟)
  4. Gazebo GUI یا RViz میں ویژولائز کریں۔
  5. شناخت کریں کہ کیا غلط ہے (اوپر دیے گئے ڈیبگنگ ورک فلو کا استعمال کریں)
  6. SDF میں ہر مسئلہ ٹھیک کریں۔
  7. تصدیق کریں کہ اصلاحات کام کرتی ہیں (ٹاپکس درست ڈیٹا پبلش کرتے ہیں)

تلاش کرنے اور ٹھیک کرنے کے مسائل:

  • کیمرہ پیچھے کی طرف ہے (rpy 0 ہونا چاہیے، نہ کہ 3.14159)
  • LIDAR کی رینج ناقابل یقین حد تک کم ہے (راہداری کے لیے 0.5 میٹر بہت کم ہے)
  • کیمرے کا قریب کا کاٹنے کا فاصلہ بہت بڑا ہے (near=10, far=11 صرف 1 میٹر موٹی دیکھنے والی پٹی بناتا ہے)

متوقع نتیجہ: تمام سینسر درست ڈیٹا پبلش کرتے ہیں، ویژولائزیشن بامعنی آؤٹ پٹ دکھاتی ہے۔


توثیق کی فہرست (Validation Checklist)

سینسر ڈیبگ کرنے کے بعد:

  • تمام سینسرز کے ٹاپکس متوقع فریکوئنسی پر پبلش ہو رہے ہیں
  • بصری معائنہ (Gazebo GUI یا RViz) بامعنی ڈیٹا دکھاتا ہے
  • ڈیٹا توقعات سے میل کھاتا ہے (کیمرہ منظر دکھاتا ہے، LIDAR درست فاصلے پر دیواریں دیکھتا ہے، IMU کشش ثقل دکھاتا ہے)
  • Gazebo کنسول میں کوئی خرابی کا پیغام نہیں ہے
  • سینسر کی کنفیگریشنیں جسمانی طور پر معنی خیز ہیں (قریب/دور کاٹنے کے طیارے، سمت، ماؤنٹنگ)

AI کے ساتھ کوشش کریں

سیٹ اپ: اپنے سامنے آنے والے کسی سینسر کے مسئلے کو بیان کریں یا تصور کریں، پھر اس کی تشخیص اور اسے ٹھیک کرنے کے لیے AI کے ساتھ تعاون کریں۔

پرامپٹ سیٹ:

Prompt 1 (بنیادی تشخیص): "میری کیمرہ تصاویر پبلش کر رہا ہے لیکن وہ سب مکمل طور پر سیاہ ہیں۔ روبوٹ گھر کے اندر ہے، Gazebo چل رہا ہے، ٹاپک /camera/image_raw 640x480 تصاویر دکھا رہا ہے۔ مجھے کیا چیک کرنا چاہیے؟"

Prompt 2 (درمیانی تعاون): "میں LIDAR کو ڈیبگ کر رہا ہوں۔ سینسر /lidar/scan کو 10 Hz پر پبلش کر رہا ہے۔ جب میں ڈیٹا کو ایکو کرتا ہوں، تو رینجز ہر سمت میں [2.5, 2.5, 2.5, ...] دکھاتی ہیں۔ روبوٹ ایک بڑے کمرے کے بیچ میں ہے۔ LIDAR سب کچھ بالکل 2.5 میٹر پر کیوں ڈیٹیکٹ کر رہا ہے؟ میں اسے کیسے ٹھیک کروں گا؟"

Prompt 3 (اعلی درجے کا مسئلہ حل کرنا): "میرے پاس ایک ہیومینوئڈ ہے جس میں دو کیمرے (وائڈ اور نیرو اینگل)، ایک LIDAR، اور ایک IMU ہے۔ سب ٹاپکس پبلش کر رہے ہیں، لیکن جب میں RViz میں سب کو ایک ساتھ ویژولائز کرنے کی کوشش کرتا ہوں تو وہ کریش ہو جاتا ہے۔ سسٹم سست ہو جاتا ہے۔ آپ تجویز کریں گے کہ میں کس سینسر کو رکاوٹ کے طور پر ڈیبگ کروں؟ بہترین ویژولائزیشن کی حکمت عملی کیا ہے؟"

متوقع نتائج:

  • AI نظاماتی طور پر بنیادی وجوہات کو محدود کرنے میں مدد کرتا ہے
  • AI جانچ کے قابل مفروضے تجویز کرتا ہے (کیمرہ سمت، رینج کی حدود، وغیرہ)
  • AI سینسر کی قسم کی بنیاد پر ویژولائزیشن کی حکمت عملی تجویز کرتا ہے

حفاظتی نوٹ: سمولیشن میں سینسر ڈیبگنگ قابو میں اور محفوظ ہے۔ حقیقی روبوٹ سینسر کو ڈیبگ کرتے وقت، جسمانی حفاظتی احتیاطی تدابیر اختیار کریں۔ ایک خراب کیمرہ بے ضرر ہے، لیکن ایک خراب موٹر/گریپر کسی کو چوٹ پہنچا سکتا ہے۔ ہمیشہ ایمرجنسی سٹاپ بٹن رکھیں، کام کی جگہ صاف کریں، اور بتدریج جانچ کریں۔

اختیاری توسیع: ایک سینسر تشخیصی ڈیش بورڈ بنائیں جو تمام سینسر ٹاپکس، ان کی فریکوئنسی، اور آخری پیغام کے ٹائم سٹیمپ دکھائے۔ یہ تیزی سے یہ شناخت کرنے میں مدد کرتا ہے کہ کون سے سینسر صحت مند ہیں اور کون سے خراب ہیں۔