Main MRPT website > C++ reference
MRPT logo
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 59 of file CRobotSimulator.h.

#include <mrpt/utils/CRobotSimulator.h>

List of all members.

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 197 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 204 of file CRobotSimulator.h.

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

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

Definition at line 153 of file CRobotSimulator.h.

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

Reads the real robot pose.

See also:
getOdometry

Definition at line 209 of file CRobotSimulator.h.

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

Reads the real robot pose.

See also:
getOdometry

Definition at line 214 of file CRobotSimulator.h.

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

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

Definition at line 157 of file CRobotSimulator.h.

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

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

Definition at line 161 of file CRobotSimulator.h.

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

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

Definition at line 164 of file CRobotSimulator.h.

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

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

Definition at line 145 of file CRobotSimulator.h.

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

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

Definition at line 149 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 190 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 182 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 112 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 120 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 141 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 169 of file CRobotSimulator.h.

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

Definition at line 170 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

The delay constant for the velocities changes.

Definition at line 96 of file CRobotSimulator.h.

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 88 of file CRobotSimulator.h.

Definition at line 88 of file CRobotSimulator.h.

Definition at line 88 of file CRobotSimulator.h.

Definition at line 88 of file CRobotSimulator.h.

Definition at line 88 of file CRobotSimulator.h.

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

Definition at line 93 of file CRobotSimulator.h.

Definition at line 100 of file CRobotSimulator.h.

Definition at line 100 of file CRobotSimulator.h.

Definition at line 98 of file CRobotSimulator.h.

Definition at line 98 of file CRobotSimulator.h.

Definition at line 99 of file CRobotSimulator.h.

Definition at line 99 of file CRobotSimulator.h.

Used to simulate odometry (with optional error).

Definition at line 65 of file CRobotSimulator.h.

Global, absolute and error-free robot coordinates.

Definition at line 64 of file CRobotSimulator.h.

Simulation time variable.

Definition at line 77 of file CRobotSimulator.h.

Whether to corrupt odometry with noise.

Definition at line 80 of file CRobotSimulator.h.

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

Definition at line 69 of file CRobotSimulator.h.

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

Definition at line 73 of file CRobotSimulator.h.




Page generated by Doxygen 1.7.1 for MRPT 0.9.4 SVN: at Mon Jan 10 23:33:19 UTC 2011