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>
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 |
mrpt::utils::CRobotSimulator::CRobotSimulator | ( | float | TAU = 0 , |
float | DELAY = 0 |
||
) |
Constructor with default dynamic model-parameters.
virtual mrpt::utils::CRobotSimulator::~CRobotSimulator | ( | ) | [virtual] |
Destructor.
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).
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).
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] |
void mrpt::utils::CRobotSimulator::getRealPose | ( | TPose2D & | pose | ) | const [inline] |
double mrpt::utils::CRobotSimulator::getT | ( | ) | [inline] |
Read the instantaneous, error-free status of the simulated robot.
Definition at line 157 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 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] |
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.
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!!)
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.
float mrpt::utils::CRobotSimulator::cDELAY [private] |
The delay constant for the velocities changes.
Definition at line 96 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 88 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::Command_v [private] |
Definition at line 88 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::Command_v0 [private] |
Definition at line 88 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::Command_w [private] |
Definition at line 88 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::Command_w0 [private] |
Definition at line 88 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 93 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::m_Aphi_err_bias [private] |
Definition at line 100 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::m_Aphi_err_std [private] |
Definition at line 100 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::m_Ax_err_bias [private] |
Definition at line 98 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::m_Ax_err_std [private] |
Definition at line 98 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::m_Ay_err_bias [private] |
Definition at line 99 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::m_Ay_err_std [private] |
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.
double mrpt::utils::CRobotSimulator::t [private] |
Simulation time variable.
Definition at line 77 of file CRobotSimulator.h.
bool mrpt::utils::CRobotSimulator::usar_error_odometrico [private] |
Whether to corrupt odometry with noise.
Definition at line 80 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::v [private] |
Instantaneous velocity of the robot (linear, m/s)
Definition at line 69 of file CRobotSimulator.h.
double mrpt::utils::CRobotSimulator::w [private] |
Instantaneous velocity of the robot (angular, rad/s)
Definition at line 73 of file CRobotSimulator.h.
Page generated by Doxygen 1.7.3 for MRPT 0.9.4 SVN: at Sat Mar 26 06:16:28 UTC 2011 |