A ROS2 node that connects to a robot to enable interaction through ROS2 topics and services.
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:
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:
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...
...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.
Topic | Type | Quality of Service setting | Description | Supported platforms | |
---|---|---|---|---|---|
Reliability | Durability | ||||
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. |
Topic | Type | Quality of Service setting | Description | Supported platforms | |
---|---|---|---|---|---|
Reliability | Durability | ||||
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. |
Service | Type | Description | Supported 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. |
Service | Type | Description | Supported 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. |