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

Base class for all robot models, such as DifferentialRobotModel. More...

#include <robot/RobotModel.h>

Inheritance diagram for RobotModel:
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

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...
 
virtual PoseVelocityTrajectory generateTrajectory (Velocity2 v, const Velocity2 &targetV, float lookAheadTime, int samples)=0
 Generates a trajectory by accelerating/decelerating starting at velocity v for lookAheadTime time up to the velocity targetV. More...
 
void reflect (Reflector &r)
 
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

std::string name
 
LinkList links
 
JointMap joints
 
MaterialMap materials
 

Protected Member Functions

virtual Class const & internalGetClass () const=0
 

Detailed Description

Base class for all robot models, such as DifferentialRobotModel.

Each robot model is a RigidModel that provides geometric information for collision checks and visualization. Moreover, most robot models additionally provide kinematic information like max. velocities, etc.

Member Function Documentation

◆ localKinematics()

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

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
inline

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 virtual

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 virtual

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.

◆ generateTrajectory()

virtual PoseVelocityTrajectory generateTrajectory ( Velocity2  v,
const Velocity2 targetV,
float  lookAheadTime,
int  samples 
)
pure 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 defined by the robot model.

Implemented in UnicycleBasedRobotModel, and GenericRobotModel.


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