class mrpt::kinematics::CVehicleSimulVirtualBase
Python API: mrpt.kinematics.CVehicleSimulVirtualBase
Overview
This class can be used to simulate the kinematics and dynamics of a differential driven planar mobile robot, including odometry errors and dynamics limitations.
Main API methods are:
movementCommand: Call this for send a command to the robot. This command will be delayed and passed through a first order low-pass filter to simulate robot dynamics.
simulateInterval: Call this for run the simulator for the desired time period.
#include <mrpt/kinematics/CVehicleSimulVirtualBase.h> class CVehicleSimulVirtualBase { public: // construction CVehicleSimulVirtualBase(); // methods void simulateOneTimeStep(const double dt); const mrpt::math::TPose2D& getCurrentGTPose() const; void setCurrentGTPose(const mrpt::math::TPose2D& pose); const mrpt::math::TPose2D& getCurrentOdometricPose() const; template <typename T> void setCurrentOdometricPose(const T& pose); const mrpt::math::TTwist2D& getCurrentGTVel() const; mrpt::math::TTwist2D getCurrentGTVelLocal() const; const mrpt::math::TTwist2D& getCurrentOdometricVel() const; mrpt::math::TTwist2D getCurrentOdometricVelLocal() const; double getTime() const; virtual void sendVelCmd(const CVehicleVelCmd& cmd_vel) = 0; virtual CVehicleVelCmd::Ptr getVelCmdType() const = 0; 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::DEG2RAD(1e-3), double Aphi_err_std = mrpt::DEG2RAD(10e-3) ); void resetStatus(); void resetTime(); }; // direct descendants class CVehicleSimul_DiffDriven; class CVehicleSimul_Holo;
Methods
void simulateOneTimeStep(const double dt)
Runs the simulator during “dt” seconds.
It will be split into periods of “m_firmware_control_period”.
const mrpt::math::TPose2D& getCurrentGTPose() const
Returns the instantaneous, ground truth pose in world coordinates.
void setCurrentGTPose(const mrpt::math::TPose2D& pose)
Brute-force move robot to target coordinates (“teleport”)
const mrpt::math::TPose2D& getCurrentOdometricPose() const
Returns the current pose according to (noisy) odometry.
See also:
template <typename T> void setCurrentOdometricPose(const T& pose)
Brute-force overwrite robot odometry
const mrpt::math::TTwist2D& getCurrentGTVel() const
Returns the instantaneous, ground truth velocity vector (vx,vy,omega) in world coordinates.
mrpt::math::TTwist2D getCurrentGTVelLocal() const
Returns the instantaneous, ground truth velocity vector (vx,vy,omega) in the robot local frame.
const mrpt::math::TTwist2D& getCurrentOdometricVel() const
Returns the instantaneous, odometric velocity vector (vx,vy,omega) in world coordinates.
mrpt::math::TTwist2D getCurrentOdometricVelLocal() const
Returns the instantaneous, odometric velocity vector (vx,vy,omega) in the robot local frame.
double getTime() const
Get the current simulation time.
virtual void sendVelCmd(const CVehicleVelCmd& cmd_vel) = 0
Sends a velocity command to the robot.
The number of components and their meaning depends on the vehicle-kinematics derived class
virtual CVehicleVelCmd::Ptr getVelCmdType() const = 0
Gets an empty velocity command object that can be queried to find out the number of velcmd components,…
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::DEG2RAD(1e-3), double Aphi_err_std = mrpt::DEG2RAD(10e-3) )
Enable/Disable odometry errors.
Errors in odometry are 1 sigma Gaussian values per second
void resetTime()
Reset all simulator variables to 0 (except the.
simulation time).
See also: