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

# What are the downsides of disabling homotopy class planning in Teb Planner ?

According to the documentation of the Teb Planner, enabling homotopy class planning requires much more CPU resources. Disabling this would mean that only one trajectory is optimized. But what exactly do we lose if multiple trajectories are not optimized in parallel in terms of quality of the path planning ? What are advantages of having multiple optimized trajectories and how does the planner make a choice between them?

edit retag close merge delete

Sort by ยป oldest newest most voted

Based on what I have observed, disabling homotopy class planning makes planning much more vulnerable to being stuck with infeasible trajectories when trying to move in narrow spaces or otherwise very close to obstacles. But it does speed up local planning a lot when many obstacles are nearby. Performance tends to drop several times if there are many obstacle cells near the robot with homotopy enabled.

As far as I understand, TEB optimizes a trajectory locally, preferring to modify an already existing plan a bit rather than choosing a completely different one, even when an almost direct trajectory to the goal is available, or the chosen plan is very close to obstacles. When homotopy is enabled, there are several trajectories that are optimized at the same time, so there are more to choose from and the chosen trajectory can jump between very different routes as the result.

more

teb uses NLP (Non-linear Programming) to calculate paths. NLP is an optimization technique that starts from a 'guess solution' and iteratively find better solutions until termination criteria are met. NLP uses a cost function and its gradients to do this. The cost function combines multiple criteria eg. obstacle separation, vehicle constraints and travel time. NLP is local, meaning it converges to the solution nearest to the starting guess. Obstacles cause multiple local minima to exist, therefore the solver could give sub-optimal or infeasible solutions, while better trajectories exist.

That is where the homotopy classes come in: every path in the same homotopy class will converge to the same final result. teb constructs a candidate path in every discovered homotopy class and optimises all of them, selecting the path with the lowest cost function value. Disabling homotopy class planning can lead to suboptimal or infeasible paths.

( 2021-04-30 09:41:48 -0500 )edit

Also, looking at the bottom of the FAQ, the author suggests that 2 homotopy classes might be enough for most cases.

( 2021-04-30 11:30:32 -0500 )edit