Venom VNV
项目定位¶
Venom VNV 是一个基于 ROS 2 Humble 构建的综合通用平台。
项目目标是提供一个尽可能到手即用的统一底座,用于支持:
- 导航
- 抓取
- 自瞄
- 无人车
- 无人机
- 无人船
通过统一的驱动层、感知层、定位层、规划层、任务层、系统层、仿真层与接口规范,降低不同赛事和不同平台之间的迁移成本。
当前仓库并不只服务于单一比赛项目,而是希望沉淀一套可复用的基础工程能力,覆盖:
- 激光雷达、相机、串口、底盘、机械臂等硬件接入
- 自瞄检测、通用目标检测、跟踪、解算等感知链路
- LIO、里程计与后续全局定位接口
- Ego Planner、TEB controller、轨迹规划与机械臂运动规划
- 行为树、waypoint、任务监听与任务管理
- 多车型、多任务形态下的统一启动与接口规范
快速开始¶
⚙️ 快速开始
按标准流程拉取仓库、安装依赖并完成首次编译。
🧰 环境配置
准备 Ubuntu、SSH、ROS、rosdep、VS Code、Clash 与 NoMachine。
📡 雷达配置
安装 Livox-SDK2、配置 MID360 网络参数并验证雷达链路。
🚀 启动使用
查看常用 build、重编译和整机启动命令。
🛞 底盘 CAN 部署
初始化底盘 CAN 适配器,拉起接口并完成基础验证。
🦾 机械臂 CAN 部署
识别 Piper CAN 模块、命名接口并启动机械臂链路。
🔁 rc.local
配置开机自启动与网络优先级相关命令。
🧭 运行模式
查看不同联调、测试与整机模式下的使用方式。
🧩 话题与 TF 总览
快速查看系统级话题接口与核心 TF 约定。
项目组成总览¶
当前仓库由主仓库内置包和外部子模块两部分组成。为了方便总览,首页统一按“分类 / 地址 / 说明”展示如下:
| 分类 | 地址 | 说明 |
|---|---|---|
| 驱动层 | driver/livox_ros_driver2 | Livox Mid360 激光雷达驱动与点云发布 |
| 驱动层 | driver/ros2_hik_camera | 海康 USB3.0 工业相机驱动 |
| 驱动层 | driver/venom_serial_driver | NUC 与下位机之间的串口通信驱动 |
| 驱动层 | driver/scout_ros2 | AgileX Scout / Scout Mini 系列底盘 ROS 2 驱动封装 |
| 驱动层 | driver/hunter_ros2 | AgileX Hunter 系列底盘 ROS 2 驱动封装 |
| 驱动层 | driver/ugv_sdk | AgileX / Weston Robot 通用底盘 C++ SDK 与 CAN 工具脚本 |
| 驱动层 | driver/piper_ros | AgileX Piper 机械臂 ROS 2 控制、描述、MoveIt 与仿真接口 |
| 驱动层 | driver/venom_px4_bridge | PX4 集成项目根目录,内部包含 vendored px4_msgs 与自有桥接包 |
| 感知层 | perception/rm_auto_aim | 自瞄能力总包,包含检测、跟踪、解算与接口定义 |
| 感知层 | perception/yolo_detector | 通用 YOLO 2D 目标检测模块与自定义消息定义 |
| 感知层 | perception/zbar_ros | 基于 ZBar 的二维码 / 条码识别模块,输出结构化识别结果 |
| 感知层 | perception/rm_auto_aim/armor_detector | 装甲板检测模块 |
| 感知层 | perception/rm_auto_aim/armor_tracker | 目标跟踪模块 |
| 感知层 | perception/rm_auto_aim/auto_aim_solver | 弹道与目标解算模块 |
| 感知层 | perception/rm_auto_aim/auto_aim_interfaces | 自瞄链路使用的消息与接口定义 |
| 定位层 | localization/lio/Point-LIO | 高带宽激光惯性里程计,适合 Mid360 等高频点云输入 |
| 定位层 | localization/lio/Fast-LIO | FAST-LIO 的 ROS 2 版本实现 |
| 定位层 | localization/lio/rf2o_laser_odometry | 面向 2D 激光雷达的里程计模块 |
| 规划层 | planning/navigation/ego-planner-swarm | 无人机局部规划与集群规划子模块,跟踪上游 ros2_version 分支 |
| 规划层 | planning/navigation/venom_teb_controller | Nav2 controller 插件形式的 TEB 局部规划器,包含 teb_local_planner 与 teb_msgs |
| 规划层 | planning/manipulation | 机械臂运动规划模块的归属入口,当前目录用于承接后续 MoveIt / 抓取规划包 |
| 任务层 | mission/ | waypoint、行为树、状态监听、任务下发与任务管理一类模块的新包归属目录 |
| 任务层 | venom_bringup/venom_bringup/mission_controller | 当前已落地的通用任务控制框架,包含状态监听、任务管理与行为插件 |
| 任务层 | venom_bringup/venom_bringup/multi_waypoint_commander.py | 基于 Nav2 Simple Commander 的多航点任务入口 |
| 系统层 | venom_bringup | 系统启动入口,负责模式组织、整机装配、参数调度与当前过渡阶段的任务控制入口 |
| 系统层 | venom_robot_description | 机器人模型、URDF、TF 发布与基础描述配置 |
| 仿真层 | simulation/venom_nav_simulation | 独立导航仿真工作区,用于 MID360、LIO 与 Nav2 联调 |
文档与接口规范¶
| 内容 | 说明 |
|---|---|
| 部署与使用 | 面向环境准备、雷达配置、底盘部署、开机自启与运行模式 |
| 模块与接口 | 面向驱动、感知、定位、规划、任务、系统、仿真与统一接口规范 |
| 支持与社区 | 面向 FAQ、故障排查、迁移记录、联系方式与协作说明 |
阅读建议¶
如果你是第一次接触这个仓库,建议按以下顺序阅读:
- 从“快速开始”了解标准拉取、依赖安装与编译流程
- 从“环境准备”和“雷达配置”完成基础部署
- 从“模块与接口”进入对应模块,查看具体输入输出、参数与约束