Class EdgeKinematicsDiffDrive

Inheritance Relationships

Base Type

Class Documentation

class EdgeKinematicsDiffDrive : public hateb_local_planner::BaseTebBinaryEdge<2, double, VertexPose, VertexPose>

Edge defining the cost function for satisfying the non-holonomic kinematics of a differential drive mobile robot.

The edge depends on two vertices \( \mathbf{s}_i, \mathbf{s}_{ip1} \) and minimizes a geometric interpretation of the non-holonomic constraint:

  • C. Rösmann et al.: Trajectory modification considering dynamic constraints of autonomous robots, ROBOTIK, 2012.

The weight

can be set using setInformation(): Matrix element 1,1: (Choose a very high value: ~1000).

A second equation is implemented to penalize backward motions (second element of the error /cost vector).

The weight

can be set using setInformation(): Matrix element 2,2: (A value ~1 allows backward driving, but penalizes it slighly).

The dimension of the error / cost vector is 2: the first component represents the nonholonomic constraint cost, the second one backward-drive cost.

See also

TebOptimalPlanner::AddEdgesKinematics, EdgeKinematicsCarlike

Remark

Do not forget to call setHATebConfig()

Public Functions

inline EdgeKinematicsDiffDrive()

Construct edge.

inline void computeError() override

Actual cost function.