MVSim
Lightweight simulator for 2.5D vehicles and robots
Public Member Functions | Static Public Member Functions | List of all members
mvsim::DynamicsDifferential::ControllerTrajectory Class Reference

#include <VehicleDifferential.h>

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

Public Member Functions

 ControllerTrajectory (DynamicsDifferential &veh)
 
void control_step (const DynamicsDifferential::TControllerInput &ci, DynamicsDifferential::TControllerOutput &co) override
 
void on_post_step (const TSimulContext &context) override
 
virtual void load_config (const rapidxml::xml_node< char > &node) override
 
bool getTrajectoryPlotPoints (std::vector< mrpt::math::TPoint2D > &pts, double &height) const override
 
- Public Member Functions inherited from mvsim::ControllerBaseTempl< VEH_DYNAMICS >
 ControllerBaseTempl (VEH_DYNAMICS &veh)
 
virtual void teleop_interface (const TeleopInput &in, TeleopOutput &out) override
 
virtual void control_step (const typename VEH_DYNAMICS::TControllerInput &ci, typename VEH_DYNAMICS::TControllerOutput &co)=0
 
virtual void on_post_step ([[maybe_unused]] const TSimulContext &context)
 
virtual void load_config ([[maybe_unused]] const rapidxml::xml_node< char > &node)
 
virtual void setLogRecording (bool recording)
 
virtual void clearLogs ()
 
virtual void newLogSession ()
 
- Public Member Functions inherited from mvsim::ControllerBaseInterface
virtual void teleop_interface ([[maybe_unused]] const TeleopInput &in, [[maybe_unused]] TeleopOutput &out)
 
virtual bool setTwistCommand ([[maybe_unused]] const mrpt::math::TTwist2D &t)
 
virtual bool getTrajectoryPlotPoints ([[maybe_unused]] std::vector< mrpt::math::TPoint2D > &pts, [[maybe_unused]] double &height) const
 

Static Public Member Functions

static const char * class_name ()
 

Additional Inherited Members

- Public Types inherited from mvsim::ControllerBaseTempl< VEH_DYNAMICS >
using Ptr = std::shared_ptr< ControllerBaseTempl< VEH_DYNAMICS > >
 
- Protected Attributes inherited from mvsim::ControllerBaseTempl< VEH_DYNAMICS >
VEH_DYNAMICS & veh_
 

Detailed Description

Exactly-reproducible-trajectory controller: drives the vehicle along a closed-form, time-parameterized (t, x, y) polyline given in the <controller> XML node, using a pure-pursuit strategy (see PoseTrajectoryFollower). Like ControllerTwistIdeal, the resulting twist is imposed directly on the vehicle state, bypassing the physical wheel torque model, so the same trajectory is reproduced exactly run after run: useful for offline experiments that need repetitive or predefined motion (benchmarking perception/planning pipelines, regression tests, etc.).

XML usage example:

<controller class="trajectory" loop="true">
<lookahead_distance>0.75</lookahead_distance>
<waypoint t="0.0" x="0.0" y="0.0" />
<waypoint t="4.0" x="4.0" y="0.0" />
<waypoint t="8.0" x="4.0" y="4.0" />
</controller>

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