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

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

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

道系青年发布于 2026/4/6更新于 2026/10/793 浏览

补充前序教程中终端 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 启动步态规划

更多推荐文章

查看全部
  • Web 项目 UI 自动化测试实战:从零搭建博客系统框架
  • GitHub Copilot Agent Skills 深度解析:构建跨项目 AI 专属工具箱
  • DDNS-GO 双平台部署指南:实现免费内网穿透与动态域名解析
  • 深度解析 LayerNorm 与 RMSNorm:大模型为何转向 RMSNorm
  • openEuler 系统安装 Docker 容器完整教程
  • Spring 框架核心概念与入门实战
  • ESLint 从原理到实践:构建高质量 JavaScript/TypeScript 代码
  • Kali Linux 2025 系统部署与 OpenVAS 使用指南
  • HTML Popover API 原生实现浮层交互,无需 JavaScript 依赖
  • AI 入门:核心术语解析与常见误区澄清
  • Python 中国节假日日历库使用指南:识别法定节假日与工作日
  • Windows+Ubuntu 双系统安装及驱动配置指南
  • 前端 AI 应用:浏览器中的机器学习模型
  • 解决 npm install 报错 Command failed with exit code 128 问题
  • 机器人 3D 位姿详解:5 种旋转表示法与机器学习应用
  • OpenAI 开源模型 gpt-oss 本地部署指南
  • 智慧农业-无人机枸杞树病害检测数据集 深度学习框架基于YOLOV8枸杞病害检测系统 无人机智慧农业枸杞病害巡检
  • 两个月从入门到独立进行漏洞挖掘的渗透测试指南
  • 基于中间件与多模态模型的 AI Agent 自动化架构实战
  • Trae IDE 使用指南:模型管理与实战技巧

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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