JdeRobot robotics academy[1] currently offers an exercise for simulating amazon indoor warehouse scenario. The goal of this project is to create a similar scenario for a fleet of robots. This will involve task and path planning for multiple robots. The project also uses ROS2 and leverages its swarm robotics capabilities.
Automated warehouses play an important role in modern Industry 4.0 based factories. In companies such as Amazon, multiple robot agents coordinate with each other to optimize delivery times. When a job such as “pickup from shelves” is scheduled, a task is assigned to one of these agents based on a number of factors, such as its proximity to the location or its path towards the goal. In many cases, the agents roam freely, communicate with each other, and have to avoid obstacles and humans in their path. The purpose of this project is to teach students these real-world interactions by creating a new exercise(s) in robotics academy.
Traditionally in ROS1, handling multiple robots is achieved using one master (roscore) server[2]. However, this approach requires the robot to be on one network, making decentralized approach only achievable using non-straightforward solutions (such as using port forwarding or rospackages such as Nimbro Network[3] & FKIE Multimaster[4]). ROS2 has improved on this and many other shortcomings of ROS1 by introducing the Middleware interface[5]. This project aims to benefit from these features by migrating existing scenarios from ROS1 to ROS2.
Existing Work
Currently, JdeRobot robotics academy hosts one exercise demonstrating autonomous robot navigation and pick-and-place logic in the warehouse. The map of the warehouse is divided into zones: input, storage, output and charging. An agent is scheduled to pick up and deliver a pallet in another zone, representing a task. Using his algorithm, a student has to navigate the agent and carry out these operations.
Proposed Solution
JdeMultiBot will extend on this to implement a scalable cooperative multi-agent task and path planning system. Therefore, in addition to simple navigation and pickup, the student also has to coordinate between the agents (robots). This will include three components:
Task planner is mainly based on network topologies. Based on how tasks are generated, a single master planner (centralized approach) or agent bounty based planner (decentralized approach) will be selected. This also involves various sub approaches. Centralized task planner can be one fixed master, or can have variations like leader election. Decentralized task planners have similar options like TDMA or polling.
There are numerous algorithms which deal with path finding. A*[6] is an optimal single robot path finding algorithm with a heuristic component, which is now used widely as a go-to path planner. Theta*[7] algorithm works by connecting discrete grid points on the map through a continuous line, not limited to graph edges. Another option is Rapidly Exploring Trees (RRT) [8] and RRT*[9]. Each of these algorithms also possesses different shortcomings with respect to scalability and speed.
Co-operations of the robots with each other can lead to interesting behaviour patterns and can lead to an increase in efficiency. This is specifically important for the simple exercise mentioned in the timeline. For example, robots can split themselves in such a way that they can explore and find targets quicker.[10] [11] [11]
The decision of which algorithms are decided on various factors such as: How challenging it will be for the students? Is demo implementation available as open-source (if yes, what licence)? Are ROS2 packages necessary for the development available? Etc.
Some other components to consider are charging management, collision detection and storage management.
The project is roughly divided into 4 components: