提交 49446013 编写于 作者: S shaorui 提交者: Jiangtao Hu

add calibration documents

上级 1666d4d0
## Apollo Sensor Calibration Service
Welcome to the Apollo sensor calibration service. This document describes the process of the extrinsic calibration service between 64-beam Light Detection And Ranging (LiDAR) and Inertial Navigation System (INS).
## Apollo Sensor Calibration Catalog
- Service overview
- Preparation
- Recording calibration data
- Uploading calibration data and creating task
- Obtaining calibration results
- Error description
### Overview
The Apollo vehicle sensor calibration function provides the extrinsic calibration between Velodyne HDL-64ES3 and IMU. The calibration results can be used to transfer the obstacle location detected by LiDAR to the IMU coordinate system, and then to the world coordinate system. The results are provided by `.yaml` format files.
### Preparation
To calibrate the sensors it is important to prepare using the following steps:
1.Install 64-beams LiDAR and INS supported by Apollo, and then deploy the docker running environment.
2.Start up the 64-beams LiDAR and INS. The INS must be aligned when it is powered on. At this point, the car should be driven straight, then turned left and turned right in an open area, until the initialization is completed.
3.Confirm that all sensor topics required by this service have output. See: [How to Check the Sensor Output?](https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/lidar_calibration/FAQ0.md)
The topics required by the calibration service are shown in the following Table 1:
Table 1. Sensor topics.
Sensor | Topic Name | Topic Feq. (Hz)
--- | ------- | --- |
HDL-64ES3 | /apollo/sensor/velodyne64/VelodyneScanUnified | 10
INS | /apollo/sensor/gnss/odometry | 100
INS | /apollo/sensor/gnss/ins_stat | 1
4.Confirm that the INS status is 56 when recording data. See: [How to Check INS Status?](https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/lidar_calibration/FAQ1.md)
5.Choose an appropriate calibration field.
An ideal calibration field requires no tall buildings around the calibration area. If buildings are near, low-rising building facades are preferred. Finally, the ground should be smooth, not rough, and it should be easy to drive the car following the trajectory that looks like the ∞ symbol as illustrated in Figure 1. An example of a good calibration field is shown in Figure 2.
![](lidar_calibration/images/calibration/trajectory.png)
<center>Figure 1. The trajectory for calibration.</center>
![](lidar_calibration/images/calibration/field.png)
<center>Figure 2. Calibration field.</center>
### Recording Calibration Data
After the preparation steps are completed, drive the vehicle to the calibration field to record the calibration data.
1.The recording script is `apollo/script/lidar_calibration.sh`.
2.Run the following command to record data:
```bash
bash lidar_calibration.sh start_record
```
The recorded bag is under the directory `apollo/data/bag`.
3.Drive the car following a ∞ symbol path, using a controlled speed of 20-40km/h, and make the turning radius as small as possible.
The total time length should within 3 minutes, but please make sure that your calibration drive contains at least one full ∞ symbol path.
4.After recording, run the following command to stop the data recording.
```bash
bash lidar_calibration.sh stop_record
```
5.Then, the program will detect whether or not the recorded bag contains all the required topics. After passing the test, the bag will be packaged into file `lidar_calib_data.tar.gz`, including the recorded rosbag and the corresponding MD5 checksum file.
### Uploading Calibration Data and Creating a Calibration Service Task
After recording the calibration data, please login to the [calibration service page](https://console.bce.baidu.com/apollo/calibrator/index/list) to complete the calibration.
1.Enter the calibration service page and click the **New Task** button which in **Task Management** list to create a new calibration task.
2.After entering the creating new task page, you need to fill in a simple description of this task.Then click the **Upload and create a task** button and select the upload calibration file to start uploading the calibration data.
3.After start uploading the data, the page will jump to the task process view. The process figure is the upload progress page. The task will start to calibrate when the upload progress reaches 100%. Please keep the network unblocked during uploading.
4.When the data is uploaded, the Data Verification Process will begin, as shown in Figure 3. The validation process ensures data integrity and suitability. The validation items are:
* Decompress test
* MD5 checksum
* Data format validation
* ∞ symbol path validation
* INS status validation
If validation fails, the corresponding error message is prompted. See the Error Description section below for details.
![](lidar_calibration/images/calib_valid_en.png)
<center>Figure 3. Calibration data verification.</center>
6.After data validation, the calibration process begins, as shown in Figure 4. A detailed calibration progress page is displayed to users. Depending on the size and quality of the data, the overall calibration time lasts about 10-30 minutes. You can enter the page at any time to see the progress of the current task.
![](lidar_calibration/images/calib_progress_en.png)
<center>Figure 4. Calibration progress page.</center>
7.When calibration succeeds, click the **View detail** button to display a stitched point cloud. You can confirm the quality verification by checking the sharpness of the point cloud. If you are satisfied with the calibration quality, you can click **Confirm** to keep the result and download the calibration results by clicking **Download**. This fulfills the completion of the calibration process.
For additional information, see: [How to Check Point Cloud Quality?](https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/lidar_calibration/FAQ2.md)
### Obtaining Calibration Results
1.Before obtaining the calibration results, the service requires that you confirm the quality of the calibration results based on visualized point cloud.
2.After confirming the quality of the calibration result, you can click the **Confirm** button to store the calibration result. After that, you can download the result on the task page. The **Download** button will *not* appear on the task page if the result failed to pass quality verification.
3.Extrinsic file format instruction — The extrinsic is returned to you in a `.yaml` format file. Below is an example of an extrinsic file.
The field meanings shown in this example are defined in Table 2 below.
```bash
header:
seq: 0
stamp:
secs: 1504765807
nsecs: 0
frame_id: novatel
child_frame_id: velodyne64
transform:
rotation:
x: 0.02883904659307384
y: -0.03212457531272153
z: 0.697030811535172
w: 0.7157404339725393
translation:
x: 0.000908140840832566
y: 1.596564931858745
z: 1
```
Table 2. Definition of the keys in the yaml file.
Field | Meaning
------ | -----
`header` | Header information, including timestamps.
`child_frame_id` | Source sensor ID in calibration. Will be HDL-64ES3 here.
`frame_id` | Target sensor ID in calibration. Will be Novatel here.
`rotation`| Rotation part of the extrinsic parameters. Represented by a quaternion.
`translation`| Translation part of the extrinsic parameters.
4.How to use extrinsic parameters?
Enter the following command to create the calibration file directory in the apollo directory:
```bash
mkdir -p modules/calibration/data/[CAR_ID]/
```
Here, **CAR\_ID** is the vehicle ID for calibrating vehicles. Then, copy the downloaded extrinsic yaml file to the corresponding **CAR\_ID** folder. Finally, after you start HMI, select the correct **CAR\_ID** to load the corresponding calibration yaml file.
### Error Description
1. Data unpacking error: The uploaded data is not a valid `tar.gz` file
2. MD5 checksum error: If the MD5 checksum of the uploaded data differs from the MD5 checksum computed by the server side, it could be caused by network transmission problems.
3. Data format error: The uploaded data is not a rosbag, or necessary topics are missing or unexpected topics exist. The server-side calibration program failed to read it.
4. No ∞ symbol path error: No ∞ symbol path was found in the uploaded data. Verify that the recorded data contains at least one ∞ symbol path.
5. INS status error: In the uploaded data, the location does not meet the requirement. Ensure that the INS status is 56 during the data recording.
欢迎使用Apollo传感器标定服务。本文档提供64线激光雷达与组合惯导之间的外参标定服务使用流程。
### 文档概览
1. 服务概述
2. 准备工作
3. 标定数据录制
4. 标定数据上传以及任务创建
5. 标定结果获取
6. 错误说明
### 服务概述
本服务作为Apollo整车传感器标定功能中的一部分,提供Velodyne 64线激光雷达HDL-64ES3与IMU之间的外参标定功能。标定结果可用于将激光雷达检测的障碍物转换至IMU坐标系,进而转到世界坐标系下。标定结果以 `.yaml` 文件形式返回。
### 准备工作
为了更好地使用本服务,请按以下顺序进行准备工作:
1.安装Apollo所支持的64线激光雷达和组合惯性导航系统,下载镜像安装docker环境。
2.开机并启动64线激光雷达以及组合惯导系统。Novatel组合惯导初次上电时需要校准。此时应将车在开阔地带进行直行、左右转弯等操作,直至惯导初始化完成。
3.确认本服务所需传感器数据的topic均有输出。[如何查看传感器有数据输出?](https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/lidar_calibration/FAQ0_cn.md)
本服务所需的topics如下表1所示:
表1. 传感器topic名称
传感器 | Topic名称 | Topic发送频率(Hz)
--- | ------- | --- |
HDL-64ES3 | /apollo/sensor/velodyne64/VelodyneScanUnified | 10
INS | /apollo/sensor/gnss/odometry | 100
INS | /apollo/sensor/gnss/ins_stat | 1
4.确认车辆采集标定数据时的定位状态为56。[如何查看车辆定位状态?](https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/lidar_calibration/FAQ1_cn.md)
5.选择合适的标定场地。
标定的地点需要选择无高楼遮挡、地面平坦、四周有平整的建筑物并且可以进行如图1所示8字轨迹行驶的地方。一个合适的标定场地如图2所示。
![](lidar_calibration/images/trajectory.png)
<center>图1 标定所需车辆行驶的轨迹。</center>
![](lidar_calibration/images/field.png)
<center>图2 标定场地。</center>
### 标定数据录制
准备工作完成后,将车辆驶入标定场地进行标定数据的录制。
1.录制脚本工具为 `apollo/script/lidar_calibration.sh`
2.运行以下命令,开始数据录制工作:
```bash
bash lidar_calibration.sh start_record
```
所录制的bag在 `apollo/data/bag` 目录下。
3.以8字形轨迹驾驶汽车,将车速控制在20-40km/h,并使转弯半径尽量小。行驶的时长3分钟即可,但要保证标定数据至少包含一个完整的8字。
4.录制完成后,输入以下命令结束数据录制:
```bash
bash lidar_calibration.sh stop_record
```
5.随后,程序会检测所录制的bag中是否含有所需的所有topics。检测通过后,会将bag打包成 `lidar_calib_data.tar.gz` 文件,内容包括录制的rosbag以及对应的MD5校验和文件。
### 标定数据上传以及任务创建
录制好标定数据后,登录至[标定服务页面](https://console.bce.baidu.com/apollo/calibrator/index/list)以完成标定。
1.进入标定服务页面,在**任务管理**列表下点击**新建任务**按钮以新建一个标定任务。
2.进入新建任务页面后,需先填写简单的任务描述,然后点击**上传数据并创建任务**按钮,选择上传标定文件,则可以开始进行数据上传。
3.开始上传数据后,页面将跳转至任务流程视图。流程视图图示为上传进度页面,待其到达100%后则可以开始进行标定。上传期间请保持网络畅通。
4.数据上传完毕后,将开始数据校验流程,如图3所示。校验流程可以保证数据完整以及适合标定,校验项目有:
* 数据包解压校验
* MD5校验
* 数据格式校验
* 8字路径与GPS质量校验
* 初始外参评估合格
若数据校验失败,则会提示相应错误。错误的原因请参照错误说明。
![](lidar_calibration/images/calib_valid_cn.png)
<center>图3 标定数据校验流程。</center>
6.校验通过后将开始标定流程,一个标定进度页面会展示给用户,如图4所示。视数据大小和质量的影响,整体标定时间大约持续10-30分钟,用户可以随时进入该页面查看当前任务的标定进度。
![](lidar_calibration/images/calib_progress_cn.png)
<center>图4 标定进度页面。</center>
7.标定完成后,进入人工质检环节。点击[查看]按钮会弹出用于质检的拼接点云,此时可以开始人工质检。若质检通过,则可以点击**确认入库**按钮以保存标定结果。最后,点击**下载数据**按钮来下载标定结果,至此标定流程完成。[如何进行质检?](https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/lidar_calibration/FAQ2_cn.md)
### 标定结果获取
1.获取标定结果前,本服务需要用户根据可视化效果确认标定结果的质量。
2.确认该标定结果质量合格后,用户可点击**确认入库**按钮将标定结果入库。之后可以在任务页面进行下载,未通过质检并入库的标定结果在任务页面不会出现下载地址。
3.外参格式解析。外参以yaml文件形式返回给用户,下面是一个外参结果文件的样例。
表1中说明了几个字段的含义。
```bash
header:
seq: 0
stamp:
secs: 1504765807
nsecs: 0
frame_id: novatel
child_frame_id: velodyne64
transform:
rotation:
x: 0.02883904659307384
y: -0.03212457531272153
z: 0.697030811535172
w: 0.7157404339725393
translation:
x: 0.000908140840832566
y: 1.596564931858745
z: 1
```
表2. 外参YAML文件字段含义
字段 | 含义
---- | ----
header | 头信息,主要包含标定时间
child_frame_id | 所标定的源传感器ID,此时为HDL-64ES3
frame_id | 所标定的目标传感器ID,此时为Novatel
rotation | 以四元数表示的外参旋转部分
translation | 外参的平移部分
4.外参使用方式
首先在`/apollo`目录下输入以下命令创建标定文件目录:
```bash
mkdir -p modules/calibration/data/[CAR_ID]/
```
其中,**CAR\_ID**为标定车辆的车辆ID。然后将下载的外参yaml文件拷贝至对应的**CAR\_ID** 文件夹内。最后,在启动hmi后,选择需正确的**CAR\_ID**即可载入对应的标定yaml文件。
### 错误说明
1. 数据解包错误:上传的数据不是一个合法的 `tar.gz` 文件。
2. MD5校验和错误:上传数据的MD5校验和与服务器端计算的MD5校验和不同,通常由网络传输问题引发。
3. 数据格式错误:上传的数据不是一个rosbag,或者bag里缺少指定的topic或包含其他非指定的topic,服务器端标定程序读取失败。
4. 无8字路径错误:在上传的数据中没有发现8字路径。需要确认录制的数据中是否包含至少一个8字形路径。
5. 组合惯导定位精度不足:在上传的数据中发现定位状态不符合要求。需要确认在录制过程中的定位状态为56。
# Apollo 1.5 Quick Start Guide
This quick start focuses on Apollo 1.5 new features. For general Apollo concepts, please refer to [Apollo 1.0 Quick Start](https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_1_0_quick_start.md)
This quick start focuses on Apollo 1.5 new features. For general Apollo concepts, please refer to [Apollo 1.0 Quick Start](https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_1_0_quick_start.md).
Before doing the following steps, make sure you have calibrated the extrinsic parameters between the LiDAR and the GNSS/INS. For sensor calibration, please refer to [Apollo 1.5 LiDAR calibration guide](https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_1_5_lidar_calibration_guide.md).
## Launch release env Docker Image
......
### How to Check the Sensor Output?
Use the `rostopic` command. For example, type the following command to check the
output of HDL-64ES3:
```bash
rostopic echo /apollo/sensor/velodyne64/VelodyneScanUnified
```
If the topic data is displayed on the terminal, the LiDAR works normally.
\ No newline at end of file
### 如何查看传感器是否有数据输出?
使用 rostopic 命令。例如,查看 HDL-64ES3 的输出,可以在终端中输入:
```bash
rostopic echo /apollo/sensor/velodyne64/VelodyneScanUnified
```
若该 topic 的数据会显示在终端上,则激光雷达工作正常。
### How to Check INS Status?
Using Novatel INS as an example, type the following command to check the INS status:
```bash
rostopic echo /apollo/sensor/gnss/ins_stat
```
Find the `pos_type` field: If the value is 56, it has entered a good positioning status (RTK_FIXED) and can be used for calibration. If it is not 56, reliable calibration results cannot be obtained.
\ No newline at end of file
### 如何查看车辆的定位状态?
以使用 Novatel 组合惯导为例,在终端中输入:
```bash
rostopic echo /apollo/sensor/gnss/ins_stat
```
找到“pos_type”字段,若该字段的值为 56,则表示进入了良好的定位状态 (RTK_FIXED),可以用于标定。若不为 56,则无法获得可靠的标定结果。
\ No newline at end of file
### How to Complete a Quality Inspection?
At present, you complete the quality verification manually with a visual inspection of the results.
When the calibration is completed, the point cloud stitched during the calibration process is provided. In the point cloud, details of the calibration field can be easily identified. Assess the calibration quality for clarity. Look at objects such as building facades, street lights, poles and road curbs. If the point cloud is blurry and a ghosting effect can be found, the calibration is poor. If the calibration result is good, a sharp and clear stitched point cloud is shown.
Figure 1 shows the comparison between the stitched point clouds with good (a) and insufficient(b) calibration quality.
![](/apollo/img/calibration/good_calib.png)
<center>(a)</center>
![](/apollo/img/calibration/poor_calib.png)
<center>(b)</center>
<center>Figure 1 (a) a high quality calibration result (b) an insufficient one.</center>
### 如何进行质检?
目前进行质检方法主要通过人工来完成。标定完成后,页面会提供标定过程中拼接得到的点云。若标定结果良好,会得到锐利和清晰的拼接点云,可反映出标定场地的细节。通常质检的参照物有平整的建筑立面、路灯和电线杆以及路沿等。若标定质量较差,则会使拼接点云出现一些模糊、重影的效果。图1是两张不同标定质量的拼接点云对比。
![](/apollo/img/calibration/good_calib.png)
<center>(a)</center>
![](/apollo/img/calibration/poor_calib.png)
<center>(b)</center>
<center>图1.(a)高质量的标定结果 (b)质量较差的标定结果。</center>
*.png filter=lfs diff=lfs merge=lfs -text
\ No newline at end of file
*.png filter=lfs diff=lfs merge=lfs -text
\ No newline at end of file
# Method for Calibrating Extrinsic Parameters Between Multiple-beam LiDAR and GNSS/INS
## Introduction
In autonomous driving, combining multiple-beam LiDAR and GNSS/INS is a popular sensor configuration for high definition map production, point-cloud-based localization and point-cloud-based object detection. A precise calibration of the extrinsic parameters is necessary for a successful implementation.
In many applications, LiDAR is placed at the top of a vehicle horizontally to acquire 360 degrees field of view, while IMU is aligned with the vehicle axis to simplify the coordinate transformation, as shown in Figure 1. Apollo calibration service is mainly optimized for this type of installation.
![](images/lidar_calibration/install.png)
<center>Figure 1. A typical sensor installation. Red circle represents the top-mounted LiDAR and the square is the IMU.</center>
## Method
In this section, we will introduce the basics of calibrating LiDAR and GNSS/INS.
#### 1. Calculate the initial value of extrinsic parameters by hand-eye calibration
As there is no direct correspondence between LiDAR measurements and GNSS/INS measurements, we need to solve initial value by hand-eye calibration.
For example, assuming that the GNSS/INS pose at time $t_i$ is $T_i^{ins}$ , while at the same time, LiDAR pose from LiDAR odometry or SLAM algorithm is $T_i^{lidar}$, the classic hand-eye calibration is defined as solving $T^{ins}_{lidar}$, such that:
$$T_{i,i+1}^{ins}T_{lidar}^{ins}=T_{lidar}^{ins}T_{i,i+1}^{lidar}, \tag{1}$$
where $T_{i,i+1}^{ins}=T_{i+1}^{ins}(T_{i}^{ins})^{-1}$, $T_{i,i+1}^{lidar}=T_{i+1}^{lidar}(T_{i}^{lidar})^{-1}$ are the relative motions of the two sensors, respectively. As the vehicle motion is approximately planar, the problem can be simplified as follow:
$$(R_{ins}-I)t=Rt_{lidar}-t_{ins}, \tag{2}$$
where $R_{ins}$ and $t_{ins}$ are the rotation and translation of the relative motion of GNSS/INS, $t_{lidar}$ is the translation of LiDAR, respectively, $R$ and $t$ form the extrinsic parameters. Let
$$R=\left(\begin{matrix} cos\theta & -sin\theta\\sin\theta & cos\theta \end{matrix}\right),$$
then Equation (2) becomes:
$$
\left(\begin{array}{c|c} R_{ins}-I & \begin{matrix} -t_{lidar}^x & t_{lidar}^y \\ -t_{lidar}^y & -t_{lidar}^x \end{matrix} \end{array}\right)
\left(\begin{matrix} t^x\\t^y\\cos\theta\\sin\theta\end{matrix}
\right)=-t_{ins}. \tag{3}$$
From Equation (3) we know, a single relative motion places two constraints on four unknowns, so if we have three different motions, the equation is full rank, thus can be solved linearly. In order to collect sufficient constraints when solving initial value and optimizing point cloud alignment in the following section, the algorithm needs the vehicle be driven following the trajectory which looks like ‘8’, as shown in Figure 2.
**Note:** as the vehicle motion is approximately planar, the height between LiDAR and IMU cannot be reliably determined.
![](images/lidar_calibration/trajectory.png)
<center>Figure 2. The trajectory needed for calibration.</center>
#### 2. Point cloud registration based extrinsic parameters optimization
Using the pose from GNSS/INS and initial estimation of extrinsic parameters, the registration of point clouds captured at different places can be conducted. As the initial value is not precise, registration error can be found in the registration point cloud. The error makes the point cloud lack of details and edges blurred. So, the second step of our algorithm is optimizing extrinsic parameters by improving point cloud registration quality. A typical GICP or Entropy cost can be used in this optimization process.
# 多线激光雷达与组合惯导外参标定原理
## 引言
在自动驾驶领域中,多线激光雷达与组合惯导是高精地图制作、激光点云定位以及点云物体检测任务中常用的传感器配置。因此精确标定两者之间的外参数具有非常重要的意义。在许多应用中,激光雷达被水平放置于车顶以获得360度的感知范围,而组合惯导也常与车的对称轴以及水平面对齐以简化坐标系的定义,安装方式如图1所示。Apollo开放的多线激光雷达与组合惯导的外参标定工具将主要针对此类安装方式进行优化。
![](images/lidar_calibration/install.png)
<center>图1. 一种典型的传感器安装方式。红色圆表示激光雷达,红色矩形表示IMU。</center>
## 方法
本节将介绍激光雷达与组合惯导外参标定的基本方法。
#### 1. 通过手眼标定获得外参初值
由于多线激光雷达与组合惯导两者的测量之间没有直接的对应,因此需要使用手眼标定的方法对外参的初值进行求解。假设在 $t_i$ 时刻组合惯导的位置姿态为 $T_i^{ins}$ , 使用激光雷达里程计或者SLAM技术得到多线激光雷达的位置为 $T_i^{lidar}$, 则经典的手眼标定问题为求解 $T^{ins}_{lidar}$, 使得:
$$T_{i,i+1}^{ins}T_{lidar}^{ins}=T_{lidar}^{ins}T_{i,i+1}^{lidar}, \tag{1}$$
其中 $T_{i,i+1}^{ins}=T_{i+1}^{ins}(T_{i}^{ins})^{-1}$, $T_{i,i+1}^{lidar}=T_{i+1}^{lidar}(T_{i}^{lidar})^{-1}$ 是两个传感器的相对运动。由于车辆在近似平面内运动,将问题简化为二维的手眼标定问题,则有以下式子成立:
$$(R_{ins}-I)t=Rt_{lidar}-t_{ins}, \tag{2}$$
其中 $R_{ins}$ 和 $t_{ins}$ 分别是组合惯导相对运动的旋转和平移部分, $t_{lidar}$ 是激光雷达相对运动的平移部分, $R$ 和 $t$ 是外参的旋转和平移。令
$$R=\left(\begin{matrix} cos\theta & -sin\theta\\sin\theta & cos\theta \end{matrix}\right),$$
则有:
$$
\left(\begin{array}{c|c} R_{ins}-I & \begin{matrix} -t_{lidar}^x & t_{lidar}^y \\ -t_{lidar}^y & -t_{lidar}^x \end{matrix} \end{array}\right)
\left(\begin{matrix} t^x\\t^y\\cos\theta\\sin\theta\end{matrix}
\right)=-t_{ins}. \tag{3}$$
因此,一次相对运动能构造两个约束,当有三个以上不同位置朝向的运动时,方程满秩,可线性求解。为了保证初值求解以及第二步优化过程中对外参构成足够的约束,算法要求车辆以8字形状的轨迹行驶,如图2所示。注意到车辆在近似平面内运动,因此无法准确标定激光雷达与组合惯导之间的高度差。
![](images/lidar_calibration/trajectory.png)
<center>图2. 标定所需车辆行驶的轨迹。</center>
#### 2. 基于点云拼接质量的外参优化
通过组合惯导的位置姿态信息,结合第一部分求得的外参初值,可以对激光雷达采集的点云进行拼接。由于初值求解误差的存在,不同位置采集的点云拼接后存在对齐误差。具体表现为拼接点云视觉效果模糊、场景中的边缘结构不锐利。为此,算法第二部分将利用优化拼接的方法对外参进行优化。使用经典的GICP以及Entropy的代价函数即可。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册