93 bool enabled,
double Ax_err_bias = 1e-3,
double Ax_err_std = 10e-3,
94 double Ay_err_bias = 1e-3,
double Ay_err_std = 10e-3,
mrpt::math::TTwist2D m_odometric_vel
Velocity in (x,y,omega)
mrpt::math::TPose2D m_odometry
This class can be used to simulate the kinematics and dynamics of a differential driven planar mobile...
double DEG2RAD(const double x)
Degrees to radians.
void simulateOneTimeStep(const double dt)
Runs the simulator during "dt" seconds.
double m_time
simulation running time
mrpt::math::TPose2D m_GT_pose
ground truth pose in world coordinates.
CVehicleSimulVirtualBase()
const mrpt::math::TTwist2D & getCurrentOdometricVel() const
Returns the instantaneous, odometric velocity vector (vx,vy,omega) in world coordinates.
void setCurrentOdometricPose(const T &pose)
Brute-force overwrite robot odometry.
virtual void internal_simulControlStep(const double dt)=0
mrpt::math::TTwist2D m_GT_vel
Velocity in (x,y,omega)
const mrpt::math::TTwist2D & getCurrentGTVel() const
Returns the instantaneous, ground truth velocity vector (vx,vy,omega) in world coordinates.
const mrpt::math::TPose2D & getCurrentGTPose() const
Returns the instantaneous, ground truth pose in world coordinates.
Virtual base for velocity commands of different kinematic models of planar mobile robot...
2D twist: 2D velocity vector (vx,vy) + planar angular velocity (omega)
mrpt::math::TTwist2D getCurrentOdometricVelLocal() const
Returns the instantaneous, odometric velocity vector (vx,vy,omega) in the robot local frame...
virtual CVehicleVelCmd::Ptr getVelCmdType() const =0
Gets an empty velocity command object that can be queried to find out the number of velcmd components...
virtual void sendVelCmd(const CVehicleVelCmd &cmd_vel)=0
Sends a velocity command to the robot.
double getTime() const
Get the current simulation time.
mrpt::math::TTwist2D getCurrentGTVelLocal() const
Returns the instantaneous, ground truth velocity vector (vx,vy,omega) in the robot local frame...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
void resetTime()
Reset all simulator variables to 0 (except the.
void setCurrentGTPose(const mrpt::math::TPose2D &pose)
Brute-force move robot to target coordinates ("teleport")
bool m_use_odo_error
Whether to corrupt odometry with noise.
double m_firmware_control_period
The period at which the low-level controller updates velocities (Default: 0.5 ms) ...
virtual ~CVehicleSimulVirtualBase()
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.
std::shared_ptr< CVehicleVelCmd > Ptr
const mrpt::math::TPose2D & getCurrentOdometricPose() const
Returns the current pose according to (noisy) odometry.
virtual void internal_clear()=0
Resets all pending cmds.