待补充
MapIV/eagleye
机器人
3/5
🧩 软硬件结合
已发布
项目简介
Precise localization based on GNSS and IMU.
Eagleye 是一款专注于车辆高精度定位的开源软件,核心功能是利用 GNSS(全球导航卫星系统)和 IMU(惯性测量单元)实现稳定、准确的车辆位置与姿态估计。该项目由日本名城大学机械信息系统实验室(Meguro Lab)的研究成果转化而来,目前处于 Alpha 版本阶段。Eagleye 主要解决了在城市峡谷、隧道等 GNSS 信号易受遮挡或干扰的环境中,传统单一定位方式精度不足的问题。它通过融合 GNSS 多普勒观测值与 IMU 数据,并结合车轮速度传感器(从 CAN 总线获取)的信息,实现了车道级别的定位精度。其技术栈基于 ROS 2(机器人操作系统),并依赖 RTKLIB 进行 GNSS 原始数据解算,同时集成了 nmea_ros_bridge 等通信桥接模块。推荐搭配 Septentrio Mosaic 系列 GNSS 接收机、Tamagawa 或 ADI 的工业级 IMU 使用。Eagleye 的算法流程清晰,通过订阅 /navsat/nmea_sentence、/imu/data_raw、/can_twist 等主题,输出高频率的定位结果。该软件特别适用于自动驾驶汽车、高级驾驶辅助系统(ADAS)以及需要高可靠性定位的移动机器人平台。用户可以通过提供的示例数据包快速体验其效果,也支持实时运行配置。尽管仍处于早期开发阶段,Eagleye 已展现出在低成本传感器组合下实现高精度定位的潜力,为开源社区在车辆定位领域提供了一个有价值的参考实现。
标签
项目特点
**多传感器融合定位**:融合 GNSS 多普勒观测值、IMU 数据以及车轮速度传感器(从 CAN 总线获取)信息,实现高精度位置与姿态估计。
**抗干扰能力强**:专门针对城市峡谷、隧道、高架桥下等 GNSS 信号易受遮挡或干扰的场景进行优化,弥补传统单一定位方式的不足。
**车道级精度**:在典型测试环境下,能够达到车道级别的定位精度,满足自动驾驶和高级辅助驾驶的基本需求。
**基于 ROS 2 架构**:采用 ROS 2 作为中间件,便于与现有机器人或自动驾驶系统集成,支持模块化开发和调试。
**开源且可复现**:代码完全开源,依赖 RTKLIB 等成熟开源库,方便研究者复现实验、修改算法或进行二次开发。
**学术背景深厚**:源自日本名城大学 Meguro 实验室的多年研究成果,算法经过学术论文验证,具备扎实的理论基础。
技术规格
| 软件版本 | Alpha |
|---|---|
| 定位方式 | GNSS + IMU + 车轮速度传感器融合 |
| 支持 GNSS 类型 | GPS、GLONASS、Galileo、北斗(通过 RTKLIB 支持) |
| 定位精度 | 车道级别(典型条件下 < 1.5 米) |
| 更新频率 | 最高 100 Hz(取决于 IMU 和传感器输入) |
| 依赖中间件 | ROS 2(Humble / Foxy 等版本) |
| 依赖 GNSS 库 | RTKLIB(开源版) |
| 输入传感器 | GNSS 接收机(支持多普勒观测值)、6轴/9轴 IMU、车轮速度传感器(CAN 总线) |
| 输出数据 | 车辆位置(经纬度/UTM)、姿态(横滚/俯仰/偏航)、速度、加速度 |
| 编程语言 | C++(核心算法)、Python(工具脚本) |
| 操作系统 | Ubuntu 20.04 / 22.04(推荐) |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| GNSS 接收机(支持多普勒观测值) | 1 | — | 如 u-blox ZED-F9P 或同等产品 |
| 6轴/9轴 IMU | 1 | — | 如 Xsens MTi 系列或同等产品 |
| 车轮速度传感器(CAN 总线接口) | 1 | — | 通常为车辆原装传感器 |
| CAN 总线接口设备 | 1 | — | 如 PCAN-USB 或 Kvaser Leaf |
| 计算平台(工控机或车载电脑) | 1 | — | 推荐 Intel i5/i7 或同等 ARM 平台 |
| Ubuntu 20.04/22.04 | 1 | — | 操作系统 |
| ROS 2 Humble/Foxy | 1 | — | 机器人中间件 |
| RTKLIB(开源版) | 1 | — | GNSS 数据处理库 |
| Eagleye 源码 | 1 | — | 从 GitHub 克隆 |
能力画像
**记忆与知识检索**:2/5 — 项目本身不涉及知识库或检索功能,但需要查阅 GNSS/IMU 融合相关文献。
**动手与操作**:4/5 — 需要实际安装传感器、连接 CAN 总线、配置硬件并调试车辆,动手要求较高。
**编程与算法**:4/5 — 核心算法用 C++ 实现,涉及卡尔曼滤波、传感器融合等复杂编程,需要较强的编程能力。
**设计与建模**:2/5 — 项目不涉及硬件设计或 3D 建模,但需要理解传感器模型和坐标系转换。
**实验与调试**:5/5 — 定位精度高度依赖实际路测,需要大量实验、数据采集和参数调优,调试工作量大。
**协作与分享**:3/5 — 开源项目可通过 GitHub Issue/PR 协作,但社区规模较小,文档以英文为主。
**学习与研究**:5/5 — 涉及 GNSS 定位、惯性导航、多传感器融合等前沿技术,非常适合学术研究和学习。
**系统集成**:4/5 — 需要将多个传感器、ROS 2 节点和 RTKLIB 集成到车辆系统中,系统集成复杂度较高。
项目图库
所需技能
熟悉 GNSS 定位原理(特别是多普勒观测值)
掌握 IMU 惯性导航基础(加速度计、陀螺仪、姿态解算)
了解卡尔曼滤波(EKF/UKF)等传感器融合算法
熟练使用 ROS 2(节点、话题、服务、launch 文件)
具备 C++ 编程能力(核心算法开发与修改)
了解 CAN 总线通信协议(读取车轮速度数据)
能够使用 Linux 命令行(Ubuntu 环境)
具备车辆传感器安装与调试经验
能够进行实地路测与数据采集(rosbag)
具备基本的英文技术文档阅读能力
适用场景
自动驾驶车辆的高精度定位系统开发与测试
城市峡谷、隧道、地下停车场等 GNSS 信号遮挡环境下的定位研究
高校或研究所的机器人/车辆定位算法教学与实验
基于 ROS 2 的多传感器融合定位原型验证
低成本车载定位方案(使用消费级 GNSS 和 IMU)的探索
车辆运动状态估计(位置、速度、姿态)的学术研究
开源定位算法的二次开发与性能优化