# A Vision-Based Approach for Autonomous Motion in Cluttered Environments
## 1 Introduction  
With the continuous development of science and technology, robots have gradually entered our lives and play an important role in various fields such as military, industrial, medical treatment, etc. The ability to move autonomously in an unfamiliar environment is the basis for the robot to be applied to various scenarios, and the core of the robot's ability to realize autonomous movement is accurate positioning, mapping, and safe real-time motion planning. In the past decades, several methods have been proposed to estimate the pose of the robot and map the environment. A widely used approach is to use lidar to estimate the depth of the obstacles, and then use other sensors to estimate the pose of the robots. In References [1; 2; 3], a method that uses GPS for robot positioning and lidar for mapping was reported. Although this method is accurate and has do drift, it cannot work for indoor scenes. In References [4; 5], a motion capture system instead of GPS was applied to locate the robot; in References [6; 7], QR codes are used for positioning. These two methods can achieve accurate positioning at the centimeter level, but they cannot be applied to unfamiliar environments, because they need to deploy positioning devices in advance. Wheeled robots can fuse wheel odometer data and IMU data for localization [8; 9], but this method cannot be used alone, because its positioning data will drift. In addition,small-sized robots, such as drones, have a small load capacity and cannot carry heavy multi-line lidars. Therefore, these methods cannot be applied to these small robots. LIDAR-based SLAM is an important perception method; it uses lidar sensors to locate robots and map the environment simultaneously. In References [10; 11; 12], single-line lidar was used for robot localization and environment mapping. These methods suffer from low accuracy and cannot detect obstacles outside the lidar plane. In References [13; 14; 15], researchers used multi-line lidar for localization and mapping; these algorithms can achieve high accuracy. In References [16; 17; 18], algorithms that fuse multi-line lidar with other sensors are reported, which can achieve higher accuracy and robustness. Although Lidar-based SLAM uses multi-line lidar, as sensors can achieve high-precision positioning and mapping, it is not suitable for all robots. First, these algorithms need to run on computers with strong computing power, which cannot be met by some drones and small robots. Second, multi-line lidar is expensive, and its weight is heavy. Therefore, the above non-vision-based methods have some shortcomings, such as limited application scenarios, high cost, and large size, which make these methods unable to be applied to platforms with limited computing capabilities or limited load capacity. By contrast, the use of cameras to locate robots and map environments has the advantages of being lightweight and low in price; many vision-based SLAM algorithms are proposed and show high accuracy. Camera sensors, including monocular, binocular, and RGB-D cameras, have been widely used for vision-based SLAM. Due to its low cost and small size, the monocular is an ideal sensor for robot positioning and mapping. In References [19; 20; 21], monocular-only slam algorithms are reported for robot location, but it suffers from low accuracy. Researchers [22; 23; 24] have fused monocular images with IMU data to increase positioning accuracy, but they are less robust compared with slam algorithms using binocular and RGB-D cameras as sensors. In addition to positioning, monoculars are also used for depth estimation and map building. In References [25; 26; 27], several algorithms are proposed to estimate the 3D structure of a scene from a set of monocular images, but these methods do not work well in areas with sparse feature points, such as white walls. Deep learning has developed rapidly in recent years and is also widely studied to estimate depth from images of monocular cameras.