SLAMcore Blog - Spatial AI, Robots, Drones & Tech

ROS Integration

Written by Nikos Koukis | Feb 2, 2021 11:30:29 AM

The Robot Operating System, or ROS, has played a fundamental role in the development of robots as solutions to real-world challenges in many different sectors. From warehouses and logistics, to agriculture and healthcare, ROS-based designs are delivering real value.  Since its birth at Willow Garage in 2007, this flexible framework has helped thousands of robot developers, from start-ups and academics to teams working in some of the largest tech companies globally. SLAMcore is no exception; from the outset we set ourselves the goal of developing SLAM (Simultaneous Localization and Mapping) software with a ROS interface. We did so because we knew that would make it easy for other developers to integrate our solutions into their designs and so deliver our vision of providing accurate visual SLAM software that saves developers time and money as they build commercially viable robots. 

So, we are really excited to further extend our integration with ROS in our latest software release, available here. Our SLAM algorithms have always had basic ROS support allowing developers to access the outputs of our system. The new version of SLAMcore software will allow users to  ‘plug in’ our SLAM functionality directly to their robots and feed our maps and location data into their navigation and mobility stack.  

This latest release will expose several additional functionality allowing deeper and more wide-ranging integration with robotic systems based on the ROS framework. Key among these is the capability to fuse data from wheel odometry sensors into the SLAMcore algorithms via ROS. Until now SLAMcore has taken data inputs from tightly coupled visual and IMU sensors, primarily from units such as the Intel RealSense Depth Camera D435i. Support for ROS-compliant wheel odometry sensors not only increases the reliability and accuracy of mapping and location but opens the door to a wide range of sensor inputs via ROS interfaces.

The SLAMcore ROS Wrapper software also allows pass-through of the raw visual sensor data. Now other subsystems can use this same data for their own purposes. For example, visual data from cameras can be exported and used by computer vision systems to identify specific products on warehouse shelves. Sharing this data reduced the need for dedicated sensors for every function. Fewer components lead to faster development time and lower costs. 

Finally, the new software version will expose a wider range of capabilities within the SLAMcore stack via ROS-compliant inputs and outputs. Multisession mapping – supporting saving and loading of maps from discrete SLAM sessions; rich point-cloud map export, and customization of individual parameters can all now be integrated into wider systems through the ROS framework. These all increase the flexibility and ease with which developers can precisely match the capabilities of SLAMcore’s algorithms to the demands of their specific robots. 

The ROS framework plays a fundamental role in helping developers rapidly test and prototype designs. They can be confident that SLAMcore’s solutions will ‘plug-in’ to the ROS framework and be up and running to deliver fast results. As designs evolve and move closer to commercialization and industrialized production and use, developers can remain with the ROS framework, or move to more monolithic or bespoke integrations.

The Robot Operating System has been critical to the rapid explosion of robotics over the last ten or so years. We share the same goals – helping individuals and teams to develop robust, effective and commercially viable robotic solutions as quickly as possible. Low-cost, but high-quality robots can solve many of the most pressing issues we face today; working with ROS we hope to accelerate the development and production of these solutions. Thanks to ROS we are all progressing towards this goal, and we will continue to support the movement as it develops over the coming years.

🤖

Read more at blog.slamcore.com