# A Vision-Based Approach for Autonomous Motion in Cluttered Environments
## 1 Introduction
The first example of using deep learning to estimate depth was reported in Reference [28]. Similar works were presented in References [29; 30], which increase the accuracy. The learning-based method overcomes the problem of poor depth estimation in areas where feature points are sparse; however, these methods have two shortcomings. First, they need to run on computers equipped with GPUs with strong computing power, which cannot be met by drones and other small robots. Second, they have a problem of poor generalization and may not work well in new environments. Binocular and RGB-D cameras can directly get the depth of feature points; thus, algorithms based on binocular or RGB-D cameras can provide more accurate positioning and mapping data. In References [31; 32; 33], reliable positioning and mapping were achieved by using RGB-D cameras as sensors, but the use of RGB-D cameras is hindered by the large camera volume and heavy weight. References [24; 34] used binoculars to realize stable and high-accuracy positioning. In References [35; 36], binoculars were introduced to achieve high-precision mapping of the environment for robotics. However, these binoculars-based methods need to run on powerful computers, such as DJI Manifold, which is equipped with an i7-8550U CPU. In References [37; 38; 39], learning-based methods were used for binoculars-based positioning and mapping, but they suffer from the same shortcoming as learning-based methods that use monoculars as sensors. In addition to positioning and mapping, the robot also needs to be able to plan a safe trajectory from the starting point to the target point in real time. In the framework of traditional motion planning, motion planning is generally divided into two steps. The first step is pathfinding, which aims to find a feasible initial path; the second step is path optimization, which aims to optimize the initial path into a smoother, safer, and better path. Researchers have proposed many pathfinding algorithms to find a feasible path. One of the important categories is graphed-based methods, such as Dijkstra [40], that discretize the state space of the robot into a graph structure and use graph search methods to find a feasible path. To improve the performance, many efforts have been made. The A* [41] algorithm accelerates the search speed by introducing a heuristic function. Reference [42] proposed the Jump Point algorithm, which can speed up the A* algorithm by an order of magnitude. The Hybrid A* [43] introduces dynamic constraints to plan a path that is dynamic-feasible for robots. These graph-based algorithms are complete and resolution optimal; they can find an optimal path if a feasible path exists. However, graph-based methods perform worse in large-scale problems, and their solutions are not smooth and may be close to obstacles. Another important type of pathfinding algorithm is the sampling-based method, which constructs a graph or tree by sampling in the state space. RRT [44], PRM [45], and RRT* [46] are important sampling-based algorithms; they perform better in large-scale scenes. Although sampling-based ones can find a feasible path quickly, they suffer from the problem of the large variance in search time. Moreover, the path they find is also not smooth and close to obstacles. To address the above issue, researchers have proposed many algorithms to optimize the initial path into a better path. The literature [47] expressed the trajectory as piecewise polynomial and then obtained a smooth path by solving a quadratic programming (QP) problem. In Reference [48], a closed-form solution method was proposed to speed up problem-solving. However, these two methods need iteratively add intermediate waypoints to ensure the safety of the trajectories, and this is time-consuming. To solve this problem, hard-constrained methods and soft-constrained methods are introduced.