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::BicycleKinematics, 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.