Skip to content

Urban environment evaluation

介绍#

相关链接#

数据收集文档 --> https://autowarefoundation.github.io/autoware-documentation/main/datasets/#istanbul-open-dataset

目的#

该测试的目的是查看当前基于 NDT 的默认自动软件定位系统在城市环境中的性能并评估其结果.我们的期望是看到定位(Localization)的不足,并了解我们需要改进哪些情况.

测试环境#

测试数据是在伊斯坦布尔收集的.它还包括一些可能难以定位(Localization)的场景,例如隧道和桥梁.您可以在下图中找到标记的整个路线. ist_dataset_route_3_resized

测试数据集 & 地图#

测试和映射数据集是相同的,并且数据集包含来自便携式映射工具包的数据,用于一般映射目的.

数据包含来自以下传感器的数据:

  • 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 文件.

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 文件.

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_nvtl drawio

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_Trajectory drawio

2D 错误 : 2d_error

3D 弹道: 3d_trajectory

3D 错误: 3d_error

横向误差:

lateral_error

纵向误差: longitudinal_error

Roll-Pitch-Yaw: rpy

Roll-Pitch-Yaw 错误: rpy_error

X-Y-Z: xyz

X-Y-Z 错误:

xyz_error