In the ever-evolving field of robotics, the Robot Operating System (ROS) has been critical in enabling developers to build sophisticated and intelligent robots. With the introduction of ROS 2, the latest iteration of this powerful framework, the capabilities of robotic systems have taken another leap forward. In this blog, we will explore our new Ouster driver for ROS 2, the great features we’ve built into it, and how easy it is to transition from ROS to ROS 2.
Why Transition to ROS 2 from ROS?
The first version of ROS provided a key foundation for building robotic applications. However, as the complexity and scale of the robotics project increased, limitations of the framework became apparent. ROS 2 was developed to address these limitations and take advantage of the latest technologies and methodologies. It is built on the same principles as its predecessor but offers significant improvements in terms of performance, scalability, decentralized node management, RTOS support and built-in security.
Ouster ROS 2 Driver
Try the now available on GitHub:
The Ouster ROS 2 driver has the following features:
Retains the same functionality and similar structure as the ouster driver for ROS 1.
- The driver(s) is based on the most recent version of ouster-sdk (unlike the community version).
Support for Firmware 2.0 through 3.1.
The driver(s) utilizes ROS2 components which offers users the flexibility to run the nodes that compose the driver within the same or different processes.
- Fully implements ROS2 Node Lifecycle Management; this allows the driver to achieve the following features:
The driver allows users to change sensor configuration directly from ROS through the service /ouster/set_config
The driver features a new service that /ouster/reset that allows the users to reset the sensor through ROS2.
The ROS2 driver automatically detects changes in sensor configuration and adapts any configuration changes without having to shutdown the node.
Ability to choose between receiving point clouds either in the lidar coordinate frame or in the sensor coordinate frame.
Ability to choose between SensorDataQoS (default) or choose SystemDefaultQoS for reliable data transmission.
Users can choose to receive sensor_msgs::msg::LaserScan messages to utilize the sensor as 2D Lidar.
Improved overall performance and stability and reduced point cloud latency
Minimal instructions can be found on the README page of the GitHub project but more documentation is on the way.
Ability to customize the fields of published point cloud using Point Cloud Customization feature https://github.com/ouster-lidar/ouster-ros/discussions/260
Support for all Ouster sensor ludar udp profiles including FUSA_RNG15_RFL8_NIR8_DUAL.
The official ouster-ros driver supports connection recovery in case of a sensor power down or connection loss.
How to setup ROS 2?
Ouster recommends reading through a quick setup guide presented here.
What is not supported in ROS 2?
The Ouster ROS2 driver is not currently designed with real-time computing requirements.
The Ouster ROS2 driver does not currently utilize secure communication protocols available in ROS2.