[ros-users] Sync problem with stereo_image_proc

Radu Bogdan Rusu rusu at willowgarage.com
Thu May 20 17:45:25 UTC 2010


Dear Sacha,

What you're seeing makes sense. Though your disparity "looks good", I am sure you don't have valid disparity values at 
each pixel in the disparity image. None of us do :). What you are seeing as the output of rostopic echo is the list of 
3D points that do not have valid disparity values (we mark those with nan).

Cheers,
Radu.

On 05/20/2010 09:37 AM, Sacha Aury wrote:
> I do not really understand why, but I looked to the TF tutorial, added a
> few things to my program and rviz do not complain anymore. To recap, I
> now have a disparity map, rviz do not complain about a fixed_frame, but
> my goal is to get the points cloud. Rviz warns :
> [ WARN] 1274372115.122808000: TF_OLD_DATA ignoring data from the past
> for frame /test at time 16566 according to authority /camera_sync
> Possible reasons are listed at
>
>
>
> $rostopic echo /stereo/points  | less :
> header:
>     seq: 937
>     stamp: 18596000000000
>     frame_id: fixed_frame
> points: [
>       x: 0.0
>       y: 0.0
>       z: nan,
>       x: 0.0
>       y: 0.0
>       z: nan,
>       x: 0.0
>       y: 0.0
>       z: nan,
>       x: 0.0
>       y: 0.0
>       z: nan,
>       x: 0.0
>       y: 0.0
>       z: nan,
>       x: 0.0
>
> I don't get it, since my disparity map looks good. I can send you a
> screenshot of the map if you need it.
> So, why is the processing not sending the good coords ? I did not
> calibrate my cameras since I did not find a way to do it for stereo
> vision, is there a problem with that ?
>
> Thanks.
>
> Le mercredi 19 mai 2010 à 10:38 -0700, Josh Faust a écrit :
>> If you don't have a TF transform tree (http://ros.org/wiki/tf), the
>> fixed frame needs to match the frame you've set.  You also need to set
>> the timestamp in the header.
>>
>> msg.header.stamp = ros::Time::now();
>>
>> Josh
>>
>> On Wed, May 19, 2010 at 7:53 AM, Sacha Aury<sacha at shadowrobot.com>
>> wrote:
>>          Thanks for your help. I now have a single node synchronizing
>>          my two
>>          cameras (image and infos). It works with the stereo_view and I
>>          get the
>>          disparity map, which I am configuring. My question is now
>>          about rviz,
>>          which I've never used. It seems to need a fixed frame to
>>          display my 3D
>>          cloud points. I tried to set a frame_id in my synchronization
>>          node
>>          (before broadcasting it to stereo_image_proc), but it does not
>>          work,
>>          rviz still can't get any fixed frame.
>>
>>          How can I do that ? I think I am close to the result, but I
>>          can't see
>>          it !
>>
>>          Le mardi 18 mai 2010 à 09:07 -0700, Blaise Gassend a écrit :
>>
>>          >  Hi Sacha,
>>          >
>>          >  stereo_image_proc doesn't care about when your message was
>>          published, it
>>          >  just cares about the timestamp in the message. So your
>>          republishing node
>>          >  needs to set the timestamp, both in the image topic and in
>>          the
>>          >  camera_info topic.
>>          >
>>          >  Blaise
>>          >
>>          >  On Tue, 2010-05-18 at 16:29 +0100, Sacha Aury wrote:
>>          >  >  I think that having a hardware solution is a bit overkill
>>          for my
>>          >  >  problem. So I tried to write a node which collected image
>>          messages from
>>          >  >  my two cameras and which published both message every x
>>          seconds,
>>          >  >  typically 1/2. And when I am using
>>          image_pipeline/stereo_image_proc, I
>>          >  >  got messages of that kind :
>>          >  >
>>          >  >  [ WARN] 1274196325.866264000: [stereo_image_proc] Low
>>          number of
>>          >  >  synchronized left/right image pairs received.
>>          >  >  Left images received: 831
>>          >  >  Right images received: 831
>>          >  >  Synchronized pairs: 0
>>          >  >  Possible issues:
>>          >  >      * The cameras are not synchronized.
>>          >  >      * The network is too slow. For each synchronized image
>>          pair, at most 1
>>          >  >  is getting through.
>>          >  >
>>          >  >  I don't know what I could do more, since the
>>          synchronisation should be
>>          >  >  done by a TimeSynchronizer in the stereo_image_proc class.
>>          Could it be
>>          >  >  posible to cheat on the timestamps in any way ?
>>          >  >
>>          >  >  Thanks, and sorry for the double post, I made a mistake at
>>          first.
>>          >  >
>>          >  >  Le lundi 17 mai 2010 à 07:53 -0700, Gary Bradski a écrit :
>>          >  >  >  What level do you want synchronization on?  Within
>>          framerate (both
>>          >  >  >  frames happen randomly but within 1/30 of a second of
>>          each other) or
>>          >  >  >  exact frame synchronization? The first is achievable,
>>          the second needs
>>          >  >  >  extra hardware.
>>          >  >  >
>>          >  >  >  At most, ROS can get you timestamps to align to, but to
>>          get actual
>>          >  >  >  simultaneous frames, you'll need a triggering signal in
>>          hardware such
>>          >  >  >  as a wire between 2 cameras (that allow for this). Some
>>          1394 cameras
>>          >  >  >  may allow triggering over the 1394 bus and then you'll
>>          only have the
>>          >  >  >  problem of getting both buses to trigger at the same
>>          time ... which
>>          >  >  >  may be approximately possible, most of the time ... on
>>          average.
>>          >  >  >  Depends on the driver and the 1394 port.
>>          >  >  >
>>          >  >  >  I've seen an automotive 1394 article (not ROS related)
>>          where they have
>>          >  >  >  about 10 cameras. The cameras run the cameras at very
>>          high framerates
>>          >  >  >  and then they do timestamp synchronization which allows
>>          fairly
>>          >  >  >  synchronous alignment of multiple with no extra
>>          hardware.
>>          >  >  >
>>          >  >  >  Gary
>>          >  >  >
>>          >  >  >  On Mon, May 17, 2010 at 5:23 AM, Sacha Aury
>>          <sacha at shadowrobot.com>
>>          >  >  >  wrote:
>>          >  >  >          Hi,
>>          >  >  >
>>          >  >  >          I am trying to make a stereo camera acquisition
>>          using ROS with
>>          >  >  >          the
>>          >  >  >          cameradc1394 driver and the stereo_proc package.
>>          I've got a
>>          >  >  >          separate
>>          >  >  >          computer to stream the image_raw from my two
>>          cameras. The
>>          >  >  >          stream works,
>>          >  >  >          but when I launch stereo_image_proc, it seems
>>          that my two
>>          >  >  >          cameras are
>>          >  >  >          not synchronized :
>>          >  >  >
>>          >  >  >          [ WARN] 1274098675.074074000:
>>          [stereo_image_proc] Low number
>>          >  >  >          of
>>          >  >  >          synchronized left/right image pairs received.
>>          >  >  >          Left images received: 3079
>>          >  >  >          Right images received: 3076
>>          >  >  >          Synchronized pairs: 0
>>          >  >  >          Possible issues:
>>          >  >  >                 * The cameras are not synchronized.
>>          >  >  >                 * The network is too slow. For each
>>          synchronized image
>>          >  >  >          pair, at most 1
>>          >  >  >          is getting through.
>>          >  >  >
>>          >  >  >          Here is my launch file :
>>          >  >  >
>>          >  >  >          <!-- startstream.launch  -->
>>          >  >  >          <launch>
>>          >  >  >                 <param name="display" type="int"
>>          value="0"/>
>>          >  >  >                 <param name="framerate" type="double"
>>          value="15"/>
>>          >  >  >                 <param name="mode"
>>          value="MODE_320x240_YUV422"/>
>>          >  >  >
>>          >  >  >           <node name="camera_left" pkg="cameradc1394"
>>          >  >  >          type="cameradc1394"
>>          >  >  >          respawn="true">
>>          >  >  >                 <param name="prefix" type="string"
>>          >  >  >          value="/stereo/left/"/>
>>          >  >  >                 <param name="cameraindex" type="int"
>>          value="0"/>
>>          >  >  >           </node>
>>          >  >  >
>>          >  >  >
>>          >  >  >           <node name="camera_right" pkg="cameradc1394"
>>          >  >  >          type="cameradc1394"
>>          >  >  >          respawn="true">
>>          >  >  >                 <param name="prefix" type="string"
>>          >  >  >          value="/stereo/right/"/>
>>          >  >  >                 <param name="cameraindex" type="int"
>>          value="1"/>
>>          >  >  >           </node>
>>          >  >  >
>>          >  >  >          </launch>
>>          >  >  >
>>          >  >  >          Is there any specific way to make the two
>>          cameras
>>          >  >  >          synchronize ?
>>          >  >  >
>>          >  >  >          I am following that tutorial :
>>          >  >  >
>>          >  >  >          http://www.ros.org/wiki/stereo_image_proc
>>          >  >  >
>>          >  >  >          Thank you for any help.
>>          >  >  >
>>          >  >  >          Sacha
>>          >  >  >
>>          >  >  >
>>          >  >  >          _______________________________________________
>>          >  >  >          ros-users mailing list
>>          >  >  >          ros-users at code.ros.org
>>          >  >  >          https://code.ros.org/mailman/listinfo/ros-users
>>          >  >  >
>>          >  >  >  _______________________________________________
>>          >  >  >  ros-users mailing list
>>          >  >  >  ros-users at code.ros.org
>>          >  >  >  https://code.ros.org/mailman/listinfo/ros-users
>>          >  >
>>          >  >
>>          >  >  _______________________________________________
>>          >  >  ros-users mailing list
>>          >  >  ros-users at code.ros.org
>>          >  >  https://code.ros.org/mailman/listinfo/ros-users
>>          >
>>          >
>>          >  _______________________________________________
>>          >  ros-users mailing list
>>          >  ros-users at code.ros.org
>>          >  https://code.ros.org/mailman/listinfo/ros-users
>>
>>
>>          _______________________________________________
>>          ros-users mailing list
>>          ros-users at code.ros.org
>>          https://code.ros.org/mailman/listinfo/ros-users
>>
>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users

-- 
| Radu Bogdan Rusu | http://rbrusu.com/



More information about the ros-users mailing list