Main MRPT website > C++ reference
MRPT logo
List of all members | Public Member Functions | Private Attributes
mrpt::utils::CRobotSimulator Class Reference

Detailed Description

This class can be used to simulate the kinematics and dynamics of a differential driven planar mobile robot, including odometry errors and dynamics limitations.

The main methods are:

Versions:

Definition at line 60 of file CRobotSimulator.h.

#include <mrpt/utils/CRobotSimulator.h>

Public Member Functions

 CRobotSimulator (float TAU=0, float DELAY=0)
 Constructor with default dynamic model-parameters.
 
virtual ~CRobotSimulator ()
 Destructor.
 
void setDelayModelParams (float TAU_delay_sec=1.8f, float CMD_delay_sec=0.3f)
 Change the model of delays used for the orders sent to the robot.
 
void setOdometryErrors (bool enabled, double Ax_err_bias=1e-6, double Ax_err_std=10e-6, double Ay_err_bias=1e-6, double Ay_err_std=10e-6, double Aphi_err_bias=DEG2RAD(1e-6), double Aphi_err_std=DEG2RAD(10e-6))
 Enable/Disable odometry errors Errors in odometry are introduced per millisecond.
 
void setRealPose (mrpt::poses::CPose2D &p)
 Reset actual robot pose (inmediately, without simulating the movement along time)
 
double getX () const
 Read the instantaneous, error-free status of the simulated robot.
 
double getY ()
 Read the instantaneous, error-free status of the simulated robot.
 
double getPHI ()
 Read the instantaneous, error-free status of the simulated robot.
 
double getT ()
 Read the instantaneous, error-free status of the simulated robot.
 
double getV ()
 Read the instantaneous, error-free status of the simulated robot.
 
double getW ()
 Read the instantaneous, error-free status of the simulated robot.
 
void setV (double v)
 Set actual robot pose (inmediately, without simulating the movement along time) (Not to be called normally!!)
 
void setW (double w)
 
void movementCommand (double lin_vel, double ang_vel)
 Used to command the robot a desired movement (velocities)
 
void resetStatus ()
 Reset all the simulator variables to 0 (All but current simulator time).
 
void resetTime ()
 Reset time counter.
 
void simulateInterval (double At)
 This method must be called periodically to simulate discrete time intervals.
 
void resetOdometry (const mrpt::poses::CPose2D &newOdo=mrpt::poses::CPose2D())
 Forces odometry to be set to a specified values.
 
void getOdometry (CPose2D &pose) const
 Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates).
 
void getOdometry (TPose2D &pose) const
 Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates).
 
void getRealPose (CPose2D &pose) const
 Reads the real robot pose.
 
void getRealPose (TPose2D &pose) const
 Reads the real robot pose.
 

Private Attributes

mrpt::poses::CPose2D m_pose
 Global, absolute and error-free robot coordinates.
 
mrpt::poses::CPose2D m_odometry
 Used to simulate odometry (with optional error)
 
double v
 Instantaneous velocity of the robot (linear, m/s)
 
double w
 Instantaneous velocity of the robot (angular, rad/s)
 
double t
 Simulation time variable.
 
bool usar_error_odometrico
 Whether to corrupt odometry with noise.
 
double Command_Time
 Dynamic limitations of the robot.
 
double Command_v
 
double Command_w
 
double Command_v0
 
double Command_w0
 
float cTAU
 The time-constants for the first order low-pass filter for the velocities changes.
 
float cDELAY
 The delay constant for the velocities changes.
 
double m_Ax_err_bias
 
double m_Ax_err_std
 
double m_Ay_err_bias
 
double m_Ay_err_std
 
double m_Aphi_err_bias
 
double m_Aphi_err_std
 

Constructor & Destructor Documentation

mrpt::utils::CRobotSimulator::CRobotSimulator ( float  TAU = 0,
float  DELAY = 0 
)

Constructor with default dynamic model-parameters.

virtual mrpt::utils::CRobotSimulator::~CRobotSimulator ( )
virtual

Destructor.

Member Function Documentation

void mrpt::utils::CRobotSimulator::getOdometry ( CPose2D pose) const
inline

Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates).

See Also
getRealPose

Definition at line 198 of file CRobotSimulator.h.

void mrpt::utils::CRobotSimulator::getOdometry ( TPose2D pose) const
inline

Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates).

See Also
getRealPose

Definition at line 205 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::getPHI ( )
inline

Read the instantaneous, error-free status of the simulated robot.

Definition at line 154 of file CRobotSimulator.h.

void mrpt::utils::CRobotSimulator::getRealPose ( CPose2D pose) const
inline

Reads the real robot pose.

See Also
getOdometry

Definition at line 210 of file CRobotSimulator.h.

void mrpt::utils::CRobotSimulator::getRealPose ( TPose2D pose) const
inline

Reads the real robot pose.

See Also
getOdometry

Definition at line 215 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::getT ( )
inline

Read the instantaneous, error-free status of the simulated robot.

Definition at line 158 of file CRobotSimulator.h.

References t().

double mrpt::utils::CRobotSimulator::getV ( )
inline

Read the instantaneous, error-free status of the simulated robot.

Definition at line 162 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::getW ( )
inline

Read the instantaneous, error-free status of the simulated robot.

Definition at line 165 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::getX ( ) const
inline

Read the instantaneous, error-free status of the simulated robot.

Definition at line 146 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::getY ( )
inline

Read the instantaneous, error-free status of the simulated robot.

Definition at line 150 of file CRobotSimulator.h.

void mrpt::utils::CRobotSimulator::movementCommand ( double  lin_vel,
double  ang_vel 
)

Used to command the robot a desired movement (velocities)

void mrpt::utils::CRobotSimulator::resetOdometry ( const mrpt::poses::CPose2D newOdo = mrpt::poses::CPose2D())
inline

Forces odometry to be set to a specified values.

Definition at line 191 of file CRobotSimulator.h.

void mrpt::utils::CRobotSimulator::resetStatus ( )

Reset all the simulator variables to 0 (All but current simulator time).

void mrpt::utils::CRobotSimulator::resetTime ( )
inline

Reset time counter.

Definition at line 183 of file CRobotSimulator.h.

References t().

void mrpt::utils::CRobotSimulator::setDelayModelParams ( float  TAU_delay_sec = 1.8f,
float  CMD_delay_sec = 0.3f 
)
inline

Change the model of delays used for the orders sent to the robot.

See Also
movementCommand

Definition at line 113 of file CRobotSimulator.h.

void mrpt::utils::CRobotSimulator::setOdometryErrors ( bool  enabled,
double  Ax_err_bias = 1e-6,
double  Ax_err_std = 10e-6,
double  Ay_err_bias = 1e-6,
double  Ay_err_std = 10e-6,
double  Aphi_err_bias = DEG2RAD(1e-6),
double  Aphi_err_std = DEG2RAD(10e-6) 
)
inline

Enable/Disable odometry errors Errors in odometry are introduced per millisecond.

Definition at line 121 of file CRobotSimulator.h.

void mrpt::utils::CRobotSimulator::setRealPose ( mrpt::poses::CPose2D p)
inline

Reset actual robot pose (inmediately, without simulating the movement along time)

Definition at line 142 of file CRobotSimulator.h.

void mrpt::utils::CRobotSimulator::setV ( double  v)
inline

Set actual robot pose (inmediately, without simulating the movement along time) (Not to be called normally!!)

See Also
MovementCommand

Definition at line 170 of file CRobotSimulator.h.

void mrpt::utils::CRobotSimulator::setW ( double  w)
inline

Definition at line 171 of file CRobotSimulator.h.

void mrpt::utils::CRobotSimulator::simulateInterval ( double  At)

This method must be called periodically to simulate discrete time intervals.

Member Data Documentation

float mrpt::utils::CRobotSimulator::cDELAY
private

The delay constant for the velocities changes.

Definition at line 97 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::Command_Time
private

Dynamic limitations of the robot.

Approximation to non-infinity motor forces: A first order low-pass filter, using: Command_Time: Time "t" when the last order was received. Command_v, Command_w: The user-desired velocities. Command_v0, Command_w0: Actual robot velocities at the moment of user request.

Definition at line 89 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::Command_v
private

Definition at line 89 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::Command_v0
private

Definition at line 89 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::Command_w
private

Definition at line 89 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::Command_w0
private

Definition at line 89 of file CRobotSimulator.h.

float mrpt::utils::CRobotSimulator::cTAU
private

The time-constants for the first order low-pass filter for the velocities changes.

Definition at line 94 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::m_Aphi_err_bias
private

Definition at line 101 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::m_Aphi_err_std
private

Definition at line 101 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::m_Ax_err_bias
private

Definition at line 99 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::m_Ax_err_std
private

Definition at line 99 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::m_Ay_err_bias
private

Definition at line 100 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::m_Ay_err_std
private

Definition at line 100 of file CRobotSimulator.h.

mrpt::poses::CPose2D mrpt::utils::CRobotSimulator::m_odometry
private

Used to simulate odometry (with optional error)

Definition at line 66 of file CRobotSimulator.h.

mrpt::poses::CPose2D mrpt::utils::CRobotSimulator::m_pose
private

Global, absolute and error-free robot coordinates.

Definition at line 65 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::t
private

Simulation time variable.

Definition at line 78 of file CRobotSimulator.h.

bool mrpt::utils::CRobotSimulator::usar_error_odometrico
private

Whether to corrupt odometry with noise.

Definition at line 81 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::v
private

Instantaneous velocity of the robot (linear, m/s)

Definition at line 70 of file CRobotSimulator.h.

double mrpt::utils::CRobotSimulator::w
private

Instantaneous velocity of the robot (angular, rad/s)

Definition at line 74 of file CRobotSimulator.h.




Page generated by Doxygen 1.8.3 for MRPT 0.9.6 SVN: at Fri Feb 15 22:05:02 EST 2013