types.h
Go to the documentation of this file.
1 
32 #ifndef CREATE_TYPES_H
33 #define CREATE_TYPES_H
34 
35 #include <vector>
36 #include <stdint.h>
37 #include <string>
38 #include <stdexcept>
39 
40 namespace create {
42  V_1 = 1,
43  V_2 = 2,
44  V_3 = 4,
45  V_ALL = 0xFFFFFFFF
46  };
47 
48  class RobotModel {
49  public:
50  bool operator==(RobotModel& other) const;
51  operator uint32_t() const;
52 
53  uint32_t getId() const;
55  float getAxleLength() const;
56  unsigned int getBaud() const;
57  float getMaxVelocity() const;
58  float getWheelDiameter() const;
59 
64 
69 
74 
75  private:
76  uint32_t id;
78  float axleLength;
79  unsigned int baud;
80  float maxVelocity;
82 
83  RobotModel(const ProtocolVersion version, const float axleLength, const unsigned int baud, const float maxVelocity = 0.5, const float wheelDiameter = 0.078);
84  static uint32_t nextId;
85  };
86 
95  ID_GROUP_100 = 100,
96  ID_GROUP_101 = 101,
97  ID_GROUP_106 = 106,
98  ID_GROUP_107 = 107,
100  ID_WALL = 8,
114  ID_ANGLE = 20,
118  ID_TEMP = 24,
119  ID_CHARGE = 25,
133  ID_VEL = 39,
134  ID_RADIUS = 40,
139  ID_LIGHT = 45,
150  ID_STASIS = 58,
151  ID_NUM = 52
152  };
153 
154  enum Opcode {
155  OC_START = 128,
156  OC_RESET = 7,
157  OC_STOP = 173,
158  OC_BAUD = 129,
159  OC_CONTROL = 130,
160  OC_SAFE = 131,
161  OC_FULL = 132,
162  OC_CLEAN = 135,
163  OC_MAX = 136,
164  OC_SPOT = 134,
165  OC_DOCK = 143,
166  OC_POWER = 133,
167  OC_SCHEDULE = 167,
168  OC_DATE = 168,
169  OC_DRIVE = 137,
172  OC_MOTORS = 138,
174  OC_LEDS = 139,
177  OC_BUTTONS = 165,
179  OC_SONG = 140,
180  OC_PLAY = 141,
183  OC_STREAM = 148,
185  };
186 
187  enum BAUDCODE {
188  BAUD_300 = 0,
189  BAUD_600 = 1,
200  };
201 
202  enum CreateMode {
203  MODE_OFF = 0,
208  };
209 
210  enum CleanMode {
214  };
215 
223  };
224 
225  enum DayOfWeek {
226  SUN = 0,
227  MON = 1,
228  TUE = 2,
229  WED = 3,
230  THU = 4,
231  FRI = 5,
232  SAT = 6
233  };
234 
235  enum IRChars {
241  IR_CHAR_MAX = 133,
270  };
271 
275  struct Pose {
276  float x;
277  float y;
278  float yaw;
279 
283  std::vector<float> covariance;
284  };
285 
286  typedef Pose Vel;
287 } // namespace create
288 
289 #endif // CREATE_TYPES_H
create::IR_CHAR_600_RED_GREEN_FORCE_FIELD
@ IR_CHAR_600_RED_GREEN_FORCE_FIELD
Definition: types.h:268
create::OC_MAX
@ OC_MAX
Definition: types.h:163
create::OC_DIGIT_LEDS_RAW
@ OC_DIGIT_LEDS_RAW
Definition: types.h:176
create::IR_CHAR_LARGE
@ IR_CHAR_LARGE
Definition: types.h:244
create::BAUD_2400
@ BAUD_2400
Definition: types.h:191
create::IR_CHAR_DOCK_RESERVED
@ IR_CHAR_DOCK_RESERVED
Definition: types.h:253
create::CHARGE_TRICKLE
@ CHARGE_TRICKLE
Definition: types.h:220
create::OC_RESET
@ OC_RESET
Definition: types.h:156
create::ID_GROUP_1
@ ID_GROUP_1
Definition: types.h:89
create::OC_DRIVE
@ OC_DRIVE
Definition: types.h:169
create::ID_LEFT_VEL
@ ID_LEFT_VEL
Definition: types.h:136
create::ID_DISTANCE
@ ID_DISTANCE
Definition: types.h:113
create::THU
@ THU
Definition: types.h:230
create::CLEAN_SPOT
@ CLEAN_SPOT
Definition: types.h:213
create::IR_CHAR_PAUSE
@ IR_CHAR_PAUSE
Definition: types.h:246
create::SUN
@ SUN
Definition: types.h:226
create::ID_LEFT_MOTOR_CURRENT
@ ID_LEFT_MOTOR_CURRENT
Definition: types.h:146
create::ID_LIGHT_LEFT
@ ID_LIGHT_LEFT
Definition: types.h:140
create::CHARGE_FULL
@ CHARGE_FULL
Definition: types.h:219
create::ID_GROUP_2
@ ID_GROUP_2
Definition: types.h:90
create::BAUD_115200
@ BAUD_115200
Definition: types.h:199
create::IR_CHAR_GREEN_FORCE_FIELD
@ IR_CHAR_GREEN_FORCE_FIELD
Definition: types.h:259
create::IR_CHAR_RED_BUOY
@ IR_CHAR_RED_BUOY
Definition: types.h:254
create::ID_CLIFF_LEFT
@ ID_CLIFF_LEFT
Definition: types.h:101
create::IR_CHAR_STOP
@ IR_CHAR_STOP
Definition: types.h:250
create::V_3
@ V_3
Definition: types.h:44
create::OC_FULL
@ OC_FULL
Definition: types.h:161
create::RobotModel::CREATE_2
static RobotModel CREATE_2
Compatible with Create 2 or Roomba 600 series and greater.
Definition: types.h:73
create::OC_BUTTONS
@ OC_BUTTONS
Definition: types.h:177
create::ID_CLIFF_FRONT_RIGHT
@ ID_CLIFF_FRONT_RIGHT
Definition: types.h:103
create::RobotModel::RobotModel
RobotModel(const ProtocolVersion version, const float axleLength, const unsigned int baud, const float maxVelocity=0.5, const float wheelDiameter=0.078)
Definition: types.cpp:5
create::ID_CLIFF_RIGHT
@ ID_CLIFF_RIGHT
Definition: types.h:104
create::IR_CHAR_GREEN_BUOY
@ IR_CHAR_GREEN_BUOY
Definition: types.h:255
create::ID_SONG_NUM
@ ID_SONG_NUM
Definition: types.h:130
create::IR_CHAR_LEFT
@ IR_CHAR_LEFT
Definition: types.h:237
create::ID_GROUP_107
@ ID_GROUP_107
Definition: types.h:98
create::IR_CHAR_SPOT
@ IR_CHAR_SPOT
Definition: types.h:240
create::ID_RIGHT_ENC
@ ID_RIGHT_ENC
Definition: types.h:138
create::ID_NUM_STREAM_PACKETS
@ ID_NUM_STREAM_PACKETS
Definition: types.h:132
create::CLEAN_MAX
@ CLEAN_MAX
Definition: types.h:212
create::CleanMode
CleanMode
Definition: types.h:210
create::MODE_SAFE
@ MODE_SAFE
Definition: types.h:205
create::ID_GROUP_3
@ ID_GROUP_3
Definition: types.h:91
create::BAUD_300
@ BAUD_300
Definition: types.h:188
create::OC_CLEAN
@ OC_CLEAN
Definition: types.h:162
create::ID_VIRTUAL_WALL
@ ID_VIRTUAL_WALL
Definition: types.h:105
create::IR_CHAR_SEEK_DOCK
@ IR_CHAR_SEEK_DOCK
Definition: types.h:252
create::ID_LEFT_ENC
@ ID_LEFT_ENC
Definition: types.h:137
create::FRI
@ FRI
Definition: types.h:231
create::ID_DIRT_DETECT_LEFT
@ ID_DIRT_DETECT_LEFT
Definition: types.h:107
create::IR_CHAR_DOWNLOAD
@ IR_CHAR_DOWNLOAD
Definition: types.h:251
create::BAUD_57600
@ BAUD_57600
Definition: types.h:198
create::OC_DRIVE_DIRECT
@ OC_DRIVE_DIRECT
Definition: types.h:170
create::Pose::yaw
float yaw
Definition: types.h:278
create::OC_SENSORS
@ OC_SENSORS
Definition: types.h:181
create::ID_LIGHT_FRONT_RIGHT
@ ID_LIGHT_FRONT_RIGHT
Definition: types.h:144
create::RobotModel::getWheelDiameter
float getWheelDiameter() const
Definition: types.cpp:43
create::IR_CHAR_600_FORCE_FIELD
@ IR_CHAR_600_FORCE_FIELD
Definition: types.h:262
create::IR_CHAR_FORCE_FIELD
@ IR_CHAR_FORCE_FIELD
Definition: types.h:256
create::OC_SCHEDULE
@ OC_SCHEDULE
Definition: types.h:167
create::BAUD_19200
@ BAUD_19200
Definition: types.h:195
create::ID_CHARGE_SOURCE
@ ID_CHARGE_SOURCE
Definition: types.h:128
create::OC_MOTORS_PWM
@ OC_MOTORS_PWM
Definition: types.h:173
create::CreateMode
CreateMode
Definition: types.h:202
create::IR_CHAR_600_GREEN_BUOY
@ IR_CHAR_600_GREEN_BUOY
Definition: types.h:263
create::ID_WALL_SIGNAL
@ ID_WALL_SIGNAL
Definition: types.h:121
create::OC_DATE
@ OC_DATE
Definition: types.h:168
create::ID_LIGHT_RIGHT
@ ID_LIGHT_RIGHT
Definition: types.h:145
create::ID_IR_RIGHT
@ ID_IR_RIGHT
Definition: types.h:111
create::BAUD_4800
@ BAUD_4800
Definition: types.h:192
create::IR_CHAR_600_GREEN_FORCE_FIELD
@ IR_CHAR_600_GREEN_FORCE_FIELD
Definition: types.h:264
create::ID_OI_MODE
@ ID_OI_MODE
Definition: types.h:129
create::ID_MAIN_BRUSH_CURRENT
@ ID_MAIN_BRUSH_CURRENT
Definition: types.h:148
create::ID_RADIUS
@ ID_RADIUS
Definition: types.h:134
create::BAUD_28800
@ BAUD_28800
Definition: types.h:196
create::RobotModel::getMaxVelocity
float getMaxVelocity() const
Definition: types.cpp:39
create::RobotModel::maxVelocity
float maxVelocity
Definition: types.h:80
create::Pose
Represents a robot pose.
Definition: types.h:275
create::RobotModel::id
uint32_t id
Definition: types.h:76
create::RobotModel::version
ProtocolVersion version
Definition: types.h:77
create::OC_STOP
@ OC_STOP
Definition: types.h:157
create::IR_CHAR_600_RED_GREEN_BUOY
@ IR_CHAR_600_RED_GREEN_BUOY
Definition: types.h:267
create::ID_CAPACITY
@ ID_CAPACITY
Definition: types.h:120
create::ID_LIGHT
@ ID_LIGHT
Definition: types.h:139
create::ID_CLIFF_FRONT_LEFT
@ ID_CLIFF_FRONT_LEFT
Definition: types.h:102
create::MODE_PASSIVE
@ MODE_PASSIVE
Definition: types.h:204
create::ID_CLIFF_FRONT_LEFT_SIGNAL
@ ID_CLIFF_FRONT_LEFT_SIGNAL
Definition: types.h:123
create::IR_CHAR_600_RED_BUOY
@ IR_CHAR_600_RED_BUOY
Definition: types.h:265
create::RobotModel::CREATE_1
static RobotModel CREATE_1
Compatible with Create 1 or Roomba 500 series.
Definition: types.h:68
create::RobotModel::getVersion
ProtocolVersion getVersion() const
Definition: types.cpp:27
create::BAUD_1200
@ BAUD_1200
Definition: types.h:190
create::ID_OVERCURRENTS
@ ID_OVERCURRENTS
Definition: types.h:106
create::DayOfWeek
DayOfWeek
Definition: types.h:225
create::ID_ANGLE
@ ID_ANGLE
Definition: types.h:114
create::ID_CARGO_BAY_ANALOG_SIGNAL
@ ID_CARGO_BAY_ANALOG_SIGNAL
Definition: types.h:127
create::ID_CARGO_BAY_DIGITAL_INPUTS
@ ID_CARGO_BAY_DIGITAL_INPUTS
Definition: types.h:126
create::RobotModel::axleLength
float axleLength
Definition: types.h:78
create::ID_GROUP_101
@ ID_GROUP_101
Definition: types.h:96
create::ID_GROUP_5
@ ID_GROUP_5
Definition: types.h:93
create::ID_CHARGE_STATE
@ ID_CHARGE_STATE
Definition: types.h:115
create::OC_SPOT
@ OC_SPOT
Definition: types.h:164
create::CLEAN_DEFAULT
@ CLEAN_DEFAULT
Definition: types.h:211
create::OC_DOCK
@ OC_DOCK
Definition: types.h:165
create::ID_GROUP_106
@ ID_GROUP_106
Definition: types.h:97
create::ID_VEL
@ ID_VEL
Definition: types.h:133
create::ID_BUMP_WHEELDROP
@ ID_BUMP_WHEELDROP
Definition: types.h:99
create::V_1
@ V_1
Definition: types.h:42
create::IRChars
IRChars
Definition: types.h:235
create::CHARGE_FAULT
@ CHARGE_FAULT
Definition: types.h:222
create::OC_SCHEDULING_LEDS
@ OC_SCHEDULING_LEDS
Definition: types.h:175
create::BAUD_14400
@ BAUD_14400
Definition: types.h:194
create::OC_SONG
@ OC_SONG
Definition: types.h:179
create::WED
@ WED
Definition: types.h:229
create::ChargingState
ChargingState
Definition: types.h:216
create::OC_PLAY
@ OC_PLAY
Definition: types.h:180
create::ID_NUM
@ ID_NUM
Definition: types.h:151
create::V_2
@ V_2
Definition: types.h:43
create::OC_POWER
@ OC_POWER
Definition: types.h:166
create::V_ALL
@ V_ALL
Definition: types.h:45
create::ID_CLIFF_RIGHT_SIGNAL
@ ID_CLIFF_RIGHT_SIGNAL
Definition: types.h:125
create::BAUD_38400
@ BAUD_38400
Definition: types.h:197
create::ID_PLAYING
@ ID_PLAYING
Definition: types.h:131
create::OC_START
@ OC_START
Definition: types.h:155
create::MODE_UNAVAILABLE
@ MODE_UNAVAILABLE
Definition: types.h:207
create::CHARGE_WAITING
@ CHARGE_WAITING
Definition: types.h:221
create::RobotModel::nextId
static uint32_t nextId
Definition: types.h:84
create::CHARGE_NONE
@ CHARGE_NONE
Definition: types.h:217
create::IR_CHAR_MAX
@ IR_CHAR_MAX
Definition: types.h:241
create::MODE_OFF
@ MODE_OFF
Definition: types.h:203
create::ID_IR_OMNI
@ ID_IR_OMNI
Definition: types.h:109
create::ID_LIGHT_CENTER_RIGHT
@ ID_LIGHT_CENTER_RIGHT
Definition: types.h:143
create::ID_CURRENT
@ ID_CURRENT
Definition: types.h:117
create::RobotModel::getId
uint32_t getId() const
Definition: types.cpp:23
create::IR_CHAR_FORWARD
@ IR_CHAR_FORWARD
Definition: types.h:238
create::OC_BAUD
@ OC_BAUD
Definition: types.h:158
create::ID_LIGHT_CENTER_LEFT
@ ID_LIGHT_CENTER_LEFT
Definition: types.h:142
create::IR_CHAR_CLEAN
@ IR_CHAR_CLEAN
Definition: types.h:245
create::OC_TOGGLE_STREAM
@ OC_TOGGLE_STREAM
Definition: types.h:184
create::BAUDCODE
BAUDCODE
Definition: types.h:187
create::IR_CHAR_SMALL
@ IR_CHAR_SMALL
Definition: types.h:242
create::IR_CHAR_RED_GREEN_FORCE_FIELD
@ IR_CHAR_RED_GREEN_FORCE_FIELD
Definition: types.h:260
create::ID_GROUP_4
@ ID_GROUP_4
Definition: types.h:92
create::ID_BUTTONS
@ ID_BUTTONS
Definition: types.h:112
create::MODE_FULL
@ MODE_FULL
Definition: types.h:206
create::ID_TEMP
@ ID_TEMP
Definition: types.h:118
create::ID_STASIS
@ ID_STASIS
Definition: types.h:150
create::ID_GROUP_0
@ ID_GROUP_0
Definition: types.h:88
create::IR_CHAR_RED_FORCE_FIELD
@ IR_CHAR_RED_FORCE_FIELD
Definition: types.h:258
create::RobotModel::ROOMBA_400
static RobotModel ROOMBA_400
Compatible with Roomba 400 series and earlier.
Definition: types.h:63
create::SAT
@ SAT
Definition: types.h:232
create::TUE
@ TUE
Definition: types.h:228
create::ID_CHARGE
@ ID_CHARGE
Definition: types.h:119
create::IR_CHAR_RED_GREEN_BUOY
@ IR_CHAR_RED_GREEN_BUOY
Definition: types.h:257
create::OC_QUERY_LIST
@ OC_QUERY_LIST
Definition: types.h:182
create::OC_MOTORS
@ OC_MOTORS
Definition: types.h:172
create::OC_LEDS
@ OC_LEDS
Definition: types.h:174
create::RobotModel::getAxleLength
float getAxleLength() const
Definition: types.cpp:31
create::ID_CLIFF_LEFT_SIGNAL
@ ID_CLIFF_LEFT_SIGNAL
Definition: types.h:122
create::IR_CHAR_600_RED_FORCE_FIELD
@ IR_CHAR_600_RED_FORCE_FIELD
Definition: types.h:266
create::MON
@ MON
Definition: types.h:227
create::Pose::covariance
std::vector< float > covariance
3x3 covariance matrix in row-major order.
Definition: types.h:283
create::CHARGE_RECONDITION
@ CHARGE_RECONDITION
Definition: types.h:218
create::ID_GROUP_6
@ ID_GROUP_6
Definition: types.h:94
create::ID_VOLTAGE
@ ID_VOLTAGE
Definition: types.h:116
create::ID_SIDE_BRUSH_CURRENT
@ ID_SIDE_BRUSH_CURRENT
Definition: types.h:149
create::ID_CLIFF_FRONT_RIGHT_SIGNAL
@ ID_CLIFF_FRONT_RIGHT_SIGNAL
Definition: types.h:124
create::RobotModel::baud
unsigned int baud
Definition: types.h:79
create::ID_LIGHT_FRONT_LEFT
@ ID_LIGHT_FRONT_LEFT
Definition: types.h:141
create::RobotModel::getBaud
unsigned int getBaud() const
Definition: types.cpp:35
create::IR_CHAR_MEDIUM
@ IR_CHAR_MEDIUM
Definition: types.h:243
create::ID_DIRT_DETECT_RIGHT
@ ID_DIRT_DETECT_RIGHT
Definition: types.h:108
create::Pose::y
float y
Definition: types.h:277
create::IR_CHAR_600_DOCK_RESERVED
@ IR_CHAR_600_DOCK_RESERVED
Definition: types.h:261
create::OC_STREAM
@ OC_STREAM
Definition: types.h:183
create::OC_CONTROL
@ OC_CONTROL
Definition: types.h:159
create::BAUD_9600
@ BAUD_9600
Definition: types.h:193
create::ID_RIGHT_VEL
@ ID_RIGHT_VEL
Definition: types.h:135
create::SensorPacketID
SensorPacketID
Definition: types.h:87
create::IR_CHAR_NONE
@ IR_CHAR_NONE
Definition: types.h:236
create::ID_WALL
@ ID_WALL
Definition: types.h:100
create::ID_RIGHT_MOTOR_CURRENT
@ ID_RIGHT_MOTOR_CURRENT
Definition: types.h:147
create::Opcode
Opcode
Definition: types.h:154
create::IR_CHAR_ARC_RIGHT
@ IR_CHAR_ARC_RIGHT
Definition: types.h:249
create
Definition: create.h:48
create::IR_CHAR_POWER
@ IR_CHAR_POWER
Definition: types.h:247
create::IR_CHAR_VIRTUAL_WALL
@ IR_CHAR_VIRTUAL_WALL
Definition: types.h:269
create::Pose::x
float x
Definition: types.h:276
create::RobotModel::wheelDiameter
float wheelDiameter
Definition: types.h:81
create::IR_CHAR_RIGHT
@ IR_CHAR_RIGHT
Definition: types.h:239
create::ProtocolVersion
ProtocolVersion
Definition: types.h:41
create::RobotModel
Definition: types.h:48
create::BAUD_600
@ BAUD_600
Definition: types.h:189
create::RobotModel::operator==
bool operator==(RobotModel &other) const
Definition: types.cpp:15
create::IR_CHAR_ARC_LEFT
@ IR_CHAR_ARC_LEFT
Definition: types.h:248
create::OC_SAFE
@ OC_SAFE
Definition: types.h:160
create::ID_GROUP_100
@ ID_GROUP_100
Definition: types.h:95
create::OC_DIGIT_LEDS_ASCII
@ OC_DIGIT_LEDS_ASCII
Definition: types.h:178
create::ID_IR_LEFT
@ ID_IR_LEFT
Definition: types.h:110
create::OC_DRIVE_PWM
@ OC_DRIVE_PWM
Definition: types.h:171
create::Vel
Pose Vel
Definition: types.h:286


libcreate
Author(s): Jacob Perron
autogenerated on Wed May 24 2023 02:24:57