我想建立由蘇黎世大學的機器人和感知組機器人項目的單目視覺測距系統。項目網站是https://github.com/uzh-rpg/rpg_svo。他們實現了它作爲ROS節點什麼是真的很酷,但是當我啓動svo_ros節點roslaunch svo_ros live.launch
我得到一個錯誤:vo_ros/vo:malloc():由圖像大小引起的內存損壞?
[ INFO] [1455715165.624976791]: SVO initialized
[ INFO] [1455715165.625768093]: Found parameter: svo/cam_topic, value: /image_raw
[ INFO] [1455715197.445786640]: RESET
*** Error in `/home/user/workspace/indigo/devel/lib/svo_ros/vo': malloc(): memory corruption: 0x0000000001187920 ***
我猜想這是由錯誤的圖像尺寸配置造成的,所以所用的OpenCV函數svo會破壞圖像上的內存。 我使用camera_calibration ros節點校準了我的相機。我翻譯的輸出到.yaml文件表示在/param/camera_pinhole.yaml如下
cam_model: Pinhole
cam_width: 644
cam_height: 484
cam_fx: 588.481298
cam_fy: 587.819899
cam_cx: 328.046456
cam_cy: 226.471844
cam_d0: -0.363501
cam_d1: 0.165011
cam_d2: 0.000571
cam_d3: -0.000577
正如我從校準數據中的圖像分辨率644x484和使用該image_view包的image_view節點證實了它,我會說我配置的圖像cam_width和高度是正確的。我甚至試圖將image_width和image_height設置爲launch-filge的大小,但它沒有改變任何內容。
<launch>
<node pkg="svo_ros" type="vo" name="svo" clear_params="true" output="screen">
<!-- param name="image_width" value="644" type="int" />
<param name="image_height" value="484" type="int" />
<param name="cam_width" value="644" type="int" />
<param name="cam_height" value="484" type="int"/-->
<!-- Camera topic to subscribe to -->
<param name="cam_topic" value="/image_raw" type="str" />
<!-- Camera calibration file -->
<rosparam file="$(find svo_ros)/param/camera_pinhole.yaml" />
<!-- Default parameter settings: choose between vo_fast and vo_accurate -->
<rosparam file="$(find svo_ros)/param/vo_fast.yaml" />
</node>
</launch>
我是否想要適合任何參數或其他配置,或者有人有其他想法是什麼錯?
在此先感謝。
由於爲答案@amado提供答案。請花點時間格式化您的答案,使其更具可讀性:http://stackoverflow.com/help/how-to-answer – pczeus
我不知道爲什麼,但它的工作原理。我希望儘快推出。現在我必須找出爲什麼在初始化第二個關鍵幀後沒有找到足夠的功能。謝謝。 –