Autonomously navigating an environment with obstacles is one of the challenging problems in the world of robotics. It is more challenging in case of UAVs since a collision would result in the UAV crashing into the ground. The problem is solved by using efficient path planning algorithms which calculate the efficient trajectory to get from one point to another while avoiding obstacles. But for those algorithms to work, the processor on board the UAV need to locate the position of the obstacles in the environment. Hence over the years, a lot of research has been done in developing new and more efficient ways for Obstacle Detection.
Different Methods in Obstacle Detection
Various techniques are employed on UAVs for detecting the obstacles. Some of them are listed below.
- Monocular Vision
- Stereo Vision
In the first three methods, the obstacle detection is done by emitting a sound pulse, infrared wave, and laser pulse respectively from the UAV. Then the time it took for the emitted wave to reflect and arrive back at the receiver is noted. In monocular vision, a single camera is used to obtain the image. The depth estimation is done from the depth cues in the images. In the Stereo Vision, two cameras are used to capture images simultaneously. The corresponding points in the images are located and distance is estimated by triangulation.
The article will discuss the last two techniques in detail. The obstacle detection based on vision consists of two major steps. The first step is to identify the object and its shape and the second step consists of estimating the absolute or relative distance to the obstacle.
Obstacle Identification Using Camera Vision
If one shows a photograph to a human and request him to identify various objects, he would do it without much difficulty. He can do it because of his familiarity with the objects and his knowledge of how the objects would look from different angles. For a machine, the available information is limited to the RGB value or Grayscale value at each pixel. Hence the object identification is difficult for a machine and remains an active area of research.
One approach for obstacle detection with UAVs would be to use the Canny Edge detector. This helps in segmenting the images in cases where there is a clear-cut distinction between the surroundings and the obstacles.
In case of a cluttered scene, the Canny Edge Detector give many segments. In such cases, one can use the background subtraction algorithm to filter out the foreground objects in the scene. This technique is effective in identifying moving objects in a cluttered scene.
If the objects in the scene are known in advance, one could train a Convolutional Neural Network on similar images with known depth values. Hence when the UAV encounters the objects, it will be able to estimate the distance to it. In most cases, a single obstacle detection technique is not enough for and one may be required to use a combination of them. Like implementing the Canny edge detector after filtering out the background.
Depth Detection Using Camera Vision
Stereo Camera and Monocular camera use various techniques for depth detection.
1. Stereo Camera
The fundamental challenge faced in implementing the stereo vision based obstacle detection is the computational intensity of the algorithms and the calibration of the cameras. But with the help of stereo cameras, the depth of the scene can be estimated. To estimate the depth, the first step is to locate the corresponding points in each image. If we don’t utilize the geometry of a stereo system, the entire image needs to be searched to locate a corresponding point. This can be computationally intense. To reduce the search space, the idea of epipolar geometry can be used.
2. Monocular Camera
Unlike the stereo camera, the depth estimation for obstacle detection using a monocular camera is difficult. Nevertheless, it could be done by utilizing what is known as the depth cues. The different vision depth cues are discussed in this section.
The most common depth cue used by human being is the “familiar size”. In the picture, one can tell which tree is farther from or nearer to us. Here we use the familiarity of the size of the objects to estimate the distance. Since we know that size of an object decreases as the distance to it increases, one concludes that the smaller trees are farther compared to the bigger trees.
The next depth cue that is frequently used for obstacle detection is the known absolute or relative size of the objects. If there are multiple objects in the scene whose size are known to be similar. The relative distance between the object can be obtained from the size they occupy in the image plane. When the absolute size of an object is known, the 3D position of the object can be estimated from the known the camera parameters and the position of the object in the image plane.
The other common depth cue that is used, is the relative motion of various objects. Farther objects tend to move slower compared to the objects that are nearer. By observing the relative speed of the objects, the relative distance between the obstacles can be estimated optimizing obstacle detection.
Avoiding the obstacle while in motion is an important part of the navigation of a UAV. Veronte Autopilot has already an inbuilt state of the art obstacle avoidance system. Integrating the obstacle detection to the camera on board will help in identifying the obstacles in a more efficient manner.