MIRA
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
UnicycleBasedRobotModel Class Referenceabstract

#include <robot/UnicycleBasedRobotModel.h>

Inheritance diagram for UnicycleBasedRobotModel:
Inheritance graph
[legend]

Public Types

typedef std::list< LinkPtrLinkList
 
typedef std::map< std::string, JointPtrJointMap
 
typedef std::map< std::string, MaterialPtrMaterialMap
 
typedef std::list< std::pair< GeometryPtr, RigidTransform3f >, Eigen::aligned_allocator< std::pair< GeometryPtr, RigidTransform3f > > > CollisionGeometries
 

Public Member Functions

template<typename Reflector >
void reflectDegrees (Reflector &r, const char *name, float &member, const char *comment)
 
void reflectDegrees (PropertySerializer &r, const char *name, float &member, const char *comment)
 
template<typename Reflector >
void reflect (Reflector &r)
 
float getMaxTransVelocity () const
 
virtual PoseVelocityTrajectory generateTrajectory (Velocity2 v, const Velocity2 &targetV, float lookAheadTime, int samples)
 Generates a trajectory by accelerating/decelerating starting at velocity v for lookAheadTime time up to the velocity targetV. More...
 
virtual Pose2 localKinematics (const Velocity2 &v, float dt) const =0
 Computes the local movement of the robot if it moves with the specified velocity v for the specified time dt. More...
 
Pose2 globalKinematics (const Velocity2 &v, float dt, const Pose2 &p0) const
 Computes the movement of the robot if it moves with the specified velocity v for the specified time dt. More...
 
virtual float predictStandstillDistance (const Velocity2 &v) const =0
 Calculate the distance that is needed for braking to stand still, if the robot moves with the specified velocity v. More...
 
virtual float predictStandstillRotation (const Velocity2 &v) const =0
 Calculate the rotation that is needed for braking to stand still, if the robot moves with the specified velocity v. More...
 
void reflect (XMLDeserializer &r)
 
void clear ()
 
std::string getRootLink () const
 
CollisionGeometries getCollisionGeometries (std::string targetFrame="", const Time &timestamp=Time::now(), const std::string &filter="") const
 
std::list< Box3fgetCollisionBoundingBoxes (std::string targetFrame="", const Time &timestamp=Time::now(), const std::string &filter="") const
 
Footprint getFootprint (std::string targetFrame="", const Time &timestamp=Time::now(), const std::string &filter="") const
 
void resolveAndPublishLinks (const std::string &ns, const Time &timestamp=Time::now())
 
void publishJoint (const std::string &name, float value, const Time &timestamp=Time::now()) const
 
Class const & getClass () const
 

Static Public Member Functions

static PseudoClass const & CLASS ()
 

Public Attributes

float maxBackwardVelocity
 The maximum velocity for driving backward (both wheels) [m/s]. More...
 
float maxForwardVelocity
 The maximum velocity for driving forward (both wheels) [m/s]. More...
 
float maxRotVelocity
 The maximum velocity for rotating [deg/s]. More...
 
float transEpsilonVelocity
 the min. More...
 
float rotEpsilonVelocity
 
float maxTransAcceleration
 Max. acceleration. More...
 
float maxTransDeceleration
 Max. deceleration. Must be greater than zero. More...
 
float maxEmergencyDeceleration
 Max. deceleration in case of an emergency. Must be greater than zero. More...
 
float maxRotAcceleration
 Max. acceleration. More...
 
float maxRotDeceleration
 Max. deceleration. Must be greater than zero. More...
 
std::string name
 
LinkList links
 
JointMap joints
 
MaterialMap materials
 

Protected Member Functions

virtual Class const & internalGetClass () const=0
 

Member Function Documentation

◆ reflectDegrees() [1/2]

void reflectDegrees ( Reflector &  r,
const char *  name,
float &  member,
const char *  comment 
)
inline

◆ reflectDegrees() [2/2]

void reflectDegrees ( PropertySerializer r,
const char *  name,
float &  member,
const char *  comment 
)
inline

◆ reflect()

void reflect ( Reflector &  r)
inline

◆ getMaxTransVelocity()

float getMaxTransVelocity ( ) const
inline

◆ generateTrajectory()

virtual PoseVelocityTrajectory generateTrajectory ( Velocity2  v,
const Velocity2 targetV,
float  lookAheadTime,
int  samples 
)
virtual

Generates a trajectory by accelerating/decelerating starting at velocity v for lookAheadTime time up to the velocity targetV.

The resulting trajectory will contain samples+1 trajectory samples starting at position 0,0 with velocity v. It uses the acceleration limits given in the robot model.

Implements RobotModel.

◆ localKinematics()

virtual Pose2 localKinematics ( const Velocity2 v,
float  dt 
) const
pure virtualinherited

Computes the local movement of the robot if it moves with the specified velocity v for the specified time dt.

The movement is returned as relative pose in relation to the robots movement center, which is assumed to be (0,0,0).

Parameters
[in]vThe measured velocity.
[in]dtThe time interval in [s]. It must be >= 0.0f.
Returns
The delta pose.

Implemented in DifferentialRobotModel, and GenericRobotModel.

◆ globalKinematics()

Pose2 globalKinematics ( const Velocity2 v,
float  dt,
const Pose2 p0 
) const
inlineinherited

Computes the movement of the robot if it moves with the specified velocity v for the specified time dt.

The movement is returned as pose in relation to the specified pose p0.

Parameters
[in]vThe velocity of the robot.
[in]dtThe delta time.
[in]p0The original pose.
Returns
The movement as a pose in relative to pose p0.

◆ predictStandstillDistance()

virtual float predictStandstillDistance ( const Velocity2 v) const
pure virtualinherited

Calculate the distance that is needed for braking to stand still, if the robot moves with the specified velocity v.

Parameters
[in]vThe current velocity.
Returns
The estimated stopping distance.

Implemented in DifferentialRobotModel, and GenericRobotModel.

◆ predictStandstillRotation()

virtual float predictStandstillRotation ( const Velocity2 v) const
pure virtualinherited

Calculate the rotation that is needed for braking to stand still, if the robot moves with the specified velocity v.

Parameters
[in]vThe current velocity.
Returns
The estimated stopping rotation.

Implemented in DifferentialRobotModel, and GenericRobotModel.

Member Data Documentation

◆ maxBackwardVelocity

float maxBackwardVelocity

The maximum velocity for driving backward (both wheels) [m/s].

Use negative values, if the robot is allowed to drive backward.

◆ maxForwardVelocity

float maxForwardVelocity

The maximum velocity for driving forward (both wheels) [m/s].

◆ maxRotVelocity

float maxRotVelocity

The maximum velocity for rotating [deg/s].

◆ transEpsilonVelocity

float transEpsilonVelocity

the min.

speed that the robot platform can do, lower velocities result in standing still.

◆ rotEpsilonVelocity

float rotEpsilonVelocity

◆ maxTransAcceleration

float maxTransAcceleration

Max. acceleration.

◆ maxTransDeceleration

float maxTransDeceleration

Max. deceleration. Must be greater than zero.

◆ maxEmergencyDeceleration

float maxEmergencyDeceleration

Max. deceleration in case of an emergency. Must be greater than zero.

◆ maxRotAcceleration

float maxRotAcceleration

Max. acceleration.

◆ maxRotDeceleration

float maxRotDeceleration

Max. deceleration. Must be greater than zero.


The documentation for this class was generated from the following file: