Main MRPT website > C++ reference for MRPT 1.4.0
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 38 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. More...
 
virtual ~CRobotSimulator ()
 Destructor. More...
 
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. More...
 
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. More...
 
void setRealPose (const mrpt::poses::CPose2D &p)
 Reset actual robot pose (inmediately, without simulating the movement along time) More...
 
double getX () const
 Read the instantaneous, error-free status of the simulated robot. More...
 
double getY ()
 Read the instantaneous, error-free status of the simulated robot. More...
 
double getPHI ()
 Read the instantaneous, error-free status of the simulated robot. More...
 
double getT ()
 Read the instantaneous, error-free status of the simulated robot. More...
 
double getV ()
 Read the instantaneous, error-free status of the simulated robot. More...
 
double getW ()
 Read the instantaneous, error-free status of the simulated robot. More...
 
void setV (double v)
 Set actual robot pose (inmediately, without simulating the movement along time) (Not to be called normally!!) More...
 
void setW (double w)
 
void movementCommand (double lin_vel, double ang_vel)
 Used to command the robot a desired movement (velocities) More...
 
void resetStatus ()
 Reset all the simulator variables to 0 (All but current simulator time). More...
 
void resetTime ()
 Reset time counter. More...
 
void simulateInterval (double At)
 This method must be called periodically to simulate discrete time intervals. More...
 
void resetOdometry (const mrpt::poses::CPose2D &newOdo=mrpt::poses::CPose2D())
 Forces odometry to be set to a specified values. More...
 
void getOdometry (mrpt::poses::CPose2D &pose) const
 Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates). More...
 
void getOdometry (mrpt::math::TPose2D &pose) const
 Reads the simulated robot odometry (this is NOT equal to the actual error-free robot coordinates). More...
 
void getRealPose (mrpt::poses::CPose2D &pose) const
 Reads the real robot pose. More...
 
void getRealPose (mrpt::math::TPose2D &pose) const
 Reads the real robot pose. More...
 

Private Attributes

mrpt::poses::CPose2D m_pose
 Global, absolute and error-free robot coordinates. More...
 
mrpt::poses::CPose2D m_odometry
 Used to simulate odometry (with optional error) More...
 
double v
 Instantaneous velocity of the robot (linear, m/s) More...
 
double w
 Instantaneous velocity of the robot (angular, rad/s) More...
 
double t
 Simulation time variable. More...
 
bool usar_error_odometrico
 Whether to corrupt odometry with noise
More...
 
double Command_Time
 Dynamic limitations of the robot. More...
 
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. More...
 
float cDELAY
 The delay constant for the velocities changes. More...
 
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

◆ CRobotSimulator()

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

Constructor with default dynamic model-parameters.

◆ ~CRobotSimulator()

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

Destructor.

Member Function Documentation

◆ getOdometry() [1/2]

void mrpt::utils::CRobotSimulator::getOdometry ( mrpt::math::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 183 of file CRobotSimulator.h.

◆ getOdometry() [2/2]

void mrpt::utils::CRobotSimulator::getOdometry ( mrpt::poses::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 176 of file CRobotSimulator.h.

◆ getPHI()

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

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

Definition at line 132 of file CRobotSimulator.h.

References mrpt::poses::CPose2D::phi().

◆ getRealPose() [1/2]

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

Reads the real robot pose.

See also
getOdometry

Definition at line 193 of file CRobotSimulator.h.

◆ getRealPose() [2/2]

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

Reads the real robot pose.

See also
getOdometry

Definition at line 188 of file CRobotSimulator.h.

◆ getT()

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

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

Definition at line 136 of file CRobotSimulator.h.

References t().

◆ getV()

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

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

Definition at line 140 of file CRobotSimulator.h.

◆ getW()

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

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

Definition at line 143 of file CRobotSimulator.h.

◆ getX()

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

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

Definition at line 124 of file CRobotSimulator.h.

References mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::x().

◆ getY()

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

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

Definition at line 128 of file CRobotSimulator.h.

References mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::y().

◆ movementCommand()

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

Used to command the robot a desired movement (velocities)

◆ resetOdometry()

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

◆ resetStatus()

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

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

◆ resetTime()

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

Reset time counter.

Definition at line 161 of file CRobotSimulator.h.

References t().

◆ setDelayModelParams()

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

◆ setOdometryErrors()

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

◆ setRealPose()

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

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

Definition at line 120 of file CRobotSimulator.h.

◆ setV()

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

◆ setW()

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

Definition at line 149 of file CRobotSimulator.h.

◆ simulateInterval()

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

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

Member Data Documentation

◆ cDELAY

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

The delay constant for the velocities changes.


Definition at line 75 of file CRobotSimulator.h.

◆ Command_Time

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

◆ Command_v

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

Definition at line 68 of file CRobotSimulator.h.

◆ Command_v0

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

Definition at line 69 of file CRobotSimulator.h.

◆ Command_w

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

Definition at line 68 of file CRobotSimulator.h.

◆ Command_w0

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

Definition at line 69 of file CRobotSimulator.h.

◆ cTAU

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

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

Definition at line 72 of file CRobotSimulator.h.

◆ m_Aphi_err_bias

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

Definition at line 79 of file CRobotSimulator.h.

◆ m_Aphi_err_std

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

Definition at line 79 of file CRobotSimulator.h.

◆ m_Ax_err_bias

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

Definition at line 77 of file CRobotSimulator.h.

◆ m_Ax_err_std

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

Definition at line 77 of file CRobotSimulator.h.

◆ m_Ay_err_bias

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

Definition at line 78 of file CRobotSimulator.h.

◆ m_Ay_err_std

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

Definition at line 78 of file CRobotSimulator.h.

◆ m_odometry

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

Used to simulate odometry (with optional error)

Definition at line 44 of file CRobotSimulator.h.

◆ m_pose

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

Global, absolute and error-free robot coordinates.

Definition at line 43 of file CRobotSimulator.h.

◆ t

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

Simulation time variable.

Definition at line 56 of file CRobotSimulator.h.

◆ usar_error_odometrico

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

Whether to corrupt odometry with noise

Definition at line 59 of file CRobotSimulator.h.

◆ v

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

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

Definition at line 48 of file CRobotSimulator.h.

◆ w

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

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

Definition at line 52 of file CRobotSimulator.h.




Page generated by Doxygen 1.9.2 for MRPT 1.4.0 SVN: at Mon Sep 20 00:21:41 UTC 2021