Have a project to do?
Fill out the form and a member from our sales team will get back to you
The article provides an overview of ROS software and its various applications. ROS software on the example of the robot developed by EnCata to automate warehousing.
According to DHL, despite the evident advantages of automation technologies and the increasing demand for swifter and more precise services, approximately 80% of warehouses still lack automation solutions, opting for manual labour instead. Rick Faulk, CEO at Locus Robotics, paints an even bleaker picture, suggesting that based on his data, more than 100,000 warehouses worldwide, equivalent to 95% of the total, continue to depend on manual labor.
Market analysis by Interact Analysis forecasts remarkable growth in the robotic assembly orders, projecting an increase from $236 million in 2022 to a staggering $6.8 billion by 2030. As of the close of 2022, there were around 33 suppliers of automation systems globally, with 18 of them based in the United States. Statista predicts that the global warehouse automation technology market will expand from $9.95 billion in 2016 to a substantial $30.15 billion by 2026. This highlights the warehouse robot market as a highly promising and rapidly expanding sector.
At EnCata, our team not only tracks these advancements but also actively engages in robotics projects, including those that help our customers automate their warehousing. Examples of the projects can be found here and here. In this article, we will delve into popular software used in robot programming, using the development of the LeanKey warehouse robot as a case study.
The Robot Operating System (ROS) stands as an open-source meta-operating system designed for robot programming. Since its inception in 2017 as an initiative at Stanford University, ROS has evolved into a powerful tool employed by NASA for robotic development.
At its core, the philosophy of ROS is based on the open source model. Developers have the flexibility to select configurations of tools and libraries and tailor the firmware to suit the specific requirements of individual robots. This emphasis on openness has fostered the growth of a robust and dynamic community of developers and researchers who continually contribute to the advancement of the platform. Their efforts translate into enhancements in functionality and the expansion of its capabilities.
Advantages of Embracing ROS:
We are currently utilizing the ROS environment in our LeanKey project, a warehouse robot. Among dozens of intermediate software options, our specialists chose ROS as the foundation for programming the warehouse robot. The choice of an operating system for robotic projects depends on specific needs and project objectives. While ROS stands as one of the most popular and versatile choices, other systems such as Autoware, YARP, MOOS, OROCOS, and the Player Project are tailored to specialized domains and use cases, lacking the universal appeal of ROS.
Our primary goal was to create a cohesive program from various algorithms, and we discovered that ROS provided support for most of them, particularly navigation, mapping, and localization algorithms. These algorithms are pivotal and the most complex parts of the robot. ROS offers robust navigation and mapping libraries, including SLAM (Simultaneous Localization and Mapping). These tools empower warehouse robots to autonomously navigate dynamic environments, generate environment maps, and plan optimal delivery routes.
Warehouse robots interact with various objects, such as packages, pallets, and shelves. ROS facilitates the integration of sensors like cameras, LIDAR, and depth sensors, simplifying the development of object detection and perception algorithms, aiding the robot in identifying and processing items.
In a warehouse setting, where robots coexist with humans and other equipment, safety is paramount. ROS's navigation stack includes collision avoidance features, enabling robots to operate safely by avoiding collisions with obstacles and other robots.
ROS streamlines the development of robotic manipulation capabilities, enabling warehouse robots to accurately pick up, move, and place objects. Integration with robotic manipulators and grippers can be achieved through ROS-controlled hardware interfaces.
Many warehouse operations require collaboration among a fleet of robots. ROS facilitates seamless communication and coordination between multiple robots, allowing them to work together in tasks like sorting, inventory management, and goods delivery. This is achieved through a distributed architecture, message-passing system, and tools specifically designed for multi-robot systems.
ROS can be integrated with warehouse management systems to ensure seamless communication between robots and the central management system. Such integration ensures efficient coordination between robots and warehouse operations. Implementing ROS into a warehouse management system requires collaboration between robotics engineers and warehouse operation specialists. With proper integration, ROS-based robots can enhance warehouse automation, optimize inventory management, reduce operational costs, and enhance overall efficiency.
In our work with the Leankey robot, ROS's hardware abstraction plays a pivotal role. This capability refers to the ability of a robot's operating system to separate high-level software components, such as perception, planning, and control algorithms, from the low-level details of the underlying hardware.
In traditional robot development, coding for sensor interactions, actuator control, and communication protocols can be complex and labor-intensive. Code is often written specifically for the hardware models, intertwining low-level software with high-level logic. This is akin to a recipe specifying a particular brand of knife, plate manufacturer, or frying pan; substituting any of these components would result in an unsuccessful dish.
Different robots employ varying hardware configurations and communication protocols, making it challenging to develop "universal" robot applications that can easily be ported to different platforms.
ROS addresses these challenges by providing a unified interface for interacting with robot hardware. Here's how it works:
Consequently, hardware abstraction confers the following advantages:
Ros2_control is one of the most valuable frameworks within ROS 2, offering a standardized and modular approach to robot control. To illustrate, imagine you are building a robot composed of various components such as arms, wheels, sensors, and more. Ensuring the seamless coordination of all these parts can be a daunting task. This is where ros2_control steps in as your robot's assistant. It helps manage each component of the robot, instructing manipulators on how to move or guiding sensors on how to perceive information. Instead of dealing with each component separately, ros2_control provides a unified means of communication with all parts.
Think of ros2_control as traffic signs. Just as road signs help cars, buses, and bicycles navigate the road safely, ros2_control assists different parts of your robot in communicating with one another without causing confusion. The workings of ros2_control are illustrated below.
It simplifies the process of creating robots, as you don't need to delve into every intricate detail of each component. You can simply instruct ros2_control about your requirements, and it takes care of the rest.
MicroROS is another extension we utilize in robot development. Specifically designed for microcontrollers, MicroROS addresses a fundamental challenge.
ROS is typically deployed on powerful computers and robots with substantial computational resources. The aim of MicroROS is to extend the capabilities of ROS to devices with limited resources, achieving this by creating a streamlined and optimized version of ROS that operates on microcontrollers.
MicroROS is tailored for efficient operation on microcontrollers with limited memory and computational power. It offers the core functionalities of ROS while minimizing overhead and resource utilization.
MicroROS supports the communication infrastructure of ROS 2, enabling microcontroller-based devices to interact seamlessly with other ROS nodes, whether they are also on microcontrollers or more powerful computers. This facilitates smooth data exchange within mixed-hardware robotic systems.
With MicroROS, you can develop software for a powerful computer and then, with minimal modifications, transfer it to a microcontroller.
In simpler terms, MicroROS is a scaled-down version of ROS capable of running on small, resource-constrained computers within robots. It enables these compact computers to communicate and collaborate, even with their limited resources. This proves especially valuable when creating robots and devices that need to perform 'smart' actions while consuming minimal energy and occupying minimal space.
Navigation2 is a collection of packages designed for robot navigation in space. It is tailored for mobile robots operating on two-dimensional (floor space) or three-dimensional (hilly terrain) surfaces.
Navigation2's purpose is to assist robots in moving from one place to another, avoiding obstacles, planning safe paths, and making informed decisions to reach their destination. It is a critically important component for various robotics solutions, ranging from service robots and autonomous vehicles to industrial mobile robots. You can think of Navigation2 as a map application on your phone. Just as you consult a map to know where to turn, how to navigate around traffic, Navigation2 helps the robot determine where to move and how to stay safe.
Key functions of Navigation2 include:
In simpler terms, Navigation2 serves as the GPS and mapping system for robots. It helps robots understand their location, where they need to go, and how to get there without colliding with objects around them. It acts as an intelligent guide, enabling robots to move safely and make autonomous, informed decisions.
Upon completing the software development for the LeanKey robot, it will be capable of performing the following functions:
A significant advantage of ROS is the ability to preview the software's operation in a simulator. We utilize simulation tools such as Gazebo and RViz.
Gazebo and RViz are integral tools within the ROS ecosystem, although they serve different purposes and offer distinct functional capabilities:
Gazebo serves as a comprehensive simulation environment, crafting virtual worlds where robots can be modeled and tested as if they were in the real world.
Gazebo simulates the physical behavior of objects, including gravity, friction, and collisions, enabling robots to interact realistically with their surroundings. It supports the creation and manipulation of detailed 3D models of robots, sensors, and the environment.
Gazebo facilitates the simulation of various sensors (such as cameras and LIDAR) and the actions of actuators (such as motors).
Operating in real-time, Gazebo provides immediate feedback on the behavior of robots and their components within the simulated environment.
RViz is primarily a visualization tool designed to display and 'comprehend' data generated by robots, such as sensors and other software components.
RViz creates a 3D visualization environment where users can view robot models, sensor data, and the surrounding environment.
In real-time, RViz displays sensor data graphically, including images from cameras, LIDAR scans, and point clouds.
RViz can also showcase 3D models of robots, aiding users in visualizing the robot's appearance and movements. It can display planned paths and trajectories, helping users understand how the robot plans its movements.
In summary, Gazebo is a simulator that creates virtual worlds for testing and modeling the physical interactions of robots, while RViz is a visualization tool that assists users in comprehending and representing data obtained from robots and their surroundings. Gazebo simulates the overall behavior of the robot, whereas RViz focuses on visualizing sensor data and planning information. Both tools are invaluable components in the development and testing of robots.
ROS significantly accelerates the software development process for warehouse robots. The open-source nature of ROS has led to the formation of an active community of developers, researchers, and enthusiasts who contribute to its rich libraries. Often, components such as sensors, LiDARs, and more come with ROS libraries right out of the box.
ROS encourages modular design, making it easier to create complex robotic systems by combining and reusing existing software components (nodes). This saves time and effort in development.
ROS provides high-level abstraction of robot hardware and software, allowing developers to focus on specific tasks without worrying about low-level hardware details.
ROS easily integrates with simulation environments like Gazebo and RViz, enabling testing and verification of robot behavior and algorithms before deploying them on real hardware.
Overall, ROS offers powerful tools for robotics development, promotes collaboration, and fosters innovation in the robotics community. However, it requires a certain level of knowledge and consideration of real-time performance requirements. ROS may be challenging for newcomers, and gaining a deep understanding of its architecture and tools may require substantial training.
Fresh, cool, new insights from EnCata in engineering every month
Oleg Kadolka, our industrial designer, explains the nuances of his job and shares his personal experience at EnCata – a service company that specializes in design development and industrial prototyping for hardware and deep-tech startups. This interview is brought to you by EnCata’s content manager Vera Vasilevskaya.
Sorry for butting in, but