Classes | Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
mvsim::DynamicsDifferential Class Reference

#include <VehicleDifferential.h>

Inheritance diagram for mvsim::DynamicsDifferential:
Inheritance graph
[legend]

Classes

class  ControllerRawForces
 
class  ControllerTwistPID
 
struct  TControllerInput
 
struct  TControllerOutput
 

Public Types

enum  { WHEEL_L = 0, WHEEL_R = 1 }
 
- Public Types inherited from mvsim::VehicleBase
using Ptr = std::shared_ptr< VehicleBase >
 
typedef std::vector< SensorBase::PtrTListSensors
 
- Public Types inherited from mvsim::Simulable
using Ptr = std::shared_ptr< Simulable >
 

Public Member Functions

 DynamicsDifferential (World *parent)
 
virtual mrpt::math::TTwist2D getVelocityLocalOdoEstimate () const override
 
- Public Member Functions inherited from mvsim::VehicleBase
virtual void apply_force (const mrpt::math::TVector2D &force, const mrpt::math::TPoint2D &applyPoint=mrpt::math::TPoint2D(0, 0)) override
 
void clearLogs ()
 
virtual void create_multibody_system (b2World &world)
 
b2Fixtureget_fixture_chassis ()
 
const b2Fixtureget_fixture_chassis () const
 
std::vector< b2Fixture * > & get_fixture_wheels ()
 
const std::vector< b2Fixture * > & get_fixture_wheels () const
 
b2BodygetBox2DChassisBody ()
 
mrpt::math::TPoint2D getChassisCenterOfMass () const
 In local coordinates (this excludes the mass of wheels) More...
 
virtual double getChassisMass () const
 
const mrpt::math::TPolygon2DgetChassisShape () const
 
std::shared_ptr< CSVLoggergetLoggerPtr (std::string logger_name)
 
virtual float getMaxVehicleRadius () const
 
size_t getNumWheels () const
 
const TListSensorsgetSensors () const
 
TListSensorsgetSensors ()
 
size_t getVehicleIndex () const
 
const WheelgetWheelInfo (const size_t idx) const
 
WheelgetWheelInfo (const size_t idx)
 
void getWheelsVelocityLocal (std::vector< mrpt::math::TPoint2D > &vels, const mrpt::math::TTwist2D &veh_vel_local) const
 
void newLogSession ()
 
void poses_mutex_lock () override
 
void poses_mutex_unlock () override
 
void registerOnServer (mvsim::Client &c) override
 
void setRecording (bool record)
 
void setVehicleIndex (size_t idx)
 
virtual void simul_post_timestep (const TSimulContext &context) override
 
virtual void simul_pre_timestep (const TSimulContext &context) override
 
- Public Member Functions inherited from mvsim::VisualObject
void getVisualModelBoundingBox (mrpt::math::TPoint3D &bbmin, mrpt::math::TPoint3D &bbmax) const
 
WorldgetWorldObject ()
 
const WorldgetWorldObject () const
 
virtual void guiUpdate (mrpt::opengl::COpenGLScene &scene)
 
void showBoundingBox (bool show)
 
 VisualObject (World *parent)
 
virtual ~VisualObject ()
 
- Public Member Functions inherited from mvsim::Simulable
const b2Bodyb2d_body () const
 
b2Bodyb2d_body ()
 
mrpt::poses::CPose2D getCPose2D () const
 Alternative to getPose() More...
 
const std::stringgetName () const
 
mrpt::math::TPose3D getPose () const
 
mrpt::math::TTwist2D getTwist () const
 
const mrpt::math::TTwist2DgetVelocity () const
 
mrpt::math::TTwist2D getVelocityLocal () const
 
bool hadCollision () const
 
bool isInCollision () const
 
void resetCollisionFlag ()
 
void setName (const std::string &s)
 
void setPose (const mrpt::math::TPose3D &p) const
 
void setTwist (const mrpt::math::TTwist2D &dq) const
 

Protected Member Functions

virtual void dynamics_load_params_from_xml (const rapidxml::xml_node< char > *xml_node) override
 
virtual void invoke_motor_controllers (const TSimulContext &context, std::vector< double > &out_force_per_wheel) override
 
- Protected Member Functions inherited from mvsim::VehicleBase
virtual void initLoggers ()
 
virtual mrpt::poses::CPose3D internalGuiGetVisualPose () override
 
virtual void internalGuiUpdate (mrpt::opengl::COpenGLScene &scene, bool childrenOnly) override
 
void updateMaxRadiusFromPoly ()
 excludes the mass of wheels) More...
 
 VehicleBase (World *parent, size_t nWheels)
 
virtual void writeLogStrings ()
 
- Protected Member Functions inherited from mvsim::VisualObject
bool parseVisual (const rapidxml::xml_node< char > *visual_node)
 

Private Attributes

ControllerBasePtr m_controller
 The installed controller. More...
 

Controllers

typedef ControllerBaseTempl< DynamicsDifferentialControllerBase
 
typedef std::shared_ptr< ControllerBaseControllerBasePtr
 
const ControllerBasePtrgetController () const
 
ControllerBasePtrgetController ()
 
virtual ControllerBaseInterfacegetControllerInterface () override
 

Additional Inherited Members

- Static Public Member Functions inherited from mvsim::VehicleBase
static Ptr factory (World *parent, const rapidxml::xml_node< char > *xml_node)
 
static Ptr factory (World *parent, const std::string &xml_text)
 
static void register_vehicle_class (const rapidxml::xml_node< char > *xml_node)
 
- Static Public Attributes inherited from mvsim::VehicleBase
static constexpr char DL_TIMESTAMP [] = "timestamp"
 
static constexpr char LOGGER_POSE [] = "logger_pose"
 
static constexpr char LOGGER_WHEEL [] = "logger_wheel"
 
static constexpr char PL_DQ_X [] = "dQx"
 
static constexpr char PL_DQ_Y [] = "dQy"
 
static constexpr char PL_DQ_Z [] = "dQz"
 
static constexpr char PL_Q_PITCH [] = "Qpitch"
 
static constexpr char PL_Q_ROLL [] = "Qroll"
 
static constexpr char PL_Q_X [] = "Qx"
 
static constexpr char PL_Q_Y [] = "Qy"
 
static constexpr char PL_Q_YAW [] = "Qyaw"
 
static constexpr char PL_Q_Z [] = "Qz"
 
static constexpr char WL_FRIC_X [] = "friction_x"
 
static constexpr char WL_FRIC_Y [] = "friction_y"
 
static constexpr char WL_TORQUE [] = "torque"
 
static constexpr char WL_VEL_X [] = "velocity_x"
 
static constexpr char WL_VEL_Y [] = "velocity_y"
 
static constexpr char WL_WEIGHT [] = "weight"
 
- Protected Attributes inherited from mvsim::VehicleBase
mrpt::img::TColor m_chassis_color
 
mrpt::math::TPoint2D m_chassis_com
 
double m_chassis_mass
 
mrpt::math::TPolygon2D m_chassis_poly
 
double m_chassis_z_max
 
double m_chassis_z_min
 each change via updateMaxRadiusFromPoly() More...
 
b2Fixturem_fixture_chassis
 Created at. More...
 
std::vector< b2Fixture * > m_fixture_wheels
 
FrictionBasePtr m_friction
 
std::string m_log_path
 
std::map< std::string, std::shared_ptr< CSVLogger > > m_loggers
 
double m_max_radius
 
TListSensors m_sensors
 Sensors aboard. More...
 
std::vector< double > m_torque_per_wheel
 
size_t m_vehicle_index
 
std::vector< Wheelm_wheels_info
 
- Protected Attributes inherited from mvsim::VisualObject
std::shared_ptr< mrpt::opengl::CSetOfObjectsm_glBoundingBox
 
std::shared_ptr< mrpt::opengl::CSetOfObjectsm_glCustomVisual
 
int32_t m_glCustomVisualId = -1
 
Worldm_world
 
- Protected Attributes inherited from mvsim::Simulable
std::string m_name
 

Detailed Description

Implementation of differential-driven vehicles.

See also
class factory in VehicleBase::factory

Definition at line 20 of file VehicleDifferential.h.

Member Typedef Documentation

Virtual base for controllers of vehicles of type DynamicsDifferential

Definition at line 46 of file VehicleDifferential.h.

Definition at line 47 of file VehicleDifferential.h.

Member Enumeration Documentation

anonymous enum
Enumerator
WHEEL_L 
WHEEL_R 

Definition at line 24 of file VehicleDifferential.h.

Constructor & Destructor Documentation

DynamicsDifferential::DynamicsDifferential ( World parent)

Definition at line 22 of file VehicleDifferential.cpp.

Member Function Documentation

void DynamicsDifferential::dynamics_load_params_from_xml ( const rapidxml::xml_node< char > *  xml_node)
overrideprotectedvirtual

The derived-class part of load_params_from_xml()

Implements mvsim::VehicleBase.

Definition at line 47 of file VehicleDifferential.cpp.

const ControllerBasePtr& mvsim::DynamicsDifferential::getController ( ) const
inline

Definition at line 102 of file VehicleDifferential.h.

ControllerBasePtr& mvsim::DynamicsDifferential::getController ( )
inline

Definition at line 103 of file VehicleDifferential.h.

virtual ControllerBaseInterface* mvsim::DynamicsDifferential::getControllerInterface ( )
inlineoverridevirtual

Implements mvsim::VehicleBase.

Definition at line 104 of file VehicleDifferential.h.

mrpt::math::TTwist2D DynamicsDifferential::getVelocityLocalOdoEstimate ( ) const
overridevirtual

Gets the current estimation of odometry-based velocity as reconstructed solely from wheels spinning velocities and geometry. This is the input of any realistic low-level controller onboard.

See also
getVelocityLocal()

Implements mvsim::VehicleBase.

Definition at line 150 of file VehicleDifferential.cpp.

void DynamicsDifferential::invoke_motor_controllers ( const TSimulContext context,
std::vector< double > &  out_force_per_wheel 
)
overrideprotectedvirtual

Implements mvsim::VehicleBase.

Definition at line 130 of file VehicleDifferential.cpp.

Member Data Documentation

ControllerBasePtr mvsim::DynamicsDifferential::m_controller
private

The installed controller.

Definition at line 123 of file VehicleDifferential.h.


The documentation for this class was generated from the following files:


mvsim
Author(s):
autogenerated on Fri May 7 2021 03:05:52