API Overview
While the Web User Interface provides a great way to get started quickly with OutdoorNav Software, some users will want programmatic control or may wish to develop their own graphical user interfaces -- for those users, the Application Programming Interface (API) provides the flexibility to do so. This is illustrated in the figure below.
The API is, at present, a ROS 1 Noetic API, but will soon be extended to a ROS 2 API. The API is divided into two sections, whose details are provided below:
- Platform API: The set of ROS
Topics are used to comminucate with the
hardware platform (eg. sensor data, wireless, battery state, command
velocity). This API can be used by autonomy software packages to
interface with the hardware platform.
- Topics Published by UGV: The set of topics that are published by the hardware platform.
- Topics Subscribed to by UGV: The set of topics that are subscribed to by the hardware platform.
- Autonomy API: The set of ROS
Topics that are used for monitoring and
controlling the the hardware platform through the OutdoorNav
autonomy software.
- Topics Published by Autonomy: The set of ROS Topics published by OutdoorNav Software, to be subscribed to by the UGV.
- Topics Subscribed to by Autonomy: The set of ROS Topics subscribed to by OutdoorNav Software, typically published by the client for directing OutdoorNav operation.
- Services Exported by Autonomy: The set of ROS Services provided by OutdoorNav Software, for use by the client to modify/control the behaviour of the Autonomy.
- Actions Exported by Autonomy: The set of ROS Actions provided by OutdoorNav Software, for use by the client to modify/control the behaviour of the Autonomy.
- Mission Manager API: The set of ROS Services that are used for creating, deleting, and modifying OutdoorNav Missions
- Mission Scheduler API: The set of ROS Services that are used for creating, deleting, and modifying OutdoorNav Mission Schedules
- Definitions: The set of custom ROS Message, ROS Service, and ROS Action definitions.
- API Examples: Example code to come.