Marty the Robot
This is the package to enable Marty the Robot to utilise ROS, both through roscpp and rospy.
There are two core classes that enable this:
- MartyCore, which handles servo initialisation and instantiates the Marty ROS node, as well as providing access to core methods such as setting servo positions.
- CmdServer, which allows the Marty to execute commands sent to it remotely, via a socket open on a predefined port.
Topics
Core Topics
- /diagnostics - provides diagnostics information
- /marty/accel - provides X, Y, Z accelerometer data
- /marty/battery - returns the current battery voltage
- /marty/chatter - returns miscellaneous information from the Rick
- /marty/enable_motors - used to determine when to enable/disable ALL servos, Boolean (true = servos enabled, false = servos disabled)
- /marty/enable_motors_array - used to selectively enable/disable servos, Bool array (size 9)
- /marty/falling - returns current stability of the robot (true = robot is falling/has fallen, false = stable)
- /marty/gpios - returns the current state of the GPIOs within the robot
- /marty/joint_states - returns the current state of the robot's joints
- /marty/keyframe_file - used to specify a filename containing some servo keyframes
- /marty/keyframes - used to set desired servo actuation frames
- /marty/motor_currents - returns the current servo motor currents
- /marty/servo - used to specify a servo ID and a corresponding command for it to move
- /marty/servo_array - used to specify a map of servo IDs with corresponding commands
- /marty/servo_positions - returns an array of current servo positions
- /marty/servos_enabled - returns a Bool array of enabled servos
- /marty/socket_cmd - used to communicate low-level socket commands to the Rick via rosserial
- /marty/sound - used to output a desired speaker tonal range and duration
- /marty/sound_file - used to set the name of a sound file to play
Other Topics
If you have a camera plugged in:
- /marty/camera/camera_info - provides meta information for the camera
- /marty/camera/image - provides raw camera image
- /marty/camera/image/compressed - provides a compressed image
- /marty/camera/image/compressed/parameter_descriptions - provides meta information for the compression parameters
- /marty/camera/image/compressed/parameter_updates - as above
- /marty/camera/image/compressedDepth - provides compressed depth images (NOT IMPLEMENTED)
- /marty/camera/image/compressedDepth/parameter_descriptions - provides meta information for the above
- /marty/camera/image/compressedDepth/parameter_updates - provides meta information for the depth image compression parameters (NOT IMPLEMENTED)
- /marty/camera/image/theora - provides a camera image with the Theora codec
- /marty/camera/image/theora/parameter_descriptions - provides meta information for the Theora encoding parameters
- /marty/camera/image/theora/parameter_updates - as above
Dependencies for other packages (marty_football and marty_joy)
- /marty/ball_pos
- /marty/joy