Definition at line 17 of file CRobotSimulator.h.
#include <mrpt/utils/CRobotSimulator.h>
Public Types | |
typedef CVehicleVelCmd_DiffDriven | kinematic_cmd_t |
Public Member Functions | |
CRobotSimulator (float TAU=0, float DELAY=0) | |
void | getOdometry (poses::CPose2D &pose) const |
void | getRealPose (poses::CPose2D &pose) const |
void | getOdometry (math::TPose2D &pose) const |
void | getRealPose (math::TPose2D &pose) const |
void | setOdometry (const math::TPose2D &pose) |
void | setRealPose (const math::TPose2D &pose) |
double | getX () const |
double | getY () const |
double | getPHI () const |
double | getT () const |
void | simulateInterval (double At) |
void | resetOdometry (const poses::CPose2D pose=poses::CPose2D()) |
void | setDelayModelParams (double TAU_delay_sec=1.8, double CMD_delay_sec=0.) |
Change the model of delays used for the orders sent to the robot. More... | |
void | setV (double v) |
void | setW (double w) |
double | getV () |
double | getW () |
void | movementCommand (double lin_vel, double ang_vel) |
Used to command the robot a desired movement: More... | |
void | sendVelCmd (const CVehicleVelCmd &cmd_vel) MRPT_OVERRIDE |
Sends a velocity command to the robot. More... | |
CVehicleVelCmdPtr | getVelCmdType () const MRPT_OVERRIDE |
Gets an empty velocity command object that can be queried to find out the number of velcmd components,... More... | |
Kinematic simulation and control interface | |
void | simulateOneTimeStep (const double dt) |
Runs the simulator during "dt" seconds. More... | |
const mrpt::math::TPose2D & | getCurrentGTPose () const |
Returns the instantaneous, ground truth pose in world coordinates. More... | |
void | setCurrentGTPose (const mrpt::math::TPose2D &pose) |
Brute-force move robot to target coordinates ("teleport") More... | |
const mrpt::math::TPose2D & | getCurrentOdometricPose () const |
Returns the current pose according to (noisy) odometry. More... | |
template<typename T > | |
void | setCurrentOdometricPose (const T &pose) |
Brute-force overwrite robot odometry. More... | |
const mrpt::math::TTwist2D & | getCurrentGTVel () const |
Returns the instantaneous, ground truth velocity vector (vx,vy,omega) in world coordinates. More... | |
mrpt::math::TTwist2D | getCurrentGTVelLocal () const |
Returns the instantaneous, ground truth velocity vector (vx,vy,omega) in the robot local frame. More... | |
const mrpt::math::TTwist2D & | getCurrentOdometricVel () const |
Returns the instantaneous, odometric velocity vector (vx,vy,omega) in world coordinates. More... | |
mrpt::math::TTwist2D | getCurrentOdometricVelLocal () const |
Returns the instantaneous, odometric velocity vector (vx,vy,omega) in the robot local frame. More... | |
double | getTime () const |
Get the current simulation time. More... | |
void | setOdometryErrors (bool enabled, double Ax_err_bias=1e-3, double Ax_err_std=10e-3, double Ay_err_bias=1e-3, double Ay_err_std=10e-3, double Aphi_err_bias=mrpt::utils::DEG2RAD(1e-3), double Aphi_err_std=mrpt::utils::DEG2RAD(10e-3)) |
Enable/Disable odometry errors. More... | |
void | resetStatus () |
void | resetTime () |
Reset all simulator variables to 0 (except the simulation time). More... | |
Protected Attributes | |
double | m_firmware_control_period |
The period at which the low-level controller updates velocities (Default: 0.5 ms) More... | |
bool | m_use_odo_error |
Whether to corrupt odometry with noise. 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 |
State vector | |
double | m_time |
simulation running time More... | |
mrpt::math::TPose2D | m_GT_pose |
ground truth pose in world coordinates. More... | |
mrpt::math::TTwist2D | m_GT_vel |
Velocity in (x,y,omega) More... | |
mrpt::math::TTwist2D | m_odometric_vel |
Velocity in (x,y,omega) More... | |
mrpt::math::TPose2D | m_odometry |
|
inherited |
Definition at line 25 of file CVehicleSimul_DiffDriven.h.
|
inline |
Definition at line 20 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimul_DiffDriven::setDelayModelParams().
|
inlineinherited |
Returns the instantaneous, ground truth pose in world coordinates.
Definition at line 42 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::nav::CRobot2NavInterfaceForSimulator_Holo::getCurrentPoseAndSpeeds(), mrpt::nav::CRobot2NavInterfaceForSimulator_DiffDriven::getCurrentPoseAndSpeeds(), getPHI(), getRealPose(), getX(), getY(), and run_rnav_test().
|
inlineinherited |
Returns the instantaneous, ground truth velocity vector (vx,vy,omega) in world coordinates.
Definition at line 54 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::nav::CRobot2NavInterfaceForSimulator_Holo::getCurrentPoseAndSpeeds(), and mrpt::nav::CRobot2NavInterfaceForSimulator_DiffDriven::getCurrentPoseAndSpeeds().
|
inherited |
Returns the instantaneous, ground truth velocity vector (vx,vy,omega) in the robot local frame.
Definition at line 88 of file CVehicleSimulVirtualBase.cpp.
References mrpt::kinematics::CVehicleSimulVirtualBase::m_GT_pose, mrpt::kinematics::CVehicleSimulVirtualBase::m_GT_vel, mrpt::math::TPose2D::phi, and mrpt::math::TTwist2D::rotate().
|
inlineinherited |
Returns the current pose according to (noisy) odometry.
Definition at line 48 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::nav::CRobot2NavInterfaceForSimulator_Holo::getCurrentPoseAndSpeeds(), mrpt::nav::CRobot2NavInterfaceForSimulator_DiffDriven::getCurrentPoseAndSpeeds(), and getOdometry().
|
inlineinherited |
Returns the instantaneous, odometric velocity vector (vx,vy,omega) in world coordinates.
Definition at line 59 of file CVehicleSimulVirtualBase.h.
|
inherited |
Returns the instantaneous, odometric velocity vector (vx,vy,omega) in the robot local frame.
Definition at line 95 of file CVehicleSimulVirtualBase.cpp.
References mrpt::kinematics::CVehicleSimulVirtualBase::m_odometric_vel, mrpt::kinematics::CVehicleSimulVirtualBase::m_odometry, mrpt::math::TPose2D::phi, and mrpt::math::TTwist2D::rotate().
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
inline |
Definition at line 21 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentOdometricPose().
|
inline |
Definition at line 23 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentOdometricPose().
|
inline |
Definition at line 29 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentGTPose(), and mrpt::math::TPose2D::phi.
|
inline |
Definition at line 22 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentGTPose().
|
inline |
Definition at line 24 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentGTPose().
|
inline |
Definition at line 30 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::getTime().
|
inlineinherited |
Get the current simulation time.
Definition at line 65 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::nav::CRobot2NavInterfaceForSimulator_Holo::getNavigationTime(), mrpt::nav::CRobot2NavInterfaceForSimulator_DiffDriven::getNavigationTime(), getT(), mrpt::nav::CRobot2NavInterfaceForSimulator_Holo::resetNavigationTimer(), and mrpt::nav::CRobot2NavInterfaceForSimulator_DiffDriven::resetNavigationTimer().
|
inlineinherited |
Definition at line 39 of file CVehicleSimul_DiffDriven.h.
|
inlinevirtualinherited |
Gets an empty velocity command object that can be queried to find out the number of velcmd components,...
Implements mrpt::kinematics::CVehicleSimulVirtualBase.
Definition at line 53 of file CVehicleSimul_DiffDriven.h.
|
inlineinherited |
Definition at line 40 of file CVehicleSimul_DiffDriven.h.
|
inline |
Definition at line 27 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentGTPose(), and mrpt::math::TPose2D::x.
|
inline |
Definition at line 28 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentGTPose(), and mrpt::math::TPose2D::y.
|
inherited |
Used to command the robot a desired movement:
lin_vel | Linar velocity (m/s) |
ang_vel | Angular velocity (rad/s) |
Definition at line 67 of file CVehicleSimul_DiffDriven.cpp.
References mrpt::kinematics::CVehicleSimul_DiffDriven::Command_Time, mrpt::kinematics::CVehicleSimul_DiffDriven::Command_v, mrpt::kinematics::CVehicleSimul_DiffDriven::Command_v0, mrpt::kinematics::CVehicleSimul_DiffDriven::Command_w, mrpt::kinematics::CVehicleSimul_DiffDriven::Command_w0, mrpt::kinematics::CVehicleSimulVirtualBase::m_time, mrpt::kinematics::CVehicleSimul_DiffDriven::m_v, and mrpt::kinematics::CVehicleSimul_DiffDriven::m_w.
|
inline |
Definition at line 32 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::setCurrentOdometricPose().
|
inherited |
Definition at line 74 of file CVehicleSimulVirtualBase.cpp.
References mrpt::kinematics::CVehicleSimulVirtualBase::internal_clear(), mrpt::kinematics::CVehicleSimulVirtualBase::m_GT_pose, mrpt::kinematics::CVehicleSimulVirtualBase::m_GT_vel, mrpt::kinematics::CVehicleSimulVirtualBase::m_odometric_vel, and mrpt::kinematics::CVehicleSimulVirtualBase::m_odometry.
Referenced by mrpt::kinematics::CVehicleSimul_DiffDriven::CVehicleSimul_DiffDriven(), and mrpt::kinematics::CVehicleSimul_Holo::CVehicleSimul_Holo().
|
inherited |
Reset all simulator variables to 0 (except the simulation time).
Definition at line 83 of file CVehicleSimulVirtualBase.cpp.
References mrpt::kinematics::CVehicleSimulVirtualBase::m_time.
Referenced by mrpt::kinematics::CVehicleSimul_DiffDriven::CVehicleSimul_DiffDriven(), and mrpt::kinematics::CVehicleSimul_Holo::CVehicleSimul_Holo().
|
inlinevirtualinherited |
Sends a velocity command to the robot.
The number of components and their meaning depends on the vehicle-kinematics derived class
Implements mrpt::kinematics::CVehicleSimulVirtualBase.
Definition at line 48 of file CVehicleSimul_DiffDriven.h.
References mrpt::kinematics::CVehicleVelCmd_DiffDriven::ang_vel, ASSERTMSG_, and mrpt::kinematics::CVehicleVelCmd_DiffDriven::lin_vel.
Referenced by mrpt::nav::CRobot2NavInterfaceForSimulator_DiffDriven::changeSpeeds(), and mrpt::nav::CRobot2NavInterfaceForSimulator_DiffDriven::stop().
|
inherited |
Brute-force move robot to target coordinates ("teleport")
Definition at line 27 of file CVehicleSimulVirtualBase.cpp.
References mrpt::kinematics::CVehicleSimulVirtualBase::m_GT_pose.
Referenced by setRealPose().
|
inlineinherited |
Brute-force overwrite robot odometry.
Definition at line 51 of file CVehicleSimulVirtualBase.h.
Referenced by resetOdometry(), and setOdometry().
|
inlineinherited |
Change the model of delays used for the orders sent to the robot.
Definition at line 31 of file CVehicleSimul_DiffDriven.h.
Referenced by CRobotSimulator().
|
inline |
Definition at line 25 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::setCurrentOdometricPose().
|
inlineinherited |
Enable/Disable odometry errors.
Errors in odometry are 1 sigma Gaussian values per second
Definition at line 74 of file CVehicleSimulVirtualBase.h.
|
inline |
Definition at line 26 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::setCurrentGTPose().
|
inlineinherited |
Definition at line 36 of file CVehicleSimul_DiffDriven.h.
|
inlineinherited |
Definition at line 37 of file CVehicleSimul_DiffDriven.h.
|
inline |
Definition at line 31 of file CRobotSimulator.h.
References mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
inherited |
Runs the simulator during "dt" seconds.
It will be split into periods of "m_firmware_control_period".
Definition at line 32 of file CVehicleSimulVirtualBase.cpp.
References mrpt::random::CRandomGenerator::drawGaussian1D_normalized(), mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentOdometricVelLocal(), mrpt::kinematics::CVehicleSimulVirtualBase::internal_simulControlStep(), mrpt::kinematics::CVehicleSimulVirtualBase::m_Aphi_err_bias, mrpt::kinematics::CVehicleSimulVirtualBase::m_Aphi_err_std, mrpt::kinematics::CVehicleSimulVirtualBase::m_Ax_err_bias, mrpt::kinematics::CVehicleSimulVirtualBase::m_Ax_err_std, mrpt::kinematics::CVehicleSimulVirtualBase::m_Ay_err_bias, mrpt::kinematics::CVehicleSimulVirtualBase::m_Ay_err_std, mrpt::kinematics::CVehicleSimulVirtualBase::m_firmware_control_period, mrpt::kinematics::CVehicleSimulVirtualBase::m_GT_pose, mrpt::kinematics::CVehicleSimulVirtualBase::m_GT_vel, mrpt::kinematics::CVehicleSimulVirtualBase::m_odometric_vel, mrpt::kinematics::CVehicleSimulVirtualBase::m_odometry, mrpt::kinematics::CVehicleSimulVirtualBase::m_time, mrpt::kinematics::CVehicleSimulVirtualBase::m_use_odo_error, mrpt::math::TTwist2D::omega, mrpt::math::TPose2D::phi, mrpt::random::randomGenerator, mrpt::math::TTwist2D::rotate(), mrpt::math::TTwist2D::vx, mrpt::math::TTwist2D::vy, mrpt::math::wrapToPiInPlace(), and mrpt::math::TPose2D::x.
Referenced by run_rnav_test(), and simulateInterval().
|
protectedinherited |
Definition at line 112 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
Definition at line 112 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
Definition at line 110 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
Definition at line 110 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
Definition at line 111 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
Definition at line 111 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
The period at which the low-level controller updates velocities (Default: 0.5 ms)
Definition at line 107 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
ground truth pose in world coordinates.
Definition at line 102 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentGTVelLocal(), mrpt::kinematics::CVehicleSimulVirtualBase::resetStatus(), mrpt::kinematics::CVehicleSimulVirtualBase::setCurrentGTPose(), and mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
Velocity in (x,y,omega)
Definition at line 103 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentGTVelLocal(), mrpt::kinematics::CVehicleSimulVirtualBase::resetStatus(), and mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
Velocity in (x,y,omega)
Definition at line 104 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentOdometricVelLocal(), mrpt::kinematics::CVehicleSimul_Holo::internal_simulControlStep(), mrpt::kinematics::CVehicleSimul_DiffDriven::internal_simulControlStep(), mrpt::kinematics::CVehicleSimulVirtualBase::resetStatus(), mrpt::kinematics::CVehicleSimul_Holo::sendVelRampCmd(), and mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
Definition at line 105 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::getCurrentOdometricVelLocal(), mrpt::kinematics::CVehicleSimul_Holo::internal_simulControlStep(), mrpt::kinematics::CVehicleSimul_DiffDriven::internal_simulControlStep(), mrpt::kinematics::CVehicleSimulVirtualBase::resetStatus(), and mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
simulation running time
Definition at line 101 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimul_Holo::internal_simulControlStep(), mrpt::kinematics::CVehicleSimul_DiffDriven::internal_simulControlStep(), mrpt::kinematics::CVehicleSimul_DiffDriven::movementCommand(), mrpt::kinematics::CVehicleSimulVirtualBase::resetTime(), mrpt::kinematics::CVehicleSimul_Holo::sendVelRampCmd(), and mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
|
protectedinherited |
Whether to corrupt odometry with noise.
Definition at line 109 of file CVehicleSimulVirtualBase.h.
Referenced by mrpt::kinematics::CVehicleSimulVirtualBase::simulateOneTimeStep().
Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019 |