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

宇树 G1 机器人导航仿真:地图转换与配置实战

本文档详细记录了宇树 G1 机器人的导航仿真流程。主要涵盖项目源码克隆、ROS 环境依赖安装及编译问题修复。重点讲解了如何将 PCD 点云地图转换为 PGM 栅格地图,并通过修改全局与局部代价地图参数、调整 TF 坐标系来适配不同底盘类型。最后提供了分终端启动 ROS 核心、RViz 仿真及静态坐标变换的具体步骤,支持通过 rosbag 回放验证导航效果。

花里胡哨发布于 2026/4/8更新于 2026/7/2633 浏览

在正式跑通导航之前,先补充一点上一节关于路线设定的细节。终端 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

安装系统依赖,包括 PCL 库和 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

另外还需要下载 PCD 转栅格地图的工具:

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

二、编译与错误修复

首次编译时可能会遇到 include 目录缺失的问题,直接创建该目录即可解决:

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

编译成功后记得更新环境变量:

source devel/setup.bash

三、地图文件转换

假设你已经有了建好的点云地图 map_1.pcd,将其复制到工作空间 maps 目录下:

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

接下来修改转换启动文件 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>

执行转换命令:

roslaunch ros_navigation_humanoid conv_pcd2pgm.launch file_name:=map_1

生成的 PGM 地图中,白色区域代表可通行,黑色为障碍,灰色表示未知。如果需要调整,可以使用 KolourPaint 编辑生成的 .pgm 文件。

四、导航参数适配

由于原项目针对双足机器人设计,若需适配轮式或通用底盘,需要修改几个关键参数。

全局代价地图:

roscd ros_navigation_humanoid/move_base_config
nano global_costmap_params.yaml

将基座坐标系从 pelvis 改为 base_link:

robot_base_frame: base_link

局部代价地图:

同样修改 local_costmap_params.yaml 中的 robot_base_frame。

局部规划器:

如果是轮式机器人,启用全向移动能力:

nano base_local_planner_params.yaml
holonomic_robot: true

RViz 仿真节点:

修改 rviz_sim.cpp,确保 TF 子坐标系一致:

map_trans.child_frame_id = "base_link";

修改完成后重新编译:

cd ~/ws_loc
catkin_make

五、启动仿真验证

分三个终端操作,逻辑更清晰。

终端 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

此时导航栈应该可以正常接收定位信息并进行仿真导航。

六、回放验证与步态规划

如果手头有录制好的 bag 包,可以回放验证机器人运动轨迹。编辑 bag_play.launch 修改 bag 文件路径后运行:

roslaunch g1_ros1_nav bag_play.launch

此外,如果保留双足功能,还需下载步态规划相关包(如 humanoid_msgs 和 humanoid_navigation),提取 footstep_planner 和 gridmap_2d 组件进行编译,最后通过 foot_planner.launch 启动。

目录

  1. 一、项目准备与环境依赖
  2. 二、编译与错误修复
  3. 三、地图文件转换
  4. 四、导航参数适配
  5. 五、启动仿真验证
  6. 六、回放验证与步态规划
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • QUEST 一体机 SideQuest 安装 APK 与 OBB 数据包教程
  • Linux 普通用户安装 Claude Code 全流程指南
  • OpenClaw 与 Telegram 机器人集成
  • 无线联邦学习:隐私保护下的 AI 协同进化机制
  • IntelliJ IDEA 修复 Lombok 编译报错“找不到符号”及 JDK 版本配置指南
  • Llama-3.2V-11B-COT 视觉推理参数详解:Temperature 与 Top_P 对质量影响
  • OpenREALM:无人机实时映射框架的技术深度解析
  • Java 全栈面试题及答案汇总
  • 云电脑 AIGC 性能实测:ToDesk、顺网云与青椒云对比
  • 多模态大模型(MM-LLM)架构与训练综述
  • GitHub 高星 LLM 开源学习资料汇总
  • AI 大模型在专利翻译中的应用与实践
  • 全球主流 AI 大模型智能、速度与价格维度排名解析
  • 数据结构核心:树、二叉树、堆排序与 TOP-K 问题详解
  • Electron 一小时快速上手:前端桌面应用开发教程
  • FPGA 入门:基于 LED 的 2 选 1 多路选择器实现
  • Flask + Vue 开发 Web 网页系统详细安装使用范例
  • VS Code 中彻底禁用 GitHub Copilot 的两种方法
  • 积木报表快速入门与实战指南
  • ClawdBot 本地部署指南与自动化运维实战

相关免费在线工具

  • 加密/解密文本

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