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

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

介绍宇树机器人 G1 的导航仿真流程。内容包括克隆导航栈源码、安装依赖、编译修复错误、将点云地图(PCD)转换为栅格地图(PGM)。重点讲解了如何修改全局与局部代价地图参数,将基座坐标系从 pelvis 调整为 base_link 以适配轮式导航配置。最后通过启动 RViz 仿真和回放 rosbag 验证机器人运动路径。

深海蔚蓝发布于 2026/4/6更新于 2026/10/15113 浏览

补充上一节内容:终端 2 处可修改配置文件为 true,打开终端时自动设定 rviz,无需单独打开。但播放 bag 包后仍需手动添加话题。

生成 pcd 后可查看点云图:

pcl_viewer filename.pcd

注意区分几种类型的地图文件。

一、下载项目

# 克隆导航栈源码
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
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>
<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

四、栅格地图编辑

使用 KolourPaint 编辑生成的 PGM 文件:

kolourpaint ~/ws_loc/src/ros_navigation_humanoid/maps/map_1.pgm

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

五、机器人模型展示

启动 URDF 模型显示:

roslaunch ros_navigation_humanoid static_display.launch

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

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

修改内容:

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

修改内容:

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 - 发布静态坐标变换:

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 提取必要组件
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. 1.2、安装系统依赖
  4. 安装 ROS 导航相关包
  5. 安装地图编辑工具
  6. 1.3、下载 PCD 转 PGM 工具
  7. 二、编译与错误修复
  8. 2.1 首次编译尝试
  9. 2.2 解决编译错误
  10. 2.3 更新环境变量
  11. 三、地图文件准备与转换
  12. 3.1 复制地图文件
  13. 3.2 修改转换启动文件
  14. 3.3 执行 PCD 到 PGM 转换
  15. 四、栅格地图编辑
  16. 五、机器人模型展示
  17. 六、导航配置修改(双足→轮式适配)
  18. 6.1 修改全局代价地图参数
  19. 6.2 修改局部代价地图参数
  20. 6.3 修改局部规划器参数
  21. 6.4 修改 RViz 仿真节点
  22. 七、重新编译与验证
  23. 7.1 重新编译
  24. 7.2 启动完整导航仿真
  25. 八、回放 rosbag 验证机器人运动(可选)
  26. 8.1 修改 bag 播放启动文件
  27. 8.2 播放 rosbag
  28. 九、步态规划配置(可选,保留双足功能)
  29. 9.1 下载步态规划相关包
  30. 9.2 提取必要组件
  31. 9.3 编译步态规划包
  32. 9.4 启动步态规划

更多推荐文章

查看全部
  • CCF 推荐 B 类会议和期刊总结:计算机体系结构与存储系统
  • TeleGrip:基于 VR 的机械臂遥操作系统源码解析
  • Python 性能测试框架 Locust 实战教程
  • OpenClaw 多飞书机器人配置指南
  • 工业级存储芯片 CSNP32GCR01-AOW 在无人机飞控系统中的应用实践
  • 基于树莓派的智能家居系统 AI 辅助开发与部署实践
  • Tabular Editor 2.x 实战:Power BI 模型管理与 DAX 优化
  • R 语言零截断数据建模实战:复杂数据结构下的统计建模技术
  • 播客转多平台内容矩阵全自动化实战:OpenAI Whisper + Claude
  • Spring Cloud 负载均衡 LoadBalancer 原理与实战
  • DeepSeek-R1-Distill-Llama-8B 数学解题应用案例
  • Rust Web 开发实战:Actix Web 框架全面指南
  • DeepSeek-R1 大模型基于 MS-Swift 框架的部署与微调实践
  • 安装 Conda + VSCode 配置 Python 开发环境
  • C++ 并发:内存序、可见性与指令重排
  • Java 并发包 LinkedBlockingQueue 详解
  • Mac 本地 AI 生图教程:Draw Things 配置与 Z-Image-Turbo 实测
  • Java 面向对象入门:类与对象及封装核心
  • 机器人标准 DH 与改进 DH 参数对比
  • DIY 无人机电源管理:升压与降压电路设计

相关免费在线工具

  • 加密/解密文本

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