CreOS SDK
The CreOS SDK allows you to interact with Avular robots
 
Loading...
Searching...
No Matches
CreOS SDK documentation

The CreOS SDK is a comprehensive software development kit designed for the CreOS robot control system. It provides developers with the tools and libraries needed to create robust applications for Avular robots.

The SDK includes a C++ Client library that allows developers to interface directly with Avular robots, enabling the creation of custom applications and control algorithms in C++. This library provides a rich set of functions and data structures to facilitate robot control and monitoring.

Additionally, the SDK offers a ROS2 node that leverages the C++ client library to integrate Avular robots into a ROS2 network. This node allows for seamless communication and control of Avular robots within the ROS2 ecosystem, making it easier to develop complex robotic systems and applications.

To help you get started, the SDK includes a variety of Examples that demonstrate how to use the C++ client library and the ROS2 node. These examples cover a range of use cases and provide a solid foundation for developing your own applications.

Installation

To install the CreOS SDK, install the creos-client package as follows, replacing <version> with the version number of the CreOS SDK you want to install, and <architecture> with the architecture of your system (e.g., amd64, arm64):

sudo apt install ./creos-client_<version>_<architecture>.deb ./creos-utils_<version>_<architecture>.deb

If you want to use the ROS2 node, you have to install the creos-sdk-ros package in addition to the creos-client:

sudo apt install ./creos-client_<version>_<architecture>.deb ./creos-utils_<version>_<architecture>.deb ./creos-sdk-ros_<version>_<architecture>.deb

The creos-sdk-ros package contains both the ROS2 node, as well as a set of custom message definitions used by the node.

Compatibility

At the moment, both the C++ client library and the ROS2 node are only available for Ubuntu 22.04 (Jammy Jellyfish) and ROS2 Humble Hawksbill.

General Concepts

To interact with a robot using the CreOS SDK, you need to create a client. A client is responsible for managing the connection to a single robot, allowing you to send commands and receive data. While a client can only connect to one robot at a time, you can create multiple clients if you need to interact with multiple robots simultaneously. For your application to interact with a robot, a client exposes Data Sources, Data Sinks, and Callables.

Not all robots support the same set of data sources, data sinks, and callables. The client automatically detects which are available, and disables the ones that are not supported by the robot.

Data Sources

Data Sources provide data that is available on the robot, like sensor readings or robot state information. You can subscribe to a data source to receive updates whenever a new value is available. Some data sources also allow you to get the current value on demand.

Data Sinks

Data Sinks allow you to send data to the robot, like control signals or external sensor data. You can publish data to a data sink at any time. Some data sinks also provide a Data Source to get the latest value that was published.

Callables

Callables are functions that can be called on the robot, like starting a mission or changing the robot's mode. Callables can accept arguments and return values.