Nodes
Updated May 2019 with progress following gen3 and mutant mark 1.
adjust_position
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
check_docked
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
cpu_checker
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
greeter
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
lost_and_found
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
message_switch
Dormant
Organizes speech messages chronologically and feeds them to the speech service at appropriate times
Subscriptions
- /things_to_say
location_narration
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
navigation_controller
Defunct
All functionality was moved to rover_controller
Publications
- /cmd_vel_mux/input/navi
Subscriptions
- /amcl_pose
package_handler
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
package_sender
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
pose_converter
Current
Provides scripts for automatically converting from different pose types
process_fid_tfs
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
recording_sender
Current
Records short audio clips featuring user instructions to a file and publishes its name
Publications
- /receive_package
Subscriptions
- /record_start
- /record_stop
rover_controller
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
scan_filter
Current
applies a filter to scan data to ignore the structural posts of the mutant
Publications
- /scan_filter
Subscriptions
- scan
state
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
talk
Current
Uses text to speech to turn strings into audio output
turtlebot_teleop
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
whereabouts
Dormant
Publishes the name of the nearest waypoint when it changes based on data from its subscription
Publications
- /nearest_waypoint
Subscriptions
- /amcl_pose
detect_pickup
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
voice_destination_pub
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
hand_gesture
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
go_to_person
Current
only slightly usable in demo spins, searching for recognized person, then stops.
Publications
- /destination
- /cmd_vel
Subscriptions
- /odom
- /face_detection
- /has_package