Base Class#
#include "navground/core/kinematics.h"
Abstract Kinematics type.
A kinematics is used to
validated twist in the agent’s frame as feasible
convert between wheel speeds and body twist
returns maximal linear and angular speed
returns the number of degrees of freedom
Negative speed means unconstrained.
Subclassed by navground::core::AheadKinematics, navground::core::FourWheelsOmniDriveKinematics, navground::core::OmnidirectionalKinematics, navground::core::TwoWheelsDifferentialDriveKinematics, navground::core::WheeledKinematics
Public Functions
The most natural frame for this kinematics: Frame::relative in case the agent is wheeled, else Frame::absolute.
Computes the nearest feasible twist to a desired twist.
- Returns:
The frame
- Parameters:
twist – [in] The desired twist
- Returns:
The same desired twist if feasible else the nearest feasible value. How this is defined depends on the concrete sub-class.
Computes the nearest feasible twist to a desired twist, taking into account dynamic constraints.
- Parameters:
twist – [in] The desired twist
current – [in] The current twist
time_step – [in] The time step to reach the desired twist
- Returns:
The same desired twist if feasible else the nearest feasible value. How this is defined depends on the concrete sub-class.
Returns whether the kinematics has wheels.
- Returns:
True if wheeled, False otherwise.
Returns the degrees of freedom (between 0 and 3 for planar rigid body kinematics)
- Returns:
The number of degrees of freedom.
Gets the maximal speed.
- Returns:
The maximal speed.
Sets the maximum speed.
- Parameters:
value – [in] The desired value. A negative number is interpreted as +infinite.
Gets the maximal angular speed.
- Returns:
The maximal angular speed.
Sets the maximum angular speed.
- Parameters:
value – [in] The desired value. A negative number is interpreted as +infinite.
Public Static Attributes
We use infinite (or negative) to mark unconstrained values.