[ros-users] tabletop_object_detector, table and object not segmented

Ugo Cupcic ugo at shadowrobot.com
Tue May 31 13:02:27 UTC 2011


Hi,

This thread is a bit old, but I think I found what the problem was: I
couldn't use base_link as the processing_frame for the
tabletop_object_detector, even though the transform between /base_link and
/openni_rgb_optical_frame existed. I think it's because there's a missing
waitForTransform in the tabletop_segmentation.cpp file. Adding this
waitForTransform solved my problem.

Please find the patch attached.

Cheers,

Ugo

On Mon, Jan 10, 2011 at 5:20 PM, Matei Ciocarlie <matei at willowgarage.com>wrote:

> Hi Ugo,
>
> If I use this instead of "fixed":
>> <param name="processing_frame" value="openni_camera" />
>>
>> then it works properly.
>>
>
> Well, glad it's fixed; I can venture some guesses on what was wrong below
> and let us know if you start seeing problems again.
>
> It is true that the "base_link" frame is considered a "default frame" in
> parts of the code. There is need for one, as well as a frame in which
> assumptions can be made regarding which way is "logical down" (gravity),
> etc. We have tried to make that a parameter, but we might have missed it in
> various places where it's hard coded in. I would not be very surprised if we
> had strange behaviors in a system with no "base link" frame. However, that
> is indeed the right place to specify your own processing frame, so I'm
> encouraged that changing that parameter fixed your problem.
>
>
>> > As you can see on those screenshots, though the table plan is found
>> > correctly, the segmented point cloud includes the table and the object.
>> >
>> > http://img5.imagebanana.com/img/xx8ltmur/Selection_001.png
>> > http://img5.imagebanana.com/img/ji89gls7/Selection_002.png
>>
>
> I would guess this is related to the problem above. The point clouds are
> coming in in a frame that is not the processing frame, and "base_link" was
> not available to transform into. I agree that it should however give you
> some more informative error messages instead of wrong point clouds...
>
>
>> >
>> > I'm not sure what I did wrong. In the log below, I see those warnings:
>> > [ INFO] [1294654799.697276843]: cannot extend bbox to table, they are
>> > not in the same frame
>> > [ WARN] [1294654799.697396094]: Failed to extend bbox to table; using
>> > original dimensions
>>
>
> This is a different part of the code, in the
> tabletop_collision_map_processing. In there, we take the bounding boxes of
> segmented point clouds and add them to the collision system. We have found
> that even if the point cloud appears to not extend all the way down to the
> table, the system is more robust if we force its bounding box to extend to
> the table (since it is unlikely that the object is floating in mid-air).
> That process fails due to the same problem above, but the error correction
> catches it and just gives you the original bounding box, not extended to
> touch the table. Should not be a stopper for anything downstream.
>
> Best,
> Matei
>
>
>> > My only clue is that lots of code in tabletop_object_detector and the
>> > depending packages seems to have "base_link" hard coded as the reference
>> > link. I'm using "fixed", so I'm publishing a fixed transform between
>> > fixed and base_link. (I tried to use: <remap from="base_link"
>> > to="fixed" /> in my nodes but I get the error: [ERROR] [WallTime:
>> > 1294655504.963270] tf transform was not there!!). Anyway I don't think
>> > that it's related to my problem, as even with this error, I get the
>> > yellow rectangle for the table + the object segmented point cloud which
>> > contains the table as shown previously.
>> >
>> > Sorry if my message is not precise enough, but I'm a bit lost here and
>> > I'm not sure where to start looking.
>> >
>> > Any help greatly appreciated.
>> >
>> > Cheers,
>> >
>> > Ugo
>> >
>> >
>> > [ INFO] [1294654796.985860596]: Tabletop detection service called;
>> > waiting for a point_cloud2 on topic /camera/depth/points2
>> > [ INFO] [1294654797.261886506]: Point cloud received; processing
>> > [ INFO] [1294654797.374996037]: Input cloud converted to fixed frame
>> > [ INFO] [1294654797.375096220]: Starting process on new cloud
>> > [ INFO] [1294654797.400421841]: Step 1 done
>> > [ INFO] [1294654797.433487674]: Step 2 done
>> > [ INFO] [1294654797.464712409]: [TableObjectDetector::input_callback]
>> > Model found with 2992 inliers: [0.090311 -0.057030 0.994279 -0.009768].
>> > [ INFO] [1294654797.464846818]: Step 3 done
>> > [ INFO] [1294654797.465131387]: Step 4 done
>> > [ INFO] [1294654797.477030009]: Table computed
>> > [ INFO] [1294654797.508113609]:  Number of object point candidates:
>> > 55342.
>> > [ INFO] [1294654798.549648017]: Number of clusters found matching the
>> > given constraints: 1.
>> > cloud_objects frame: fixed
>> > [ INFO] [1294654798.568788369]: Clusters converted
>> > [ INFO] [1294654798.595098187]: Fitting models to clusters
>> > [ INFO] [1294654799.025706263]:   - fit with score 0.046118 for model id
>> > 18791
>> > [ INFO] [1294654799.063682509]: Cloud size: 34522
>> > [INFO] [WallTime: 1294654799.444427] finding the bounding box for a
>> > point cluster
>> > [INFO] [WallTime: 1294654799.613361] waiting for transform: base_link
>> > from fixed
>> > [INFO] [WallTime: 1294654799.617360] got transform
>> > [INFO] [WallTime: 1294654799.645909] chopped points off of dim -0,
>> > lowest val = -0.353, searchval = -0.327
>> > [INFO] [WallTime: 1294654799.668446] chopped points off of dim -1,
>> > lowest val = -0.298, searchval = -0.274
>> > [INFO] [WallTime: 1294654799.690813] chopped points off of dim 2,
>> > highest val = 0.308, searchval = 0.261
>> > [ INFO] [1294654799.697276843]: cannot extend bbox to table, they are
>> > not in the same frame
>> > [ WARN] [1294654799.697396094]: Failed to extend bbox to table; using
>> > original dimensions
>> > [ INFO] [1294654799.697444127]: Adding bounding box with dimensions
>> > 0.623375 0.423401 0.260162 to collision map
>> > [ERROR] [1294654829.700053341]: Collision map was not formed in allowed
>> > time
>> > [ERROR] [1294654829.700812477]: Collision map processing error;
>> > exception: collision map: static make was not formed in allowed time
>> >
>>
>> --
>> Ugo Cupcic | Shadow Robot Company | ugo at shadowrobot.com
>> Software Engineer | 251 Liverpool Road |
>> need a Hand? | London N1 1LX | +44 20 7700 2487
>> http://www.shadowrobot.com/hand/ @shadowrobot
>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>
>
>
> --
> Matei Ciocarlie
> Research Scientist
> Willow Garage Inc.
> 650-475-9780
>



-- 
Ugo Cupcic | Shadow Robot Company | ugo at shadowrobot.com
Software Engineer | 251 Liverpool Road |
need a Hand? | London N1 1LX | +44 20 7700 2487
http://www.shadowrobot.com/hand/ @shadowrobot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/ros-users/attachments/20110531/3888423e/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wait_for_transform.diff
Type: text/x-patch
Size: 672 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/ros-users/attachments/20110531/3888423e/attachment-0003.bin>


More information about the ros-users mailing list