Development of obstable avoidance system for 3D robot navigation - Er, Kai Sheng (2024)
In this project, an algorithm was developed to implement an obstacle avoidance system in 3D robot navigation. Before project implementation, extensive research was conducted to explore the current state of obstacle avoidance systems for 3D robot navigation. Since 3D robot navigation systems require 3D environmental data, the study focused on 3D Simultaneous Localization and Mapping (SLAM) to obtain environmental information and generate a suitable 3D map for navigation. Two popular 3D SLAM methods, OctoMap and RTABMap, were studied, and RTAB-Map was chosen for its ability to directly create 3D maps from depth camera data and its incorporation of odometry error correction, potentially leading to more accurate 3D maps and occupancy grids. To prepare for obstacle avoidance algorithm development, a differential drive robot was constructed, and a URDF description was prepared to ensure correct odometry data conversion from sensor coordinate frames to the robot coordinate frame. Rviz2 was utilized for visualizing coordinate frames. The algorithm was tested in both simulation and on the physical robot. Gazebo simulation software was used to build a virtual world for testing the obstacle avoidance system. RTAB-Map was employed to construct the essential 3D map for navigation. To obtain a good 3D map in RTAB-Map SLAM, it is important to use a LiDAR to refine the odometry of the robot and improve map quality. In this project, robot navigation was implemented using packages provided by Nav2. The voxel layer in the layered cost map provided in Nav2 was utilized to detect the 3D obstacles that cannot be detected by 2D LiDAR. Additionally, the planner and controller modules from Nav2 were employed for path planning and obstacle avoidance. Once the algorithm was fully tested and proven functional in simulation, it would be implemented on the physical robot. The performance of the algorithm is discussed in the results and discussion section. In conclusion, the developed algorithm enables the robot to detect obstacles that are not on the same plane as the 2D LiDAR and cannot be detected using depth camera data.