Dear Radu, I am trying to calibrate my cameras right now. I didn't do it before, because I didn't find the way to do it on the step-by-step tutorial. It could be good to add a link somewhere in http://www.ros.org/wiki/stereo_image_proc to tell it has to be done. I try to do the calibration using 320*340 resolution and 30 fps. Everything is fine until I click on "calibrate", then the python script fails : epipolar error: 0.857935751957 OpenCV Error: Assertion failed (src.type() == dst.type() && dst.size() == mapx.size()) in cvRemap, file /opt/ros/boxturtle/stacks/vision_opencv/opencv2/build/opencv-svn/src/cv/cvimgwarp.cpp, line 3083 Exception in thread Thread-9: Traceback (most recent call last): File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner self.run() File "/opt/ros/boxturtle/stacks/image_pipeline_copy/camera_calibration/nodes/cameracalibrator.py", line 59, in run self.function(m) File "/opt/ros/boxturtle/stacks/image_pipeline_copy/camera_calibration/nodes/cameracalibrator.py", line 233, in handle_stereo lscrib = self.c.lremap(lrgb) File "/opt/ros/boxturtle/stacks/image_pipeline_copy/camera_calibration/src/camera_calibration/calibrator.py", line 407, in lremap cv.Remap(src, r, self.lmapx, self.lmapy) error: src.type() == dst.type() && dst.size() == mapx.size() I tried to do it using 15fps/640*480, but the cams are not very usable at this rate. The calibration seems to work (at least, not crashing) like this, but the params K and P are still infinite... Cheers, Sacha Le vendredi 21 mai 2010 à 09:20 -0700, Radu Bogdan Rusu a écrit : > Dear Sacha, > > Thanks for the uploading the data. I had a look at the bag file that you recorded, and as far as I can tell, it looks > like the camera_info is screwed up: > > header: > seq: 2145 > stamp: 2144000000000 > frame_id: fixed_frame > height: 240 > width: 320 > roi: > x_offset: 100 > y_offset: 0 > height: 240 > width: 320 > D: [0.0, 0.0, 0.0, 0.0, 0.0] > K: [inf, 0.0, 159.5, 0.0, inf, 119.5, 0.0, 0.0, 1.0] > R: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0] > P: [inf, 0.0, 159.5, 0.0, 0.0, inf, 119.5, 0.0, 0.0, 0.0, 1.0, 0.0] > > Did you calibrate the cameras using the instructions on the wiki? Having inf values in K and P is bad :) > > Cheers, > Radu. > > On 05/21/2010 09:15 AM, Sacha Aury wrote: > > Dear Radu > > > > Thanks for your help. Since my connection at work is not really fast, I > > will send the bag on http://fly.yozora-irc.net/shadow tonight. You can > > already see my disparity map and both left / right images at this place. > > > > Cheers, > > Sacha > > > > Le vendredi 21 mai 2010 à 08:55 -0700, Radu Bogdan Rusu a écrit : > >> 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 > >>>>>> 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 > >>>>>> > >>>>>> > > > 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 : > >>>>>> > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> > > > >>>>>> value="0"/> > >>>>>> > > > >>>>>> value="15"/> > >>>>>> > > > >>>>>> value="MODE_320x240_YUV422"/> > >>>>>> > > > > >>>>>> > > > >>>>>> > > > type="cameradc1394" > >>>>>> > > > respawn="true"> > >>>>>> > > > >>>>>> > > > value="/stereo/left/"/> > >>>>>> > > > >>>>>> value="0"/> > >>>>>> > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> > > > >>>>>> > > > type="cameradc1394" > >>>>>> > > > respawn="true"> > >>>>>> > > > >>>>>> > > > value="/stereo/right/"/> > >>>>>> > > > >>>>>> value="1"/> > >>>>>> > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> > > > 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@code.ros.org > >>>>>> > > > https://code.ros.org/mailman/listinfo/ros-users > >>>>>> > > > > >>>>>> > > > _______________________________________________ > >>>>>> > > > ros-users mailing list > >>>>>> > > > ros-users@code.ros.org > >>>>>> > > > https://code.ros.org/mailman/listinfo/ros-users > >>>>>> > > > >>>>>> > > > >>>>>> > > _______________________________________________ > >>>>>> > > ros-users mailing list > >>>>>> > > ros-users@code.ros.org > >>>>>> > > https://code.ros.org/mailman/listinfo/ros-users > >>>>>> > > >>>>>> > > >>>>>> > _______________________________________________ > >>>>>> > ros-users mailing list > >>>>>> > ros-users@code.ros.org > >>>>>> > https://code.ros.org/mailman/listinfo/ros-users > >>>>>> > >>>>>> > >>>>>> _______________________________________________ > >>>>>> ros-users mailing list > >>>>>> ros-users@code.ros.org > >>>>>> https://code.ros.org/mailman/listinfo/ros-users > >>>>>> > >>>>>> > >>>>>> _______________________________________________ > >>>>>> ros-users mailing list > >>>>>> ros-users@code.ros.org > >>>>>> https://code.ros.org/mailman/listinfo/ros-users > >>>>> > >>>>> > >>>>> _______________________________________________ > >>>>> ros-users mailing list > >>>>> ros-users@code.ros.org > >>>>> https://code.ros.org/mailman/listinfo/ros-users > >>>> > >>> > >>> > >> > > > > >