跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++AI算法

宇树机器人 G1 二次开发:导航仿真与地图转换教程

介绍宇树机器人 G1 的导航仿真流程。内容包括克隆导航栈源码、安装系统依赖、编译修复错误。重点讲解如何将点云地图(PCD)转换为栅格地图(PGM),并使用 KolourPaint 编辑地图。随后修改全局和局部代价地图参数,将基座坐标系调整为 base_link 以适配轮式导航。最后通过启动 ROS 核心、RViz 仿真及回放 rosbag 验证机器人运动,并可选配置步态规划功能。

道系青年发布于 2026/4/6更新于 2026/5/1927 浏览

补充前序教程中终端 2 的配置说明:修改指定配置文件为 true,打开终端 2 时自动加载 RViz 配置。播放 bag 包后需单独添加话题。

使用 pcl_viewer 查看生成的点云地图:

pcl_viewer <filename>.pcd

注意区分不同类型的地图文件(如 PCD、PGM 等),避免混淆。

一、下载项目

# 克隆导航栈源码
cd ~/ws_loc/src
git clone https://github.com/deepglint/ros_navigation_humanoid.git
# 重命名并整理目录结构
mv ros_navigation_humanoid-master ros_navigation_humanoid
1.2、安装系统依赖
# 安装 ROS 导航相关包
sudo apt-get install libpcl-dev ros-noetic-navigation ros-noetic-tf ros-noetic-sbpl ros-noetic-visualization-msgs
# 安装地图编辑工具
sudo apt-get install kolourpaint
1.3、下载 PCD 转 PGM 工具
# 进入工作空间源码目录
cd ~/ws_loc/src
# 克隆 PCD 转栅格地图工具
git clone https://github.com/Hinson-A/pcd2pgm_package.git

二、编译与错误修复

2.1 首次编译尝试
cd ~/ws_loc
catkin_make
2.2 解决编译错误

如果编译报错提示缺少 include 目录,执行:

# 创建缺失的目录
cd ~/ws_loc/src/ros_navigation_humanoid
mkdir -p include
# 重新编译
cd ~/ws_loc
catkin_make
2.3 更新环境变量
source devel/setup.bash

三、地图文件准备与转换

3.1 复制地图文件
# 假设已有建好的点云地图
cp ~/ws_loc/maps/map_1.pcd ~/ws_loc/src/ros_navigation_humanoid/maps/
3.2 修改转换启动文件

编辑 ~/ws_loc/src/ros_navigation_humanoid/launch/conv_pcd2pgm.launch:

<?xml version="1.0"?>
<launch>
  <!-- 添加可自定义的地图名参数 -->
  <arg name="file_name" default="map" />
  <arg name="file_directory" default="$(find ros_navigation_humanoid)/maps/" />
  <node pkg="pcd2pgm" name="pcd2pgm" type="pcd2pgm" output="screen">
    <!-- 使用私有参数语法 -->
    <param name="~file_name" value="$(arg file_name)" />
    <param name="~file_directory" value="$(arg file_directory)" />
    <param name="~map_topic_name" value="map" />
    <!-- 转换参数配置 -->
    <param name="~thre_z_min" value="0.2" />
    <param name="~thre_z_max" value="0.8" />
    <param name="~flag_pass_through" value="0" />
    <param name="~thre_radius" value="0.5" />
    <param name="~thres_point_count" value="10" />
    <param name="~map_resolution" value="0.05" />
  </node>
  <!-- 启动 RViz 查看转换结果 -->
  <node pkg="rviz" name="rviz_sim" type="rviz" args="-d $(find ros_navigation_humanoid)/rviz/conv_pcd2pgm.rviz" output="screen"/>
</launch>
3.3 执行 PCD 到 PGM 转换
# 转换指定名称的地图文件
roslaunch ros_navigation_humanoid conv_pcd2pgm.launch file_name:=map_1

四、栅格地图编辑

4.1 使用 KolourPaint 编辑 PGM
# 打开生成的 PGM 文件进行编辑
kolourpaint ~/ws_loc/src/ros_navigation_humanoid/maps/map_1.pgm

说明: 白色区域代表可通行,黑色区域代表不可通行,灰色区域代表不确定。

五、机器人模型展示

5.1 启动 URDF 模型显示
roslaunch ros_navigation_humanoid static_display.launch

六、导航配置修改(双足→轮式适配)

6.1 修改全局代价地图参数
roscd ros_navigation_humanoid/move_base_config
nano global_costmap_params.yaml

修改内容:

# 将机器人基座坐标系从 pelvis 改为 base_link
robot_base_frame: base_link
6.2 修改局部代价地图参数
nano local_costmap_params.yaml

修改内容:

robot_base_frame: base_link
6.3 修改局部规划器参数
nano base_local_planner_params.yaml

修改内容:

# 启用全向移动(适用于轮式机器人)
holonomic_robot: true
6.4 修改 RViz 仿真节点
roscd ros_navigation_humanoid/src
nano rviz_sim.cpp

修改内容:

// 将 TF 子坐标系改为 base_link
map_trans.child_frame_id = "base_link";

七、重新编译与验证

7.1 重新编译修改后的代码
cd ~/ws_loc
catkin_make
7.2 启动完整导航仿真

终端 1 - 启动 ROS 核心:

cd ~/ws_loc
roscore

终端 2 - 启动 RViz 仿真:

cd ~/ws_loc
roslaunch ros_navigation_humanoid rviz_sim.launch

终端 3 - 发布静态坐标变换:

# 发布 base_link 到 pelvis 的静态 TF(维持原有 TF 树结构)
rosrun tf static_transform_publisher 0 0 0 0 0 0 base_link pelvis 100

此时即可给导航点让机器人仿真导航过去。

八、回放 rosbag 验证机器人运动(可选)

8.1 修改 bag 播放启动文件

编辑 bag_play.launch,修改 bag 文件路径:

<param name="bag_file_path" value="/your/path/to/bagfile.bag" />
8.2 播放 rosbag
roslaunch g1_ros1_nav bag_play.launch

九、步态规划配置(可选,保留双足功能)

9.1 下载步态规划相关包
cd ~/ws_loc/src
# 下载人形机器人消息定义
git clone https://github.com/ahornung/humanoid_msgs.git
# 下载人形机器人导航包
git clone https://github.com/ROBOTIS-GIT/humanoid_navigation.git
9.2 提取必要组件
# 只需要 footstep_planner 和 gridmap_2d
cp -r humanoid_navigation/footstep_planner .
cp -r humanoid_navigation/gridmap_2d .
9.3 编译步态规划包
cd ~/ws_loc
catkin build
source devel/setup.bash
9.4 启动步态规划
roslaunch ros_navigation_humanoid foot_planner.launch

目录

  1. 一、下载项目
  2. 克隆导航栈源码
  3. 重命名并整理目录结构
  4. 1.2、安装系统依赖
  5. 安装 ROS 导航相关包
  6. 安装地图编辑工具
  7. 1.3、下载 PCD 转 PGM 工具
  8. 进入工作空间源码目录
  9. 克隆 PCD 转栅格地图工具
  10. 二、编译与错误修复
  11. 2.1 首次编译尝试
  12. 2.2 解决编译错误
  13. 创建缺失的目录
  14. 重新编译
  15. 2.3 更新环境变量
  16. 三、地图文件准备与转换
  17. 3.1 复制地图文件
  18. 假设已有建好的点云地图
  19. 3.2 修改转换启动文件
  20. 3.3 执行 PCD 到 PGM 转换
  21. 转换指定名称的地图文件
  22. 四、栅格地图编辑
  23. 4.1 使用 KolourPaint 编辑 PGM
  24. 打开生成的 PGM 文件进行编辑
  25. 五、机器人模型展示
  26. 5.1 启动 URDF 模型显示
  27. 六、导航配置修改(双足→轮式适配)
  28. 6.1 修改全局代价地图参数
  29. 将机器人基座坐标系从 pelvis 改为 base_link
  30. 6.2 修改局部代价地图参数
  31. 6.3 修改局部规划器参数
  32. 启用全向移动(适用于轮式机器人)
  33. 6.4 修改 RViz 仿真节点
  34. 七、重新编译与验证
  35. 7.1 重新编译修改后的代码
  36. 7.2 启动完整导航仿真
  37. 发布 base_link 到 pelvis 的静态 TF(维持原有 TF 树结构)
  38. 八、回放 rosbag 验证机器人运动(可选)
  39. 8.1 修改 bag 播放启动文件
  40. 8.2 播放 rosbag
  41. 九、步态规划配置(可选,保留双足功能)
  42. 9.1 下载步态规划相关包
  43. 下载人形机器人消息定义
  44. 下载人形机器人导航包
  45. 9.2 提取必要组件
  46. 只需要 footstepplanner 和 gridmap2d
  47. 9.3 编译步态规划包
  48. 9.4 启动步态规划
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • DeepSeek + 通义万相高效制作 AI 视频实战详解
  • Testsigma开源自动化测试平台部署与使用指南
  • 基于 OpenClaw 与飞书开放平台的 AI 新闻推送机器人实战
  • 手搓简易 Linux 进程池:基于管道实现任务分发
  • Flutter 使用 ethereum_addresses 库进行以太坊地址校验与适配
  • Vue3 核心语法与架构规范实战笔记
  • AIGC 智能体开发实训技术架构与实现
  • Rust 异步微服务架构最佳实践与反模式规避
  • Llama-2-7B 在昇腾 NPU 上的性能测评与部署实践
  • 滑动窗口算法详解:水果成篮问题解法
  • GLM-5 全栈实战:从本地部署到多 Agent 架构应用
  • 使用 TRAE CN 与 MCP 协议将 MasterGo 设计稿转为前端代码
  • 网络安全入门学习指南
  • C++ 二叉搜索树(BST)原理与实现
  • 算法实战:位运算解法详解(两数之和、唯一数字、缺失数字)
  • Neo4j 5.x 安装配置与核心命令实战
  • Rust 异步 Web 框架 Axum 的深入原理与高级用法
  • 程序员核心特征与 Python 技术趋势分析
  • 基于 Coze 平台搭建企业级 AI 客服机器人的实战指南
  • Java 基本数据类型、数组与方法详解

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online