Urban environment evaluation
介绍#
相关链接#
数据收集文档 --> https://autowarefoundation.github.io/autoware-documentation/main/datasets/#istanbul-open-dataset
目的#
该测试的目的是查看当前基于 NDT 的默认自动软件定位系统在城市环境中的性能并评估其结果.我们的期望是看到定位(Localization)的不足,并了解我们需要改进哪些情况.
测试环境#
测试数据是在伊斯坦布尔收集的.它还包括一些可能难以定位(Localization)的场景,例如隧道和桥梁.您可以在下图中找到标记的整个路线.
测试数据集 & 地图#
测试和映射数据集是相同的,并且数据集包含来自便携式映射工具包的数据,用于一般映射目的.
数据包含来自以下传感器的数据:
- 1 x Applanix POS LVX GNSS/INS System
- 1 x Hesai Pandar XT32 LiDAR
您可以在此 文档 中找到为测试和映射而收集的数据.
注意 !
由于在所有这些测试中都没有来自飞行器的速度源,因此来自 GNSS/INS 的扭曲信息被赋予ekf_localizer作为线性和角速度源. 为了了解在隧道中 GNSS/INS 误差增加的情况下这是否会增加误差,以及它如何影响系统,通过仅给出来自 NDT 的姿态,而不给出该速度来测试隧道中的定位ekf_localizer.
本次测试的视频是 这里. 从视频中可以看出,当没有给出速度时,隧道中的定位恶化得更快. 还可以预测,如果给出 IMU Twist 消息 (/localization/twist_estimator/twist_with_covariance) 与来自车辆的线速度的组合,而不是 GNSS/INS Twist 消息,则隧道中的性能将提高.但是,不能对当前数据进行此测试.
预期测试#
1.) 首先,它旨在检测定位完全中断的点,并粗略控制定位.
2.) 通过提取指标,旨在具体了解定位(Localization)错误增加了多少以及性能水平如何.
如何重现测试#
使用原始数据进行测试#
如果您使用原始数据进行测试,则需要按照这些 使用原始数据进行测试 说明进行作.由于您需要对本测试中的输入数据重复所有预处理作,因此需要通过切换到传感器套件和各个 params 存储库中的测试分支来进行测试.您可以按照以下说明执行这些步骤.
安装#
1.) 下载并解压缩测试地图文件.
- 您也可以手动下载 地图.
mkdir ~/autoware_ista_map
gdown --id 1WPWmFCjV7eQee4kyBpmGNlX7awerCPxc -O ~/autoware_ista_map/
注意 !
您还需要将lanelet2_map.osm文件添加到autoware_ista_map文件夹.由于在 ,您可以通过将任何lanelet2_map.osm文件放在此文件夹中来运行它.
2.) 下载测试 rosbag 文件.
- 您也可以手动下载 rosbag 文件.
mkdir ~/autoware_ista_data
gdown --id 1uta5Xr_ftV4jERxPNVqooDvWerK0dn89 -O ~/autoware_ista_data/
准备要测试的 Autoware#
1.) Checkout autoware_launch:
cd ~/autoware/src/launcher/autoware_launch/
git remote add autoware_launch https://github.com/meliketanrikulu/autoware_launch.git
git remote update
git checkout evaluate_localization_issue_7652
2.) Checkout individual_params:
cd ~/autoware/src/param/autoware_individual_params/
git remote add autoware_individual_params https://github.com/meliketanrikulu/autoware_individual_params.git
git remote update
git checkout evaluate_localization_issue_7652
3.) Checkout sample_sensor_kit_launch:
cd ~/autoware/src/sensor_kit/sample_sensor_kit_launch/
git remote add sample_sensor_kit_launch https://github.com/meliketanrikulu/sample_sensor_kit_launch.git
git remote update
git checkout evaluate_localization_issue_7652
4.) Compile updated packages:
cd ~/autoware
colcon build --symlink-install --packages-select sample_sensor_kit_launch autoware_individual_params autoware_launch common_sensor_launch
启动 Autoware#
source ~/autoware/install/setup.bash
ros2 launch autoware_launch logging_simulator.launch.xml map_path:=~/autoware_ista_map/ vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
运行 Rosbag#
source ~/autoware/install/setup.bash
ros2 bag play ~/autoware_ista_data/rosbag2_2024_09_11-17_53_54_0.db3
仅定位(Localization)测试#
如果您只想查看定位(Localization)性能,请按照 仅定位(Localization)测试 说明进行作.对于只想执行定位(Localization)测试的用户,已为此测试创建了第二个测试包文件和一个单独的启动文件.您可以按照以下说明执行此测试.
安装#
1.) 下载并解压缩测试地图文件.
- 您也可以手动下载 地图.
mkdir ~/autoware_ista_map
gdown --id 1WPWmFCjV7eQee4kyBpmGNlX7awerCPxc -O ~/autoware_ista_map/
注意 !
您还需要将lanelet2_map.osm文件添加到autoware_ista_map文件夹.由于在 ,您可以通过将任何lanelet2_map.osm文件放在此文件夹中来运行它.
2.) 下载测试 rosbag 文件.
- 您也可以手动下载 定位(Localization) rosbag 文件.
mkdir ~/autoware_ista_data
gdown --id 1yEB5j74gPLLbkkf87cuCxUgHXTkgSZbn -O ~/autoware_ista_data/
准备要测试的 Autoware#
1.) Checkout autoware_launch:
cd ~/autoware/src/launcher/autoware_launch/
git remote add autoware_launch https://github.com/meliketanrikulu/autoware_launch.git
git remote update
git checkout evaluate_localization_issue_7652
2.) 编译更新的软件包:
cd ~/autoware
colcon build --symlink-install --packages-select autoware_launch
启动 Autoware#
source ~/autoware/install/setup.bash
ros2 launch autoware_launch urban_environment_localization_test.launch.xml map_path:=~/autoware_ista_map/
运行 Rosbag#
source ~/autoware/install/setup.bash
ros2 bag play ~/autoware_ista_data/rosbag2_2024_09_12-14_59_58_0.db3
测试结果#
测试 1:简单的定位(Localization)测试#
简而言之,测试了定位在城市环境中的工作原理,并将结果记录在视频中.
这是 测试视频.
https://github.com/user-attachments/assets/e0f7edbf-0596-4806-8dcd-b4156584e4c0 width=
60% >
从视频中我们可以看到,沿欧亚大陆隧道的纵轴存在定位错误.正如预期的那样,基于 NDT 的定位在这里无法正常工作.然而,由于 NDT 分数无法检测到这里的失真,因此直到隧道结束才完全中断定位.在隧道出口处,定位完全中断.车辆离开隧道后,我重新初始化了定位.
从这一点开始,我们继续讨论 bridge 场景.这是连接博斯普鲁斯海峡的桥梁之一,也是我们路线上最长的桥梁.在这方面,我们也认为基于 NDT 的定位可能会受到干扰.但是,我没有观察到任何中断.
在这部分之后是另一条隧道(Kagithane - Bomonti),定位行为类似于欧亚大陆隧道.但是,在此隧道的出口处,它会自行恢复定位,而无需重新初始化.
测试 1 总结#
总之,我们的测试路线出现明显恶化的地方是隧道.这已经是意料之中的了.除此之外,我们预计桥梁上可能会出现问题,但我没有观察到桥梁上的定位有任何恶化.当然,此时提醒您这些测试是使用单个数据进行的.
测试 2:将结果与 Ground Truth 进行比较#
1.) 无损检测评分是如何变化的?
沿途,只有在最长的隧道 Eurasia Tunnel 的一小段中,无损检测分数一直低于预期值.然而,路线上的两条隧道的定位都出现了明显的恶化.作为这项测试的结果,我们发现我们无法测试 NDT 分数的问题.您可以在下图中看到 NDT 分数沿路线的变化情况.在查看视觉对象时,让我们记住 NDT 分数阈值被接受为 2.3.
NDT 分数(最接近的体素转换可能性)阈值 = 2.3
2.) 与 Ground Truth 比较
地面实况:在这些测试中,后处理的 GNSS / INS 数据被用作地面实况.由于此 Ground Truth 数据的误差在隧道环境中也会减小,因此有必要通过考虑 Ground Truth 误差来评估这些区域.
在这些测试中,我将 NDT 和 EKF 暴露与 Ground Truth 进行了比较,并展示了结果.我将下面的测试结果以 png 格式共享.但是,如果您想更详细地检查这些数据,我创建了一个可执行文件供您可视化和仔细查看.您可以从 这里 访问此可执行文件.目前此链接中只有一个适用于 Ubuntu 的版本,但我也计划为 Windows 添加它.
您需要按照以下步骤作:
cd /your/path/show_evaluation_ubuntu
./pose_main
您还可以通过更改 /configs/evaluation_pose.yaml 来更新配置
2d 弹道 :
2D 错误 :
3D 弹道:
3D 错误:
横向误差:
纵向误差:
Roll-Pitch-Yaw:
Roll-Pitch-Yaw 错误:
X-Y-Z:
X-Y-Z 错误: