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

A ROS2 node that connects to a robot to enable interaction through ROS2 topics and services.

Using the ROS2 node

The ROS2 node is a stand-alone application that connects to a robot using the CreOS Client library, and exposes all the library's interfaces as ROS2 interfaces on your ROS2 network. To use the ROS2 node, you should first install it as described in the Installation section. The node can be launched using the provided launch file, replacing the <robot-address> placeholder with the address of the robot:

ros2 launch creos_sdk_ros creos-ros-wrapper.launch.yaml host:=<robot-address>

You can also change the namespace of the node by setting the ns launch argument. By default, the ROS2 node will use the /robot/ namespace.

You can also run the node directly as follows:

ros2 run creos_sdk_ros creos-sdk-ros --ros-args -p host:=<robot-address>

Talking to the ROS2 node

Once you have the ROS2 node running, you can interact with the robot using the ROS2 topics and services it provides. You can do this using the ROS2 command line tools...

# publish a velocity command to the robot
ros2 topic pub /robot/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.1}, angular: {z: 0.1}}"
# request robot to enter low power mode
ros2 service call /robot/enter_low_power_mode creos_sdk_msgs/srv/EnterLowPowerMode
# subscribe to the battery status
ros2 topic echo /robot/battery

...or by writing your own ROS2 nodes in C++ or Python. To be able to use all topics and services, you should have the creos_sdk_msgs package installed. This package is included with the creos-sdk-ros package.

All the input topics, output topics, and services of the ROS2 node can be found below, including links to the definitions of the message types they use. The Input Topics are topics to which you can publish data. The Output Topics are topics that the node publishes data to. The Services are services that the node provides. They are split into Commands and Getters. Commands allow you to send commands to the robot, while Getters allow you to pull data from the robot. The response types of all services include a success field that indicates whether the service call was successful, and a message field that contains an error message if the service call was not successful.

Input Topics

Only show topics that are supported for:
TopicTypeQuality of Service settingDescriptionSupported platforms
ReliabilityDurability
cmd_vel geometry_msgs::msg::Twist Best effort Volatile Publish a velocity command to the robot.
cmd_state_ref creos_sdk_msgs::msg::StateReference Best effort Volatile Publish a state reference to the robot.

Output Topics

TopicTypeQuality of Service settingDescriptionSupported platforms
ReliabilityDurability
lidar/front/points sensor_msgs::msg::PointCloud2 Best effort Volatile Subscribe to the point cloud data from the front-facing LIDAR sensor.
odometry nav_msgs::msg::Odometry Best effort Volatile Subscribe to the odometry data.
pose geometry_msgs::msg::PoseWithCovarianceStamped Best effort Volatile Subscribe to the global pose data.
gnss sensor_msgs::msg::NavSatFix Best effort Volatile Subscribe to the GNSS data.
joy sensor_msgs::msg::Joy Best effort Volatile Subscribe to the remote controller state data.
joint_states sensor_msgs::msg::JointState Best effort Volatile Subscribe to the wheel state data.
magnetic_field/body sensor_msgs::msg::MagneticField Best effort Volatile Subscribe to the magnetic field data in the body frame.
barometer sensor_msgs::msg::FluidPressure Best effort Volatile Subscribe to the barometer data.
range/downwards_lidar sensor_msgs::msg::Range Best effort Volatile Subscribe to the range data from the downwards-facing LIDAR sensor.
imu/body sensor_msgs::msg::Imu Best effort Volatile Subscribe to the IMU data in the body frame.
system_info creos_sdk_msgs::msg::SystemInfo Reliable Transient local Subscribe to system info messages.
battery creos_sdk_msgs::msg::BatteryStatus Reliable Transient local Subscribe to battery status updates.
tf_static tf2_msgs::msg::TFMessage Reliable Transient local Subscribe to transformation frame messages for static transformations.
tf tf2_msgs::msg::TFMessage Reliable Volatile Subscribe to transformation frame messages for dynamic transformations.
current_control_source creos_sdk_msgs::msg::ControlSource Best effort Volatile Subscribe to the current control source of the robot.
state creos_sdk_msgs::msg::State Reliable Transient local Subscribe to state information of the robot.
user_events creos_sdk_msgs::msg::UserEvent Reliable Transient local Subscribe to user events generated by the robot.

Services

Commands

ServiceTypeDescriptionSupported platforms
enter_low_power_mode creos_sdk_msgs::srv::EnterLowPowerMode Enter low power mode.
exit_low_power_mode std_srvs::srv::Trigger Exit low power mode.
shutdown std_srvs::srv::Trigger Shutdown the robot.
reboot std_srvs::srv::Trigger Reboot the robot.
set_control_source creos_sdk_msgs::srv::SetControlSource Set the control source of the robot.
send_command creos_sdk_msgs::srv::SendCommand Send a command to the robot to trigger a one-time action.

Getters

ServiceTypeDescriptionSupported platforms
get_system_info creos_sdk_msgs::srv::GetSystemInfo Get the system info.
get_battery creos_sdk_msgs::srv::GetBatteryStatus Get the battery status.
get_control_source creos_sdk_msgs::srv::GetControlSource Get the current control source of the robot.
get_state creos_sdk_msgs::srv::GetState Get the state of the robot.