peci1 / robot_body_filter

Filters the robot's body out of point clouds and laser scans.
BSD 3-Clause "New" or "Revised" License
84 stars 21 forks source link

Per link padding and scaling not working #19

Closed juansolana closed 1 year ago

juansolana commented 2 years ago

Hi, I tried applying a per link scaling and padding but does not seem to be working. Do I need to reinstall the library or is something wrong with my yaml file?

# Filter config for segmenting out Robot from pointcloud.
# The field of view of the sensor can only capture a few links, so the `only_links` parameter is set
# to increase performance. Also, the `filter/keep_clouds_organized` parameter is important here to
# retain the 2D structure of the RGBD camera output.
# For more detail on the different parameters of the filter, refer to:
# http://wiki.ros.org/robot_body_filter
robot_filter_chain:
  - name: RobotBodyFilter
    type: robot_body_filter/RobotBodyFilterPointCloud2
    params:
      frames/fixed: 'canonical_smpl_origin'
      frames/sensor: 'canonical_smpl_origin'
      filter/keep_clouds_organized: True
      filter/do_clipping: True
      filter/do_contains_test: True
      filter/do_shadow_test: True
      sensor/point_by_point: False
      sensor/min_distance: 0.01
      sensor/max_distance: 2.5
      only_links: []
      ignored_links/everywhere: []
      body_model/inflation/scale: 1.2
      body_model/inflation/per_link/padding: {left_touchpoint: 0.072, right_touchpoint: 0.072}
      body_model/robot_description_param: '/robot_description'
      transforms/buffer_length: 15.0
      transforms/timeout/reachable: 0.2
      transforms/timeout/unreachable: 0.2
      bounding_sphere/compute: True
      bounding_sphere/debug: False
      bounding_sphere/publish_cut_out_pointcloud: True
      bounding_box/compute: True
      bounding_box/debug: False
      bounding_box/publish_cut_out_pointcloud: True
      debug/pcl/inside: False
      debug/pcl/clip: False
      debug/pcl/shadow: False
      debug/marker/contains: True
      debug/marker/shadow: False
peci1 commented 2 years ago

Please, provide also the urdf of your robot

On Fri, Jan 21, 2022, 21:39 Juan Solana @.***> wrote:

Hi, I tried applying a per link scaling and padding but does not seem to be working. Do I need to reinstall the library or is something wrong with my yaml file?

Filter config for segmenting out Robot from pointcloud.

The field of view of the sensor can only capture a few links, so the only_links parameter is set

to increase performance. Also, the filter/keep_clouds_organized parameter is important here to

retain the 2D structure of the RGBD camera output.

For more detail on the different parameters of the filter, refer to:

http://wiki.ros.org/robot_body_filter

robot_filter_chain:

  • name: RobotBodyFilter type: robot_body_filter/RobotBodyFilterPointCloud2 params: frames/fixed: 'canonical_smpl_origin' frames/sensor: 'canonical_smpl_origin' filter/keep_clouds_organized: True filter/do_clipping: True filter/do_contains_test: True filter/do_shadow_test: True sensor/point_by_point: False sensor/min_distance: 0.01 sensor/max_distance: 2.5 only_links: [] ignored_links/everywhere: [] body_model/inflation/scale: 1.2 body_model/inflation/per_link/padding: {left_touchpoint: 0.072, right_touchpoint: 0.072} body_model/robot_description_param: '/robot_description' transforms/buffer_length: 15.0 transforms/timeout/reachable: 0.2 transforms/timeout/unreachable: 0.2 bounding_sphere/compute: True bounding_sphere/debug: False bounding_sphere/publish_cut_out_pointcloud: True bounding_box/compute: True bounding_box/debug: False bounding_box/publish_cut_out_pointcloud: True debug/pcl/inside: False debug/pcl/clip: False debug/pcl/shadow: False debug/marker/contains: True debug/marker/shadow: False

— Reply to this email directly, view it on GitHub https://github.com/peci1/robot_body_filter/issues/19, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABMSBI2473L2TAYB7QQ5KTUXG77VANCNFSM5MQP6M5Q . You are receiving this because you are subscribed to this thread.Message ID: @.***>

juansolana commented 2 years ago

This is the urdf of the robot. The collisions within ${arm_id}_touchpoint are the ones I'm trying to apply the filter config of padding and scaling.

`<?xml version="1.0" encoding="utf-8"?>

`

peci1 commented 2 years ago

The <collision> you posted is weird. It contains two <geometry> nodes, while I'm almost sure URDF only allows one geometry per collision. You can specify multiple collisions, each with a single geometry node.

juansolana commented 2 years ago

I guess that explains why only see the cylinder collision geometry in RViz. You think having both collision is what makes the per link scale and padding not work? The normal way that applies to all collisions works fine, and I can tell that the scaling and padding is not applied to the second collision that doesn't even show up.

peci1 commented 2 years ago

That's my guess. As you're using invalid URDF, many things can break and this could be one of them. Try fixing the URDF and let me know if it fixed the issue.

peci1 commented 1 year ago

Closing this issue because there is probably not much this library can do with invalid inputs.