23#ifndef _PLUGINS_ROOMBA_ROOMBA_500_H_
24#define _PLUGINS_ROOMBA_ROOMBA_500_H_
26#include <core/plugin.h>
27#include <core/threading/mutex.h>
298 static const unsigned short int SENSPACK_SIZE_GROUP_0;
299 static const unsigned short int SENSPACK_SIZE_GROUP_1;
300 static const unsigned short int SENSPACK_SIZE_GROUP_2;
301 static const unsigned short int SENSPACK_SIZE_GROUP_3;
302 static const unsigned short int SENSPACK_SIZE_GROUP_4;
303 static const unsigned short int SENSPACK_SIZE_GROUP_5;
304 static const unsigned short int SENSPACK_SIZE_GROUP_6;
305 static const unsigned short int SENSPACK_SIZE_GROUP_ALL;
306 static const unsigned short int SENSPACK_SIZE_GROUP_101;
307 static const unsigned short int SENSPACK_SIZE_GROUP_106;
308 static const unsigned short int SENSPACK_SIZE_GROUP_107;
309 static const unsigned short int SENSPACK_SIZE_BUMPS_DROPS;
310 static const unsigned short int SENSPACK_SIZE_WALL;
311 static const unsigned short int SENSPACK_SIZE_CLIFF_LEFT;
312 static const unsigned short int SENSPACK_SIZE_CLIFF_FRONT_LEFT;
313 static const unsigned short int SENSPACK_SIZE_CLIFF_FRONT_RIGHT;
314 static const unsigned short int SENSPACK_SIZE_CLIFF_RIGHT;
315 static const unsigned short int SENSPACK_SIZE_VIRTUAL_WALL;
316 static const unsigned short int SENSPACK_SIZE_WHEEL_OVERCURRENTS;
317 static const unsigned short int SENSPACK_SIZE_DIRT_DETECT;
318 static const unsigned short int SENSPACK_SIZE_IR_CHAR_OMNI;
319 static const unsigned short int SENSPACK_SIZE_IR_CHAR_LEFT;
320 static const unsigned short int SENSPACK_SIZE_IR_CHAR_RIGHT;
321 static const unsigned short int SENSPACK_SIZE_BUTTONS;
322 static const unsigned short int SENSPACK_SIZE_DISTANCE;
323 static const unsigned short int SENSPACK_SIZE_ANGLE;
324 static const unsigned short int SENSPACK_SIZE_CHARGING_STATE;
325 static const unsigned short int SENSPACK_SIZE_VOLTAGE;
326 static const unsigned short int SENSPACK_SIZE_CURRENT;
327 static const unsigned short int SENSPACK_SIZE_TEMPERATURE;
328 static const unsigned short int SENSPACK_SIZE_BATTERY_CHARGE;
329 static const unsigned short int SENSPACK_SIZE_BATTERY_CAPACITY;
330 static const unsigned short int SENSPACK_SIZE_WALL_SIGNAL;
331 static const unsigned short int SENSPACK_SIZE_CLIFF_LEFT_SIGNAL;
332 static const unsigned short int SENSPACK_SIZE_CLIFF_FRONT_LEFT_SIGNAL;
333 static const unsigned short int SENSPACK_SIZE_CLIFF_FRONT_RIGHT_SIGNAL;
334 static const unsigned short int SENSPACK_SIZE_CLIFF_RIGHT_SIGNAL;
335 static const unsigned short int SENSPACK_SIZE_CHARGE_SOURCES;
336 static const unsigned short int SENSPACK_SIZE_OI_MODE;
337 static const unsigned short int SENSPACK_SIZE_SONG_NUMBER;
338 static const unsigned short int SENSPACK_SIZE_SONG_PLAYING;
339 static const unsigned short int SENSPACK_SIZE_STREAM_PACKETS;
340 static const unsigned short int SENSPACK_SIZE_REQ_VELOCITY;
341 static const unsigned short int SENSPACK_SIZE_REQ_RADIUS;
342 static const unsigned short int SENSPACK_SIZE_REQ_RIGHT_VELOCITY;
343 static const unsigned short int SENSPACK_SIZE_REQ_LEFT_VELOCITY;
344 static const unsigned short int SENSPACK_SIZE_RIGHT_ENCODER;
345 static const unsigned short int SENSPACK_SIZE_LEFT_ENCODER;
346 static const unsigned short int SENSPACK_SIZE_LIGHT_BUMPER;
347 static const unsigned short int SENSPACK_SIZE_LIGHT_BUMPER_LEFT;
348 static const unsigned short int SENSPACK_SIZE_LIGHT_BUMPER_FRONT_LEFT;
349 static const unsigned short int SENSPACK_SIZE_LIGHT_BUMPER_CENTER_LEFT;
350 static const unsigned short int SENSPACK_SIZE_LIGHT_BUMPER_CENTER_RIGHT;
351 static const unsigned short int SENSPACK_SIZE_LIGHT_BUMPER_FRONT_RIGHT;
352 static const unsigned short int SENSPACK_SIZE_LIGHT_BUMPER_RIGHT;
353 static const unsigned short int SENSPACK_SIZE_LEFT_MOTOR_CURRENT;
354 static const unsigned short int SENSPACK_SIZE_RIGHT_MOTOR_CURRENT;
355 static const unsigned short int SENSPACK_SIZE_BRUSH_MOTOR_CURRENT;
356 static const unsigned short int SENSPACK_SIZE_SIDE_BRUSH_MOTOR_CURRENT;
357 static const unsigned short int SENSPACK_SIZE_STASIS;
489 void drive_arc(
short int velo_mm_per_sec,
short int radius_mm);
490 void drive(
short int velocity_mm_per_sec,
short int radius_mm);
491 void drive_direct(
short int left_mm_per_sec,
short int right_mm_per_sec);
492 void drive_pwm(
short int left_wheel_pwm,
short int right_wheel_pwm);
496 bool main_backward =
false,
497 bool side_backward =
false);
502 unsigned char clean_color,
503 unsigned char clean_intensity);
518 return sensor_packet_received_;
527 void send(
OpCode opcode,
const void *params = NULL,
const size_t plength = 0);
528 void recv(
size_t index,
size_t num_bytes,
unsigned int timeout_ms = 0);
546 unsigned int conn_flags_;
550 unsigned char packet_reply_id_;
551 unsigned short packet_length_;
552 bool sensors_enabled_;
553 SensorPacketGroupAll sensor_packet_;
554 bool sensor_packet_received_;
562 unsigned char obuffer_[16];
563 unsigned char ibuffer_[82];
Roomba 500 series communication class.
void read_sensors()
Read sensor values.
void seek_dock()
Seek for the home base and dock.
static const unsigned char CHARGING_SOURCE_HOME_BASE
Docking station.
static const unsigned char WEEKDAY_LED_WED
Wednesday.
static const unsigned char SCHEDULING_LED_AM
AM LED bit.
static const unsigned char LED_SPOT
Spot LED bit.
static const unsigned char BUTTON_CLEAN
Cleaning button.
OpCode
Roomba 500 Command op codes.
@ OPCODE_DIGIT_LEDS_ASCII
Ascii control of digit LEDs.
@ OPCODE_SPOT
Start spot cleaning.
@ OPCODE_PAUSE_RESUME_STREAM
Pause or resume streaming data.
@ OPCODE_DRIVE
Drive robot.
@ OPCODE_LEDS
Control LEDs.
@ OPCODE_BAUD
Set baud rate.
@ OPCODE_SEEK_DOCK
Start seeking dock.
@ OPCODE_PWM_MOTORS
PWM control of motors.
@ OPCODE_FULL
Enter full mode.
@ OPCODE_DRIVE_WHEELS
Drive wheels.
@ OPCODE_SONG
Register song.
@ OPCODE_BUTTONS
Control buttons.
@ OPCODE_SAFE
Enter safe mode.
@ OPCODE_START
Initiate communication with Roomba.
@ OPCODE_POWER
Power down Roomba.
@ OPCODE_STREAM
Start streaming of data.
@ OPCODE_MAX
Start max cleaning mode.
@ OPCODE_SCHEDULE
Manipulate schedule.
@ OPCODE_DRIVE_PWM
Drive by PWM.
@ OPCODE_QUERY_LIST
Query multiple sensor packets.
@ OPCODE_QUERY
Query sensor info.
@ OPCODE_MOTORS
Set motor state.
@ OPCODE_CLEAN
Start normal cleaning mission.
@ OPCODE_CONTROL
Old alias for SAFE.
@ OPCODE_SCHEDULE_LEDS
Control schedule LEDs.
@ OPCODE_DIGIT_LEDS_RAW
Raw control of digit LEDs.
@ OPCODE_SET_DAY_TIME
Set day and time.
bool is_connected() const
Check if connection has been established.
static const unsigned char MOTOR_MAIN_BRUSHES
Main brush motor bit.
static const unsigned char DIGIT_LED_NORTH_WEST
Top left segment LED.
static const short int MAX_LIN_VEL_MM_S
Maximum linear velocity.
static const unsigned char BUMPER_CENTER_LEFT
Center left bumper.
ConnectionFlags
Connection flags.
@ FLAG_FIREFLY_FASTMODE
Enable fast mode, assume FireFly RooTooth.
static const unsigned char OVERCURRENT_WHEEL_LEFT
Left wheel bit.
static const unsigned char BUMP_RIGHT
Right bumper bit.
static const unsigned char OVERCURRENT_MAIN_BRUSH
Main brush bit.
static const unsigned char OVERCURRENT_SIDE_BRUSH
Side brush bit.
ConnectionType get_connection_type() const
Get connection type.
void drive_turn(TurnDirection direction)
Turn robot on the spot.
static const unsigned char BUTTON_CLOCK
Clock button.
static const unsigned char WEEKDAY_LED_MON
Monday.
const SensorPacketGroupAll get_sensor_packet() const
Get latest sensor packet.
void set_leds(bool debris, bool spot, bool dock, bool check_robot, unsigned char clean_color, unsigned char clean_intensity)
Set LED status of main LEDs.
ScheduleDay
Days for scheduler.
@ DAY_WEDNESDAY
Wednesday.
void close()
Close serial connection.
static const unsigned char WEEKDAY_LED_SUN
Sunday.
void clean()
Start normal cleaning operation.
void set_mode(Mode mode)
Set control mode.
void query_sensors()
Query sensor once.
static const unsigned char BUMPER_CENTER_RIGHT
Center right bumper.
bool has_sensor_packet() const
Check if sensor packet is availabe.
Mode get_mode() const
Get current mode.
static const unsigned char DIGIT_LED_SOUTH_WEST
Bottom left segment.
static const unsigned char BUTTON_MINUTE
Minute button.
static const unsigned char SCHEDULING_LED_PM
PM LED bit.
static const unsigned char WEEKDAY_LED_SAT
Saturday.
void set_motors(bool main=true, bool side=true, bool vacuum=true, bool main_backward=false, bool side_backward=false)
Set motor states (brushes and vacuum).
static const float BUMPER_X_OFFSET
X Offset of bumper.
ConnectionType
Connection type.
@ CONNTYPE_ROOTOOTH
Use BlueZ to find and connect to RooTooth.
@ CONNTYPE_SERIAL
Use serial connection (device file).
static const unsigned char MOTOR_SIDE_BRUSH
Side brush motor bit.
bool is_controlled() const
Check if robot is being controlled.
static const float DIAMETER
Robot diameter.
void drive_straight(short int velo_mm_per_sec)
Drive Roomba straight.
void clean_spot()
Start spot cleaning operation.
static unsigned short int get_packet_size(SensorPacketID packet)
Get size of packet.
Roomba500(ConnectionType conntype, const char *device, unsigned int flags=0)
Constructor.
StreamState
Sensor stream state.
@ STREAM_DISABLE
Stream disabled.
@ STREAM_ENABLE
Stream enabled.
void drive_arc(short int velo_mm_per_sec, short int radius_mm)
Drive Roomba on an arc.
static const unsigned char CHARGING_SOURCE_INTERNAL
Internal socket.
static const unsigned char SCHEDULING_LED_SCHEDULE
Schedule LED bit.
bool is_data_available()
Check if data is available.
Mode
Roomba 500 operation mode.
@ MODE_FULL
Control acquired, safety measures disabled.
@ MODE_PASSIVE
Passive mode, no control, only listening.
@ MODE_SAFE
Control acquired, safety measures in place.
void open()
Open serial port.
static const unsigned char LED_DEBRIS
Debris LED bit.
static const unsigned char BUTTON_DOCK
Dock button.
static const unsigned char BUMPER_FRONT_RIGHT
Front right bumper.
static const unsigned char WEEKDAY_LED_THU
Thursday.
static const unsigned char BUTTON_SCHEDULE
Schedule button.
static const unsigned short int STREAM_INTERVAL_MS
Time in ms between streamed sensor packets.
static const unsigned char DIGIT_LED_NORTH_EAST
Top right segment LED.
static const unsigned char SCHEDULING_LED_COLON
Colon LED bit.
static const unsigned char WHEEL_DROP_LEFT
Left wheel drop bit.
static const unsigned char DIGIT_LED_SOUTH
Bottom segment LED.
std::string get_device() const
Get device string.
ChargingState
Charging state.
@ CHARGING_RECONDITIONING
Reconditioning battery.
@ CHARGING_WAITING
Waiting.
@ CHARGING_FULL
Full charging cycle.
@ CHARGING_TRICKLE
Trickle charging.
@ CHARGING_ERROR
Fault condition.
@ CHARGING_NO
Not charging.
static const unsigned char DIGIT_LED_CENTER
Center segment LED.
static const unsigned char LED_DOCK
Dock LED bit.
static const unsigned char BUMPER_FRONT_LEFT
Front left bumper.
void power_down()
Powers down the Roomba.
static const unsigned char WEEKDAY_LED_TUE
Tuesday.
void drive(short int velocity_mm_per_sec, short int radius_mm)
Drive Roomba.
static const unsigned char DIGIT_LED_NORTH
Top segment LED.
static const unsigned char BUTTON_DAY
Day button.
static const unsigned short int MAX_ENCODER_COUNT
Maximum encoder count.
void play_fanfare()
Play a simple fanfare.
void stop()
Stop moption of the Roomba.
static const unsigned char SCHEDULING_LED_CLOCK
Clock LED bit.
void set_digit_leds(const char digits[4])
Set digit LEDs.
SensorPacketID
Roomba 500 sensor package IDs.
@ SENSPACK_BATTERY_CAPACITY
Battery capacity.
@ SENSPACK_CLIFF_FRONT_LEFT
Front left cliff sensor.
@ SENSPACK_WALL
Wall sensor.
@ SENSPACK_STASIS
Caster wheel stasis (forward.
@ SENSPACK_IR_CHAR_RIGHT
Right IR character.
@ SENSPACK_GROUP_107
Packet IDs 54-58.
@ SENSPACK_DIRT_DETECT
Dirt detection sensor.
@ SENSPACK_LIGHT_BUMPER_CENTER_LEFT
Center left bumper signal.
@ SENSPACK_CURRENT
Current.
@ SENSPACK_LIGHT_BUMPER_FRONT_RIGHT
Front right bumper signal.
@ SENSPACK_GROUP_5
Packet IDs 35-42.
@ SENSPACK_CLIFF_FRONT_RIGHT
Front right cliff sensor.
@ SENSPACK_OI_MODE
Open Interface mode.
@ SENSPACK_GROUP_1
Packet IDs 7-16.
@ SENSPACK_CLIFF_RIGHT_SIGNAL
Front right cliff signal value.
@ SENSPACK_RIGHT_MOTOR_CURRENT
Right motor current.
@ SENSPACK_TEMPERATURE
Temperature.
@ SENSPACK_VIRTUAL_WALL
Virtual wall detector.
@ SENSPACK_CLIFF_LEFT_SIGNAL
Left cliff signal value.
@ SENSPACK_SONG_NUMBER
Song number.
@ SENSPACK_CLIFF_RIGHT
Right cliff sensor.
@ SENSPACK_LIGHT_BUMPER_FRONT_LEFT
Front left bumper signal.
@ SENSPACK_LIGHT_BUMPER
Light bumper status.
@ SENSPACK_RIGHT_ENCODER
Right encoder value.
@ SENSPACK_SIDE_BRUSH_MOTOR_CURRENT
Side brush motor current.
@ SENSPACK_GROUP_3
Packet IDs 21-26.
@ SENSPACK_LEFT_MOTOR_CURRENT
Left motor current.
@ SENSPACK_LIGHT_BUMPER_RIGHT
Right bumper signal.
@ SENSPACK_GROUP_106
Packet IDs 46-51.
@ SENSPACK_GROUP_0
Packet IDs 7-26.
@ SENSPACK_LIGHT_BUMPER_CENTER_RIGHT
Center right bumper signal.
@ SENSPACK_GROUP_6
Packet IDs 7-42.
@ SENSPACK_GROUP_4
Packet IDs 27-34.
@ SENSPACK_SONG_PLAYING
Song playing indicator.
@ SENSPACK_STREAM_PACKETS
Number of stream packets.
@ SENSPACK_DISTANCE
Travelled distance.
@ SENSPACK_CHARGING_STATE
Charging state.
@ SENSPACK_VOLTAGE
Voltage.
@ SENSPACK_GROUP_101
Packet IDs 43-58.
@ SENSPACK_REQ_VELOCITY
Requested velocity.
@ SENSPACK_CLIFF_LEFT
Left cliff sensor.
@ SENSPACK_BRUSH_MOTOR_CURRENT
Brush motor current.
@ SENSPACK_BUTTONS
Button status.
@ SENSPACK_CLIFF_FRONT_LEFT_SIGNAL
Front left cliff signal value.
@ SENSPACK_GROUP_ALL
All packet IDs (7-58)
@ SENSPACK_ANGLE
Turned angle.
@ SENSPACK_CLIFF_FRONT_RIGHT_SIGNAL
Right cliff signal value.
@ SENSPACK_LEFT_ENCODER
Left encoder value.
@ SENSPACK_LIGHT_BUMPER_LEFT
Left bumper signal.
@ SENSPACK_IR_CHAR_OMNI
Omnidirectional IR receiver.
@ SENSPACK_REQ_RADIUS
Requested radius.
@ SENSPACK_IR_CHAR_LEFT
Left IR character.
@ SENSPACK_GROUP_2
Packet IDs 17-20.
@ SENSPACK_REQ_RIGHT_VELOCITY
Requested right velocity.
@ SENSPACK_BUMPS_DROPS
Bumper and wheel drops.
@ SENSPACK_REQ_LEFT_VELOCITY
Requested left velocity.
@ SENSPACK_BATTERY_CHARGE
Battery charge.
@ SENSPACK_WALL_SIGNAL
Wall signal value.
@ SENSPACK_WHEEL_OVERCURRENTS
Overcurrents.
@ SENSPACK_CHARGE_SOURCES
Available charge sources.
void disable_sensors()
Disable sensor data stream.
static const short int MAX_RADIUS_MM
Maximum drive radius.
static const unsigned char BUTTON_HOUR
Hour button.
void drive_pwm(short int left_wheel_pwm, short int right_wheel_pwm)
Directly control wheel velocities via PWM.
static const unsigned char MOTOR_SIDE_BRUSH_BACKWARD
Side backward bit.
static const unsigned char BUMP_LEFT
Left bumper bit.
static const unsigned char BUTTON_SPOT
Spot cleaning button.
static const unsigned char BUMPER_RIGHT
Right bumper.
static const unsigned char MOTOR_MAIN_BRUSHES_BACKWARD
Main backward bit.
static const unsigned char MOTOR_VACUUM
Vacuum motor bit.
static const unsigned char WEEKDAY_LED_FRI
Friday.
TurnDirection
Turning direction.
@ TURN_COUNTER_CLOCKWISE
Counter-Clockwise turning.
@ TURN_CLOCKWISE
Clockwise turning.
static const unsigned char CHARGER_INTERNAL
Internal charger bit.
static const float AXLE_LENGTH
Axle length.
static const unsigned char BUMPER_LEFT
Left bumper.
static const unsigned char WHEEL_DROP_RIGHT
Right wheel drop bit.
static const unsigned short int MODE_CHANGE_WAIT_MS
Time in ms to wait after mode changes.
static const unsigned char OVERCURRENT_WHEEL_RIGHT
Right wheel bit.
void drive_direct(short int left_mm_per_sec, short int right_mm_per_sec)
Directly control wheel velocities.
static const unsigned char CHECKSUM_SIZE
Checksum byte size.
static const unsigned char DIGIT_LED_SOUTH_EAST
Bottom right segment.
static const unsigned char LED_CHECK_ROBOT
Check robot LED bit.
static const unsigned char CHARGER_HOME_BASE
Home base charger bit.
void enable_sensors()
Enable sensor data stream.
static const short int MAX_PWM
Maximum PWM value for wheels.
InfraredCharacter
Infrared character values.
@ IR_REMOTE_MEDIUM
IR Remote Control: medium button.
@ IR_REMOTE_RIGHT
IR Remote Control: right button.
@ IR_DOCK_RED_BUOY_FORCE_FIELD
Roomba 500 dock: green buoy.
@ IR_REMOTE_FORWARD
IR Remote Control: forward button.
@ IR_DISC_DOCK_RED_GREEN_BUOY_FORCE_FIELD
Roomba Discovery dock: red.
@ IR_REMOTE_SPOT
IR Remote Control: spot button.
@ IR_DOCK_GREEN_BUOY_FORCE_FIELD
Roomba 500 dock: green buoy.
@ IR_DISC_DOCK_GREEN_BUOY_FORCE_FIELD
Roomba Discovery dock: green.
@ IR_VIRTUAL_WALL
IR Virtual Wall.
@ IR_REMOTE_MAX
IR Remote Control: max button.
@ IR_DOCK_FORCE_FIELD
Roomba 500 dock: red and green buoy.
@ IR_REMOTE_STOP
IR Remote Control: stop button.
@ IR_REMOTE_POWER
IR Remote Control: power button.
@ IR_REMOTE_LEFT
IR Remote Control: left button.
@ IR_REMOTE_SMALL
IR Remote Control: small button.
@ IR_REMOTE_LARGE_CLEAN
IR Remote Control: large/clean button.
@ IR_REMOTE_ARC_LEFT
IR Remote Control: left arc button.
@ IR_DISC_DOCK_GREEN_BUOY
Roomba Discovery dock: green buoy.
@ IR_REMOTE_STOP2
IR Remote Control: stop button.
@ IR_DISC_DOCK_RED_BUOY_FORCE_FIELD
Roomba Discovery dock: green.
@ IR_DISC_DOCK_RED_GREEN_BUOY
Roomba Discovery dock: red.
@ IR_SCHED_REMOTE_DOWNLOAD
IR scheduling remote: download button.
@ IR_DOCK_GREEN_BUOY
Roomba 500 dock: green buoy.
@ IR_SCHED_REMOTE_SEEK_DOCK
IR scheduling remote: seek dock button.
@ IR_DISC_DOCK_FORCE_FIELD
Roomba Discovery dock: red.
@ IR_DOCK_RESERVED
Roomba 500 dock: reserved.
@ IR_DOCK_RED_BUOY
Roomba 500 dock: red buoy.
@ IR_REMOTE_ARC_RIGHT
IR Remote Control: right arc button.
@ IR_DOCK_RED_GREEN_BUOY_FORCE_FIELD
Roomba 500 dock: red and.
@ IR_DISC_DOCK_RED_BUOY
Roomba Discovery dock: red buoy.
@ IR_DISC_DOCK_RESERVED
Roomba Discovery dock: reserved.
@ IR_DOCK_RED_GREEN_BUOY
Roomba 500 dock: red buoy and force.
Base class for exceptions in Fawkes.
Mutex mutual exclusion lock.
Struct for packet group with everything (SENSPACK_GROUP_ALL).
uint8_t cliff_front_right
Front right cliff sensor.
uint16_t encoder_counts_left
Encoder counts for left wheel.
uint8_t ir_opcode_right
Right IR receiver character.
uint8_t unused_2
Unused byte.
uint8_t mode
Open Interface mode.
uint16_t cliff_left_signal
Raw left cliff signal.
uint8_t cliff_right
Right cliff sensor.
uint16_t light_bump_center_right
Raw center right light bumper signal.
uint16_t light_bump_front_right
Raw front right light bumper signal.
uint8_t virtual_wall
Wall sensor.
uint16_t wall_signal
Raw wall signal.
uint8_t bumps_wheeldrops
Bumps and wheeldrops bits.
int16_t current
Current in mA.
uint16_t cliff_front_right_signal
Raw front right cliff signal.
int16_t velocity
Velocity in mm/sec.
int16_t velocity_left
Velocity of left wheel in mm/sec.
uint16_t encoder_counts_right
Encoder counts for right wheel.
uint8_t stream_num_packets
Number of streamed packets.
int16_t radius
Radius in mm.
uint8_t light_bumper
Light bumper bits.
uint8_t ir_opcode_omni
Omni IR receiver character.
uint8_t charging_state
Charging state.
int16_t angle
Turned angle in degree.
int16_t velocity_right
Velocity of right wheel in mm/sec.
uint8_t overcurrents
Overcurrents bits.
int8_t temperature
Temperature in deg C.
uint8_t song_number
Song number.
uint16_t voltage
Voltage in mV.
uint8_t cliff_left
Left cliff sensor.
uint8_t buttons
Buttons bits.
uint8_t wall
Wall sensor value.
uint16_t battery_charge
Battery charge in mAh.
int16_t left_motor_current
Raw left motor current signal.
uint8_t cliff_front_left
Front left cliff sensor.
int16_t side_brush_current
Raw side brush motor current signal.
uint16_t unused_3
Unused byte.
uint8_t unused_1
Unused byte.
uint16_t light_bump_front_left
Raw front left light bumper signal.
uint16_t light_bump_center_left
Raw center left light bumper signal.
uint16_t light_bump_left
Raw left light bumper signal.
uint8_t charger_available
Available chargers bits.
uint16_t cliff_right_signal
Raw right cliff signal.
uint8_t song_playing
Song playing byte.
int16_t main_brush_current
Raw main brush motor current signal.
uint16_t battery_capacity
Battery capacity in mAh.
int16_t right_motor_current
Raw right motor current signal.
uint16_t cliff_front_left_signal
Raw front left cliff signal.
int16_t distance
Traveled distance in mm.
uint8_t dirt_detect
Dirt detect sensor.
uint8_t ir_opcode_left
Left IR receiver character.
uint8_t stasis
Castor stasis.
uint16_t light_bump_right
Raw right light bumper signal.