12 #include <mvsim/basic_types.h>
28 std::optional<TJoyStickEvent> js;
35 std::string append_gui_lines;
38 virtual void teleop_interface(
58 template <
class VEH_DYNAMICS>
62 using Ptr = std::shared_ptr<ControllerBaseTempl<VEH_DYNAMICS>>;
69 using namespace std::string_literals;
72 static bool isRecording =
false;
78 isRecording = !isRecording;
79 setLogRecording(isRecording);
100 out.append_gui_lines +=
"\nToggle logging [L]. Clear logs[C]. New session [N].\n";
101 out.append_gui_lines +=
"Now logging: "s + (isRecording ?
"YES\n"s :
"NO\n"s);
107 const typename VEH_DYNAMICS::TControllerInput& ci,
108 typename VEH_DYNAMICS::TControllerOutput& co) = 0;
110 virtual void on_post_step([[maybe_unused]]
const TSimulContext& context) {}
118 virtual void setLogRecording(
bool recording) { veh_.setRecording(recording); }
119 virtual void clearLogs() { veh_.clearLogs(); }
120 virtual void newLogSession() { veh_.newLogSession(); }
Definition: ControllerBase.h:23
virtual bool setTwistCommand([[maybe_unused]] const mrpt::math::TTwist2D &t)
Definition: ControllerBase.h:51
Definition: ControllerBase.h:60
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:67
virtual void load_config([[maybe_unused]] const rapidxml::xml_node< char > &node)
Definition: ControllerBase.h:113
Definition: ControllerBase.h:34
Definition: basic_types.h:58