Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Getting Transform Exception after implementing voxel layer

Hello friends,

I recently made the switch from a 2d costmap to a 2.5d voxel layer costmap based on suggestions from one of my previous posts. I decided to go with the spatio_temporal_voxel_layer plugin because it promised to have improvements over the standard voxel_grid plugin and it seemed to have a lot of documentation. After implementing and some troubleshooting i was able to get everything working and i am able to see the voxel grid in rviz. The issue i am having is that i am contunually getting the following errors:

[ERROR] [1571884523.045139138]: TF Exception for sensor frame: , cloud frame: camera_depth_optical_frame, Lookup would require extrapolation into the past.  Requested time 1571884512.575208000 but the earliest data is at time 1571884513.123332977, when looking up transform from frame [camera_depth_optical_frame] to frame [map]

[ERROR] [1571884524.605706427]: TF Exception for sensor frame: , cloud frame: camera_depth_optical_frame, Lookup would require extrapolation into the past.  Requested time 1571884513.871130000 but the earliest data is at time 1571884514.679229172, when looking up transform from frame [camera_depth_optical_frame] to frame [odom]

i thing this is effecting the function of the rest of the robot because then i place a navigation waypoint it takes a minute or two to do anything if at all.

results from rqt_tf_tree: image description costmap_common_params:

footprint: [[0.5,0.35],[0.5,-0.35],[-0.5,-0.35],[-0.5,0.35]]
raytrace_range: 3.0
obstacle_range: 2.5
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: camera_link, data_type: LaserScan, topic: scan, marking: true, clearing: true}

rgbd_obstacle_layer:
  enabled:               true
  voxel_decay:           30     #seconds if linear, e^n if exponential
  decay_model:           0      #0=linear, 1=exponential, -1=persistent
  voxel_size:            0.25   #meters
  track_unknown_space:   true   #default space is unknown
  observation_persistence: 0.0  #seconds
  max_obstacle_height:   2.0    #meters
  unknown_threshold:     15     #voxel height
  mark_threshold:        0      #voxel height
  update_footprint_enabled: true
  combination_method:    1      #1=max, 0=override
  obstacle_range:        6.0    #meters
  origin_z:              0.0    #meters
  publish_voxel_map:     true   # default off
  transform_tolerance:   0.2    # seconds
  mapping_mode:          false  # default off, saves map not for navigation
  map_save_duration:     60     #default 60s, how often to autosave
  observation_sources:   rgbd1_clear rgbd1_mark
  rgbd1_mark:
    data_type: PointCloud2
    topic: camera/depth/points
    marking: true
    clearing: false
    min_obstacle_height: 0.0     #default 0, meters
    max_obstacle_height: 1.0     #default 3, meters
    expected_update_rate: 0.0    #default 0, if not updating at this rate at least, remove from buffer
    observation_persistence: 0.0 #default 0, use all measurements taken during now-value, 0=latest 
    inf_is_valid: false          #default false, for laser scans
    clear_after_reading: true    #default false, clear the buffer after the layer gets readings from it
    voxel_filter: true           #default off, apply voxel filter to sensor, recommend on 
  rgbd1_clear:
    enabled: true                #default true, can be toggled on/off with associated service call
    data_type: PointCloud2
    topic: camera/depth/points
    marking: false
    clearing: true
    min_z: 0.1                   #default 0, meters
    max_z: 7.0                   #default 10, meters
    vertical_fov_angle: 0.7      #default 0.7, radians
    horizontal_fov_angle: 1.04   #default 1.04, radians
    decay_acceleration: 1.       #default 0, 1/s^2. If laser scanner MUST be 0
    model_type: 0                #default 0 (depth camera). Use 1 for 3D Lidar

global_params:

global_costmap:
  global_frame: map
  robot_base_frame: base_link
  static_map: true
  transform tolerance: 0.5
  plugins:
  - {name: rgbd_obstacle_layer, type: "spatio_temporal_voxel_layer/SpatioTemporalVoxelLayer"}

local params:

local_costmap:
  global_frame: odom
  robot_base_frame: base_link
  rolling_window: true
  plugins:
  - {name: rgbd_obstacle_layer, type: "spatio_temporal_voxel_layer/SpatioTemporalVoxelLayer"}

I appreciate any and all help, if you all need anything else to better diagnose please let me know.

Getting Transform Exception after implementing voxel layer

Hello friends,

I recently made the switch from a 2d costmap to a 2.5d voxel layer costmap based on suggestions from one of my previous posts. I decided to go with the spatio_temporal_voxel_layer plugin because it promised to have improvements over the standard voxel_grid plugin and it seemed to have a lot of documentation. After implementing and some troubleshooting i was able to get everything working and i am able to see the voxel grid in rviz. The issue i am having is that i am contunually getting the following errors:

[ERROR] [1571884523.045139138]: TF Exception for sensor frame: , cloud frame: camera_depth_optical_frame, Lookup would require extrapolation into the past.  Requested time 1571884512.575208000 but the earliest data is at time 1571884513.123332977, when looking up transform from frame [camera_depth_optical_frame] to frame [map]

[ERROR] [1571884524.605706427]: TF Exception for sensor frame: , cloud frame: camera_depth_optical_frame, Lookup would require extrapolation into the past.  Requested time 1571884513.871130000 but the earliest data is at time 1571884514.679229172, when looking up transform from frame [camera_depth_optical_frame] to frame [odom]

i thing this is effecting the function of the rest of the robot because then i place a navigation waypoint it takes a minute or two to do anything if at all.

results from rqt_tf_tree: image description costmap_common_params:

footprint: [[0.5,0.35],[0.5,-0.35],[-0.5,-0.35],[-0.5,0.35]]
raytrace_range: 3.0
obstacle_range: 2.5
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: camera_link, data_type: LaserScan, topic: scan, marking: true, clearing: true}

rgbd_obstacle_layer:
  enabled:               true
  voxel_decay:           30     #seconds if linear, e^n if exponential
  decay_model:           0      #0=linear, 1=exponential, -1=persistent
  voxel_size:            0.25   #meters
  track_unknown_space:   true   #default space is unknown
  observation_persistence: 0.0  #seconds
  max_obstacle_height:   2.0    #meters
  unknown_threshold:     15     #voxel height
  mark_threshold:        0      #voxel height
  update_footprint_enabled: true
  combination_method:    1      #1=max, 0=override
  obstacle_range:        6.0    #meters
  origin_z:              0.0    #meters
  publish_voxel_map:     true   # default off
  transform_tolerance:   0.2    # seconds
  mapping_mode:          false  # default off, saves map not for navigation
  map_save_duration:     60     #default 60s, how often to autosave
  observation_sources:   rgbd1_clear rgbd1_mark
  rgbd1_mark:
    data_type: PointCloud2
    topic: camera/depth/points
    marking: true
    clearing: false
    min_obstacle_height: 0.0     #default 0, meters
    max_obstacle_height: 1.0     #default 3, meters
    expected_update_rate: 0.0    #default 0, if not updating at this rate at least, remove from buffer
    observation_persistence: 0.0 #default 0, use all measurements taken during now-value, 0=latest 
    inf_is_valid: false          #default false, for laser scans
    clear_after_reading: true    #default false, clear the buffer after the layer gets readings from it
    voxel_filter: true           #default off, apply voxel filter to sensor, recommend on 
  rgbd1_clear:
    enabled: true                #default true, can be toggled on/off with associated service call
    data_type: PointCloud2
    topic: camera/depth/points
    marking: false
    clearing: true
    min_z: 0.1                   #default 0, meters
    max_z: 7.0                   #default 10, meters
    vertical_fov_angle: 0.7      #default 0.7, radians
    horizontal_fov_angle: 1.04   #default 1.04, radians
    decay_acceleration: 1.       #default 0, 1/s^2. If laser scanner MUST be 0
    model_type: 0                #default 0 (depth camera). Use 1 for 3D Lidar

global_params:

global_costmap:
  global_frame: map
  robot_base_frame: base_link
  static_map: true
  transform tolerance: 0.5
  plugins:
  - {name: rgbd_obstacle_layer, type: "spatio_temporal_voxel_layer/SpatioTemporalVoxelLayer"}

local params:

local_costmap:
  global_frame: odom
  robot_base_frame: base_link
  rolling_window: true
  plugins:
  - {name: rgbd_obstacle_layer, type: "spatio_temporal_voxel_layer/SpatioTemporalVoxelLayer"}

I appreciate any and all help, if you all need anything else to better diagnose please let me know.

EDIT: Per request i have used top to take a look at my processor usage. Here is a screenshot: image description