diff --git a/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_multi_lidar_config.jpg b/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_multi_lidar_config.jpg new file mode 100644 index 0000000000000000000000000000000000000000..324b3faefd8d1cc8ac0573d20f78f43ceb13d52c Binary files /dev/null and b/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_multi_lidar_config.jpg differ diff --git a/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_main_sensor_1.jpg b/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_main_sensor_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce3f4e6b4b6a6b7f1249789fd0bdc7a43efbab22 Binary files /dev/null and b/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_main_sensor_1.jpg differ diff --git a/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_main_sensor_1.png b/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_main_sensor_1.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb6f4fde49c018dcf4db3758dcfb9fa8bf90f17 Binary files /dev/null and b/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_main_sensor_1.png differ diff --git a/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_trans_1.jpg b/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_trans_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..29b3bce7bc6cab84b24008ea6f41d2f4dc72ebe4 Binary files /dev/null and b/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_trans_1.jpg differ diff --git a/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_trans_2.jpg b/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_trans_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ec7c9596e66dfec0f61da5c211061adae457352d Binary files /dev/null and b/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_set_trans_2.jpg differ diff --git a/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_tree2.png b/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_tree2.png deleted file mode 100644 index 391a789342026e89473f6e4223a349b550cc606d..0000000000000000000000000000000000000000 Binary files a/docs/D-kit/Lidar_Based_Auto_Driving/images/lidar_calibration_tree2.png and /dev/null differ diff --git a/docs/D-kit/Lidar_Based_Auto_Driving/images/sensor_calibration_set_translation.jpg b/docs/D-kit/Lidar_Based_Auto_Driving/images/sensor_calibration_set_translation.jpg new file mode 100644 index 0000000000000000000000000000000000000000..df843b893e0687430c774a9d99689e85181881cf Binary files /dev/null and b/docs/D-kit/Lidar_Based_Auto_Driving/images/sensor_calibration_set_translation.jpg differ diff --git a/docs/D-kit/Lidar_Based_Auto_Driving/images/sensor_caliration_main_sensor.jpg b/docs/D-kit/Lidar_Based_Auto_Driving/images/sensor_caliration_main_sensor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12361d8b8dcf62de9fa810607324295d2e5bff8e Binary files /dev/null and b/docs/D-kit/Lidar_Based_Auto_Driving/images/sensor_caliration_main_sensor.jpg differ diff --git a/docs/D-kit/Lidar_Based_Auto_Driving/sensor_calibration_cn.md b/docs/D-kit/Lidar_Based_Auto_Driving/sensor_calibration_cn.md index 9d8e6536b4f62a3508ae4b31228099b4db21cfb3..a2b4d984a32b43fb8f0594991d9e8914afbf9f60 100644 --- a/docs/D-kit/Lidar_Based_Auto_Driving/sensor_calibration_cn.md +++ b/docs/D-kit/Lidar_Based_Auto_Driving/sensor_calibration_cn.md @@ -24,9 +24,8 @@ - [3. 获取标定结果验证及标定外参文件](#3-获取标定结果验证及标定外参文件) - [NEXT](#next) - [常见问题](#常见问题) - - [1. 提交后,显示`UNAUTHORIZED`,如下图所示](#1-提交后显示unauthorized如下图所示) - - [2. 进行`Sensor Calibration`任务后,邮件显示任务失败](#2-进行sensor-calibration任务后邮件显示任务失败) - - [3. 标定结果效果较差](#3-标定结果效果较差) + - [1. 进行`Sensor Calibration`任务后,邮件显示任务失败](#1-进行sensor-calibration任务后邮件显示任务失败) + - [2. 标定结果效果较差](#2-标定结果效果较差) ## 概览 该用户手册旨在帮助用户完成激光雷达的标定(Lidar-IMU) @@ -131,7 +130,7 @@ IMU坐标系原点位于IMU的几何中心上(中心点在Z轴方向上的位置 #### 1. 按照目录结构放置好Lidar-GNSS标定数据包 -复制[sensor_calibration目录](../../Apollo_Fuel/examples/)(路径为 docs/specs/Apollo_Fuel/examples/sensor_calibration/)并放置于apollo根目录下,其目录结构如下: +复制[sensor_calibration目录](../../Apollo_Fuel/examples/)(路径为 docs/Apollo_Fuel/examples/sensor_calibration/)并放置于apollo根目录下,其目录结构如下: ``` . @@ -153,10 +152,15 @@ IMU坐标系原点位于IMU的几何中心上(中心点在Z轴方向上的位置 #### 2. 修改抽取工具配置文件 lidar_to_gnss.config -根据实际情况,修改配置文件`lidar_to_gnss.config`中预处理数据产出目录(output_path)和待处理数据包目录(record_path),参考下图: +根据实际情况,修改配置文件`lidar_to_gnss.config`中预处理数据产出目录(output_path)和待处理数据包目录(record_path),单激光雷达标定文件配置参考下图: ![lidar_calibration_config](images/lidar_calibration_config.png) +如果是多激光雷达标定,配置文件中还需要补充一下雷达点云channel信息,如下图所示(这里以3lidar标定为例): + + +![lidar_calibration_config](images/lidar_calibration_multi_lidar_config.jpg) + **注意**:以上目录需要指定绝对路径。 #### 3. 运行数据抽取工具 @@ -170,13 +174,83 @@ budaoshi@in_dev_docker:/apollo/modules/tools/sensor_calibration$ python extract_ **注意**:--config参数指定了配置文件路径,必须为绝对路径,用户根据情况自行修改。 - 等待终端中显示`Data extraction is completed successfully!`的提示代表数据提取成功,提取出的数据被存储到配置文件中指定的`output_path`路径下。运行数据抽取工具后的目录如下图红框所示: + 等待终端中显示`Data extraction is completed successfully!`的提示代表数据提取成功,提取出的数据被存储到配置文件中指定的`output_path`路径下。运行数据抽取工具后的目录如下所示: - ![lidar_calibration_tree2](images/lidar_calibration_tree2.png) +单激光雷达运行数据提取提供工具后生成的目录结构如下所示: + +``` +lidar_to_gnss/ +├── extracted_data +│   ├── lidar_to_gnss-2020-10-27-20-26 +│   │   ├── multi_lidar_to_gnss_calibration +│   │   │   ├── _apollo_localization_pose +│   │   │   ├── _apollo_sensor_velodyne16_PointCloud2 +│   │   │   └── sample_config.yaml +│   │   └── tmp +│   │   ├── _apollo_localization_pose +│   │   ├── _apollo_sensor_velodyne16_PointCloud2 +│   │   └── velodyne16_sample_config.yaml +│   └── readme.txt +├── lidar_to_gnss.config +└── records + ├── 20200723180717_multi_lidar.record.00000 + └── readme.txt +``` + +多激光雷达运行数据提取提供工具后生成的目录结构示例如下所示(这里以3激光雷达标定为例): + +``` +lidar_to_gnss/ +├── extracted_data +│   ├── lidar_to_gnss-2020-10-27-20-26 +│   │   ├── multi_lidar_to_gnss_calibration +│   │   │   ├── _apollo_localization_pose +│   │   │   ├── _apollo_sensor_lidar16_back_PointCloud2 +│   │   │   ├── _apollo_sensor_lidar16_left_PointCloud2 +│   │   │   ├── _apollo_sensor_lidar16_right_PointCloud2 +│   │   │   └── sample_config.yaml +│   │   └── tmp +│   │   ├── _apollo_localization_pose +│   │   │   ├── _apollo_sensor_lidar16_back_PointCloud2 +│   │   │   ├── _apollo_sensor_lidar16_left_PointCloud2 +│   │   │   ├── _apollo_sensor_lidar16_right_PointCloud2 +│   │   └── velodyne16_sample_config.yaml +│   └── readme.txt +├── lidar_to_gnss.config +└── records + ├── 20200723180717_multi_lidar.record.00000 + └── readme.txt +``` + + #### 4. 修改云标定配置文件 sample_config.yaml -修改数据抽取工具生成的sample_config.yaml文件。把前面步骤手动测量的Lidar-GNSS标定初始外参信息填入,仅需要填写`translation`字段。修改完之后把`lidar16_to_gnss_calibration`目录准备后续待用。 +单激光雷达标定时`sample_config.yaml`文件的修改: +- 添加`main_sensor`字段信息:`main_sensor`字段需要填写激光雷达的名称(单激光雷达标定的情况下,main_sensor与source_sensor相同),参考示例如下图所示 + + ![lidar_calibration_set_main_sensor_1](images/lidar_calibration_set_main_sensor_1.jpg) + +- 填写`transform`信息 +把前面步骤手动测量的Lidar-GNSS标定初始外参信息填入,仅需要填写`translation`字段,`rotation`使用默认值即可 + ![lidar_calibration_set_trans_1.jpg](images/lidar_calibration_set_trans_1.jpg) + + +多激光雷达标定时`sample_config.yaml`文件的修改 +- 添加`main_sensor`字段信息: +`main_sensor`字段需要填写主激光雷达的名称(一般默认车顶的激光雷达为主雷达,从`source_sensor`的雷达中将主激光雷达名称填入`main_sensor`字段),参考示例如下图所示 + + ![lidar_calibration_set_main_sensor_1.png](images/lidar_calibration_set_main_sensor_1.png) + + +- 填写`transform`信息 +需要分别测量3个激光雷达和IMU之间的初始位置,并填入`transform`字段,一个示例如下所示: + + ![lidar_calibration_set_trans_2.jpg](images/lidar_calibration_set_trans_2.jpg) + + + + ## 使用标定云服务生成外参文件 @@ -186,7 +260,25 @@ budaoshi@in_dev_docker:/apollo/modules/tools/sensor_calibration$ python extract_ 在BOS bucket中新建目录sensor_calibration,作为后续云标定服务读取数据的`Input Data Path`,把前面预处理生成的数据拷贝至该目录。目录结构如下: -![lidar_calibration_tree3](images/lidar_calibration_tree3.png) +BOS bucket中单激光雷达的目录结构: +``` +sensor_calibration/ +└── multi_lidar_to_gnss_calibration + ├── _apollo_localization_pose + ├── _apollo_sensor_velodyne16_PointCloud2 + └── sample_config.yaml +``` + +BOS bucket中多激光雷达的目录结构(以三激光雷达为例): +``` +sensor_calibration/ +└── multi_lidar_to_gnss_calibration +│   │   ├── _apollo_localization_pose +│   │   ├── _apollo_sensor_lidar16_back_PointCloud2 +│   │   ├── _apollo_sensor_lidar16_left_PointCloud2 +│   │   ├── _apollo_sensor_lidar16_right_PointCloud2 +│   │   └── sample_config.yaml +``` #### 2. 提交云标定任务 @@ -215,21 +307,16 @@ budaoshi@in_dev_docker:/apollo/modules/tools/sensor_calibration$ python extract_ **Lidar-GNSS标定外参文件**: -确认邮件得到的外参文件合理后,将邮件发送的外参文件的`rotation`、`translation`的值替换掉`modules/calibration/data/dev_kit/velodyne_params/velodyne16_novatel_extrinsics.yaml`中对应的`rotation`、`translation`值。注意不要修改`frame_id`、不要直接替换文件。 +确认邮件得到的外参文件合理后,将邮件发送的外参文件的`rotation`、`translation`的值替换掉`modules/calibration/data/dev_kit/lidar_params/velodyne16_novatel_extrinsics.yaml`中对应的`rotation`、`translation`值。注意不要修改`frame_id`、不要直接替换文件。 ## NEXT 现在,您已经完成激光雷达感知设备标定,接下来可以开始[封闭园区自动驾驶搭建--虚拟车道线制作](virtual_lane_generation_cn.md) ## 常见问题 -#### 1. 提交后,显示`UNAUTHORIZED`,如下图所示 - -![lidar_calibration_unauthorized](images/lidar_calibration_unauthorized.png) - -出现该问题,一般是`Partner ID`输入有误 -#### 2. 进行`Sensor Calibration`任务后,邮件显示任务失败 +#### 1. 进行`Sensor Calibration`任务后,邮件显示任务失败 建议检查一下输入路径是否正确 -#### 3. 标定结果效果较差 +#### 2. 标定结果效果较差 - 标定时,确保GNSS信号状态良好,周围有轮廓清晰的静态障碍物 - 保证传感器的安装精度,安装误差超过要求精度时,标定结果不容易收敛 - 标定时,不要距离有效静态障碍物太远