Skip to content

将 Eagleye 与 Autoware 结合使用#

本页将介绍如何设置 Eagleye 以便与 Autoware 一起使用. 有关集成提案的详细信息,请参阅 此讨论.

什么是 Eagleye?#

Eagleye 是一个基于 GNSS/IMU 的开源定位器,最初由 MAP IV.Inc.它通过使用低成本的 GNSSIMU 传感器来提供车辆位置、方向和高度信息,为 LiDAR 和基于点云的定位提供了一种经济高效的替代方案.

依赖#

以下软件包在安装 Autoware 时会自动安装,因为它们列在 autoware.repos 中.

  1. Eagleye (autoware-main 分支)
  2. RTKLIB ROS Bridge (ros2-v0.1.0 分支)
  3. LLH Converter (ros2 分支)

架构#

Eagleye 可以通过两种方式在 Autoware 定位(Localization)堆栈中使用:

  1. 仅将 twist 馈入 EKF 定位器.

    Eagleye Twist 集成

  2. 将 Eagleye 的扭曲和姿势馈送到 EKF 定位器中(扭曲也可以与常规 gyro_odometry 一起使用).

    Eagleye 姿势扭曲集成

注意:使用 Eagleye 作为姿态估计器时,需要进行 RTK 定位. 另一方面,在将其用作扭曲估计器时,它不是强制性的.

要求#

Eagleye 需要 GNSSIMU 和车速作为输入.

IMU 主题#

sensor_msgs/msg/Imu 支持 Eagleye IMU 输入.

车速主题#

geometry_msgs/msg/TwistStampedgeometry_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/NavSatFixgeometry_msgs/msg/TwistWithCovarianceStamped Eagleye 在默认设置下需要.
septentrio_gnss_driver 设置 publish.navsatfixpublish.twist 在配置文件中 gnss.yamltrue

用于集成到您的车辆中的参数修改#

主题名称和主题类型#

用户必须在 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

传感器频率#

此外,GNSSIMU 的频率必须在 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 定位可用的环境中开始运行后,初始位置估计(动态初始化)可能需要几秒钟才能完成.