Hardware and System Information Keywords:

App:

Web:

Robot:

Container:

Source Code Management:

Reference:


Architecture

Robot Architecture: For the robot architecture, Ubuntu 18.04 LTS and ROS Melodic version were employed. The experimental space map was manually created through manual control. Gmapping was utilized to record starting and destination point coordinates. These coordinates were then input into the server to enable autonomous navigation by the robot based on messages received via iOS and WebSocket communication. This communication method can be easily adapted to other platforms. When a WebSocket message is received, it is converted into predefined location and angle information and transmitted to the robot through a designated topic. Subsequently, the robot moves to the specified location accordingly. The robot used for this setup is the Turtlebot3 Burger model, running on the Kinetic version of ROS. Bringup was used to transmit distance information from the LDS-01 LiDAR to the PC.

Untitled

Untitled

App Architecture: The app utilizes AVSession for barcode scanning and sends the scanned data to the server using Alamofire. Additionally, an iOS app has been developed to display a map that visualizes the movement information of the Turtlebot for easy monitoring. The server handles communication with the app, web, and other services. It is implemented using AWS Elastic Beanstalk, and automated deployment environments are set up using GitHub Actions for a fast and flexible development environment. Postman was employed to verify communication during server setup. The primary server functionalities include admin account login and logistics management, necessitating the establishment of an appropriate database structure.

Untitled

Untitled

Untitled

Web Architecture: NestJS, a JavaScript server development framework, is used to develop the server for communication between the app, web, and data layers. The developed server is deployed on AWS Cloud services. To provide extensive CMS functionality, a Single-Page Application (SPA) web application is developed using Svelte for easy creation and management of the web interface. Based on UI sketches, web pages for the required WMS functionalities are created. The main page serves as a login page accessible only to authorized admins. Admin accounts are directly assigned by the server, so there is no user registration implementation. After logging in, the main screen provides access to various logistics categories. By navigating through the screens, users can view different forms of logistics data, offering two view modes for detailed or simplified information.

Untitled

Untitled

Untitled

Hardware Architecture: The large conveyor belt is constructed using an Arduino kit and equipped with an ultrasonic sensor to activate its operation when the Turtlebot approaches. The container serves as a special fixture for securing the small conveyor belt. It is fixed by inserting the protruding cylindrical part into the Turtlebot's hole. The empty space below protects and enhances the aesthetics of the Arduino and circuitry. The conveyor belt is placed on top, and a cover is installed to prevent items from falling below during transportation. The small conveyor belt is placed on top of the container and connected to a light sensor. The light sensor detects light sources at the destination and triggers the release of items when a light source is detected. Attached is the gcode file for this container.

Warehouse.gcode

Untitled

KakaoTalk_20230613_150030883.jpg

KakaoTalk_20230626_114326242.jpg

Test

In the testing phase, when an item is scanned using a barcode, the information about that item is sent to the app and web, allowing users to view details such as quantity and description through the web interface. Then, when the item is placed in the black container, the container activates and securely loads the item onto the Turtlebot.

Subsequently, the robot autonomously navigates, avoiding obstacles, to the designated destination while carrying the item. The autonomous navigation is controlled through the app on the mobile phone, where predefined locations can be selected, and the robot is commanded to move accordingly. This command is transmitted from the mobile phone to the Linux system, which relays the signal to the robot.

Finally, upon reaching the destination, the robot releases the item at the specified location, and then it can be commanded to return to the waiting area.

Map data

Map data

Map environment

Map environment

KakaoTalk_20230612_214934257_02.jpg

https://youtu.be/7_lBd4AszNM