çŸåšãGazeboã®ã¬ãŒã¶ãŒã»ã³ãµãŒãæªçšããŠãœããŒãšåŒãã§ããŸãã
ãœããŒã»ã³ãµãŒïŒãµã€ãã¹ãã£ã³ãœããŒãšãã«ãããŒã ãœããŒïŒã®ããçŸå®çãªã·ãã¥ã¬ãŒã·ã§ã³ã¯ãuuv_simulatorã«å€ãã®äŸ¡å€ãè¿œå ãããã倧ããªæ°ããã³ãã¥ããã£ã«ãšã£ãŠããèå³æ·±ããã®ã«ããŸãã
ãããç§ãã¡ã¯uuv_simulator
ã§ãã»ã³ãµãŒã·ãã¥ã¬ãŒã·ã§ã³ã«åãçµãã§ããŸãã çŸåšãæ»ã®ç»åãæäŸãããµã€ãã¹ãã£ã³ã«äŒŒããã®ããããŸãã ããã«éèŠãªããšã«ãããã§ã¯åªããFLSã»ã³ãµãŒã«åããŠåãçµãã§ããŸãïŒ https ïŒ
ããã§ãããã«é¢å¿ãããå Žåã¯ããœããŒãã©ã®ããã«èŠãããã«ã€ããŠããã€ãã®äŸã瀺ãããããããã¹ãŠãå®äºããŠãã®ãªããžããªãžã®PRãäœæããããã«æ©èœããŸãã
@nilsboreããã€ãã®äŸãçŽ æŽãããã§ãããã ç§ãããã«æ¬åœã«èå³ããããŸãã
ããã«ã¡ã¯@nilsbore ããã¹ãŠã®è²¢ç®ã¯å€§æè¿ã§ã:)ãã«ãªã¯ãšã¹ãããããå Žåã¯ãç§ã¯ãããã¬ãã¥ãŒãããŠããã ããŸãã å¥ã®è§£æ±ºçã¯ããã©ã°ã€ã³ãçµ±åããæ¹æ³ãUUVã·ãã¥ã¬ãŒã¿ãŒã®ããã¥ã¡ã³ãã«æ å ±ãè¿œå ããŠãããå€ãã®äººãããã䜿çšã§ããããã«ããããšã§ã:)
ããã«ã¡ã¯@musamarcusso ããããŠãã®ã·ãã¥ã¬ãŒã¿ãŒã§ã®çŽ æŽãããä»äºã«æè¬ããŸãïŒ ãã®ã¬ãã«ã¯ãªãŒã³ãªPRãäœæããã®ã«ã©ããããããããã確èªããææ¡ããããã¹ã®1ã€ããã©ããŸããããããšãããããŸãã
ããã«ã¡ã¯@nilsbore ã
ãœããŒãUUVã·ãã¥ã¬ãŒã¿ãŒã«é©å¿ãããããšã§ããªãã®é²æ©ãèŠãã®ã楜ãã¿ã«ããŠããŸãã ãç¥ãããã ããïŒ = D
FLSã«é²å±ã¯ãããŸãããïŒ ç§ã掻çšããããšæã£ãŠããŸãã
ããã«ã¡ã¯@nilsboreïŒ ãã®ã¹ã¬ãããéå§ãããŠãããã°ããçµã¡ãŸããããããŸã§ã®FLSã·ãã¥ã¬ãŒã·ã§ã³ã®é²æç¶æ³ãæããŠãã ããã ããªããã¬ãŒãã§åãçµãã§ãããœããŒã·ãã¥ã¬ãŒã·ã§ã³ãå©çšããããšã楜ãã¿ã«ããŠããŸãããããŠããŸãããã°ãããªãã¯ãã®åŸããã«é²æ©ãéããããšãã§ããŸã
*ããã§æåŸã«æŽæ°ããåŸã
ã¿ãªãããããã«ã¡ã¯ããã®ãããã¯ã«ã€ããŠããŸãé²å±ãèŠããããç³ãèš³ãããŸããã ã»ã³ãµãŒã·ãã¥ã¬ãŒã·ã§ã³ã¯ãªãŒãã³ãœãŒã¹ã§ããã https ïŒ ãŸãã ããã¯gazebo_ros_image_sonar
ãšåŒã°ããŸãã ããå€ãããŒãžã§ã³ã®uuv_simulatorã䜿çšããŠããŸããããã®ãã©ã°ã€ã³ã¯gazeboã«ã®ã¿äŸåããŠãããããã©ãã§ãæ©èœããã¯ãã§ãã uuv_simulatorã§ã¯ã次ã®urdfãå«ããããšã§å«ããããšãã§ããŸãïŒ https ïŒ
<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>
ããã§ãrosãããã¯ã§ãã®ç»åã®ãããªãã®ãèŠãããšãã§ããã¯ãã§ãïŒ video ã
æéãèš±ãã°ïŒç· ãåãåŸïŒããã®ã»ã³ãµãŒãç¬èªã®ããã±ãŒãžã«åå²ããŠãFLSã·ã ã ãã䜿çšããã人ãªã誰ã§ã䜿çšã§ããããã«ããŸãã
äžçªã
ãã«ã¹
@nilsboreã«æ³šç®ïŒ ã¢ããããŒãããããšãããããŸãã æ§èœãåäžãããããã«ããã®ã»ã³ãµãŒãæ¹è¯ããŠãããŸãã
ãããŸã§ã®ãšãããæ¬åœã«çŽ æŽãããã¢ããããŒããšé²æ©ã§ãïŒ ãã®ãããžã§ã¯ãã®ãããªãæŽæ°ãšæ¬åœã«çŽ æŽãããä»äº@nilsboreã楜ãã¿ã«ããŠããŸãïŒ
@NickSadjoliãš@nilsboreãããã§ãªãŒãéžãã§ããã¹ã¿ãŒããäœãããã®FFãååŸããããšããŸããã ããªãã¯äž¡æ¹ãšãç°ãªãæ¹æ³ã§åå²ããããã§ãã
ä»ã®äººã䜿çšã§ããããã«ãçããã«èŠãŠããããã³ã¡ã³ã/ã³ãããããŠããããšããã§ãããã
è¿ä¿¡ãé ããªã£ãŠãã¿ãŸãã@willcbaker ïŒ ç§ã¯@nilsboreããåå²ããŠããŸãã
æ®å¿µãªãããä»ã®åé¡ã®ããã«ã³ãŒãã®æ¹åã¯ããŸãé²ãã§ããŸããããæéããããšãã«å¿ ãæŽæ°ãæçš¿ããŸãã
ããªããè¡ã£ãã³ãããã«é¢ããŠã¯ãããªããè¡ã£ãè¿œå ã¯ç§ã®ãã©ã³ãã«å¯ŸããŠè¡ã£ããã®ãšãŸã£ããåãã§ãããšèšã£ãŠãéèšã§ã¯ãããŸããã ããã§Gazeboãšå®å šã«é£æºããã¯ãã§ããããrexrov / depth / image_sonarããããã¯ãããœããŒç»åãååŸã§ããŸãã
ã»ã³ãµãŒã®å®è£ ã§ã¯ä»ã®ãšãã深床ã«ã¡ã©ã䜿çšããå¿ èŠããããããçŸåšãååã¯ã/ depthããããã¯ãšå¯æ¥ã«é¢é£ããŠããããšã«æ³šæããŠãã ããã æ··ä¹±ãé¿ããããã«ãããæ¹åã§ãããã©ããã確èªããå¿ èŠããããŸããè¿ããã¡ã«ããã«æŽæ°ãè¡ãããããšãé¡ã£ãŠããŸãã
ãã@NickSadjoli ãããããã°ããã®ãœããŒãå®è£ ãããŠãããªããžããªã«ãªã³ã¯ã§ããŸããïŒ
@musamarcusso以åã«ãªã³ã¯ãæäŸããªãã£ãããšããè©«ã³ããŸãã ãã®ãœããŒã®RexrovUUVãžã®åäœäŸãããåäœäžã®ãã©ã³ãããããŸããããã®ãã©ã³ãã«ã¯ãåç §ãããè«æã§èšåãããŠããFLSãåäœæããããã«ä»¥åã«è©Šããä»ã®åäœããªãå®éšã³ãŒããå«ãŸããŠããããšã«æ³šæããŠãã ããã ãã©ã³ãã¯ä»¥äžã«ãªã³ã¯ãããŠããŸãïŒ
https://github.com/NickSadjoli/uuv_simulator/tree/realistic-sonar-sim-48
ãã®ãã©ã³ãã§è¿œå ãŸãã¯äœ¿çšãããããšã«æ³šæãããã®ä»ã®äºé ãŸãã¯å€æŽïŒ
çŸåšã®ãã©ã³ãã®ãã¡ã€ã«ã®æ§æããããã«ããå Žåã¯ããã®ã¹ã¬ããã§ãã£ãŒãããã¯ãéã£ãŠãã ããããã«ãå®è¡ã§ããããã«ããã®ãã©ã³ãã®ããã¯ãªãŒã³ãªããŒãžã§ã³ãäœæã§ããŸãã
ããããšãããããŠããªãã®ãã£ãŒãããã¯/æèŠã楜ãã¿ã«ããŠããŸã
ç·šéïŒãªããžããªãªã³ã¯ãæ·»ä»ããã®ãå¿ãã
ããã«ã¡ã¯ã@ NickSadjoli
ç§ã¯ããªãã®uuv_simulator-realistic-sonar-sim-48ãè©ŠããŠããŸãã ç§ãæåã«åŸããšã©ãŒã¯ãcatkin_makeã®ã€ã³ã¹ããŒã«äžã«ãuuv_laser_to_sonar / launchããããŸãããã§ããã åé¿çãšããŠã空ã®èµ·åãã©ã«ããŒãäœæããŸããã 次ã«ããroslaunch uuv_gazebo_worlds test_turbid_water.launchããå®è¡ãããšã次ã®ãããªããã€ãã®ãšã©ãŒãçºçããŸããã
ããã«ã¡ã¯ã@ NickSadjoli
ãšã©ãŒã远跡ããåŸãopencvã©ã€ãã©ãªãé©åã«ãªã³ã¯ãããŠããªãã£ãããšãå€æããŸããã åé¿çãšããŠãå¿
èŠãªopencvã©ã€ãã©ãªãimage_sonar_ros_pluginã«æ瀺çã«è¿œå ããŸããã å
ã®ãšã©ãŒãä¿®æ£ããããã®ããè¯ãæ¹æ³ããããã©ãããæããŠãã ããã
ãŸããmy_frameïŒããã³ãããïŒãå®çŸ©ãããŠããªãããã¯ãŒã«ãããtfãååŸããŠããªãããšã«æ°ä»ããŸããã åé¡ã解決ããæ¹æ³ã¯ãããŸããïŒ ããªãã®è²¢ç®ã«æè¬ããŸãã C.ããšã³
ããã«ã¡ã¯@ chyphen777ïŒ
ãåãåãããžã®åçãéåžžã«é ããŠããããšããè©«ã³ç³ãäžããŸãã
èµ·åãã¡ã€ã«ãèŠã€ãããªããšãããšã©ãŒã¯ãFLSã·ãã¥ã¬ãŒã·ã§ã³ã§äœ¿çšãããªããã£ã¬ã¯ããªãããã€ãå«ãŸããŠããããã«çºçããå¯èœæ§ããããCMakeãä¹±éã«ãªããŸããã ãããã¯ãªãŒã³ã¢ããããããã«ãã©ã³ããæŽæ°ããŸãããããã§ãã®ãããªãšã©ãŒãä¿®æ£ãããã¯ãã§ãã ãã ããæ®å¿µãªããããã®ãã©ã³ãã§å¿ èŠãªãã¡ã€ã«ã誀ã£ãŠåé€ããããã代ããã«GazeboGUIããšã©ãŒãšã»ã°ã¡ã³ããŒã·ã§ã³éåã§èµ·åããŠããããã§ãã ãã ããå®éã®ã¬ãŒããããã¯ã¯ãŸã èµ·åãããŠãããRVizã¯ãšãã©ãé©åã«èµ·åãããå¯èœæ§ãããããããŸã å®å šã«å£ããŠããããã§ã¯ãªãããšã«æ³šæããŠãã ããã
ãã©ã³ãã§ãã®åé¡ãä¿®æ£ããåé¡ã解決ããªãå Žåã¯åã®ã³ãããã«æ»ãããšããŸãã ãã ããä»äºã§ä»ã®ããšããã£ãŠããã®ã§æéãããããªããããããŸããã®ã§ãå°ãæéãããããããããŸããã®ã§ã泚æãã ããã
ãã¯ãªããããããŸããããšãã»ã³ãµãŒã¿ã€ã[深床]ã®å€æããµããŒããããŠããŸããããšãããšã©ãŒã«ã€ããŠã¯ããœããŒç»åãRVizã«è¡šç€ºãããªãåå ãšããŠèãããããã©ããã¯ããããŸãããããŸã 確èªã§ããŸããããããã®ãšã©ãŒã衚瀺ãããŠããRVizã«ç»åã衚瀺ãããŸãã æ®å¿µãªãããããŒã«ã«ãªããžããªã§ãŸã çºçããŠããªãã·ã³ãã«ã«ãã¯ã¢ãããšã©ãŒãåå ã§ããå¯èœæ§ãé«ããšæããŸãã
é¢é£ããã¡ã¢ãšããŠãopencvã©ã€ãã©ãªãCMakeListsã«æ瀺çã«ãªã³ã¯ããå¿ èŠããããã©ããã¯ããããŸãããããã¯ãã¯ãŒã«ããå¿ èŠãšããã«æ£åžžã«èµ·åã§ããããã§ãã ãã ããããã«ã€ããŠã調ã¹ãŠã¿ãŸãã åæ§ã®åé¡ãçºçããŠããå¯èœæ§ã®ããä»ã®ãŠãŒã¶ãŒã«ãããã³ããšã€ããšã©ãŒãæäŸããŠããã ãããããšãããããŸãã
ããã«ã¡ã¯@ chyphen777 ã
çŸåšã®ãã©ã³ãã«ããã€ãã®å°ããªå€æŽãå ãããšããã§ãããç§ã®ãã·ã³ã§ã¯æ£åžžã«æ©èœããŠããããã§ãããã®ãã©ã³ãã«åãæ¿ããŠãcatkin_makeinstallã§ãã¹ãŠãã³ã³ãã€ã«ã§ããã¯ãã§ãã
ãã ãããã©ã³ããäžå®å®ãªå Žåãããã次ã®ã¿ã€ãã®ãšã©ãŒãçºçããå¯èœæ§ãããããšã«æ³šæããŠãã ããã
ãã®ãããªãšã©ãŒãçºçããå Žåã¯ãèµ·åãã¡ã€ã«ãéããŠåèµ·åããã ãã§ãGazeboãšRVizãèµ·åããŠå®è¡ã§ããŸãïŒå°ãªããšãç§ãå®è¡ã§ããããšïŒã ãã®äžå®å®ãã¯ééããªãåä»ã§ãããã©ã³ããããå®å®ãããããã«ããããããã«åŒãèµ·ããåå ã調ã¹ãŠã¿ãŸãã
ãŸããæ®å¿µãªãããmy_frameãšmapãå®çŸ©ãããŠããªãããäžçã®tfããæŽæ°ãããŠããªãããšã«ã€ããŠã詳ãã調ã¹ãŠããŸããã ãŸã æåããŠããªãå¥ã®FLSãœãªã¥ãŒã·ã§ã³ã䜿çšããããšãã以åã®è©Šã¿ã®æ®ããåå ã§ããå¯èœæ§ããããŸãã ç¹°ãè¿ãã«ãªããŸãããæéãããã°ããã調ã¹ãŠãæŽæ°ãããã°æ»ã£ãŠããŸãã
æ声ãšãã£ãŒãããã¯ãããããšãC.ChienïŒ -ãã³ã©ã¹Sã
ããã«ã¡ã¯ã @ NickSadjoli ïŒ
è¿ä¿¡ãä¿®æ£ã圹ç«ã€æ
å ±ãããããšãããããŸãã ç§ã¯ããªãã®ãœããŒã·ãã¥ã¬ãŒã¿ãŒãå®è¡ããããšãã§ããŸãã è¿äºãé
ããŠç³ãèš³ãããŸããã ç§ã¯ä»ã®ãããžã§ã¯ãã«è¿œãããããŸããã æŽæ°ãããã°ãç¥ãããã ããã
ãããããCããã§ã³ã
@NickSadjoli
ãŸããUUVã·ãã¥ã¬ãŒã¿ãŒçšã®ãã®FLSå®è£
ã§ã®çŽ æŽãããäœæ¥ã§ããããã¯ãã³ãã¥ããã£ã«ãšã£ãŠå€§ããªè³ç£ã§ãã FLSãéåžžãã£ãŒã«ãã«å±éããããŒããŠã§ã¢ãšäžèŽãããããã«è¥å¹²ã®å€æŽãå ããäºå®ãªã®ã§ãããã€ã質åããããŸãã
ããšãã°ãåãåããŠãããœããŒãšåŸããåããŠãããœããŒãªã©ãå¥ã®ãœããŒãè¿œå ããã«ã¯ã©ãããã°ããã§ããïŒ FLSç»åã®çæã«é¢ããŠãã«ã¡ã©ã«ã¯å€ãã®çžäºäŸåé¢ä¿ãããããã§ããããªãã®ã¬ã€ãã³ã¹ãæ¢ããŠããŸãã
ãããåºã¥ããŠãããœããŒã¯äœã§ããããããŠãã®åçŽéå£ã¯äœã§ããïŒ ãœããŒã®åçŽçµããã©ã®ããã«å€æŽãããã§ããïŒ
ã»ã³ãµãŒã®æ倧ç¯å²ã¯ã©ããããã§ããïŒå¿ èŠã«å¿ããŠã©ã®ããã«å€æŽããŸããïŒ
ãã¡ã€ã«rexrov_test.xacroã§ãFLSãèµ·åãããããã¯ã§ããsamples = 100ãã¯äœãæããŸããïŒ
ãžã§ã³
@NickSadjoli
ä»åŸã®äœæ¥ã§ãããé©åã«åŒçšããããšãæ€èšããŠããŸãã UUVã·ãã¥ã¬ãŒã¿ãŒã®åŒçšã䜿çšããŸãããåŒçšããå¿
èŠã®ããä»ã®äœåã¯ãããŸããïŒ ããããããªã¢ã«ã¿ã€ã ã¢ããªã±ãŒã·ã§ã³çšã®æ°ããGPUããŒã¹ã®ãœããŒã·ãã¥ã¬ãŒã¿ãŒïŒã
@ 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ãã®ã³ãŒãã¯ããªãåã®ãã®ã§ããããããã®æ¹çšåŒãã©ãã§ååŸããããæ£ç¢ºã«èŠããŠããŸããã æ£çŽãªãšããããããå®è£ ããéã®çŠç¹ã¯ãå®å šã«æ£ãããœããŒã¢ãã«ã§ã¯ãªãããªã¢ã«ã«èŠããç»åã®äœæã«ãããŸããã è¯ãã¹ã¿ãŒãã¯ãããã@ jake3991ãåç §ããè«æãèŠãããšã§ãã
Gazeboã®ãã«ãããŒã ãœããŒã«èå³ããã人ã®ããã«ãç§ã¯Uuv_simulatorãçµã¿èŸŒãã Daveãããžã§ã¯ãã§ãã«ãããŒã ãœããŒãã©ã°ã€ã³ãæ§ç¯ããŸããã Nvidia Cudaã©ã€ãã©ãªã䜿çšãã900 kHzã®åšæ³¢æ°ã10mã®ç¯å²ã§æ倧10Hzã®ãªãã¬ãã·ã¥ã¬ãŒãã®åŒ·åºŠ/ç¯å²ããŒã¿ãèšç®ããŸãã 詳现ã«ã€ããŠã¯ã httpsïŒ//github.com/Field-Robotics-Lab/dave/wiki/Multibeam-Forward-Looking-Sonarãã芧ãã ããã
ããã«ã¡ã¯ããããžã§ã¯ãã®å¥ã®å€§èŠæš¡ãªããŒã/ã³ã³ããŒãã³ãã«åãçµãã§ãããããéåžžã«é·ãæéããããŠãã®ã¹ã¬ããã«è¿ä¿¡ããŠç³ãèš³ãããŸããã
ããã¯äºå®äžãæšå¹Žãããã®ã¯ãŒã¯ããŒããåŠçããŠããååã«ãã®ã¯ãŒã¯ããŒããåŒãæž¡ãããããã·ãã¥ã¬ãŒã¿ãŒã®éçºã«å®å šã«åãçµãã§ããªãããšãæå³ããŸãã æ®å¿µãªãããéçºã«é¢ããŠè³ªåãæçš¿ãããå Žââåã«åããŠããã®ã¹ã¬ããã«ã€ããŠåœŒã«èšåããã®ãå¿ããŸããã
ãŸããæ確ã«ããããã«ããœããŒã¢ãã«ã®åŠçäžã«ã @ nilsboreã«ãã£ãŠãœããŒçšã«ãŸããã§ããã ãã ããç§ã®ååã¯ãæ¿ã£ãæ°Žäžç°å¢ã§ã®FLSã®åäœãããçŸå®çã«ã·ãã¥ã¬ãŒãããããã«ãåäœã®äžéšãå€æŽããããã«ããã€ãã®å°ããªèª¿æŽãè¡ã£ãå¯èœæ§ããããŸãã
@ jake3991ããªãã®è³ªåã«çããã«ã¯ïŒ
ãŸããç§ã®ååã¯ã圌ãåãçµãã§ããuuv_simulatorããŒã¹ã®ã·ãã¥ã¬ãŒã¿ãŒã«é¢ããè«æãå ¬éããããšãèšç»ããŠããããšã«ã泚æããŠãã ããã ãããã£ãŠãç§ãã¡ã®ãããžã§ã¯ãã®çŸåšã®å®è£ ã«é¢ãã詳现ã¯ã圌ã«åããå¿ èŠããããŸãã ãããžã§ã¯ãã®å®è£ ã«é¢ãããã®ä»ã®è³ªåã«çããããã«ãå¿ èŠã«å¿ããŠåœŒããã®ã¹ã¬ããã«æ¥ç¶ããŠããããŸãã
ãã ããå®éã«ãæ£ç¢ºãªããœããŒã¢ãã«ã«é¢ããŠã¯ã@ woensug-choiã«ãã£ãŠãªã³ã¯ãããäœæ¥ã¯ãããçŽæ¥çãªã¬ã€ãã¬ãŒã·ã³ã°å®è£ ã䜿çšããŠããããããããæ£ç¢ºãªãã¢ãã«ã§ããå¯èœæ§ããããŸãã ã·ãã¥ã¬ãŒã·ã§ã³ããŒã¹ã®éçºå šäœã«ãšã£ãŠããããã©ãã»ã©åªããŠãããã¯å®å šã«ã¯ããããŸãããã
ååã«å®è£ ããã§ãã¯ããŠãããããããžã§ã¯ãã®ã·ãã¥ã¬ãŒã¿ãŒã«ã©ãã ãããŸãçµ±åã§ãããã確èªããŸãã
ç¹°ãè¿ãã«ãªããŸããããã®ã¹ã¬ãããžã®è¿ä¿¡ãéåžžã«é ãããšã«ã€ããŠãçããã«å€å€§ãªè¬çœªãããŸãã
@ jake3991ãŸãããããžã§ã¯ãã®ã·ãã¥ã¬ãŒã¿ãŒã®åŒçšã«é¢ãã説æïŒã·ãã¥ã¬ãŒã¿ãŒã§å®éã«æåããè«æã®åºçç©ãå ¥æããŠããªããããé©åãªåŒçšã«ã¯ããªã³ã¯ããè«æãš@nilsboreãåŒãç¶ã䜿çšããããšããå§ãããŸãã
åºçç©ã«é¢ããç§ãã¡ã®åºçç©ãåãå ¥ãããããè¡ããããšãç§ãã¡ã®è«æã®åŒçšããããã䜿çšããããšãã§ããŸãã
èå³ã®ããæ¹ã¯ã httpsïŒ//github.com/Field-Robotics-Lab/dave/wiki/Multibeam-Forward-Looking-Sonarã確èªããŠ
@nilsboreã®ãœããŒã¢ãžã¥ãŒã«ããã§ã«çµ±åããŠãã@musamarcussoã®https://github.com/uuvsimulator/uuv_simulatorã䜿çšããŠããããšã«æ³šæããŠ
@ jake3991ã®è³ªåã§@NickSadjoliãæ確ã«ããã«ã¯ïŒ
2. @NickSadjoliãèšã£ãããã«ãç§ãã¡ã¯ãã«ãŒããªã³ããœããŒããåç
§ããŠããŸããã
ãœããŒã®VFOVããã€ãŒãããã«ã¯ïŒ
ãœããŒã®URDFxacroãã¡ã€ã«ã§ã¯ãç»åã®å¹
ãšé«ãã§ããHFOVãæå®ããå¿
èŠããããŸãã ã¬ãŒãã¯ãç»åã®å¹
ãšHFOVã«åºã¥ããŠçŠç¹è·é¢ãèšç®ããŸãã åãçŠç¹è·é¢ã䜿çšããŠãç»åã®é«ãã䜿çšããŠVFOVãéèšç®ããŸãã ãããã£ãŠãå¿
èŠãªVFOVãæå®ããã«ã¯ãç»åã®é«ããèšç®ããå¿
èŠããããŸãã
çŠç¹è·é¢=ïŒå¹ / 2ïŒ/ tanïŒdeg2radïŒHFOVïŒ/ 2ïŒãŸãã¯çŠç¹è·é¢=ïŒé«ã/ 2ïŒ/ tanïŒdeg2radïŒVFOVïŒ/ 2ïŒ
3.ãœããŒã®C ++ã³ãŒãããã€ãŒãããå¿ èŠããããŸãã @nilsboreã«ãããœããŒã®C ++ã³ãŒãã§ã¯ã @ nilsboreã®å ã®äœåã®ããã«äžå®ã®ç¯å²ãæã€ä»£ããã«ããç¯å²ãå€ã«ãµãã¹ã¯ã©ã€ããŒãè¿œå ããŸããã ãã®ããã«ããŠãã»ãšãã©ã®ãœããŒãšåãããã«ããœããŒãã£ã¹ãã¬ã€ã®æ倧ç¯å²ã§éã¶ããšãã§ããŸãã
ã圹ã«ç«ãŠãã°ã
@nilsboreãš@ NickSadjoli ãHiiã
@Jenanaputraäžèšã®ç§ã®ã³ã¡ã³ããåèã«ããŠãã ãã.....
@ loguna123ãªãã¬ã€ããããšãããããŸãã ãã®flsãã©ã°ã€ã³ã§äœ¿çšããã深床å€ãååŸ/ç¥ãæ¹æ³ãç¥ã£ãŠããŸããïŒ
æãåèã«ãªãã³ã¡ã³ã
ãããç§ãã¡ã¯
uuv_simulator
ã§ãã»ã³ãµãŒã·ãã¥ã¬ãŒã·ã§ã³ã«åãçµãã§ããŸãã çŸåšãæ»ã®ç»åãæäŸãããµã€ãã¹ãã£ã³ã«äŒŒããã®ããããŸãã ããã«éèŠãªããšã«ãããã§ã¯åªããFLSã»ã³ãµãŒã«åããŠåãçµãã§ããŸãïŒ https ïŒããã§ãããã«é¢å¿ãããå Žåã¯ããœããŒãã©ã®ããã«èŠãããã«ã€ããŠããã€ãã®äŸã瀺ãããããããã¹ãŠãå®äºããŠãã®ãªããžããªãžã®PRãäœæããããã«æ©èœããŸãã