Autoware.Auto
Object Collision Estimator Nodes

Purpose / Use cases

The collision estimator node is the interface for detecting collisions. The behavior planner delegates the task of estimating if any collision is likely on a planned path to this node.

Design

The node implements a ROS2 interface to Object Collision Estimator Library. It has 2 main external interfaces:

  1. Subscribe to a topic to obtain obstacle bounding boxes from perception stack.
  1. Present as a service to the behavior planner. This service takes a trajectory as an input and outputs another trajectory modified to avoiding collisions.

Assumptions / Known limits

  • The trajectory is published in map frame.
  • A transform between the perception bounding box frame and map exists

Inputs / Outputs / API

Inputs:

  • BoundingBoxArray.msg
    • A list of bounding boxes of obstacles.
    • This is received on a topic determined by the node parameter object_collision_estimator.obstacle_topic
  • Trajectory.msg
    • Local path of the ego vehicle given by the behavior planner.
    • Received on the service interface

Outputs:

  • Trajectory.msg
    • Modified local path to avoid any collisions
    • Returned on the service interface

Inner-workings / Algorithms

  • Obstacle Subscriber
    • Subscribes to the obstacle topic which gives a list of bounding boxes representing obstacles detected by the perception pipeline.
    • The boxes are transformed into the map frame.
    • The boxes are then passed to the ObjectCollisionEstimator object.
  • Collision estimation service
    • Gets a request containing a planned trajectory from the behavior planner.
    • Pass this trajectory to ObjectCollisionEstimator who modifies it to avoid any collision.
    • Return the modified trajectory to caller of the service.

Future extensions / Unimplemented parts

  • If a transform between bounding box and map does not exist, the estimator should return empty trajectory and the vehicle should stop.
  • Test tf transform code paths.
  • Vary collision detection method and tolerances based on vehicle operation mode.

Related issues

  • #474: Estimate collisions based on detected objects and vehicle path (Object Collision Estimator)
  • #447: Implement Semantic-Map-Based Navigation and Planning