Revised: November 2020
The following is a small subset of all available interfaces on Waypoint Robotics robots, sufficient for basic programmatic functionality such as retrieving the coordinates of existing waypoints, issuing navigation goals and checking their outcome and setting the state of Digital IO. Such basic functionality assumes that a map has already been created using the the robot's web graphical user interface, Dispatcher.
Some of the interfaces (topics, services or actions) listed below can only be used via ROSBridge and not directly through ROS, because they use custom message or service definitions. Such interfaces are marked with a * symbol. While examples on how to establish communication to ROSBridge using a basic websocket is provided in this repository, use of a established ROSbridge clients such as roslibjs, roslibpy or jrosbridge is encouraged.
ROS Interface Type: Topic
Type: std_msgs/String
The current state of the robot/Dispatcher (Mapping, Navigation, etc). "nav_running" indicates the robot is fully ready to accept goals, "nav_uninitialized" means that the navigation has been started but the robot has not been localized (i.e., the initial position has not been provided).
ROS Interface Type: Service
Type: Empty service
Start and Stop autonomous navigation mode.
ROS Interface Type: Topic
Type: PoseWithCovarianceStamped
Publish to this topic is used to set the robot’s initial position after starting navigation.
ROS Interface Type: Service
Type: Custom*
Returns the coordinates of the specified waypoint and whether the service call was successful.
Example Request:
waypointName: 'Loading Dock'
Example Response:
success: True
pose:
position:
x: -6.97752303775
y: 5.95625468367
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0
ROS Interface Type: Topic/Action
Interface Type: MoveBase Action
Issuing of navigation goals and obtaining the result upon completion
ROS Interface Type: Topic/Action
Interface Type: GoalID/MoveBase Action
Publish to this topic or use the ROS Action API to cancel an active navigation goal.
ROS Interface Type: Topic
Interface Type: Pose
The coordinates of the robot's current location on the map (Navigation must be active).
ROS Interface Type: Service
Type: Custom*
Sets existing digital IO High or Low.
Example Request:
"io_name: 'lights' value: false"
ROS Interface Type: Topic
Type: std_msgs/Float32
The Battery State of Charge: (Read Only)
ROS Interface Type: Topic
Type: std_msgs/Bool
Whether the Battery is charging
ROS Interface Type: Topic
Type: std_msgs/Bool
Whether E-Stop is active (Read Only)
ROS Interface Type: Topic
Type: std_msgs/Bool
Whether DTZ is active (Read Only)
ROS Interface Type: Service
Type: waypoint_ui/SingleWaypointOp* (this is a custom service type so it can only be used via ROSBridge)
Starts a mission previously created in Dispatcher
Example Request:
"request: 'run delivery route'"