VehicleDifferential_ControllerRaw.cpp
Go to the documentation of this file.
1 /*+-------------------------------------------------------------------------+
2  | MultiVehicle simulator (libmvsim) |
3  | |
4  | Copyright (C) 2014-2023 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  out.append_gui_lines += "[Controller=" + string(class_name()) +
64  "] Teleop keys:\n"
65  "w/s=incr/decr both torques.\n"
66  "a/d=left/right. spacebar=stop.\n";
67  out.append_gui_lines += mrpt::format(
68  "setpoint: tl=%.03f tr=%.03f deg\n", setpoint_wheel_torque_l,
69  setpoint_wheel_torque_r);
70 }
virtual void teleop_interface(const TeleopInput &in, TeleopOutput &out) override
virtual void control_step(const DynamicsDifferential::TControllerInput &ci, DynamicsDifferential::TControllerOutput &co) override


mvsim
Author(s):
autogenerated on Tue Jul 4 2023 03:08:21