Class EdgeKinematicsCarlike
Defined in File edge_kinematics.h
Inheritance Relationships
Base Type
public hateb_local_planner::BaseTebBinaryEdge< 2, double, VertexPose, VertexPose >(Template Class BaseTebBinaryEdge)
Class Documentation
-
class EdgeKinematicsCarlike : public hateb_local_planner::BaseTebBinaryEdge<2, double, VertexPose, VertexPose>
Edge defining the cost function for satisfying the non-holonomic kinematics of a carlike 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 definition is identically to the one of the differential drive robot. Additionally, this edge incorporates a minimum turning radius that is required by carlike robots. The turning radius is defined by \( r=v/omega \).
The weight
can be set using setInformation(): Matrix element 1,1: (Choose a very high value: ~1000).
The second equation enforces a minimum turning radius. The
weightcan be set using setInformation(): Matrix element 2,2.
The dimension of the error / cost vector is 3: the first component represents the nonholonomic constraint cost, the second one backward-drive cost and the third one the minimum turning radius
See also
TebOptimalPlanner::AddEdgesKinematics, EdgeKinematicsDiffDrive
Remark
Bounding the turning radius from below is not affected by the penalty_epsilon parameter, the user might add an extra margin to the min_turning_radius param.
Remark
Do not forget to call setHATebConfig()