VehicleDifferential_ControllerRaw.cpp
Go to the documentation of this file.
1 /*+-------------------------------------------------------------------------+
2  | MultiVehicle simulator (libmvsim) |
3  | |
4  | Copyright (C) 2014-2024 Jose Luis Blanco Claraco |
5  | Copyright (C) 2017 Borys Tymchenko (Odessa Polytechnic University) |
6  | Distributed under 3-clause BSD License |
7  | See COPYING |
8  +-------------------------------------------------------------------------+ */
9 
11 // #include <mvsim/World.h>
12 // #include <rapidxml.hpp>
13 
14 using namespace mvsim;
15 using namespace std;
16 
17 // See base class docs
19  [[maybe_unused]] const DynamicsDifferential::TControllerInput& ci,
21 {
22  co.wheel_torque_l = this->setpoint_wheel_torque_l;
23  co.wheel_torque_r = this->setpoint_wheel_torque_r;
24 }
25 
27  const TeleopInput& in, TeleopOutput& out)
28 {
29  ControllerBase::teleop_interface(in, out);
30 
31  const double dt = setpoint_teleop_steps;
32 
33  switch (in.keycode)
34  {
35  case 'W':
36  case 'w':
37  setpoint_wheel_torque_l -= dt;
38  setpoint_wheel_torque_r -= dt;
39  break;
40 
41  case 'S':
42  case 's':
43  setpoint_wheel_torque_l += dt;
44  setpoint_wheel_torque_r += dt;
45  break;
46 
47  case 'A':
48  case 'a':
49  setpoint_wheel_torque_l += dt;
50  setpoint_wheel_torque_r -= dt;
51  break;
52 
53  case 'D':
54  case 'd':
55  setpoint_wheel_torque_l -= dt;
56  setpoint_wheel_torque_r += dt;
57  break;
58 
59  case ' ':
60  setpoint_wheel_torque_l = setpoint_wheel_torque_r = 0.0;
61  break;
62  };
63 
64  out.append_gui_lines += "[Controller=" + string(class_name()) +
65  "] Teleop keys:\n"
66  "w/s=incr/decr both torques.\n"
67  "a/d=left/right. spacebar=stop.\n";
68  out.append_gui_lines += mrpt::format(
69  "setpoint: tl=%.03f tr=%.03f deg\n", setpoint_wheel_torque_l, setpoint_wheel_torque_r);
70 }
mvsim
Definition: Client.h:21
mvsim::DynamicsDifferential::ControllerRawForces::teleop_interface
virtual void teleop_interface(const TeleopInput &in, TeleopOutput &out) override
Definition: VehicleDifferential_ControllerRaw.cpp:26
mvsim::ControllerBaseInterface::TeleopOutput::append_gui_lines
std::string append_gui_lines
Definition: ControllerBase.h:35
mvsim::DynamicsDifferential::TControllerOutput::wheel_torque_r
double wheel_torque_r
Definition: VehicleDifferential.h:84
mvsim::DynamicsDifferential::TControllerOutput
Definition: VehicleDifferential.h:79
VehicleDifferential.h
mvsim::DynamicsDifferential::TControllerOutput::wheel_torque_l
double wheel_torque_l
Definition: VehicleDifferential.h:83
mvsim::ControllerBaseInterface::TeleopOutput
Definition: ControllerBase.h:33
mvsim::DynamicsDifferential::ControllerRawForces::control_step
virtual void control_step(const DynamicsDifferential::TControllerInput &ci, DynamicsDifferential::TControllerOutput &co) override
Definition: VehicleDifferential_ControllerRaw.cpp:18
std
mvsim::ControllerBaseInterface::TeleopInput
Definition: ControllerBase.h:25
mvsim::DynamicsDifferential::TControllerInput
Definition: VehicleDifferential.h:74
mvsim::ControllerBaseInterface::TeleopInput::keycode
int keycode
Definition: ControllerBase.h:27


mvsim
Author(s):
autogenerated on Wed May 28 2025 02:13:08