12 #include <mvsim/basic_types.h>
28 std::optional<TJoyStickEvent> js;
35 std::string append_gui_lines;
38 virtual void teleop_interface(
67 [[maybe_unused]] std::vector<mrpt::math::TPoint2D>& pts,
68 [[maybe_unused]]
double& height)
const
75 template <
class VEH_DYNAMICS>
79 using Ptr = std::shared_ptr<ControllerBaseTempl<VEH_DYNAMICS>>;
86 using namespace std::string_literals;
89 static bool isRecording =
false;
95 isRecording = !isRecording;
96 setLogRecording(isRecording);
117 out.append_gui_lines +=
"\nToggle logging [L]. Clear logs[C]. New session [N].\n";
118 out.append_gui_lines +=
"Now logging: "s + (isRecording ?
"YES\n"s :
"NO\n"s);
124 const typename VEH_DYNAMICS::TControllerInput& ci,
125 typename VEH_DYNAMICS::TControllerOutput& co) = 0;
127 virtual void on_post_step([[maybe_unused]]
const TSimulContext& context) {}
135 virtual void setLogRecording(
bool recording) { veh_.setRecording(recording); }
136 virtual void clearLogs() { veh_.clearLogs(); }
137 virtual void newLogSession() { veh_.newLogSession(); }
Definition: ControllerBase.h:23
virtual bool setTwistCommand([[maybe_unused]] const mrpt::math::TTwist2D &t)
Definition: ControllerBase.h:51
virtual bool getTrajectoryPlotPoints([[maybe_unused]] std::vector< mrpt::math::TPoint2D > &pts, [[maybe_unused]] double &height) const
Definition: ControllerBase.h:66
Definition: ControllerBase.h:77
virtual void control_step(const typename VEH_DYNAMICS::TControllerInput &ci, typename VEH_DYNAMICS::TControllerOutput &co)=0
virtual void teleop_interface(const TeleopInput &in, TeleopOutput &out) override
Definition: ControllerBase.h:84
virtual void load_config([[maybe_unused]] const rapidxml::xml_node< char > &node)
Definition: ControllerBase.h:130
Definition: ControllerBase.h:34
Definition: basic_types.h:58