ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The main issue for not using a local planner respectively predictive controller like the Timed-Elastic-Band (TEB) for global planning is the computational burden. The underlying optimization algorithm of the teb_local_planner finds only local minima similar to potential field methods. It even tries to explore multiple local minima by exploring and optimizing multiple candidate trajectories in alternative topologies in parallel. However, since it is required to find and optimize those alternatives within the control rate of the robot, a sampling based exploration strategy is implemented which is not complete in finding all alternatives. So you cannot guarantee to always find the globally optimal solution. One could switch to an exploration strategy based on the Voronoi-diagram, which is complete, but it does not scale well with the number of obstacles and hence the computation time rapidly increases with the number of obstacles (note, I have lethal costmap cells as point-shaped obstacles in mind, no lines/polygons). Or generally, global optimization schemes are not fast enough (even for mid-size environments).

If you initialize the teb_local_planner with a straight line between start and goal in -let's say- a slightly complex maze map, it will likely fail. Furthermore, if the goal is some meters a way and you require a high resolution of the trajectory (e.g. in order to satisfy the robot's (kino-)dynamic constraints), than the computation will exceed your specified control sampling rate.

In general, it's still reasonable to keep the hierarchical planner architecture (base controller + local planner + global planner) due to numerous reasons. E.g. local range finders and cameras (resp. proximity sensors) provide only a local limited view of the environment. Everything beyond this area is highly uncertain. Why spending lots of computational resources to create a perfect plan for the uncertain part w.r.t. all dynamic constraints of the robot and non-exact prediction models for behavior of other agents? Even humans have only a coarse plan in mind if they travel to some far destination. For instance interactions with other cars (passing, overtaking, ...) happens within the field of view of the driver.

The main issue for not using a local planner respectively predictive controller like the Timed-Elastic-Band (TEB) for global planning is the computational burden. The underlying optimization algorithm of the teb_local_planner finds only local minima similar to potential field methods. It even tries to explore multiple local minima by exploring and optimizing multiple candidate trajectories in alternative topologies in parallel. However, since it is required to find and optimize those alternatives within the control rate of the robot, a sampling based exploration strategy is implemented which is not complete in finding all alternatives. So you cannot guarantee to always find the globally optimal solution. One could switch to an exploration strategy based on the Voronoi-diagram, which is complete, but it does not scale well with the number of obstacles and hence the computation time rapidly increases with the number of obstacles (note, I have lethal costmap cells as point-shaped obstacles in mind, no lines/polygons). Or generally, global optimization schemes are not fast enough (even for mid-size environments).

If you initialize the teb_local_planner with a straight line between start and goal in -let's say- a slightly complex maze map, it will likely fail. Furthermore, if the goal is some meters a way away and you require a high resolution of the trajectory (e.g. in order to satisfy the robot's (kino-)dynamic constraints), than the computation will exceed your specified control sampling rate.

In general, it's still reasonable to keep the hierarchical planner architecture (base controller + local planner + global planner) due to numerous reasons. E.g. local range finders and cameras (resp. proximity sensors) provide only a local limited view of the environment. Everything beyond this area is highly uncertain. Why spending lots of computational resources to create a perfect plan for the uncertain part w.r.t. all dynamic constraints of the robot and non-exact prediction models for behavior of other agents? Even humans have only a coarse plan in mind if they travel to some far destination. For instance interactions with other cars (passing, overtaking, ...) happens within the field of view of the driver. driver.

The main issue for not using a local planner respectively predictive controller like the Timed-Elastic-Band (TEB) for global planning is the computational burden. The underlying optimization algorithm of the teb_local_planner finds only local minima similar to potential field methods. It even tries to explore multiple local minima by exploring and optimizing multiple candidate trajectories in alternative topologies in parallel. However, since it is required to find and optimize those alternatives within the control rate of the robot, a sampling based exploration strategy is implemented which is not complete in finding all alternatives. So you cannot guarantee to always find the globally optimal solution. One could switch to an exploration strategy based on the Voronoi-diagram, which is complete, but it does not scale well with the number of obstacles and hence the computation time rapidly increases with the number of obstacles (note, I have lethal costmap cells as point-shaped obstacles in mind, no lines/polygons). Or generally, global optimization schemes are not fast enough (even for mid-size environments).

If you initialize the teb_local_planner with a straight line between start and goal in -let's say- a slightly complex maze map, it will likely fail. Furthermore, if the goal is some meters away and you require a high resolution of the trajectory (e.g. in order to satisfy the robot's (kino-)dynamic constraints), than the computation will exceed your specified control sampling rate.

In general, it's still reasonable to keep the hierarchical planner architecture (base controller + local planner + global planner) due to numerous reasons. E.g. local range finders and cameras (resp. proximity sensors) provide only a local limited view of the environment. Everything beyond this area is highly uncertain. Why spending lots of computational resources to create a perfect plan for the uncertain part w.r.t. all dynamic constraints of the robot and non-exact prediction models for the behavior of other agents? Even humans have only a coarse plan in mind if they travel to some far destination. For instance interactions with other cars (passing, overtaking, ...) happens within the field of view of the driver.