Skip to content

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

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