This repository contains ROS message, service, and action specifications to access some Fawkes features from ROS directly.
The navgraph is a topological graph used for path planning as well as storing location-specific semantic information related to the ground map. The following message types are relevant.
- NavGraph message:
Overall navgraph specification-
- NavGraphEdge sub-message: Edge representation for navgraph.
- NavGraphNode sub-message: Node representation for navgraph.
- NavGraphProperty sub-message: Key-value pair to represent properties in nodes and edges.
- NavGraphGetPairwiseCosts service
Calculates the costs between all pairs of nodes in a graph. Note that this is
a costly operation. However, it can be used to provide a full cost
specification, for example, for planning problems.
- NavGraphPathCost sub-message: Denote costs for a path between two nodes.
- [NavGraphSearchPath service](srv/NavGraphSearchPath.srv]: Search for a path between two nodes on the navgraph. If a path can be found, returns the path as a sequence of nodes and the total cost.
- NavGraphGoto action: ROS action to move to a specific node in the graph.
The messages are processed by the navgraph-breakout plugin or the fawkes_navgraph node, which reads and monitors the navgraph YAML file to provide the API.
For examples how to use them confer the rcll_fawkes_sim or the rosplan_interface_behaviorengine packages.
As object positions are of universal reference, there is a generic Fawkes to ROS object transfer plugin ros-position-3d.
- Position3D message Position in 3D space given as a pose along with a name and the visibility history. The history is zero on initialization, positive for the number of consecutive positive sightings of an object, and negative for the number of consecutive sensor data frames where the object was not visible. The history will flip between any negative number and 1, and any positive number and -1 when the visibility toggles. The node may implement to tolerate a number of frames before toggling for stability.
The interface of the Lua-based Behavior Engine (project) is also provided to ROS to execute basic actions.
- SkillStatus message: Describes the current status of skill execution.
- ExecSkill action: ROS action to execute a given skill string.
Fawkes provides functionality to store, retrieve, and merge pointclouds to and from a MongoDB database. This functionality is provided to and used from ROS (paper and video).
- StorePointCloud service: Store a given point cloud to a given database and collection.
- RetrievePointCloud service: Retrieve a point cloud from a given database and collection at a given time. Result is provided through a topic where point clouds are stored (enables to trigger some external processing pipeline by simply invoking to restore a point cloud).
- MergePointClouds service: Merge point clouds from a number of given timestamps. The algorithm is described in the paper. The result is provided through a topic. Note that this requires that transform information has also been recorded, typically through the use of mongodb_log on ROS or mongodb-log on Fawkes.