Updated May 2019 with progress following gen3 and mutant mark 1.
Dormant
Converts the Pose messages it receives from its subscription to PoseWithCovarianceStamped messages and passes them on via its publication
Publications
/initialpose
Subscriptions
/fid_pose
Defunct
Updates the robot's state to reflect whether it is currently being charged at its dock based on charging data from its subscription
Now defunct - mutant does not dock, because it is not based on the kobuki base.
Subscriptions
/mobile_base/sensors/core_throttle
Current
Publishes CPU usage data and prints it to the warning log if it is high or otherwise to the debug log based on data from process and system utilities
Publications
/laptop_cpu_usage
Dormant
Uses facial recognition to detect and recognize known faces in the camera feed based on provided data and greets them appropriately by name via a vocal service
Subscriptions
/camera/rgb/image_raw/compressed_throttle
Current
Uses pickup detector data to determine whether the robot is flying or not. Handles localization recovery upon returning to the ground.
Publications
/initialpose
/cmd_vel
/destination
Subscriptions
/airborne
/destination
Dormant
Organizes speech messages chronologically and feeds them to the speech service at appropriate times
Subscriptions
/things_to_say
Dormant
Publishes speech messages narrating the robot's behavior current and proximate location based on its state and on data from its subscription
Publications
/things_to_say
Subscriptions
/nearest_waypoint
Defunct
All functionality was moved to rover_controller
Publications
/cmd_vel_mux/input/navi
Subscriptions
/amcl_pose
Dormant
Detects the presence of a physical package via its publications and converses with a user to determine goals and to communicate successes and errors while updating its goals to respond to expected and unexpected changes.
Currently not in use due to the lack of a sensor to detect packages on gen3's mutant.
Publications
/release_package
/record_start
/record_stop
/physical_package
/destination
Subscriptions
/release_package
/receive_package
/mobile_base/events/button
/mobile_base/events/digital_input
/destination
Dormant
Publishes filename of appropriate prerecorded message for the robot to play based on data from its subscription
Dormant for same reason as package_handler
Publications
/receive_package
Subscriptions
/physical_package
Current
Provides scripts for automatically converting from different pose types
Current
Uses fiducial data from its subscription to to determine and publish the robot's position relative to the map
Publications
initialpose
Subscriptions
fiducial_transforms
Current
Records short audio clips featuring user instructions to a file and publishes its name
Publications
/receive_package
Subscriptions
/record_start
/record_stop
Current
Controls the robot and its state with respect to a wide range of input sources and publishes a wide range of data for other nodes to use
Publications
temp_pose
/teleop_keypress
/destination
/web/camera
/web/state
/web/map
/cmd_vel
Subscriptions
/raspicam_node/image/compressed
/web/teleop
/web/destination
/destination
Current
applies a filter to scan data to ignore the structural posts of the mutant
Publications
/scan_filter
Subscriptions
scan
Current
Handles and validates requested state changes for legality and publishes relevant information accordingly
Publications
/move_base_simple/goal
/initialpose
/goal_pose_for_fids
/state
Current
Uses text to speech to turn strings into audio output
Current
Cancels existing robot goals and allows for manual control of the robot via teleoperation
Publications
/cmd_vel_mux/input/teleop
Subscriptions
/web/teleop
initialpose
Dormant
Publishes the name of the nearest waypoint when it changes based on data from its subscription
Publications
/nearest_waypoint
Subscriptions
/amcl_pose
Current
Uses IMU accelerometer data to decide whether the robot has been lifted, and when it has been placed on the ground.
Publications
/airborne
Subscriptions
/imu
Current
takes information from the alexa webhook, and if it involves going to a destination, publishes the goal pose of the specified destination.
Publications
/destination
Subscriptions
/voice_intents
Current
only slightly usable in demo pauses navigation for ten seconds if it receives signal that a hand is in view of the camera.
Publications
/destination
Subscriptions
/destination
/hand_command
Current
only slightly usable in demo spins, searching for recognized person, then stops.
Publications
/destination
/cmd_vel
Subscriptions
/odom
/face_detection
/has_package