Uuv_simulator: تنفيذ محاكاة أكثر واقعية لحساس السونار

تم إنشاؤها على ٢ مايو ٢٠١٧  ·  33تعليقات  ·  مصدر: uuvsimulator/uuv_simulator

نحن حاليًا نسيء استخدام مستشعرات الليزر من Gazebo ونطلق عليها اسم سونار.

ستضيف محاكاة أكثر واقعية لأجهزة استشعار السونار ( سونار المسح الجانبي والسونار متعدد الحزم ) قيمة كبيرة إلى uuv_simulator وتجعله أكثر تشويقًا لمجتمع جديد أكبر.

enhancement help wanted

التعليق الأكثر فائدة

مرحبًا ، نحن نعمل على محاكاة أجهزة الاستشعار في uuv_simulator أيضًا. حاليًا ، لدينا شيء مشابه لـ sidecan ، والذي يعطينا صورًا للشلال. الأهم من ذلك ، نحن نعمل من أجل مستشعر FLS لطيف هنا: https://github.com/smarc-project/smarc_simulations/blob/master/smarc_gazebo_plugins/smarc_gazebo_ros_plugins/src/gazebo_ros_image_sonar.cpp . وهو يعتمد على المحاكاة الموضحة في الورقة البحثية "جهاز محاكاة سونار جديد قائم على وحدة معالجة الرسومات لتطبيقات الوقت الفعلي". يجعل Gazebo الأمر صعبًا بعض الشيء ، لذا فهو يعتمد على إساءة استخدام كاميرا عمق محاكية ، لكنها لا تزال فعالة بشكل معقول.

إذا كان لا يزال هناك اهتمام بهذا ، فسأقدم بعض الأمثلة حول كيفية ظهور السونار وربما أعمل على إكمال كل شيء وإنشاء علاقات عامة لهذا الريبو.

ال 33 كومينتر

مرحبًا ، نحن نعمل على محاكاة أجهزة الاستشعار في uuv_simulator أيضًا. حاليًا ، لدينا شيء مشابه لـ sidecan ، والذي يعطينا صورًا للشلال. الأهم من ذلك ، نحن نعمل من أجل مستشعر FLS لطيف هنا: https://github.com/smarc-project/smarc_simulations/blob/master/smarc_gazebo_plugins/smarc_gazebo_ros_plugins/src/gazebo_ros_image_sonar.cpp . وهو يعتمد على المحاكاة الموضحة في الورقة البحثية "جهاز محاكاة سونار جديد قائم على وحدة معالجة الرسومات لتطبيقات الوقت الفعلي". يجعل Gazebo الأمر صعبًا بعض الشيء ، لذا فهو يعتمد على إساءة استخدام كاميرا عمق محاكية ، لكنها لا تزال فعالة بشكل معقول.

إذا كان لا يزال هناك اهتمام بهذا ، فسأقدم بعض الأمثلة حول كيفية ظهور السونار وربما أعمل على إكمال كل شيء وإنشاء علاقات عامة لهذا الريبو.

nilsbore بعض الأمثلة ستكون رائعة. أنا أيضًا مهتم حقًا بهذا.

مرحبًا nilsbore ، فسيسعدني مراجعته. يتمثل الحل الآخر في إضافة معلومات حول توثيق محاكي UUV حول كيفية دمج المكونات الإضافية الخاصة بك أيضًا ، حتى يتمكن المزيد من الأشخاص من استخدامها :)

مرحبًا musamarcusso ، وشكرًا على عملك الرائع في هذه المحاكاة! سأرى كم سيستغرق الأمر لإنشاء علاقات عامة نظيفة لهذا الريبو ، واتبع أحد المسارات المقترحة ، شكرًا!

مرحبا nilsbore ،

إنني أتطلع إلى رؤية تقدمك في تكييف السونار مع جهاز محاكاة UUV. من فضلك، اسمحوا لنا أن نعرف! = د

هل تم إحراز أي تقدم بشأن FLS؟ أنا أيضا أتطلع للاستفادة منها.

مرحباnilsbore! لقد مر وقت منذ بدء هذا الموضوع ، ولكن هل لي أن أعرف كيف يتم التقدم في محاكاة FLS حتى الآن؟ أنا أتطلع إلى استخدام محاكاة السونار التي تعمل عليها في جازيبو أيضًا ، وآمل أن يكون لديك المزيد من التقدم بعد ذلك

* بعد التحديث الأخير الذي أجريته هنا.

مرحبًا بالجميع ، أنا آسف لأنني لم أتمكن من إحراز تقدم كبير في هذا الموضوع. محاكاة المستشعر مفتوحة المصدر ومتاحة هنا: https://github.com/smarc-project/smarc_simulations/tree/master/smarc_gazebo_plugins/smarc_gazebo_ros_plugins . يطلق عليه gazebo_ros_image_sonar . على الرغم من أننا نستخدم إصدارًا قديمًا إلى حد ما من uuv_simulator ، إلا أن هذا المكون الإضافي يعتمد فقط على شرفة المراقبة ولذا يجب أن يعمل في كل مكان. في uuv_simulator ، يمكنك تضمينه من خلال تضمين ملف urdf هذا: https://github.com/smarc-project/smarc_simulations/blob/master/smarc_sensor_plugins/smarc_sensor_plugins_ros/urdf/sonar_snippets.xacro وإضافة شيء مثل هذا المقتطف في سيارتك urdf :

<xacro:forward_looking_sonar
      namespace="${namespace}"
      suffix="down"
      parent_link="${namespace}/base_link"
      topic="forward_sonar"
      mass="0.015"
      update_rate="10"
      samples="100"
      fov="1.54719755"
      width="260"
      height="120">
      <inertia ixx="0.00001" ixy="0.0" ixz="0.0" iyy="0.00001" iyz="0.0" izz="0.00001" />
      <origin xyz="0.83 0 -0.22" rpy="0 ${0.2*pi} 0" />
      <visual>
      </visual>
    </xacro:forward_looking_sonar>

يجب أن تكون قادرًا بعد ذلك على رؤية شيء مثل هذه الصورة في موضوع روس: فيديو .

عندما يسمح الوقت (بعد المواعيد النهائية) ، سأحاول تقسيم هذا المستشعر إلى عبوته الخاصة التي يمكن استخدامها من قبل أي شخص يريد استخدام FLS sim ولا شيء آخر.

أفضل،
نيلز

nilsbore لاحظ! شكرا جزيلا على التحديث لك. سأحاول إجراء تحسينات على هذا المستشعر أيضًا حتى يمكن تحسين أدائه.

تحديث رائع حقًا وتقدم حتى الآن! نتطلع إلى مزيد من التحديثات حول هذا المشروع وعمل رائع حقًاnilsbore!

لقد اخترت الكرز من NickSadjoli و @ nilsbore لمحاولة الحصول على شيء ما FF من السيد. يبدو أن كلاكما قد تباعدا بطرق مختلفة.

سيكون من الجيد أن تقوموا بإلقاء نظرة والتعليق / الالتزام حتى يمكن للآخرين استخدام هذا.

آسف على الرد المتأخر willcbaker ! أنا أختلف عن

FLS upgraded-turbidwater

لسوء الحظ ، لم أحقق تقدمًا كبيرًا في إجراء تحسينات على الكود بسبب مشاكل أخرى ، لكنني سأحرص على نشر التحديثات عندما يكون لدي الوقت للقيام بذلك.

فيما يتعلق بالالتزام الذي قمت به ، يمكنني القول بأمان أن الإضافات التي قمت بها هي نفسها تمامًا كما فعلت لفرعي. يجب أن تعمل بشكل مثالي مع Gazebo الآن ويمكنك الحصول على صور السونار من موضوع "rexrov / deep / image_sonar".

يجب أن أشير إلى أن الاسم حاليًا مرتبط ارتباطًا وثيقًا بموضوع "/ عمق" نظرًا لأن تنفيذ المستشعر يتطلب استخدام كاميرا عمق في الوقت الحالي. يجب أن نرى ما إذا كان من الممكن تحسين ذلك لتجنب حدوث ارتباك محتمل ونأمل أن تتبع المزيد من التحديثات قريبًا.

مرحبًا NickSadjoli ، هل يمكنك الارتباط

musamarcusso نعتذر عن عدم توفير الروابط من قبل. لدي فرع يعمل به مثال عملي لهذا السونار على Rexrov UUV ، لكن يرجى ملاحظة أن هذا الفرع يحتوي على كود تجريبي آخر لا يعمل والذي حاولت سابقًا إعادة إنشاء FLS المذكور في الورقة المشار إليها. الفرع مرتبط أدناه:

https://github.com/NickSadjoli/uuv_simulator/tree/realistic-sonar-sim-48

أشياء أو تغييرات أخرى على الملاحظة التي تمت إضافتها أو ذات فائدة في هذا الفرع:

  • عالم اختبار مخصص اسمه "test_turbid_water.world" والذي كان يعتمد بشكل كبير على "subea_bop_panel.world" الذي قمت بتعديله لاستخدامه في مشروعي البحثي.
  • يوجد نموذج ريكروف عملي يحتوي على تطبيق FLS من Niels في الدليل "uuv_descriptions / robots / rexrov_test.xacro" ، والذي يعتمد مبدئيًا على نموذج "rexrov_sonar.xacro". يعلق النموذج على m450 أو p900 fls السابقة ويستبدلها بـ fls sonar xacro الذي أوصى به نيلز أعلاه.
  • عرض "rexrov_fls.rviz" مخصص يجعل Rviz يعرض مباشرة إلى / rexrov / deep / image_raw_sonar وموضوعات default_camera الأمامية.
  • يتم استخدام ملف الإطلاق المخصص ، "test_turbid_water.launch" لإطلاق كل مجموعة التغييرات المذكورة أعلاه ، مع الإشارة مباشرةً إلى العالم المخصص و Rviz

إذا كان تنظيم الملفات في الفرع الحالي محيرًا للغاية ، فالرجاء تقديم الملاحظات إليّ في هذا الموضوع ، حتى أتمكن من إنشاء نسخة أنظف من هذا الفرع لتقوم بسحبها.

شكرا ونتطلع إلى ملاحظاتك / آرائك

  • نيك سادجولي

تحرير: نسيت إرفاق ارتباط المستودع

مرحبًا @ NickSadjoli
أنا أحاول تجربة uuv_simulator-real-sonar-sim-48. كان الخطأ الأول الذي تلقيته هو "فقد uuv_laser_to_sonar / launch" أثناء تثبيت catkin_make. لقد قمت بإنشاء مجلد تشغيل فارغ كحل بديل. ثم قمت بتشغيل "roslaunch uuv_gazebo_worlds test_turbid_water.launch" وحصلت على العديد من الأخطاء ، بما في ذلك

  1. [خطأ] [gazebo_ros_image_sonar. cpp: 160 ] ليس لدينا مقطع.
  2. gzserver: خطأ في البحث عن الرمز: /home/cchien/catkin_ws3/devel/lib/libimage_sonar_ros_plugin.so: رمز غير محدد: _ZN2cv3Mat6createEiPKii.
    بالإضافة إلى بعض التحذيرات بما في ذلك "تحويل نوع المستشعر [العمق] غير مدعوم".
    نتيجة لذلك ، لم يتم عرض أي صورة سونار في rviz. هل أنا mssing شيء؟ أي تعليقات أو اقتراحات؟ أقوم باختبار الكود الخاص بك على ubuntu 16.04 و ROS kinetic و opencv 3.4. شكرا. جيم شين

مرحبًا @ NickSadjoli
بعد تعقب الأخطاء ، اتضح أن ملفات opencv libs لم يتم ربطها بشكل صحيح. كحل بديل ، أضفتُ opencv libs المطلوبة صراحةً إلى image_sonar_ros_plugin. يرجى إعلامي إذا كانت هناك طرق أفضل لإصلاح الخطأ الأصلي.

ألاحظ أيضًا أن my_frame (والخريطة) إما غير معرّف أو لا أحصل على tf من العالم. أي فكرة عن كيفية حل المشكلة؟ شكرا لمساهمتك. جيم شين

مرحبا @ chyphen777!

نأسف لأن هذا الرد متأخر جدًا على استفسارك.

من المحتمل أن يكون الخطأ في ملف التشغيل المفقود ناتجًا عني بما في ذلك العديد من الأدلة التي لم يتم استخدامها في محاكاة FLS على أي حال ، مما تسبب في فوضى CMake-s. لقد قمت بتحديث الفرع الخاص بي لتنظيف هذا الأمر ، والذي يجب إصلاحه لمثل هذه الأخطاء الآن. ولكن للأسف يبدو أنني حذفت عن طريق الخطأ بعض الملفات الضرورية في هذا الفرع مما أدى إلى بدء تشغيل Gazebo GUI مع وجود أخطاء وأعطال في التجزئة بدلاً من ذلك. لاحظ مع ذلك أنه لا يزال يتم إطلاق موضوعات شرفة المراقبة الفعلية وأنه لا يزال من الممكن تشغيل RViz من حين لآخر بشكل صحيح ، لذلك لم يتم كسرها بالكامل بعد.

سأحاول إصلاح هذه المشكلة مع الفرع ، وإعادتها مرة أخرى إلى الالتزام السابق إذا استمرت المشكلة. لاحظ أن هذا قد يستغرق بعض الوقت ولكنني أعتني أيضًا بأشياء أخرى في عملي ، لذلك قد لا يكون لدي الكثير من الوقت.

بالنسبة لأخطاء "ليس لدينا مقطع" و "تحويل نوع المستشعر [العمق] غير مدعوم" ، لست متأكدًا مما إذا كانت هذه هي الأسباب المحتملة لعدم ظهور صورة السونار في RViz ، حيث كنت لا أزال قادرًا على إظهار الصورة على RViz الخاص بي حتى مع ظهور تلك الأخطاء. أعتقد أنه يُعزى على الأرجح إلى خطأ البحث عن الرمز الذي لم أواجهه للأسف في الريبو المحلي الخاص بي حتى الآن.

في ملاحظة ذات صلة ، لست متأكدًا مما إذا كان يجب ربط ملفات opencv libs بشكل صريح بقوائم CMakeLists أيضًا لأنني تمكنت من إطلاق العالم بشكل جيد دون الحاجة إليه. سأحاول النظر في هذا أيضًا. شكرًا لك على تقديم خطأ الأداة المساعدة أيضًا للمستخدمين الآخرين الذين قد يواجهون مشكلة مماثلة.

مرحبًا @ chyphen777 ،

لقد أجريت للتو بعض التعديلات الطفيفة على الفرع الحالي ويبدو أنه يعمل بشكل جيد في جهازي الآن ، لذلك يجب أن تكون قادرًا على التبديل فقط إلى هذا الفرع وأن يتم تجميع كل شيء باستخدام تثبيت catkin_make.

ومع ذلك ، تجدر الإشارة إلى أن الفرع يبدو غير مستقر في بعض الأحيان وقد تواجه نوع الخطأ التالي:

current_branch_not_stable

في حالة مواجهة مثل هذه الأخطاء ، يجب أن تكون قادرًا فقط على إغلاق ملف التشغيل وإعادة تشغيله لتشغيل Gazebo و RViz (على الأقل هذا ما تمكنت من القيام به). إن عدم الاستقرار هذا أمر مزعج بالتأكيد وسأحاول النظر في أسباب ذلك بشكل أكبر حتى يكون الفرع أكثر استقرارًا.

أيضًا ، لسوء الحظ لم أقم أيضًا بإلقاء نظرة فاحصة فيما يتعلق بإطار my_frame والخريطة لعدم تحديدها أو عدم تحديثها من tf في العالم. أظن أنه قد يكون بسبب بقايا محاولاتي السابقة لاستخدام حل FLS آخر لم ينجح بعد. مرة أخرى ، سأحاول النظر في هذا بمجرد توفر المزيد من الوقت والعودة إليك بمجرد الحصول على المزيد من التحديثات.

تحياتي وشكرًا لتعليقاتك C. Chien! - نيكولاس س.

مرحبًا ، @ NickSadjoli :

شكرا على الرد والإصلاحات والمعلومات المفيدة. أنا قادر على تشغيل جهاز محاكاة السونار الخاص بك. آسف على الرد المتأخر. تم تعقبي جانبي لمشاريع أخرى. يرجى إطلاعنا على أي تحديث.
مع التحيات ، سي شين.

تضمين التغريدة
أولاً ، العمل الرائع مع تطبيق FLS لمحاكاة UUV ، إنه رصيد ضخم للمجتمع! لدي بضعة أسئلة حول ذلك حيث أخطط لإجراء بعض التغييرات الطفيفة لجعل FLS يتطابق مع الأجهزة التي عادةً ما أنشرها في الحقل.

  1. كيف يمكنني إضافة سونار آخر ، على سبيل المثال ، سونار يتطلع إلى الأمام والآخر يتطلع إلى الخلف؟ يبدو أن هناك الكثير من الترابط بين الكاميرا فيما يتعلق بتوليد صور FLS ، والبحث عن إرشاداتك.

  2. ما هو السونار الذي يعتمد عليه وما هي فتحته العمودية؟ إذا أردت كيف يمكنني تغيير فتحة السونار العمودية؟

  3. ما هو أقصى مدى لجهاز الاستشعار وكيف يمكنني تغيير ذلك إذا أردت؟

  4. في الملف rexrov_test.xacro ، في الكتلة لبدء تشغيل FLS ، ما الذي تشير إليه عبارة "sample = 100"؟

يوحنا

تضمين التغريدة
نتطلع إلى الاستشهاد بهذا بشكل صحيح في بعض الأعمال القادمة. سأستخدم الاقتباس من محاكاة UUV ولكن هل هناك أي أعمال أخرى يجب الاستشهاد بها؟ ربما "جهاز محاكاة سونار جديد قائم على وحدة معالجة الرسومات لتطبيقات الوقت الفعلي؟"

@ jake3991 يعتمد تطبيقي الأصلي على الأقل على الورقة التي تشير إليها. لا أعرف ما إذا كان NickSadjoli قد أضاف أي مفاهيم من أعمال أخرى.

عمل عظيم!

nilsbore أحاول أن أفهم ConstructSonarImage و ConstructScanImage ؟ على سبيل المثال ، لماذا يتم حساب SNR كـ cv::Mat SNR = SL - 2.0*TL - (NL-DI) + TS; ؟

cv::Mat GazeboRosImageSonar::ConstructSonarImage(cv::Mat& depth, cv::Mat& normals)
{
  std::vector<cv::Mat> images(3);
  cv::split(normals, images);

  float intensity = 100.; // target strength
  float SL = 200.; // source level
  float NL = 30; // noise level
  float DI = 0.0; // directivity index

  if (dist_matrix_.empty()) {
    // Compute dist_matrix_ once
    // ...
  }

  cv::Mat TS = intensity*images[2]; // target strength, probably dir should be DI

  cv::Mat TL = 5*depth; // transmission loss
  cv::multiply(TL, dist_matrix_, TL);

  cv::Mat SNR = SL - 2.0*TL - (NL-DI) + TS;
  SNR.setTo(0., SNR < 0.);

  // ...

witignite هذا الرمز منذ بعض الوقت ولا أتذكر بالضبط أين حصلت على هذه المعادلات. بصراحة ، كان التركيز عند تنفيذ ذلك أكثر على إنشاء صورة ذات مظهر واقعي بدلاً من نموذج سونار صحيح تمامًا. ربما تكون البداية الجيدة هي إلقاء نظرة على الورقة التي أشار إليها

بالنسبة لأولئك المهتمين بـ Multibeam Sonar في Gazebo ، فقد قمت ببناء مكون إضافي للسونار Multibeam في مشروع Dave الذي يشتمل على uuv_simulator أيضًا. يستخدم مكتبة Nvidia Cuda ويحسب بيانات الكثافة / النطاق حتى معدل تحديث يصل إلى 10 هرتز بتردد 900 كيلو هرتز ، ونطاق 10 أمتار. لمزيد من التفاصيل ، https://github.com/Field-Robotics-Lab/dave/wiki/Multibeam-Forward-Looking-Sonar
image

مرحبًا ، أنا آسف جدًا لمجرد الرد على هذا الموضوع بعد وقت طويل جدًا ، حيث إنني أعالج جزءًا / مكونًا هائلًا آخر لمشروعي.

هذا يعني أيضًا أنني لم أعد أعمل بشكل كامل على تطوير جهاز المحاكاة حيث قمت بتسليم عبء العمل هذا إلى زميل لي الذي كان يتعامل معه منذ العام الماضي. لسوء الحظ ، نسيت أن أذكر هذا الموضوع في حالة وجود أسئلة تم نشرها بخصوص أي تطور.

للتوضيح أيضًا: أثناء تعاملي مع نموذج السونار ، لم nilsbore للسونار . ومع ذلك ، ربما أجرى زميلي بعض التعديلات الصغيرة عليه لتغيير بعض سلوكه لمحاكاة سلوكيات FLS بشكل أكثر واقعية في البيئات العكرة تحت الماء.

@ jake3991 للإجابة على أسئلتك:

  1. مما أفهمه ، نجح زميلي حتى الآن في "تدوير" السونار عن طريق تعديل بعض معايير URDF الخاصة به. سأحاول أن أسأله كيف يتم ذلك بمزيد من التفاصيل إذا كنت لا تزال مهتمًا.
  2. في البداية ، كان السونار لا يزال يعتمد على Blueview Sonar الذي استخدمه سونار Blueview M750D . أعتقد أنه تمكن من القيام بذلك عن طريق إضافة بعض المعلمات إلى مكالمة xacro ، ولكن مرة أخرى سأحتاج إلى أن أسأله مزيدًا من التفاصيل عن هذا التنفيذ.
  3. نفس إجابة 2
  4. لم ينجح في التلاعب بالبرنامج للحصول على إجابات محددة عن هذا للأسف. بحاجة لسؤال زميل على هذا واحد.

يرجى أيضًا ملاحظة أن زميلي يخطط لنشر ورقة حول المحاكي القائم على uuv_simulator الذي كان يعمل عليه. لذلك يجب توجيه مزيد من التفاصيل حول التنفيذ الحالي لمشروعنا إليه. سأحاول جعله متصلاً بهذا الموضوع إذا لزم الأمر للإجابة على أي أسئلة أخرى حول تنفيذ مشروعنا.

فيما يتعلق بنموذج السونار "الدقيق" في الواقع ، يبدو أن العمل المرتبط بـ @ woensug-choi قد يكون نموذجًا "أكثر دقة" لأنه يستخدم تطبيقًا مباشرًا أكثر لتتبع الأشعة. على الرغم من أنني لست متأكدًا تمامًا من أن هذا أفضل بكثير بالنسبة للتطوير القائم على المحاكاة بشكل عام.

سوف أجعل زميلي يتحقق من التنفيذ ويرى كيف يمكن دمجه بشكل جيد مع محاكي مشروعي.

مرة أخرى ، نعتذر بشدة للجميع عن الرد المتأخر على هذا الموضوع.

@ jake3991 أيضًا للتوضيح بشأن الاقتباس من محاكي مشروعنا: نظرًا لأننا لم نحصل على منشور ورقي ناجح فعليًا على جهاز المحاكاة ، أقترح عليك الاستمرار في استخدام الورقة التي ربطتها وكذلك nilsbore للحصول على الاقتباس الصحيح.

بمجرد قبول نشرنا في المنشور أو الانتهاء منه ، يمكن أيضًا استخدام الاقتباس من ورقتنا البحثية في ذلك الوقت.

بالنسبة لأولئك المهتمين ، يرجى مراجعة https://github.com/Field-Robotics-Lab/dave/wiki/Multibeam-Forward-Looking-Sonar .

لاحظ أنني أستخدم https://github.com/uuvsimulator/uuv_simulator من musamarcusso التي قامت بالفعل بدمج وحدة السونار الخاصة بـ nilsbore .
لتوضيحNickSadjoli على السؤال @ jake3991:

  1. أضفنا URDF للسونار نفسه. لذلك عن طريق إضافة URDF آخر وإعادة تعيين أسماء المعلمات ، يمكنك الحصول على 2 سونار في جهاز المحاكاة الخاص بك.

2 -كما قال
لتغريد VFOV الخاص بالسونار:
في ملف URDF xacro الخاص بالسونار ، يلزمك تحديد HFOV وعرض الصورة وارتفاعها. أكشاك من حساب قاعدة الطول البؤري على عرض الصورة و HFOV. باستخدام نفس البعد البؤري ، فإنها تعكس حساب VFOV باستخدام ارتفاع الصورة. لذلك لتحديد VFOV الذي تريده ، ستحتاج إلى حساب ارتفاع الصورة.

الطول البؤري = (العرض / 2) / تان (deg2rad (HFOV) / 2) أو الطول البؤري = (الارتفاع / 2) / تان (deg2rad (VFOV) / 2)

3- يُطلب منك التغريد برمز السونار C ++. في كود C ++ الخاص بالسونار بواسطة nilsbore ، أضفت مشتركًا إلى قيمة "Range" بدلاً من وجود نطاق ثابت مثل @ nilsbore العمل الأصلي. بهذه الطريقة يمكنني اللعب بأقصى مدى لشاشة السونار كما تفعل معظم أجهزة السونار.

  1. في xacro لـ "FLS" ، لم يتم استخدام معلمة "العينات". في xacro لـ "Multibeam" ، يستخدم نقطة الليزر في شرفة المراقبة لتوصيل الحزمة المتعددة. ومن ثم الرجوع إلى هذا: http://gazebosim.org/tutorials؟tut=ros_gzplugins تحت عنوان "ليزر GPU".

أتمنى أن يساعدك هذا.

nilsbore و @ NickSadjoli ، Hii ، لقد جربت للتو المكوّن الإضافي fls المتوفر في uuv_sensor_ros_plugin. لدي بعض الأسئلة المتعلقة به: 1. حاولت إعداد الموضوع في sonar_snippets.xacro. عندما تم محاكاة الروبوت ، لماذا لم يكن هناك الموضوع الذي حددته من قبل؟ أنا فقط أرى هذا النوع من المواضيع: "/ rexroth / deep / sonar raw_image".

  1. في sonar_snippets.xacro ، ماذا يعني $ {width} و $ {height}؟ هل يتعلق بعرض وارتفاع سونار الصورة المتولدة؟ إذا كان الأمر كذلك ، فقد حاولت إعداد قيمة $ {width} و $ {height} ثم أطبع قيمة ارتفاع وعرض موضوع صورة السونار. لكن تلك القيم كانت مختلفة. هل يمكن أن توضح لي ، لماذا يحدث ذلك؟
  2. هل من الممكن الحصول على المدى الموسع من السونار حتى أستطيع رؤية العائق البعيد في صورة السونار؟

Jenanaputra يرجى الرجوع إلى تعليقي أعلاه .....

  1. كيف حددت الموضوع؟ هل قمت بتغيير معلمات{$ topic}في ملف xacro؟ أو هل قمت بتعديل كود C ++ إلى موضوع معين ترغب في الحصول عليه؟ (بالنسبة لي يبدو تعديل الكود أكثر شهية)
  2. السونار هو في الواقع تعديل لكاميرا عمق الشجرة ، في مكون إضافي للكاميرا في شرفة المراقبة ، يؤثر $ {width} و $ {height} على VFOV و HFOV للمستشعر (ذكرت المعادلة في رسالتي السابقة). عادةً ما يكون عرض الكاميرا 1280 والارتفاع 720. بالنسبة للسونار ، قمت بتعيين العرض على 1280 وحساب الارتفاع باستخدام الصيغة. بهذه الطريقة أحصل على VFOV للمستشعر الذي أردته.
  3. كما ذكرنا سابقًا في رسالتي السابقة ، يتطلب منك تعديل النطاق تعديل كود C ++. النطاق حاليًا عبارة عن قيمة ثابتة مشفرة.
    أخيرًا لا تنسَ تنظيف catkin وجعل catkin بعد تعديل كود C ++ (على افتراض أنك تستخدم حزمة ROS)

@ loguna123 شكرا

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

hughhugh picture hughhugh  ·  5تعليقات

dbcesar picture dbcesar  ·  5تعليقات

Timple picture Timple  ·  24تعليقات

musamarcusso picture musamarcusso  ·  12تعليقات

atomoclast picture atomoclast  ·  23تعليقات