ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
2

Filter collision_object from point cloud

asked 2012-09-20 16:24:48 -0500

harsha gravatar image

updated 2012-09-21 05:53:08 -0500

Hi,

I'm using ROS electric in Ubuntu 10.04. I'm trying to filter points of a known collision_object (a box, not attached to the robot) from the point cloud output of kinect, so that I can build a collision map free of the object to manipulate it. I'm using the filter_attached_objects node from the planning_environment package. The following is a part of my launch file:

<!-- attached_object filter point clouds -->
  <node pkg="planning_environment" type="filter_attached_objects" name="filter_attached_objects_sls" output="screen">
    <remap from="cloud_in" to="/camera/depth/points_SelfFilter" />
    <remap from="cloud_out" to="/camera/depth/points_KnownObjectsFiltered" />
    <param name="sensor_frame" type="string" value="camera_depth_optical_frame" />
  </node>

And collision objects are published in the topic /collision_object.

rostopic info /collision_object
Type: arm_navigation_msgs/CollisionObject

Publishers: 
 * /box (http://cable:60904/)

Subscribers: 
 * /filter_attached_objects_sls (http://cable:52946/)
 * /environment_server (http://cable:60952/)

rostopic echo /collision_object
header: 
  seq: 0
  stamp: 
    secs: 0
    nsecs: 0
  frame_id: /camera_depth_optical_frame
id: Box_2
padding: 0.0
operation: 
  operation: 0
shapes: 
  - 
    type: 1
    dimensions: [0.35600000619888306, 0.21600000560283661, 0.26399999856948853]
    triangles: []
    vertices: []
poses: 
  - 
    position: 
      x: -0.223451972008
      y: 0.0241708215326
      z: 1.2832916975
    orientation: 
      x: -0.804724097252
      y: -0.336898833513
      z: -0.330028921366
      w: 0.360554099083

The box is visible on rviz as part of the visualization_marker_array published by ros::Publisher vis_marker_array_publisher_ in the filter_attached_objects node.

The problem is that the output point cloud from the node still contains the points that belong to the box.

I recently started using ROS and I might be missing something fairly simple here. Please let me know how to go about working this out.

edit: After looking into the solution for link this question, I tried using set_planning_scene_diff. But the collision object is still visible in the point cloud.

Thanks, Harsha

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2013-01-17 04:30:38 -0500

dbworth gravatar image

Have a look at tabletop manipulation. That detects an object, then adds it to the collision map as a graspable object.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2012-09-20 16:24:48 -0500

Seen: 424 times

Last updated: Jan 17 '13