English | 简体中文
宇树 G1 人形机器人 YOLO 目标识别与路径规划导航 工作空间。基于 ROS2 Foxy + Python,实现实时目标检测、3D 空间定位与自主导航接近目标。
技术栈:Ubuntu 20.04 · ROS2 Foxy · Python 3.8+ · YOLOv11 · Nav2 · colcon
核心能力:
g1act_ws/ ├── src/ │ └── g1_yolo_nav_py/ # YOLO 目标识别与导航功能包 │ ├── g1_yolo_nav_py/ │ │ ├── __init__.py │ │ ├── yolo_detector.py # YOLO 检测节点 │ │ ├── spatial_target.py # 3D 空间投影节点 │ │ └── nav_planner.py # 导航规划节点 │ ├── launch/ │ │ └── yolo_nav.launch.py # 统一启动文件 │ ├── config/ │ │ └── yolo_nav.yaml # 参数配置 │ ├── package.xml │ ├── setup.py │ ├── setup.cfg │ ├── resource/ │ └── yolo_v11x_best.pt # YOLOv11 自定义训练模型权重 ├── ros2doc_skill/ # ROS2 开发规范技能包 └── README.md
| 文件 | 说明 |
|---|---|
yolo_v11x_best.pt | YOLOv11x 自定义训练模型权重文件,用于目标检测推理 |
该模型为已训练完成的 YOLOv11 权重文件,部署时放置于
src/g1_yolo_nav_py/根目录下,通过 launch 参数model_path指定加载路径。
# 安装依赖
pip3 install ultralytics
# 编译
colcon build --packages-select g1_yolo_nav_py
. install/setup.bash
# 运行完整导航管线(需先启动相机驱动和 TF 树)
ros2 launch g1_yolo_nav_py yolo_nav.launch.py
# 启用 Nav2 导航 + 深度传感器
ros2 launch g1_yolo_nav_py yolo_nav.launch.py use_nav2:=true use_depth_sensor:=true
如果只需验证 YOLO 检测功能,无需启动完整导航管线:
# 1. 启动 D455 相机(终端 1)
ros2 launch realsense2_camera rs_launch.py camera_namespace:=robot1 camera_name:=D455_1
# 2. 编译并启动 YOLO 检测节点(终端 2)
colcon build --packages-select g1_yolo_nav_py
. install/setup.bash
ros2 run g1_yolo_nav_py yolo_detector
# 3. 启动可视化节点,查看带检测框的图像(终端 3)
ros2 run g1_yolo_nav_py detection_visualizer
# 按 q 键退出
# 或查看原始检测结果文本
ros2 topic echo /g1/vision/detections
自定义参数示例:
# 指定检测目标为 person
ros2 run g1_yolo_nav_py yolo_detector --ros-args -p target_classes:='["person"]'
# 指定自定义模型路径
ros2 run g1_yolo_nav_py yolo_detector --ros-args -p model_path:=/path/to/model.pt
# 查看模型所有可用类别(在 Python 中执行)
python3 -c "from ultralytics import YOLO; print(YOLO('src/g1_yolo_nav_py/yolo_v11x_best.pt').names)"