MVSim
Lightweight simulator for 2.5D vehicles and robots
Public Member Functions | Public Attributes | Protected Attributes | List of all members
mvsim::Wheel Class Reference

#include <Wheel.h>

Inheritance diagram for mvsim::Wheel:
Inheritance graph
[legend]
Collaboration diagram for mvsim::Wheel:
Collaboration graph
[legend]

Public Member Functions

 Wheel (World *world)
 
mrpt::math::TPose3D pose () const
 
std::string asString () const
 
void getAs3DObject (mrpt::opengl::CSetOfObjects &obj, bool isPhysicalScene)
 
void loadFromXML (const rapidxml::xml_node< char > *xml_node)
 
void internalGuiUpdate (const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &viz, const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &physical, bool childrenOnly) override
 
double getPhi () const
 Orientation (rad) wrt vehicle local frame.
 
void setPhi (double val)
 Orientation (rad) wrt vehicle local frame.
 
double getW () const
 Spinning velocity (rad/s) wrt shaft.
 
void setW (double val)
 Spinning velocity (rad/s) wrt shaft.
 
void recalcInertia ()
 Recompute Iyy from mass, diameter and height.
 
- Public Member Functions inherited from mvsim::VisualObject
 VisualObject (World *parent, bool insertCustomVizIntoViz=true, bool insertCustomVizIntoPhysical=true)
 
 VisualObject (const VisualObject &)=delete
 
VisualObjectoperator= (const VisualObject &)=delete
 
 VisualObject (VisualObject &&)=delete
 
VisualObjectoperator= (VisualObject &&)=delete
 
virtual void guiUpdate (const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &viz, const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &physical)
 
Worldparent ()
 
const Worldparent () const
 
void customVisualVisible (const bool visible)
 
bool customVisualVisible () const
 
const std::optional< Shape2p5 > & collisionShape () const
 
void showCollisionShape (bool show)
 

Public Attributes

double x = 0
 
double y = -0.5
 
double yaw = 0
 
double diameter = .4
 
double width = .2
 
double mass = 2.0
 [kg]
 
double Iyy = 1.0
 
mrpt::img::TColor color {0xff323232}
 
std::string linked_yaw_object_name
 
double linked_yaw_offset = .0
 
const TParameterDefinitions params_
 

Protected Attributes

double phi = 0
 
double w = 0
 
- Protected Attributes inherited from mvsim::VisualObject
Worldworld_
 
std::shared_ptr< mrpt::opengl::CSetOfObjects > glCustomVisual_
 
std::shared_ptr< mrpt::opengl::CSetOfObjects > glCollision_
 
int32_t glCustomVisualId_ = -1
 
const bool insertCustomVizIntoViz_ = true
 
const bool insertCustomVizIntoPhysical_ = true
 

Additional Inherited Members

- Static Public Member Functions inherited from mvsim::VisualObject
static void FreeOpenGLResources ()
 
- Static Public Attributes inherited from mvsim::VisualObject
static double GeometryEpsilon
 
- Protected Member Functions inherited from mvsim::VisualObject
bool parseVisual (const rapidxml::xml_node< char > &rootNode)
 Returns true if there is at least one <visual>...</visual> entry.
 
bool parseVisual (const JointXMLnode<> &rootNode)
 
void addCustomVisualization (const mrpt::opengl::CRenderizable::Ptr &glModel, const mrpt::poses::CPose3D &modelPose={}, const float modelScale=1.0f, const std::string &modelName="group", const std::optional< std::string > &modelURI=std::nullopt, const bool initialShowBoundingBox=false, const std::optional< double > &scaleOverride=std::nullopt)
 
void setCollisionShape (const Shape2p5 &cs)
 

Detailed Description

Common info for 2D wheels, for usage in derived classes. Wheels are modeled as a mass with a cylindrical shape.

Member Function Documentation

◆ asString()

std::string mvsim::Wheel::asString ( ) const

Generates a human-readable description of the wheel parameters and kinematic status

◆ pose()

mrpt::math::TPose3D mvsim::Wheel::pose ( ) const
inline

Pose of the wheel wrt the chassis ref point (in local coords)

Member Data Documentation

◆ color

mrpt::img::TColor mvsim::Wheel::color {0xff323232}

Color for OpenGL rendering

◆ diameter

double mvsim::Wheel::diameter = .4

Length(diameter) and width of the wheel rectangle [m]

◆ Iyy

double mvsim::Wheel::Iyy = 1.0

Inertia: computed automatically from geometry at constructor and at loadFromXML(), but can be overrided.

◆ linked_yaw_object_name

std::string mvsim::Wheel::linked_yaw_object_name

Optional: name of a named custom visualization object in my parent vehicle, whose angle (yaw) is to be set whenever this wheel angle is updated.

◆ params_

const TParameterDefinitions mvsim::Wheel::params_
Initial value:
= {
{"mass", {"%lf", &mass}},
{"width", {"%lf", &width}},
{"diameter", {"%lf", &diameter}},
{"color", {"%color", &color}},
{"inertia", {"%lf", &Iyy}},
{"linked_yaw", {"%s", &linked_yaw_object_name}},
{"linked_yaw_offset_deg", {"%lf_deg", &linked_yaw_offset}}}
double mass
[kg]
Definition: Wheel.h:47
double diameter
Definition: Wheel.h:46
mrpt::img::TColor color
Definition: Wheel.h:54
std::string linked_yaw_object_name
Definition: Wheel.h:60
double Iyy
Definition: Wheel.h:51

◆ phi

double mvsim::Wheel::phi = 0
protected

Angular position and velocity of the wheel as it spins over its shaft (rad, rad/s)

◆ x

double mvsim::Wheel::x = 0

Location of the wheel wrt the chassis ref point [m,rad] (in local coords)


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