Class EdgeVelocityHolonomic

Inheritance Relationships

Base Type

Class Documentation

class EdgeVelocityHolonomic : public hateb_local_planner::BaseTebMultiEdge<3, double>

Edge defining the cost function for limiting the translational and rotational velocity according to x,y and theta.

The edge depends on three vertices \( \mathbf{s}_i, \mathbf{s}_{ip1}, \Delta T_i \) and minimizes: \( \min \textrm{penaltyInterval}( [vx,vy,omega]^T ) \cdot weight \). vx denotes the translational velocity w.r.t. x-axis (computed using finite differneces). vy denotes the translational velocity w.r.t. y-axis (computed using finite differneces). omega is calculated using the difference quotient of both yaw angles followed by a normalization to [-pi, pi]. weight can be set using setInformation(). penaltyInterval denotes the penalty function, see penaltyBoundToInterval()

.

The dimension of the error / cost vector is 3: the first component represents the translational velocity w.r.t. x-axis, the second one w.r.t. the y-axis and the third one the rotational velocity.

Remark

Do not forget to call setHATebConfig()

Public Functions

inline EdgeVelocityHolonomic()

Construct edge.

inline void computeError() override

Actual cost function.

inline void setParameters(const HATebConfig &cfg, const BaseFootprintModel *robot_model, const int isMode)

Protected Attributes

const BaseFootprintModel *robot_model_
Obstacle *obs_ = new PointObstacle()
int mode_ = 0