Skip to content

avt_341_perception_node

Chris Goodin edited this page Oct 29, 2021 · 8 revisions

Perception Node

The perception node uses a point cloud and odometry to create a map of obstacle locations in the environment. The map is in the form of a ROS occupancy grid.

The grid is stationary and centered on the starting position of the vehicle. The grid size parameter must be set to encompass the entire operating extent for the vehicle.

A map cell is determined to be occupied if the highest measured point in that cell exceeds the lowest measured point in that cell by more than a user-defined threshhold.

Subuscribed Topics

Published Topics

Parameters

  • ~grid_width (double, default: 500.0) The spatial extent of the map in the x/east direction, in meters.
  • ~grid_height (double, default: 500.0) The spatial extent of the map in the y/north direction, in meters.
  • ~grid_llx (double, default: -250.0) The ENU coordinate of the lower-left corner of the grid in the x/east direction, in meters.
  • ~grid_lly (double, default: -250.0) The ENU coordinate of the lower-left corner of the grid in the y/north direction, in meters.
  • ~grid_res (double, default: 1.0) The size of a grid cell, in meters.
  • ~warmup_time (double, default: 1.0) The amount of time in seconds for which the perception node will idle after startup. This gives time for the sensors and other algorithms to come online.
  • ~time_register_window (double, default: 0.02) The maximum amount of time in seconds for which an odometry message can be synchronized with a point cloud message for point cloud registration. If point cloud message does not have a matching odometry message within plus or minus time_register_window seconds, it will be ignored.
  • ~thresh (double, default: 1.0) The height / slope threshhold used to determine if a cell is an obstacle.
  • ~use_elevation (bool, default: false) If true, the absolute value of the elevation range in a cell will be compared to the value of "thresh" to determine if the cell is occupied. If false, the cell slope ((highest-lowest)/resolution) will be compared to thresh.
  • ~use_registered (bool, default: false) If true, the algorithm will assume the incoming point cloud is already registered to world coordinates. If false, the point cloud will be registered using the recieved odometry.
  • ~overhead_clearance (float, default: 100.0) Ignore points this distance above the vehicles current position (meters).
  • ~stitch_lidar_points (bool, default: true) If true, successive lidar scans will be stitched together (registered) using the vehicle location. If false, individual scans will be used without stitching, meaning the map will not be built up over time.
  • ~filter_highest_lidar (bool, default: false) The perception module calculates slope using the highest and lowest points within a cell. If this is set to "true", the slope will be calculated using the 2nd highest and the lowest, and the highest point will be ignored. Default is false. Setting to true will filter out some of the false lidar returns in noisy data.

Clone this wiki locally