Package org.hypermedea.ros


package org.hypermedea.ros

ROS binding for Hypermedea. To register it to an instance of Hypermedea, one simply has to include it in the class path of the Hypermedea application.

The ROS binding can perform operations on URIs with the ros+ws scheme (ROS over WebSocket, as specified in the rosbridge v2.0 specification).

ROS URIs are standard ros+ws URIs, e.g. ros+ws://example.org/path/to/resource#action_id. In this example URI:

  • example.org is the URI of the rosbridge server, listening over WebSocket,
  • /path/to/resource is the name of a topic or an action server and
  • action_id is the ID of some action (if /path/to/resource refers to an action server).

Note that from the URI alone, it is not possible to distinguish between plain topics and action servers (managing several topics such as goal, status and cancel). However, if a URI has a fragment, it necessary refers to an action and not to a topic. The mapping to Hypermedea operations is then as follows:

Mapping between Hypermedea and ROS
Hypermedea operation ROS operation
GET Subscribe to a topic or, if the URI includes a fragment, to the action server's status topic (single synchronous notification)
WATCH Subscribe to a topic or, if the URI includes a fragment, to the action server's status topic.
PUT Publish on topic
POST Publish on action server's goal topic
PATCH Not supported
DELETE Publish on action's server's cancel topic

See the running example in the /example folder, in which a Jason agent controls a Turtlesim node. This example also illustrates some of the configuration points of the ROS binding, as documented in the ROS class.