[ros-users] Sync problem with stereo_image_proc

Sacha Aury sacha at shadowrobot.com
Fri May 21 09:41:27 UTC 2010


Dear Radu,

Even if I understand that having some not valid disparity values is
possible, I actually do not have any good ones. Moreover, all my points
are quite the same (0.0, 0.0, nan) which is a bit strange I think. What
could I do to fix this ? I already tried to change parameters with
dynamic_reconfigure, but it did not change anything.

Cheers,
Sacha

Le jeudi 20 mai 2010 à 10:45 -0700, Radu Bogdan Rusu a écrit :
> 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
> 





More information about the ros-users mailing list