定位(Localization)启动文件#
概述#
Autoware 定位(Localization)堆栈启动
正如我们在 [Launch Autoware] 中提到的,以 autoware_launch.xml 启动(../index.md) 页面.
autoware_launch 套餐包括 tier4_localization_component.launch.xml
用于从 autoware_launch.xml 启动定位(Localization)启动文件调用.
此图描述了 autoware_launch 和 autoware_universe 包中的一些 Autoware 定位(Localization)启动文件流.
注意
Autoware 项目是一个大型项目. 因此,当我们管理 Autoware 项目时,我们会使用特定的 参数. ROS 2 为这些启动文件提供了参数覆盖功能. 有关更多信息,请参阅 官方 ROS 2 启动文档. 例如 如果我们在顶级启动中定义一个参数, 它将覆盖较低级别启动时的值.
tier4_localization_component.launch.xml#
tier4_localization_component.launch.xml 启动文件是 autoware_launch 包中的主要定位(Localization)组件启动文件.
此启动文件在 autoware_universe 存储库的 tier4_localization_launch 包中调用 localization.launch.xml.
我们可以在 tier4_localization_component.launch.xml 修改定位(Localization)启动参数.
TIER IV 实现的当前定位启动器支持多种定位方法,包括姿势估计器和扭曲估计器.
tier4_localization_component.launch.xml 有两个参数来选择要启动的估计器:
-
pose_source:此参数指定了pose_estimator,目前支持ndt(默认)、yabloc、artag和eagleye进行定位(Localization). 默认情况下,Autoware 会为姿势估计器启动 ndt_scan_matcher. 您可以将 YabLoc 用作基于相机的定位方法. 有关 YabLoc 的更多详细信息, 请参阅 autoware_universe 的 YabLoc 的 README of YabLoc. 此外,您可以将Eagleye用作基于GNSS & IMU &轮式里程计的定位方法.有关 Eagleye 的更多详细信息,请参阅 Eagleye.你可以在
tier4_localization_component.launch.xml上设置pose_source参数, 例如,如果您想使用 Eagleye 作为pose_source, 您需要更新tier4_localization_component.launch.xml,如下所示:- <arg name="pose_source" default="ndt" description="select pose_estimator: ndt, yabloc, eagleye"/> + <arg name="pose_source" default="eagleye" description="select pose_estimator: ndt, yabloc, eagleye"/>此外,您还可以使用命令行覆盖启动参数:
ros2 launch autoware_launch autoware.launch.xml ... pose_source:=eagleye
-
twist_source:此参数指定当前支持gyro_odom(默认) 和eagleye的 twist_estimator. 默认情况下, Autoware 为 Twist Estimator 启动 gyro_odometer. 另外,你可以使用 eagleye 作为 twist 源,请参考 Eagleye. 如果您想将 Twist 源更改为 eagleye,您可以更新tier4_localization_component.launch.xml,如下所示:- <arg name="twist_source" default="gyro_odom" description="select twist_estimator. gyro_odom, eagleye"/> + <arg name="twist_source" default="eagleye" description="select twist_estimator. gyro_odom, eagleye"/>或者,您可以使用命令行覆盖启动参数:
ros2 launch autoware_launch autoware.launch.xml ... twist_source:=eagleye
-
input_pointcloud:此参数指定定位(Localization)点云管道的输入点云.默认值为/sensing/lidar/top/outlier_filtered/pointcloud是 Sensing 的 PointCloud Pre-processing 管道的输出. 您可以根据您的 LiDAR 主题名称更改此值, 或者您可以选择使用串联点云:- <arg name="input_pointcloud" default="/sensing/lidar/top/outlier_filtered/pointcloud" description="The topic will be used in the localization util module"/> + <arg name="input_pointcloud" default="/sensing/lidar/concatenated/pointcloud"/>
您可以添加所有必要的参数
以 tier4_localization_component.launch.xml 启动文件,就像这些示例一样.
如果您想更改陀螺仪里程表扭转输入主题,
您可以在 tier4_localization_component.launch.xml 启动文件上添加此参数:
+ <arg name="input_vehicle_twist_with_covariance_topic" value="<YOUR-VEHICLE-TWIST-TOPIC-NAME>"/>
注意: 速度转换器包提供的陀螺仪里程表输入主题. 此软件包将于 sensor_kit 推出.有关更多信息, 请查看 速度转换器套件.
使用非 NDT 位姿估计器时的注意事项#
注意
由于 NDT 是目前最常用的pose_estimator,因此默认情况下会注册 NDT 诊断以进行监控. 当使用 NDT 以外的 pose_estimator 时,NDT 诊断将始终标记为过时,从而导致系统进入safe_fault状态. 根据紧急情况的参数,这可能会升级为完全紧急情况,从而阻止自动驾驶.
要解决此问题,请修改 system_error_monitor 的配置文件.
在 system_error_monitor.param.yaml 文件中,/autoware/localization/performance_monitoring/matching_score 表示 NDT 的聚合诊断.
为了防止在未启动 NDT 时出现紧急情况,请从配置中删除此条目.
请注意,模块名称 /performance_monitoring/matching_score 在 diagnostics_aggregator/localization.param.yaml 中指定.