MIRA
|
Base class for all robot models, such as DifferentialRobotModel. More...
#include <robot/RobotModel.h>
Public Types | |
typedef std::list< LinkPtr > | LinkList |
typedef std::map< std::string, JointPtr > | JointMap |
typedef std::map< std::string, MaterialPtr > | MaterialMap |
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 ×tamp=Time::now(), const std::string &filter="") const |
std::list< Box3f > | getCollisionBoundingBoxes (std::string targetFrame="", const Time ×tamp=Time::now(), const std::string &filter="") const |
Footprint | getFootprint (std::string targetFrame="", const Time ×tamp=Time::now(), const std::string &filter="") const |
void | resolveAndPublishLinks (const std::string &ns, const Time ×tamp=Time::now()) |
void | publishJoint (const std::string &name, float value, const Time ×tamp=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 |
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.
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).
[in] | v | The measured velocity. |
[in] | dt | The time interval in [s]. It must be >= 0.0f. |
Implemented in DifferentialRobotModel, and GenericRobotModel.
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.
[in] | v | The velocity of the robot. |
[in] | dt | The delta time. |
[in] | p0 | The original pose. |
|
pure virtual |
Calculate the distance that is needed for braking to stand still, if the robot moves with the specified velocity v.
[in] | v | The current velocity. |
Implemented in DifferentialRobotModel, and GenericRobotModel.
|
pure virtual |
Calculate the rotation that is needed for braking to stand still, if the robot moves with the specified velocity v.
[in] | v | The current velocity. |
Implemented in DifferentialRobotModel, and GenericRobotModel.
|
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.