kobuki_msgs

Summary

kobuki_msgs
Version:

0.6.1

Description:

Kobuki message and service types: custom messages and services for Kobuki packages.

Maintainers:
  • Daniel Stonier <stonier AT yujinrobot DOT com>
Licenses:
  • BSD
Urls:
Authors:
  • Daniel Stonier <stonier AT yujinrobot DOT com>
  • Younghun Ju <yhju AT yujinrobot DOT com>
BuildDepends:
BuildtoolDepends:
 
BuildExportDepends:
 
ExecDepends:

Types

Message types

kobuki_msgs/RobotStateEvent
Constant:
  • ONLINE (uint8):1
  • OFFLINE (uint8):0
Field:
  • state (uint8) –

Provides a robot state event This message is generated whenever the robot gets online/offline

# Provides a robot state event
# This message is generated whenever the robot gets online/offline

uint8 ONLINE  = 1
uint8 OFFLINE = 0

uint8 state
kobuki_msgs/ScanAngle
Field:
Header header
float64 scan_angle
kobuki_msgs/Led
Constant:
  • BLACK (uint8):0
  • GREEN (uint8):1
  • ORANGE (uint8):2
  • RED (uint8):3
Field:
  • value (uint8) –

Sends a command for controlling the a LED.

Typically the first LED is always reserved to denote the state - the remainder will be controllable.

# Sends a command for controlling the a LED.
# 
# Typically the first LED is always reserved to denote
# the state - the remainder will be controllable. 

uint8 BLACK   = 0
uint8 GREEN   = 1
uint8 ORANGE  = 2
uint8 RED     = 3

# For kobuki there are only two controllable LED's.
uint8 value
kobuki_msgs/KeyboardInput
Constant:
  • KeyCode_Right (uint8):67
  • KeyCode_Left (uint8):68
  • KeyCode_Up (uint8):65
  • KeyCode_Down (uint8):66
  • KeyCode_Space (uint8):32
  • KeyCode_Enable (uint8):101
  • KeyCode_Disable (uint8):100
Field:
  • pressedKey (uint8) –

KEYBOARD INPUT

Keycodes to be transferred for remote teleops.

# KEYBOARD INPUT
# 
# Keycodes to be transferred for remote teleops.

uint8  KeyCode_Right    = 67     # 0x43
uint8  KeyCode_Left     = 68     # 0x44
uint8  KeyCode_Up       = 65     # 0x41
uint8  KeyCode_Down     = 66     # 0x42
uint8  KeyCode_Space    = 32     # 0x20
uint8  KeyCode_Enable   = 101    # 0x65, 'e'
uint8  KeyCode_Disable  = 100    # 0x64, 'd'

uint8 pressedKey
kobuki_msgs/MotorPower
Constant:
  • OFF (uint8):0
  • ON (uint8):1
Field:
  • state (uint8) –

Turn on/off Kobuki’s motors

State

# Turn on/off Kobuki's motors

# State
uint8 OFF = 0
uint8 ON  = 1

uint8 state
kobuki_msgs/BumperEvent
Constant:
  • LEFT (uint8):0
  • CENTER (uint8):1
  • RIGHT (uint8):2
  • RELEASED (uint8):0
  • PRESSED (uint8):1
Field:
  • bumper (uint8) –
  • state (uint8) –

Provides a bumper event. This message is generated whenever a particular bumper is pressed or released. Note that, despite bumper field on SensorState messages, state field is not a bitmask, but the new state of a single sensor.

bumper

# Provides a bumper event.
# This message is generated whenever a particular bumper is pressed or released.
# Note that, despite bumper field on SensorState messages, state field is not a
# bitmask, but the new state of a single sensor.

# bumper
uint8 LEFT   = 0
uint8 CENTER = 1
uint8 RIGHT  = 2

# state
uint8 RELEASED = 0
uint8 PRESSED  = 1

uint8 bumper
uint8 state
kobuki_msgs/WheelDropEvent
Constant:
  • LEFT (uint8):0
  • RIGHT (uint8):1
  • RAISED (uint8):0
  • DROPPED (uint8):1
Field:
  • wheel (uint8) –
  • state (uint8) –

Provides a wheel drop event. This message is generated whenever one of the wheels is dropped (robot fell or was raised) or raised (normal condition). Note that, despite wheel_drop field on SensorState messages, state field is not a bitmask, but the new state of a single sensor.

wheel

# Provides a wheel drop event.
# This message is generated whenever one of the wheels is dropped (robot fell
# or was raised) or raised (normal condition).
# Note that, despite wheel_drop field on SensorState messages, state field is
# not a bitmask, but the new state of a single sensor.

# wheel
uint8 LEFT  = 0
uint8 RIGHT = 1

# state
uint8 RAISED  = 0
uint8 DROPPED = 1

uint8 wheel
uint8 state
kobuki_msgs/VersionInfo
Field:
  • hardware (string) –
  • firmware (string) –
  • software (string) –
  • udid[] (uint32) –
  • features (uint64) –
Constant:
  • SMOOTH_MOVE_START (uint64):0000000000000001
  • GYROSCOPE_3D_DATA (uint64):0000000000000002

Contains unique device id, version info and available features for the kobuki platform. Useful for compatibility checking and introspection

# Contains unique device id, version info and available features for the kobuki platform.
# Useful for compatibility checking and introspection

string hardware   # <major>.<minor>.<patch>
string firmware   # <major>.<minor>.<patch>
string software   # Still to decide how it will look
uint32[] udid

# Bitmask that specifies the available features in the firmware and/or driver
uint64 features

# The following represent the bit fields corresponding to bits in the features value

# Provided firmware kobuki_firmware_1.1.1.hex
uint64 SMOOTH_MOVE_START    = 0000000000000001
uint64 GYROSCOPE_3D_DATA    = 0000000000000002
kobuki_msgs/DigitalOutput
Field:
  • values[4] (bool) –
  • mask[4] (bool) –

Digital output - only four pins.

Array of values indices represent pins 0-3 respectively.

# Digital output - only four pins. 

# Array of values indices represent pins 0-3 respectively.
bool[4] values

# Set indices to true to set a pin, false to ignore.
bool[4] mask
kobuki_msgs/ControllerInfo
Constant:
  • DEFAULT (uint8):0
  • USER_CONFIGURED (uint8):1
Field:
  • type (uint8) –
  • p_gain (float64) –
  • i_gain (float64) –
  • d_gain (float64) –

Controller info message, contains PID parameters

# Controller info message, contains PID parameters

uint8 DEFAULT   =  0
uint8 USER_CONFIGURED =  1

uint8 type
float64 p_gain #should be positive
float64 i_gain #should be positive
float64 d_gain #should be positive
kobuki_msgs/PowerSystemEvent
Constant:
  • UNPLUGGED (uint8):0
  • PLUGGED_TO_ADAPTER (uint8):1
  • PLUGGED_TO_DOCKBASE (uint8):2
  • CHARGE_COMPLETED (uint8):3
  • BATTERY_LOW (uint8):4
  • BATTERY_CRITICAL (uint8):5
Field:
  • event (uint8) –

Power system events This message is generated by important changes in the power system:

  • plug/unplug to the docking base or adapter
  • transitions to low/critical battery levels
  • battery charge completed
# Power system events
# This message is generated by important changes in the power system:
#  - plug/unplug to the docking base or adapter
#  - transitions to low/critical battery levels
#  - battery charge completed

uint8 UNPLUGGED           = 0
uint8 PLUGGED_TO_ADAPTER  = 1
uint8 PLUGGED_TO_DOCKBASE = 2
uint8 CHARGE_COMPLETED    = 3
uint8 BATTERY_LOW         = 4
uint8 BATTERY_CRITICAL    = 5

uint8 event
kobuki_msgs/Sound
Constant:
  • ON (uint8):0
  • OFF (uint8):1
  • RECHARGE (uint8):2
  • BUTTON (uint8):3
  • ERROR (uint8):4
  • CLEANINGSTART (uint8):5
  • CLEANINGEND (uint8):6
Field:
  • value (uint8) –

Sends a command for playing sounds. The available sound sequences: 0 - turn on 1 - turn off 2 - recharge start 3 - press button, 4 - error sound 5 - start cleaning 6 - cleaning end

# Sends a command for playing sounds.
# The available sound sequences:
# 0 - turn on
# 1 - turn off
# 2 - recharge start
# 3 - press button,
# 4 - error sound
# 5 - start cleaning
# 6 - cleaning end

uint8 ON            = 0
uint8 OFF           = 1
uint8 RECHARGE      = 2
uint8 BUTTON        = 3
uint8 ERROR         = 4
uint8 CLEANINGSTART = 5
uint8 CLEANINGEND   = 6

uint8 value
kobuki_msgs/ExternalPower
Constant:
  • PWR_3_3V1A (uint8):0
  • PWR_5V1A (uint8):1
  • PWR_12V5A (uint8):2
  • PWR_12V1_5A (uint8):3
  • OFF (uint8):0
  • ON (uint8):1
Field:
  • source (uint8) –
  • state (uint8) –

Turn on/off Kobuki’s external power sources

Power sources

# Turn on/off Kobuki's external power sources

# Power sources
uint8 PWR_3_3V1A  = 0 # DB25 connector only
uint8 PWR_5V1A    = 1 # DB25 connector and Micro Molex connector
uint8 PWR_12V5A   = 2 # Micro Molex connector only
uint8 PWR_12V1_5A = 3 # Micro Molex connector only

# State
uint8 OFF = 0
uint8 ON  = 1

uint8 source

uint8 state
kobuki_msgs/CliffEvent
Constant:
  • LEFT (uint8):0
  • CENTER (uint8):1
  • RIGHT (uint8):2
  • FLOOR (uint8):0
  • CLIFF (uint8):1
Field:
  • sensor (uint8) –
  • state (uint8) –
  • bottom (uint16) –

Provides a cliff sensor event. This message is generated whenever a particular cliff sensor signals that the robot approaches or moves away from a cliff. Note that, despite cliff field on SensorState messages, state field is not a bitmask, but the new state of a single sensor.

cliff sensor

# Provides a cliff sensor event.
# This message is generated whenever a particular cliff sensor signals that the
# robot approaches or moves away from a cliff.
# Note that, despite cliff field on SensorState messages, state field is not a
# bitmask, but the new state of a single sensor.

# cliff sensor
uint8 LEFT   = 0
uint8 CENTER = 1
uint8 RIGHT  = 2

# cliff sensor state
uint8 FLOOR = 0
uint8 CLIFF = 1

uint8 sensor
uint8 state

# distance to floor when cliff was detected
uint16 bottom
kobuki_msgs/DockInfraRed
Constant:
  • NEAR_LEFT (uint8):1
  • NEAR_CENTER (uint8):2
  • NEAR_RIGHT (uint8):4
  • FAR_LEFT (uint8):16
  • FAR_CENTER (uint8):8
  • FAR_RIGHT (uint8):32
Field:

Docking base ir sensors messages. Generated on the proximity of the docking base to assist the automatic docking.

# Docking base ir sensors messages.
# Generated on the proximity of the docking base to assist the automatic docking.

uint8 NEAR_LEFT   =  1
uint8 NEAR_CENTER =  2
uint8 NEAR_RIGHT  =  4
uint8 FAR_LEFT    = 16
uint8 FAR_CENTER  =  8
uint8 FAR_RIGHT   = 32

Header header
uint8[] data
kobuki_msgs/ButtonEvent
Constant:
  • Button0 (uint8):0
  • Button1 (uint8):1
  • Button2 (uint8):2
  • RELEASED (uint8):0
  • PRESSED (uint8):1
Field:
  • button (uint8) –
  • state (uint8) –

Provides a button event. This message is generated whenever a particular button is pressed or released. Note that, despite buttons field on SensorState messages, state field is not a bitmask, but the new state of a single button.

# Provides a button event.
# This message is generated whenever a particular button is pressed or released.
# Note that, despite buttons field on SensorState messages, state field is not a
# bitmask, but the new state of a single button.

uint8 Button0 = 0
uint8 Button1 = 1
uint8 Button2 = 2

uint8 RELEASED = 0
uint8 PRESSED  = 1

uint8 button
uint8 state
kobuki_msgs/SensorState
Constant:
  • BUMPER_RIGHT (uint8):1
  • BUMPER_CENTRE (uint8):2
  • BUMPER_LEFT (uint8):4
  • WHEEL_DROP_RIGHT (uint8):1
  • WHEEL_DROP_LEFT (uint8):2
  • CLIFF_RIGHT (uint8):1
  • CLIFF_CENTRE (uint8):2
  • CLIFF_LEFT (uint8):4
  • BUTTON0 (uint8):1
  • BUTTON1 (uint8):2
  • BUTTON2 (uint8):4
  • DISCHARGING (uint8):0
  • DOCKING_CHARGED (uint8):2
  • DOCKING_CHARGING (uint8):6
  • ADAPTER_CHARGED (uint8):18
  • ADAPTER_CHARGING (uint8):22
  • OVER_CURRENT_LEFT_WHEEL (uint8):1
  • OVER_CURRENT_RIGHT_WHEEL (uint8):2
  • OVER_CURRENT_BOTH_WHEELS (uint8):3
  • DIGITAL_INPUT0 (uint8):1
  • DIGITAL_INPUT1 (uint8):2
  • DIGITAL_INPUT2 (uint8):4
  • DIGITAL_INPUT3 (uint8):8
  • DB25_TEST_BOARD_CONNECTED (uint8):64
Field:
  • header (std_msgs/Header) –
  • time_stamp (uint16) –
  • bumper (uint8) –
  • wheel_drop (uint8) –
  • cliff (uint8) –
  • left_encoder (uint16) –
  • right_encoder (uint16) –
  • left_pwm (int8) –
  • right_pwm (int8) –
  • buttons (uint8) –
  • charger (uint8) –
  • battery (uint8) –
  • bottom[] (uint16) –
  • current[] (uint8) –
  • over_current (uint8) –
  • digital_input (uint16) –
  • analog_input[]
##### CONSTANTS ######
Bumper states (states are combined, when multiple bumpers are pressed)
# Kobuki Sensor Data Messages
#
# For more direct simple interactions (buttons, leds, gyro, motor velocity
# etc) use the other topics. This provides detailed information about the
# entire state package that is transmitted at 50Hz from the robot.
#


###### CONSTANTS ######
# Bumper states (states are combined, when multiple bumpers are pressed)
uint8 BUMPER_RIGHT  = 1
uint8 BUMPER_CENTRE = 2
uint8 BUMPER_LEFT   = 4

# Wheel drop sensor states (states are combined, when both wheel drop sensors are triggered)
uint8 WHEEL_DROP_RIGHT = 1
uint8 WHEEL_DROP_LEFT  = 2

# Cliff sensor states (states are combined, when multiple cliff sensors are triggered)
uint8 CLIFF_RIGHT  = 1
uint8 CLIFF_CENTRE = 2
uint8 CLIFF_LEFT   = 4

# Button states (only one button can be triggered at a time)
uint8 BUTTON0 = 1
uint8 BUTTON1 = 2
uint8 BUTTON2 = 4

# Charger state is a combination of charging device (adapter, docking station)
# and state (charging, charged, discharging):
uint8 DISCHARGING      = 0
uint8 DOCKING_CHARGED  = 2
uint8 DOCKING_CHARGING = 6
uint8 ADAPTER_CHARGED  = 18
uint8 ADAPTER_CHARGING = 22

# Over current states
uint8 OVER_CURRENT_LEFT_WHEEL  = 1
uint8 OVER_CURRENT_RIGHT_WHEEL = 2
uint8 OVER_CURRENT_BOTH_WHEELS = 3

# Digital input states (states are combined, when multiple inputs are set at the same time)
# When connecting Yujin's test board, it acts as pull-up what inverts the behaviour:
# No input: 79, all inputs set (e.g. buttons pressed): 64
uint8 DIGITAL_INPUT0 = 1
uint8 DIGITAL_INPUT1 = 2
uint8 DIGITAL_INPUT2 = 4
uint8 DIGITAL_INPUT3 = 8
uint8 DB25_TEST_BOARD_CONNECTED = 64

###### MESSAGE ######

Header header

###################
# Core Packet
###################
uint16 time_stamp      # milliseconds starting when turning on Kobuki (max. 65536, then starts from 0 again)
uint8  bumper          # see bumper states
uint8  wheel_drop      # see wheel drop sensor states
uint8  cliff           # see cliff sensor states
uint16 left_encoder    # accumulated ticks left wheel starting with turning on Kobuki (max. 65535)
uint16 right_encoder   # accumulated ticks right wheel starting with turning on Kobuki (max. 65535)
int8   left_pwm        # % of applied maximum voltage left wheel: -100 (max. voltage backward) to +100 (max. voltage forward)
int8   right_pwm       # % of applied maximum voltage right wheel: -100 (max. voltage backward) to +100 (max. voltage forward)
uint8  buttons         # see button states
uint8  charger         # see charger states
uint8  battery         # battery voltage in 0.1V (ex. 16.1V -> 161)

###################
# Cliff Packet
###################
uint16[] bottom        # ADC output of the right, centre, left cliff PSD sensor (0 - 4095, distance measure is non-linear)

###################
# Current Packet
###################
uint8[] current        # motor current for the left and right motor in 10mA (ex. 12 -> 120mA)
uint8   over_current   # see over current states

###################
# Input Packet
###################
uint16   digital_input # see digital input states; will show garbage when nothing is connected
uint16[] analog_input  # ADC values for the 4 analog inputs; 0 - 4095: 0.0 - 3.3V; will show garbage when nothing is connected
kobuki_msgs/DigitalInputEvent
Field:
  • values[4] (bool) –

This message is generated whenever the value of one or more digital input pins changes.

Array of values; indices represent pins 0-3 respectively.

# This message is generated whenever the value of one or more digital input pins changes.

# Array of values; indices represent pins 0-3 respectively.
bool[4] values

Action types

kobuki_msgs/AutoDocking
Field (Result):
  • text (string) –
Field (Feedback):
 
  • state (string) –
  • text (string) –

goal

#goal
---
#result
string text
---
#feedback
string state
string text