Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Hi,

the teb_local_planner considers two different sources for obstacle information:

  • local costmap (costmap_2d)
  • costmap_converter/ObstacleMsgs

The most common option for using the navigation stack with teb_local_planner is to use costmap information. However, the costmap information does not contain any time information and therefore only provides a static view of the environment in each sampling interval. In addition, ObstacleMsgs can be used to provide obstacle information on the associated topic.

Tracking obstacles and predicting their motion (or simplified: their current velocity) usually requires non-trivial algorithms operating with raw sensor data. A proper robotic system therefore includes a separate tracking node that provides the planner with this type of information (e.g., via message api).

However, a simple tracking algorithm has been integrated into the costmap_converter package to identify dynamic obstacles that are based on changes in the costmap and not on raw data. The advantage is that it can be used with minimal configuration and any sensor sources supported by costmap_2d, but with lower accuracy and delay. You can check if the performance is suitable for your setup and application.
See this link for a tutorial on how to use this feature.

Cheers, Christoph

Hi,

the teb_local_planner considers two different sources for obstacle information:

  • local costmap (costmap_2d)
  • costmap_converter/ObstacleMsgs

The most common option for using the navigation stack with teb_local_planner is to use costmap information. However, the costmap information does not contain any time information and therefore only provides a static view of the environment in each sampling interval. In addition, ObstacleMsgs can be used to provide obstacle information on the associated topic.

Tracking obstacles and predicting their motion (or simplified: their current velocity) usually requires non-trivial algorithms operating with raw sensor data. A proper robotic system therefore includes a separate tracking node that provides the planner with this type of information (e.g., via message api).

However, a simple tracking algorithm has been integrated into the costmap_converter package to identify dynamic obstacles that are based on changes in the costmap and not on raw data. The advantage is that it can be used with minimal configuration and any sensor sources supported by costmap_2d, but with lower accuracy and delay. You can check if the performance is suitable for your setup and application.
See this link for a tutorial on how to use this feature.

Cheers, Christoph

Edit: The current implementation uses a constant-velocity model to predict the obstacles' future movement.