[ros-users] Sync problem with stereo_image_proc
Radu Bogdan Rusu
rusu at willowgarage.com
Fri May 21 15:55:35 UTC 2010
Dear Sacha,
Can you assemble a bag file with the following topics? Please replace "mystereo" with the name of your stereo camera:
/mystereo/left/image_raw
/mystereo/left/camera_info
/mystereo/right/image_raw
/mystereo/right/camera_info
and upload it somewhere where I can access it?
In the meantime, can you make a screenshot of the disparity image? Just visualize it using image_view, and save it to a
jpg/png.
Thanks,
Radu.
On 05/21/2010 02:41 AM, Sacha Aury 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
>>
>
>
--
| Radu Bogdan Rusu | http://rbrusu.com/
More information about the ros-users
mailing list