|
|
| DynamicsAckermannDrivetrain (World *parent) |
| |
| double | getMaxSteeringAngle () const |
| |
|
void | setMaxSteeringAngle (double val) |
| |
| virtual mrpt::math::TTwist2D | getVelocityLocalOdoEstimate () const override |
| |
| void | computeFrontWheelAngles (const double desired_equiv_steer_ang, double &out_fl_ang, double &out_fr_ang) const |
| |
| void | computeDiffTorqueSplit (const double w1, const double w2, const double diffBias, const double defaultSplitRatio, double &t1, double &t2) |
| |
| virtual void | simul_pre_timestep (const TSimulContext &context) override |
| |
| virtual void | simul_post_timestep (const TSimulContext &context) override |
| |
| virtual void | apply_force (const mrpt::math::TVector2D &force, const mrpt::math::TPoint2D &applyPoint=mrpt::math::TPoint2D(0, 0)) override |
| |
| virtual void | create_multibody_system (b2World &world) |
| |
| virtual double | getMaxVehicleRadius () const |
| |
| virtual double | getChassisMass () const |
| |
|
b2Body * | getBox2DChassisBody () |
| |
|
mrpt::math::TPoint2D | getChassisCenterOfMass () const |
| | In local coordinates (this excludes the mass of wheels)
|
| |
|
size_t | getNumWheels () const |
| |
|
const Wheel & | getWheelInfo (const size_t idx) const |
| |
|
Wheel & | getWheelInfo (const size_t idx) |
| |
| std::vector< mrpt::math::TVector2D > | getWheelsVelocityLocal (const mrpt::math::TTwist2D &veh_vel_local) const |
| |
| double | estimateSlopeTorquePerWheel (size_t nDrivenWheels=0) const |
| |
|
const TListSensors & | getSensors () const |
| |
|
TListSensors & | getSensors () |
| |
|
CSVLogger::Ptr | getLoggerPtr (const std::size_t logger_index) |
| |
|
const std::vector< CSVLogger::Ptr > & | getLoggers () const |
| |
| const mrpt::math::TPolygon2D & | getChassisShape () const |
| |
| void | setVehicleIndex (size_t idx) |
| |
| size_t | getVehicleIndex () const |
| |
|
void | setRecording (bool record) |
| |
|
void | clearLogs () |
| |
|
void | newLogSession () |
| |
|
void | registerOnServer (mvsim::Client &c) override |
| |
|
b2Fixture * | get_fixture_chassis () |
| |
|
std::vector< b2Fixture * > & | get_fixture_wheels () |
| |
|
const b2Fixture * | get_fixture_chassis () const |
| |
|
const std::vector< b2Fixture * > & | get_fixture_wheels () const |
| |
|
void | freeOpenGLResources () override |
| |
|
void | chassisAndWheelsVisible (bool visible) |
| |
|
double | chassisZMin () const |
| |
|
double | chassisZMax () const |
| |
| const mrpt::math::TPoint3D & | getSlopeDirection () const |
| |
|
void | setSlopeDirection (const mrpt::math::TPoint3D &d) |
| |
| mrpt::poses::CPose2D | getOdometry () const |
| |
|
void | resetOdometry () |
| |
|
bool | isLogging () const |
| |
|
| VisualObject (World *parent, bool insertCustomVizIntoViz=true, bool insertCustomVizIntoPhysical=true) |
| |
|
| VisualObject (const VisualObject &)=delete |
| |
|
VisualObject & | operator= (const VisualObject &)=delete |
| |
|
| VisualObject (VisualObject &&)=delete |
| |
|
VisualObject & | operator= (VisualObject &&)=delete |
| |
| virtual void | guiUpdate (const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &viz, const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &physical) |
| |
|
World * | parent () |
| |
|
const World * | parent () const |
| |
|
void | customVisualVisible (const bool visible) |
| |
|
bool | customVisualVisible () const |
| |
| const std::optional< Shape2p5 > & | collisionShape () const |
| |
|
void | showCollisionShape (bool show) |
| |
|
| Simulable (World *parent) |
| |
| mrpt::math::TTwist2D | getRefVelocityLocal () const |
| |
| mrpt::math::TTwist2D | getVelocityLocal () const |
| |
| mrpt::math::TTwist2D | getRefVelocityGlobal () const |
| |
| mrpt::math::TTwist2D | getComVelocityGlobal () const |
| |
| mrpt::math::TPose3D | getPose () const |
| |
| virtual mrpt::math::TPose3D | getRelativePose () const |
| |
|
mrpt::math::TPose3D | getPoseNoLock () const |
| | No thread-safe version. Used internally only.
|
| |
| mrpt::math::TVector3D | getLinearAcceleration () const |
| |
| void | setPose (const mrpt::math::TPose3D &p, bool notifyChange=true) const |
| |
| virtual void | setRelativePose (const mrpt::math::TPose3D &p) |
| |
| void | setRefVelocityLocal (const mrpt::math::TTwist2D &dq) |
| |
|
mrpt::poses::CPose2D | getCPose2D () const |
| | Alternative to getPose()
|
| |
|
mrpt::poses::CPose3D | getCPose3D () const |
| | Alternative to getPose()
|
| |
| const std::string & | getName () const |
| |
| void | setName (const std::string &s) |
| |
| bool | isInCollision () const |
| |
| bool | hadCollision () const |
| |
| void | resetCollisionFlag () |
| |
|
const b2Body * | b2d_body () const |
| |
|
b2Body * | b2d_body () |
| |
|
World * | getSimulableWorldObject () |
| |
|
const World * | getSimulableWorldObject () const |
| |
| virtual std::optional< float > | getElevationAt ([[maybe_unused]] const mrpt::math::TPoint2D &worldXY) const |
| |
|
| virtual void | dynamics_load_params_from_xml (const rapidxml::xml_node< char > *xml_node) override |
| |
|
virtual std::vector< double > | invoke_motor_controllers (const TSimulContext &context) override |
| |
|
virtual void | initLoggers () |
| |
|
virtual void | writeLogStrings () |
| |
|
virtual void | internalGuiUpdate (const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &viz, const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &physical, bool childrenOnly) override |
| |
|
| VehicleBase (World *parent, size_t nWheels) |
| |
|
virtual void | invoke_motor_controllers_post_step ([[maybe_unused]] const TSimulContext &context) |
| |
|
VisualObject * | meAsVisualObject () override |
| |
|
void | updateMaxRadiusFromPoly () |
| |
|
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) |
| |
|
| static Ptr | factory (World *parent, const rapidxml::xml_node< char > *xml_node) |
| |
|
static Ptr | factory (World *parent, const std::string &xml_text) |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
| static void | register_vehicle_class (const World &parent, const rapidxml::xml_node< char > *xml_node) |
| |
|
static void | FreeOpenGLResources () |
| |
|
static constexpr std::string_view | DL_TIMESTAMP = "Timestamp" |
| |
|
static constexpr std::size_t | LOGGER_IDX_POSE = 0 |
| |
|
static constexpr std::size_t | LOGGER_IDX_WHEELS = 1 |
| |
|
static constexpr std::string_view | PL_Q_X = "q0x" |
| |
|
static constexpr std::string_view | PL_Q_Y = "q1y" |
| |
|
static constexpr std::string_view | PL_Q_Z = "q2z" |
| |
|
static constexpr std::string_view | PL_Q_YAW = "q3yaw" |
| |
|
static constexpr std::string_view | PL_Q_PITCH = "q4pitch" |
| |
|
static constexpr std::string_view | PL_Q_ROLL = "q5roll" |
| |
|
static constexpr std::string_view | PL_DQ_X = "dqx" |
| |
|
static constexpr std::string_view | PL_DQ_Y = "dqy" |
| |
|
static constexpr std::string_view | PL_DQ_W = "dqw" |
| |
|
static constexpr std::string_view | PL_ODO_X = "odo_x" |
| |
|
static constexpr std::string_view | PL_ODO_Y = "odo_y" |
| |
|
static constexpr std::string_view | PL_ODO_YAW = "odo_yaw" |
| |
|
static constexpr std::string_view | WL_TORQUE = "torque" |
| |
|
static constexpr std::string_view | WL_FORCE_Z = "force_z" |
| |
|
static constexpr std::string_view | WL_VEL_X = "velocity_x" |
| |
|
static constexpr std::string_view | WL_VEL_Y = "velocity_y" |
| |
|
static constexpr std::string_view | WL_FRIC_X = "friction_x" |
| |
|
static constexpr std::string_view | WL_FRIC_Y = "friction_y" |
| |
| static double | GeometryEpsilon |
| |
|
std::vector< CSVLogger::Ptr > | loggers_ |
| |
|
std::string | log_path_ |
| |
|
bool | auto_start_recording_ = false |
| |
| bool | idealControllerActive_ = false |
| |
| size_t | vehicle_index_ = 0 |
| |
| std::vector< FrictionBase::Ptr > | frictions_ |
| |
|
TListSensors | sensors_ |
| | Sensors aboard.
|
| |
|
double | chassis_mass_ = 15.0 |
| |
|
mrpt::math::TPolygon2D | chassis_poly_ |
| |
| float | linear_damping_ = 0.1 |
| |
| float | angular_damping_ = 0.1 |
| |
| double | maxRadius_ = 0.1 |
| |
|
double | chassis_z_min_ = 0.05 |
| |
|
double | chassis_z_max_ = 0.6 |
| |
|
mrpt::img::TColor | chassis_color_ {0xff, 0x00, 0x00} |
| |
| mrpt::math::TPoint2D | chassis_com_ {0, 0} |
| |
| mrpt::math::TPoint3D | slopeDir_ {0, 0, -1} |
| |
|
OdometryNoise | odometry_noise_ |
| |
| std::deque< Wheel > | wheels_info_ |
| |
|
b2Fixture * | fixture_chassis_ = nullptr |
| | Created at.
|
| |
| std::vector< b2Fixture * > | fixture_wheels_ |
| |
|
World * | world_ |
| |
| 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 |
| |
| std::string | name_ |
| |
Implementation of 4 wheels Ackermann-driven vehicles with drivetrain As motor input of drivetrain acts controller torque. Differential model is based on observations of Torsen-like differentials work. http://www.flashoffroad.com/features/Torsen/Torsen_white_paper.pdf
- See also
- class factory in VehicleBase::factory