ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
Actually, there is a kind of repulsive force applied on the band.
The teb approach deforms the trajectory by solving an optimization problem rather than applying forces directly.
There is not much difference, since the solver determines forces implicitly (e.g. gradient of the objective/cost function).
The objective function term for obstacle avoidance is just the penalization of the euclidean distance between the
obstacle and the robot. Note, obstacle shape and robot shape might differ from points with a much higher computational burden.
The optimization problem is defined and implemented in terms of a hyper-graph to speed up sparse Jacobian computation. You can find the corresponding Edge for obstacle avoidance in edge_obstacle.h
.
The fundamental algorithm is as follows (you already mentioned the first steps in your question):
The repetition of resizing, obstacle association (in the graph building stage) and some actual optimization steps (3.) leads to the overall band deformation.