[ros-users] Sync problem with stereo_image_proc

Sacha Aury sacha at shadowrobot.com
Thu May 20 16:37:20 UTC 2010


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





More information about the ros-users mailing list