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

宇树 G1 机器人导航仿真:地图构建与参数配置实战

宇树 G1 机器人导航仿真流程涵盖环境搭建、地图转换及参数调优。通过克隆专用导航栈源码并修复编译依赖,完成 PCD 点云至 PGM 栅格地图的转换。编辑全局与局部代价地图参数,适配双足或轮式基座坐标系。启动 RViz 仿真环境后,结合静态坐标变换发布与 Rosbag 回放,验证机器人路径规划与运动控制效果。

灭霸发布于 2026/4/9更新于 2026/5/2212 浏览

承接上一节建图内容,这里补充一个细节:在第二个终端窗口中,可以先修改配置文件将 RViz 自动启动项设为 true。这样打开终端时会自动加载预设的 RViz 界面,无需手动操作,但播放 bag 包后仍需单独添加话题显示。

点云地图生成后,可以使用 pcl_viewer 查看预览效果。记得把文件名替换成你实际生成的 .pcd 文件路径:

pcl_viewer filename.pcd

点云预览

点云预览

注意区分不同格式的地图文件,避免混淆:

地图类型

地图类型

地图类型

地图类型

一、准备开发环境

1. 克隆导航栈源码

进入工作空间源码目录,拉取宇树专用的导航栈项目并整理结构:

cd ~/ws_loc/src
git clone https://github.com/deepglint/ros_navigation_humanoid.git
mv ros_navigation_humanoid-master ros_navigation_humanoid

2. 安装系统依赖

ROS 导航功能依赖较多,建议一次性安装完整:

# 安装 ROS 导航相关包
 apt-get install libpcl-dev ros-noetic-navigation ros-noetic-tf ros-noetic-sbpl ros-noetic-visualization-msgs

 apt-get install kolourpaint
sudo
# 安装地图编辑工具
sudo

3. 下载 PCD 转 PGM 工具

我们需要将点云地图转换为栅格地图,需额外引入转换工具:

cd ~/ws_loc/src
git clone https://github.com/Hinson-A/pcd2pgm_package.git

二、编译与错误修复

1. 首次编译尝试

直接在工作空间根目录执行编译命令:

cd ~/ws_loc
catkin_make

2. 解决编译错误

如果遇到缺少 include 目录的报错,通常是因为源码结构未完全初始化。创建缺失目录后重试:

cd ~/ws_loc/src/ros_navigation_humanoid
mkdir -p include
cd ~/ws_loc
catkin_make

3. 更新环境变量

编译成功后务必刷新环境变量,否则无法识别新包:

source devel/setup.bash

三、地图文件准备与转换

1. 复制地图文件

假设你已经通过激光雷达建图生成了 .pcd 文件,将其复制到导航包的 maps 目录下:

cp ~/ws_loc/maps/map_1.pcd ~/ws_loc/src/ros_navigation_humanoid/maps/

2. 修改转换启动文件

编辑 conv_pcd2pgm.launch 文件,确保参数配置正确。这里我调整了部分阈值参数以适应 G1 机器人的尺寸:

<?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. 执行 PCD 到 PGM 转换

运行 launch 文件进行转换,指定你的地图名称:

roslaunch ros_navigation_humanoid conv_pcd2pgm.launch file_name:=map_1

或者你也可以参考下图中的步骤手动操作(此处省略截图)。

四、栅格地图编辑

1. 使用 KolourPaint 编辑 PGM

转换完成后,生成的 .pgm 文件可能包含噪点或需要修正区域。使用 KolourPaint 打开编辑:

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

注意: 白色区域代表可通行,黑色为障碍不可走,灰色为未知区域。根据实际环境清理不必要的障碍物标记。

五、机器人模型展示

1. 启动 URDF 模型显示

先确认机器人模型能正常加载,这有助于后续调试 TF 变换:

roslaunch ros_navigation_humanoid static_display.launch

模型展示

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

G1 虽然是双足机器人,但在导航仿真中常需适配通用导航栈参数。以下是关键修改点:

1. 修改全局代价地图参数

找到 move_base_config/global_costmap_params.yaml,将基座坐标系从 pelvis 改为 base_link:

robot_base_frame: base_link # 原为 pelvis

2. 修改局部代价地图参数

同样修改 local_costmap_params.yaml:

robot_base_frame: base_link # 原为 pelvis

3. 修改局部规划器参数

如果希望启用全向移动能力(适用于轮式模式),需开启 holonomic_robot:

holonomic_robot: true # 原为 false

4. 修改 RViz 仿真节点代码

C++ 源码中也需要同步修改 TF 子坐标系:

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

七、重新编译与验证

1. 重新编译修改后的代码

代码变动后必须重新编译:

cd ~/ws_loc
catkin_make

2. 启动完整导航仿真

分三个终端窗口依次启动服务,顺序不能乱:

终端 1 - 启动 ROS 核心:

cd ~/ws_loc
roscore

终端 2 - 启动 RViz 仿真:

cd ~/ws_loc
roslaunch ros_navigation_humanoid rviz_sim.launch

终端 3 - 发布静态坐标变换: 为了维持原有的 TF 树结构,需要发布 base_link 到 pelvis 的静态变换:

rosrun tf static_transform_publisher 0 0 0 0 0 0 base_link pelvis 100

此时即可下发导航目标,观察机器人仿真路径规划效果。

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

如果有录制的真实数据,可以通过回放 Bag 包来验证运动控制逻辑。

1. 修改 Bag 播放启动文件

编辑 bag_play.launch,填入你的 bag 文件绝对路径:

<param name="bag_file_path" value="/your/path/to/bagfile.bag" />

2. 播放 Rosbag

roslaunch g1_ros1_nav bag_play.launch

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

如果你需要保留双足行走的步态规划能力,还需引入额外的消息定义和规划包。

1. 下载步态规划相关包

cd ~/ws_loc/src
git clone https://github.com/ahornung/humanoid_msgs.git
git clone https://github.com/ROBOTIS-GIT/humanoid_navigation.git

2. 提取必要组件

只需复制核心的规划模块即可:

cp -r humanoid_navigation/footstep_planner .
cp -r humanoid_navigation/gridmap_2d .

3. 编译步态规划包

cd ~/ws_loc
catkin build
source devel/setup.bash

4. 启动步态规划

roslaunch ros_navigation_humanoid foot_planner.launch

目录

  1. 一、准备开发环境
  2. 1. 克隆导航栈源码
  3. 2. 安装系统依赖
  4. 安装 ROS 导航相关包
  5. 安装地图编辑工具
  6. 3. 下载 PCD 转 PGM 工具
  7. 二、编译与错误修复
  8. 1. 首次编译尝试
  9. 2. 解决编译错误
  10. 3. 更新环境变量
  11. 三、地图文件准备与转换
  12. 1. 复制地图文件
  13. 2. 修改转换启动文件
  14. 3. 执行 PCD 到 PGM 转换
  15. 四、栅格地图编辑
  16. 1. 使用 KolourPaint 编辑 PGM
  17. 五、机器人模型展示
  18. 1. 启动 URDF 模型显示
  19. 六、导航配置修改(双足→轮式适配)
  20. 1. 修改全局代价地图参数
  21. 2. 修改局部代价地图参数
  22. 3. 修改局部规划器参数
  23. 4. 修改 RViz 仿真节点代码
  24. 七、重新编译与验证
  25. 1. 重新编译修改后的代码
  26. 2. 启动完整导航仿真
  27. 八、回放 Rosbag 验证机器人运动(可选)
  28. 1. 修改 Bag 播放启动文件
  29. 2. 播放 Rosbag
  30. 九、步态规划配置(可选,保留双足功能)
  31. 1. 下载步态规划相关包
  32. 2. 提取必要组件
  33. 3. 编译步态规划包
  34. 4. 启动步态规划
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • ToDesk、顺网云与海马云运行 DeepSeek 模型性能实测
  • Photoshop 安装 WebPShop 插件实现 WebP 格式支持
  • 大语言模型(LLM)原理、应用与未来趋势
  • Ubuntu 20.04 快速安装 Miniconda 指南
  • 使用 OpenClaw 与飞书构建 7x24 小时自动化运维机器人
开源医疗大模型 Llama3-Aloe-8B-Alpha 技术解析与性能评估
  • 基于 YOLO26 深度学习的无人机视角河道水面垃圾检测系统
  • C++ 引用、内联函数与 nullptr:效率提升三大基石
  • ROG 携超神 27 二代显示器与 AR 眼镜亮相 CES 2026
  • 26 岁转行 Python:零基础学习路径与职业发展指南
  • Python Tkinter 集成 DocsGPT 开发 AI 代码助手
  • 海尔智能家居接入 HomeAssistant 配置指南
  • Python 实时爬取斗鱼弹幕
  • 面试高频缓存算法:LRU 与 LFU 原理及实现
  • Flutter 使用 bip340 在鸿蒙实现 Schnorr 签名适配
  • DALL·E 3 绘图功能与 API 探索
  • Stable Diffusion 3.5 云端部署方案与实战指南
  • 无人机烟幕投放策略:如何用代码计算最长遮蔽时间
  • llama-cpp-python 完整安装指南与常见问题解决方案
  • Spring Cloud Gateway 微服务网关核心原理与实战
  • 相关免费在线工具

    • 加密/解密文本

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