Autonomous pallet picking using ROS2
Mökkönen, Teemu (2024)
Mökkönen, Teemu
2024
Automaatiotekniikan DI-ohjelma - Master's Programme in Automation Engineering
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2024-02-29
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202402012024
https://urn.fi/URN:NBN:fi:tuni-202402012024
Tiivistelmä
In industrial use cases, heavy-duty mobile machines are commonly used for agriculture and earth-moving. Automating these machines can be a complex task that can introduce many different architectural problems given the use case, the level of automation, and the environment. Many navigation and control paradigms can be followed when designing autonomous units, such as reactive, deliberative, behavior-based, and hybrid.
This thesis explores implementing a hybrid control architecture in the use case of pallet picking. The aim is to recognize the different components of the navigation system and divide them into a hybrid navigation system in the form of a layered architecture that can employ a decision-making layer for generalized mission deployment. Decision-making could be used with many tools, such as petri-nets and finite state machines. One such thing that has emerged more recently, called behavior trees, has been deployed in recent years from the gaming industry to try to increase the re-usability of the developed system components by utilizing minimal transition rules and states between the nodes in the tree structure.
The thesis aims to deploy the system using ROS2 as a middleware solution to distribute feed-back and commands through the ROS2 platform application. The aim is also to recognize the algorithm packages and frameworks from the large ecosystem of different solutions in the ROS2 that can make deploying autonomous heavy-duty mobile machine systems faster and easier.
In conjunction with the layered architecture design, ROS2, and behavior trees, it is possible to recognize the machine primitives and actions and bind them to functionalities of the machine so that employing more complex task deployment such as pallet picking is possible with simple behaviors in the behavior tree, with the layered architecture. The machine controllers expose interfaces that the behavior tree nodes can utilize to fulfill the primitives of the action.
Finally, in the thesis, there is an evaluation of the performance of critical components for successful pallet picking in the realized system architecture. Since the application mainly depends on the performance of the path following, localization, state estimation, and manipulator trajectory tracking, they are under evaluation. In the end, there were successful attempts at the pallet-picking system, given the architecture and system deployment in the distributed control system in the target machine. However, the RCLPY implementation showed performance bottlenecks and poor scalability in the CPU performance, given the higher rate topics in the system.
This thesis explores implementing a hybrid control architecture in the use case of pallet picking. The aim is to recognize the different components of the navigation system and divide them into a hybrid navigation system in the form of a layered architecture that can employ a decision-making layer for generalized mission deployment. Decision-making could be used with many tools, such as petri-nets and finite state machines. One such thing that has emerged more recently, called behavior trees, has been deployed in recent years from the gaming industry to try to increase the re-usability of the developed system components by utilizing minimal transition rules and states between the nodes in the tree structure.
The thesis aims to deploy the system using ROS2 as a middleware solution to distribute feed-back and commands through the ROS2 platform application. The aim is also to recognize the algorithm packages and frameworks from the large ecosystem of different solutions in the ROS2 that can make deploying autonomous heavy-duty mobile machine systems faster and easier.
In conjunction with the layered architecture design, ROS2, and behavior trees, it is possible to recognize the machine primitives and actions and bind them to functionalities of the machine so that employing more complex task deployment such as pallet picking is possible with simple behaviors in the behavior tree, with the layered architecture. The machine controllers expose interfaces that the behavior tree nodes can utilize to fulfill the primitives of the action.
Finally, in the thesis, there is an evaluation of the performance of critical components for successful pallet picking in the realized system architecture. Since the application mainly depends on the performance of the path following, localization, state estimation, and manipulator trajectory tracking, they are under evaluation. In the end, there were successful attempts at the pallet-picking system, given the architecture and system deployment in the distributed control system in the target machine. However, the RCLPY implementation showed performance bottlenecks and poor scalability in the CPU performance, given the higher rate topics in the system.