MIRA
|
A generic robot model that allows to specify a wheel geometry for multi wheel robots with fixed or non-fixed castor wheels. More...
#include <robot/GenericRobotModel.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 | |
template<typename Reflector > | |
void | reflect (Reflector &r) |
Velocity2 | computeRobotVelocity (const Eigen::Matrix< float, Eigen::Dynamic, 2 > &castorWheelState) |
Computes the robots overall velocity from the readings of its wheels. More... | |
virtual Pose2 | localKinematics (const Velocity2 &v, float dt) const |
Implementation of RobotModel. More... | |
virtual float | predictStandstillDistance (const Velocity2 &v) const |
Implementation of RobotModel. More... | |
virtual float | predictStandstillRotation (const Velocity2 &v) const |
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) |
Generates a trajectory by accelerating/decelerating starting at velocity v for lookAheadTime time up to the velocity targetV. 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... | |
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::vector< Pose2 > | wheelGeometry |
The position of each wheel relative to the robots base. More... | |
std::string | name |
LinkList | links |
JointMap | joints |
MaterialMap | materials |
Protected Member Functions | |
virtual Class const & | internalGetClass () const=0 |
A generic robot model that allows to specify a wheel geometry for multi wheel robots with fixed or non-fixed castor wheels.
For a special optimized implementation for robots with a differential drive please use DifferentialRobotModel.
|
inline |
Velocity2 computeRobotVelocity | ( | const Eigen::Matrix< float, Eigen::Dynamic, 2 > & | castorWheelState | ) |
Computes the robots overall velocity from the readings of its wheels.
Each row represents the state of a single wheel. First column contains the velocity of that wheel. Second column contains the orientation of that wheel. For castor wheels orientation will change while driving. For fixed wheels orientation will most likely be fixed.
Implementation of RobotModel.
Implements RobotModel.
|
virtual |
Implementation of RobotModel.
Implements RobotModel.
|
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. |
Implements RobotModel.
|
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.
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. |
std::vector<Pose2> wheelGeometry |
The position of each wheel relative to the robots base.