1#ifndef DifferentialRobotControlStatus_DEFINED
2#define DifferentialRobotControlStatus_DEFINED
22#ifdef WHITEBOARD_POSTER_STRING_CONVERSION
34 ss << static_cast<int>(l.speed()) <<
"," <<
static_cast<int>(r.speed()) \
35 <<
", " << l.odo() <<
"," << r.odo() <<
", " <<
static_cast<unsigned>(l.accel()) \
36 <<
"," <<
static_cast<unsigned>(r.accel());
43 vector<string> elements = components_of_string_separated(str,
',',
true);
46 if (elements.size() == 0)
return;
47 l.set_speed(
static_cast<int8_t
>(atoi(elements[0].c_str())));
48 if (elements.size() < 2)
return;
49 r.set_speed(
static_cast<int8_t
>(atoi(elements[1].c_str())));
50 if (elements.size() < 3)
return;
51 l.set_odo(
static_cast<uint16_t
>(atoi(elements[2].c_str())));
52 if (elements.size() < 4)
return;
53 r.set_odo(
static_cast<uint16_t
>(atoi(elements[3].c_str())));
54 if (elements.size() < 5)
return;
55 l.set_accel(
static_cast<uint8_t
>(atoi(elements[4].c_str())));
56 if (elements.size() < 6)
return;
57 r.set_accel(
static_cast<uint8_t
>(atoi(elements[5].c_str())));
67 if (l.speed() == sl.speed()
68 && l.accel() == sl.accel()
69 && l.odo() == sl.odo()
70 && r.speed() == sr.speed()
71 && r.accel() == sr.accel()
72 && r.odo() == sr.odo()) {
84 l.set_speed (
static_cast<int8_t
> (0));
85 r.set_speed (
static_cast<int8_t
> (0));
86 l.set_accel (
static_cast<uint8_t
> (0));
87 r.set_accel (
static_cast<uint8_t
> (0));
Class for controlling differential robots Defines whiteboard message.
DifferentialRobotControlStatus(const std::string &name)
String constructor.
void from_string(std::string str)
string conversion
std::string description()
get message description
bool operator==(const DifferentialRobotControlStatus &s)
override equality operator so we can compare instances
DifferentialRobotControlStatus()
Designated constructor.
void stop()
Abstraction for a stop.
Differential, kinematic robot model.
Basic kinematic motor (i.e.