# Unmanned Aerial Vehicle Landing on Rugged Terrain by On-Board LIDAR-Camera Positioning System
## 3 Proposed Positioning Framework
### Positioning
#### 3.3.1 LIDAR Position  
Plane and edge features were extracted using an algorithm to calculate the smoothness of the local surface [39]. Supposing that \(\mathcal{S}\) is an area centered on \(p_{i}^{t,l}\) and \(p_{j}^{t,l}\) is the neighbor of \(p_{i}^{t,l}\), where \(p_{j}^{t,l}\in\mathcal{S}\), the smoothness score of the local surface is defined as:  
\[f_{l}=\frac{\sum\limits_{p_{j}^{t,l}\in\mathcal{S}}\;p_{i}^{t,l}-p_{j}^{t,l}}{ \left|S\right|\cdot\;p_{i}^{t,l}}\,, \tag{6}\]  
The score of all points was sorted, and the maximum and minimum groups were denoted as edge and planar points, respectively. Here, \(f_{l}\) is robust for distinguishing edge and planar points benefiting from the hierarchical structure of the ground horizontal space. However, the value of \(\|p_{i}^{t,l}\|\) can increase with increasing UAV altitude, which reduces the ability of \(f_{l}\) to detect feature points. Figure 3: LIDAR and camera positioning framework. To address this issue, the smoothness of the local surface was evaluated by fusing image information, as shown in the following equation,  
\[f_{s}=f_{l}+\lambda f_{c}, \tag{7}\]  
where \(f_{c}\) uses color to evaluate the local smoothness by weighing the similarity between a LIDAR point and its neighbor, both of which are projected onto the image plane. Supposing that the k-nearest points of a LIDAR point \(uv_{i}^{t}\) on the image plane are \(uv_{(1\sim k)}^{t}\) in the image plane, the smoothness of \(uv_{i}^{t}\) is defined as,  
\[ \begin{split}& f_{c}=\sum\limits_{j=1}^{k}\ L_{G}(uv_{j},uv_{i})\ \,\\ & L_{G}(uv_{j}^{L},uv_{i})=\inf\limits_{uv_{\tilde{\gamma}}\in \mathcal{Z}(uv_{i}^{t},uv_{j}^{t})\ \zeta}\ \varepsilon(uv_{\tilde{\gamma}})dw_{\tilde{\gamma}},\end{split}  \tag{8}\]  
where \(L_{G}\) is the shortest geodesic distance based on the weight similarity between the two points. Here, \(\mathcal{Z}(uv_{i}^{t},uv_{j}^{t})\) denotes all possible routes from \(uv_{i}^{t}\) to \(uv_{j}^{t}\); \((uv_{\tilde{\gamma}})dw_{\tilde{\gamma}}\) denotes the energy along one route; and the infimum is the route with minimum energy. A point \(uv_{i}^{t}\) belonging to the plane will be visually close to its neighbors \(uv_{(1\sim k)}^{t}\) but far from boundaries. According to this principle, the structured edge detector (SED), which estimates the probability of a pixel being part of a boundary, was applied to evaluate the energy, as shown in Equation (8). Figure 4 shows an example of how to estimate the local smoothness according to \(f_{c}\). To meet the requirements for real-time UAV processes, a parallel algorithm was employed to approximate the infimum of SED images. After detecting the feature points, the next task was to determine the corresponding relationship in the sequence data. In contrast to RTAB-MAP, the feature matching and motion estimation were conducted simultaneously. Here, \(\varepsilon_{t}\) and \(\mathcal{H}_{t}\) represent the set of edge and planar points, respectively, at time \(t\), and \(\varepsilon_{m}\) and \(\mathcal{H}_{m}\) are the corresponding feature points in the global map. The transformation of each point from the LIDAR frame to the global map was achieved using the following equation,  
\[p_{i}^{t,g}=R_{t}p_{i}^{t,l}+T_{t}, \tag{9}\]  
where \(R_{t}\) and \(T_{t}\) are the LIDAR motion parameters that must be optimized, as shown in Algorithm 1. In practice, the transformation of the last frame is selected as the initialization point, and the distance from a feature point to its corresponding point is set as the optimizing condition. The plane and edge features of a point can be easily distinguished by computing the covariance of the k-nearest points \(p_{k}^{g}\). The point with the  
Figure 4: Example showing that the local smoothness of LIDAR points is estimated on the image plane. Left: the original image is captured from the UAV, and the SED image is applied to evaluate the edge energy. Two LIDAR points (A and B) are selected to show the computation of \(f_{c}\).