[ros-users] Sync problem with stereo_image_proc

Kurt Konolige konolige at willowgarage.com
Fri May 21 13:38:19 UTC 2010


Dacha, what do your camera_info messages look like?  Especially, the  
right image needs a nonzero stereo offset.  --kk

Sent from my iPhone

On May 21, 2010, at 2:41 AM, Sacha Aury <sacha at shadowrobot.com> wrote:

> 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
>>
>
>
> _______________________________________________
> 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