Ask Your Question
0

Running vslam_system with stereo images via uvc_camera

asked 2011-04-29 01:50:17 -0500

tom gravatar image

I've been able to successfully install and run uvc_camera stereo_node. I can see published images with rviz, with data on following topics

/left/image_raw
/left/camera_info
/right/image_raw
/right/camera_info

so everything fine so far. I've also already read this thread, but this doesn't solve my problem.

I'm using the following launch-file:

<launch>

  <!--<param name="/use_sim_time" value="True" />-->

    <node name="stereo_vslam_node" pkg="vslam_system" type="stereo_vslam_node" args="$(find vocabulary_tree)/holidays.tree $(find vocabulary_tree)/holidays.weights $(find vslam_system)/data/calonder.rtc" output="screen" cwd="node">
      <remap from="left/image_rect" to="/left/image_raw" />
      <remap from="right/image_rect" to="/right/image_raw" />
      <remap from="left/camera_info" to="/left/camera_info" />
      <remap from="right/camera_info" to="/right/camera_info" />
    </node>

  <!-- Show VO tracks -->
  <node name="vo_tracks_view" pkg="image_view" type="image_view">
    <remap from="image" to="/vslam/vo_tracks/image" />
  </node>

</launch>

After launching uvc_camera and vslam_system, I'm getting the following error:

process[stereo_vslam_node-1]: started with pid [14984]
[OK] Loaded RTC, quantization=4 bits
[OK] RTC: overall 24816/9011200 (0.275%) zeros in float leaves
          overall 464923/9011200 (5.159%) zeros in uint8 leave[roscpp_internal] 

[2011-04-29 15:19:28,316] [thread 0xb68e4890]: [DEBUG] UDPROS server listening on port [56579]
[roscpp_internal] [2011-04-29 15:19:28,324] [thread 0xb68e4890]: [DEBUG] Started node [/stereo_vslam_node], pid [14984], bound on [minigun], xmlrpc port [55094], tcpros port [60156], logging to [/home/user/.ros/log/496c507e-7263-11e0-a7b0-001f3c37bd78/stereo_vslam_node-1.log], using [real] time
        [ INFO] [1304083170.284822563]: In callback, seq = 340
        [stereo_vslam_node-1] process has died [pid 14984, exit code -11].
        log files: /home/user/.ros/log/496c507e-7263-11e0-a7b0-001f3c37bd78/stereo_vslam_node-1*.log

Saying (sorry about the size):

[roscpp_internal] [2011-04-29 15:19:28,414] [thread 0xb68e4890]: [DEBUG] XML-RPC call [searchParam] returned an error (-1): [Cannot find parameter [tf_prefix] in an upwards search]
[roscpp_internal] [2011-04-29 15:19:28,416] [thread 0xb68e4890]: [DEBUG] Publisher update for [/tf]:  already have these connections: 
[roscpp_internal] [2011-04-29 15:19:28,416] [thread 0xb68e4890]: [DEBUG] Creating intraprocess link for topic [/tf]
[roscpp_internal] [2011-04-29 15:19:28,418] [thread 0xb68e4890]: [DEBUG] XML-RPC call [lookupService] returned an error (-1): [no provider]
[roscpp_internal] [2011-04-29 15:19:28,422] [thread 0xb68e4890]: [DEBUG] XML-RPC call [searchParam] returned an error (-1): [Cannot find parameter [tf_prefix] in an upwards search]
[roscpp_internal] [2011-04-29 15:19:28,466] [thread 0xb68e2b70]: [DEBUG] Accepted connection on socket [7], new socket [12]
[roscpp_internal] [2011-04-29 15:19:28,467] [thread 0xb68e2b70]: [DEBUG] TCPROS received a connection from [127.0.0.1:60994]
[roscpp_internal] [2011-04-29 15:19:28,467] [thread 0xb68e2b70]: [DEBUG] Connection: Creating TransportSubscriberLink for topic [/rosout] connected to [callerid=[/rosout] address=[TCPROS connection to [127.0.0.1:60994 on socket 12]]]
[roscpp_internal] [2011-04-29 15:19:28,613] [thread 0xb68e4890]: [DEBUG] XML-RPC call [getParam] returned an error (-1): [Parameter [/stereo_vslam_node/detector] is not set]
[roscpp_internal] [2011-04-29 15:19:28,615] [thread 0xb68e4890]: [DEBUG] XML-RPC call [getParam] returned an error (-1): [Parameter [/stereo_vslam_node/fast_threshold] is not set]
[roscpp_internal] [2011-04-29 15:19:28,616] [thread 0xb68e4890]: [DEBUG] XML-RPC call [getParam] returned an error (-1): [Parameter [/stereo_vslam_node/fast_nonmax_suppression] is not set]
[roscpp_internal] [2011-04-29 15:19:28,618] [thread 0xb68e4890]: [DEBUG] XML-RPC call ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2011-05-04 00:41:47 -0500

tom gravatar image

updated 2011-05-16 21:12:14 -0500

Ok, in case anyone else got stuck as I did: the problem was, I just used uvc_camera to publish raw camera images, which is too little for vslam_system to work. You need synchronized, rectified images to use vslam (as it says in the wiki, but just not clear enough for me to notice right away :) ). So the solution for uvc cameras is:

  1. Install and run uvc_camera to publish raw images
  2. Calibrate the cameras using camera_calibration cameracalibrator.py to calibrate your stereo cameras (using a checkerboard, as described here)
  3. Rerun uvc_camera for it to grab the generated calibration files
  4. run: rosrun stereo_image_proc stereo_image_proc (this will publish rectified camera images)
  5. Do as it says here

Hope it helps.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2011-04-29 01:50:17 -0500

Seen: 369 times

Last updated: May 16 '11