将 Eagleye 与 Autoware 结合使用#
本页将介绍如何设置 Eagleye 以便与 Autoware 一起使用. 有关集成提案的详细信息,请参阅 此讨论.
什么是 Eagleye?#
Eagleye 是一个基于 GNSS/IMU 的开源定位器,最初由 MAP IV.Inc.它通过使用低成本的 GNSS 和 IMU 传感器来提供车辆位置、方向和高度信息,为 LiDAR 和基于点云的定位提供了一种经济高效的替代方案.
依赖#
以下软件包在安装 Autoware 时会自动安装,因为它们列在 autoware.repos 中.
- Eagleye (autoware-main 分支)
- RTKLIB ROS Bridge (ros2-v0.1.0 分支)
- LLH Converter (ros2 分支)
架构#
Eagleye 可以通过两种方式在 Autoware 定位(Localization)堆栈中使用:
-
仅将 twist 馈入 EKF 定位器.
-
将 Eagleye 的扭曲和姿势馈送到 EKF 定位器中(扭曲也可以与常规
gyro_odometry一起使用).
注意:使用 Eagleye 作为姿态估计器时,需要进行 RTK 定位. 另一方面,在将其用作扭曲估计器时,它不是强制性的.
要求#
Eagleye 需要 GNSS、IMU 和车速作为输入.
IMU 主题#
sensor_msgs/msg/Imu 支持 Eagleye IMU 输入.
车速主题#
geometry_msgs/msg/TwistStamped 和 geometry_msgs/msg/TwistWithCovarianceStamped 支持输入车速.
GNSS 主题#
Eagleye 需要 GNSS 接收器生成的纬度/经度高度和多普勒速度. 您的 GNSS ROS 驱动程序必须发布以下消息:
sensor_msgs/msg/NavSatFix: 此消息包含纬度、经度和高度信息.-
geometry_msgs/msg/TwistWithCovarianceStamped: 此消息包含 gnss 多普勒速度信息.Eagleye 已经过以下示例 GNSS ROS 驱动程序的测试:ublox_gps 和 septentrio_gnss_driver.每个驱动程序所需的设置如下:
| GNSS ROS 驱动程序 | 修改 |
|---|---|
| ublox_gps | 不需要其他设置.它发布 sensor_msgs/msg/NavSatFix 和 geometry_msgs/msg/TwistWithCovarianceStamped Eagleye 在默认设置下需要. |
| septentrio_gnss_driver | 设置 publish.navsatfix 和 publish.twist 在配置文件中 gnss.yaml 为 true |
用于集成到您的车辆中的参数修改#
主题名称和主题类型#
用户必须在 eagleye_config.yaml 中正确指定 GNSS 纬度、经度和高度、GNSS 多普勒速度、IMU 和车速的输入主题.
# Topic
twist:
twist_type: 1 # TwistStamped : 0, TwistWithCovarianceStamped: 1
twist_topic: /sensing/vehicle_velocity_converter/twist_with_covariance
imu_topic: /sensing/imu/tamagawa/imu_raw
gnss:
velocity_source_type: 2 # rtklib_msgs/RtklibNav: 0, nmea_msgs/Sentence: 1, ublox_msgs/NavPVT: 2, geometry_msgs/TwistWithCovarianceStamped: 3
velocity_source_topic: /sensing/gnss/ublox/navpvt
llh_source_type: 2 # rtklib_msgs/RtklibNav: 0, nmea_msgs/Sentence: 1, sensor_msgs/NavSatFix: 2
llh_source_topic: /sensing/gnss/ublox/nav_sat_fix
传感器频率#
此外,GNSS 和 IMU 的频率必须在 eagleye_config.yaml 中设置
common:
imu_rate: 50
gnss_rate: 5
从固定到姿势的转换#
将 sensor_msgs/msg/NavSatFix 转换为 geometry_msgs/msg/PoseWithCovarianceStamped 的参数在 geo_pose_converter.launch.xml 中列出.
如果您使用其他大地水准面或投影类型,请更改这些参数.
其他参数#
其他参数在 这里 中描述. 基本上,这些不需要更改.
初始化注意事项#
Eagleye 需要一个初始化过程才能正常运行.
如果不进行初始化,twist 的输出将采用原始值,并且姿势数据将不可用.
1. 静态初始化#
第一步是静态初始化,包括让 Eagleye 在启动后保持静止大约 5 秒,以估计偏航速率偏移.
2. 动态初始化#
下一步是动态初始化,包括沿直线运行 Eagleye 大约 30 秒.此过程估计轮速和方位角的比例因子.
动态初始化完成后,Eagleye 将能够提供校正后的扭曲和姿势数据.
如何检查初始化进度#
- TODO
关于地理配准地图的注释#
请注意,如果您使用的地图未正确进行地理配准,则输出位置可能不在点云地图中. 对于单个 GNSS 天线,在 GNSS 定位可用的环境中开始运行后,初始位置估计(动态初始化)可能需要几秒钟才能完成.