Obstacle Navigation using Autonomous RC Car
Dongjun Park, Seongmin Jung, Cheongwoo Ohk
'Building an autonomous robot on a RC Car using a navigation method based on path integration inspired by desert ants'
The development of autonomous driving robots involves essential stages and technical challenges. This process begins with the robot understanding its environment by mapping it and accurately determining its current position based on this mapping. Subsequently, the robot must navigate and avoid obstacles efficiently while moving towards its final destination. Driving, a crucial aspect of autonomous robots, is critical to overall performance and stability.
fig1. SLAM implementation(L: agile, R: slow)
One of the technologies for autonomous driving is SLAM (Simultaneously Localization and Mapping). SLAM is a technology where a robot estimates its position in an unknown environment while mapping it simultaneously. The most famous open-source SLAM algorithm is the cartographer. The cartographer divides 2D lidar data into units called submaps and expresses each submap as a node in a graph. The relationship between submaps is expressed as edges of the graph. These graphs are used for graph optimization, which improves the accuracy and consistency of the entire map by adjusting the values of nodes and edges. Due to its refined algorithm, the robot demonstrates effective localization and map creation with the cartographer, as shown in Figure 1. However, we observed that the robot struggles to accurately determine its position and map-building at high speed, as shown in the left image. Another skill required for our autonomous driving is Path Integration. Path Integration is estimating a moving object's current position and direction by using a previously determined position and incorporating estimates of speed, direction, and elapsed time. This path integration can be implemented through the ICP algorithm, and there are many open sources related to it. The ICP algorithm is an algorithm that calculates the distance between corresponding points obtained from 2D lidar for each movement to find the transformation matrix. Using this, we can know the path the robot has taken, the current location, and the current direction of the robot through the 2D lidar value. In the case of localization, which differs from path integration, it estimates the current location in a given map by comparing it with external information through lidar. It compares the current lidar scan with a map to configure the RC car's location and orientation.
Fig2. RC Car Hardware Setup
This study used an RC car and a 2D LiDAR sensor to implement an algorithm that returns to the origin through path integration and an obstacle avoidance algorithm. The items used to perform the function are shown in Figure 2.
Fig3. 2D Lidar Working Schematic
We explored navigation algorithms to make robots more popular. So, unlike existing algorithms, we proposed that path integration was performed through the PWM value applied to the motor, and avoidance was performed in advance considering the low-frequency characteristics of the 2d lidar. To be applied properly, This approach requires more knowledge of the motor and other factors, even though you don't know exactly that knowledge, it is a significant step because it shows the potential of our algorithm to be adaptable to any vehicle.
Fig3. Overall architecture of Algorithm