常规操作
本文档介绍运行 Galbot 机器人过程中可能进行的一些常规操作,确保各项功能正常运行。
地图引擎 - 建图与定位
地图引擎是导航功能的核心基础。地图引擎不是可选附加功能,而是导航功能的前置必须步骤。在使用导航功能前,必须完成建图并确保定位正常运行。未正确完成建图和定位将导致导航功能无法正常工作。
当机器人开启定位导航服务时(机器人工作模式可能默认开启导航服务),必须先完成建图。新的机器人首次使用前需要进行建图操作,否则定位服务无法正常启动,机器人可能进入异常模式。
建图流程
建图是导航的前提条件。在开始使用导航功能前,必须先完成环境地图的构建。
1. 前置条件检查 (必选)
检查雷达服务是否已启动
建图需要雷达服务处于运行状态。在 HPU 终端输入以下命令查看雷达进程:
top
如果雷达已被自动拉起,可以在进程列表中看到名为 service_lidar_capture 的进程,如下图所示:

如果雷达未启动,使用以下命令启动雷达(注意:不要重复启动):
/data/galbot/bin/service_lidar_capture
确保地图路径具有可写权限
默认地图路径存放在 /var/maps/ 目录下。如果该路径不存在或没有写入权限,请创建路径并赋予可写权限:
sudo mkdir -p /var/maps/
sudo chmod 777 -R /var/maps/
2. 开始建图 (必选)
启动建图程序
- 拍下机器人急停按钮,将机器人推至建图起点(可以从任何位置开始建图,后续定位服务若出现异常,需要在初始建图点位发送重定位)
- 执行以下命令启动建图:
/data/galbot/bin/mapping_server
正常建图时会显示以下信息:
- 关键帧数量(keyframe num)
- 位姿延时(time delay)
- 当前机器人位姿(x y z qx qy qz qw)
关键帧数量会随着机器人移动而增加,机器人静止时关键帧数量保持不变,如下图所示:

- 推动机器人遍历环境一周以构建完整地图。推动时应避免过大的加速度和角速度(接近人行走速度即可)
3. 保存地图 (必选)
保存构建好的地图
直接结束建图程序不会自动保存地图。如需保存地图,请先执行保存操作,然后再关闭建图程序。
执行保存地图工具:
/data/galbot/bin/engine_tools
启动工具后,输入数字 1,然后按 Enter 回车选择保存地图功能。地图默认保存路径为 /var/maps/room1102,如下图所示:

保存地图后,地图目录下必须存在 global_cloud_cleaned.pcd,供后续定位使用。
- 如果已经完成点云后处理,请确保清理后的地图文件命名为
global_cloud_cleaned.pcd - 如果暂时不做杂点擦除,请在地图目录下执行以下命令:
cp global_cloud.pcd global_cloud_cleaned.pcd
4. 编辑地图 (可选)
本步骤用于优化地图质量,提高导航精度和安全性。
- 擦除地图杂点:地图中的空中杂点可能导致导航系统误判障碍物,影响路径规划精度
- 绘制电子围栏:没有电子围栏限制,机器人可能会进入非预期或危险区域
4.1 擦除地图杂点 (可选)
推荐进行本步骤(若有导航需求,务必进行本步骤)。地图中通常可能存在少量杂点,擦除后可以提高导航成功率。尤其当房间中存在镜面、毛玻璃等材质物体时,点云地图中更容易出现杂点,建议使用 CloudCompare 软件进行后处理。
准备工作:下载 CloudCompare 软件
下载链接:https://www.cloudcompare.org/release/index.html
如图所示:

若官网下载打不开pcd文件,则进行下列命令:
sudo apt update
sudo apt install -y flatpak gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://mirrors.ustc.edu.cn/flathub
flatpak install flathub org.cloudcompare.CloudCompare -y
flatpak run org.cloudcompare.CloudCompare
操作步骤:
- 打开 CloudCompare 软件,将点云地图
global_cloud.pcd拖入软件工作区

- 按照下图绿色箭头编号依次操作:
- 步骤 1:选择正视图
- 步骤 2:选中点云
- 步骤 3:选择剪刀图标
- 步骤 4:鼠标左键选点,鼠标右键结束选点,如图绿框选中机器人的活动空间
- 步骤 5:保留内部点云
- 步骤 6:确认操作(图标为对勾)
此时点云被分割为两部分:框选内的 global_cloud.segmented 和框选外的 global_cloud.remaining:

- 继续以下步骤:
- 步骤 7:擦除杂点,杂点指机器人活动空间中,影响机器人通行的点。取消选中xxx.remaining,保留xxx.segmented
- 步骤 8:选择俯视图
- 步骤 9:选择剪刀图标
- 步骤 10:鼠标左键选取,鼠标右键结束,将想去除的杂点框中
- 步骤 11:保留框外部点
- 步骤 12:勾号完成分割

- 删除杂点并合并:
- 步骤 13:鼠标选中xxx.segmented.remaining,然后鼠标右键选择delete删除
- 步骤 14:选中14和15箭头指向的点云(摁住ctrl可以多选)
- 步骤 16:选择edit里面的merge选项合并点云

- 保存清理后的地图:
- 步骤 17:选择file里面的save选项
- 步骤 18:在弹窗里选择格式为Point Cloud Library cloud
- 步骤 19:保存新的pcd点云地图"global_cloud_cleaned.pcd",并上传到机器人的/var/maps/room1102/路径下

4.2 编辑 OSM 文件 (可选)
通过绘制电子围栏来限制机器人的活动范围,防止机器人进入危险或非预期区域。
- 绘制电子围栏:在地图上设置虚拟边界,禁止机器人穿越围栏进入特定区域(如楼梯、危险区域、非工作区域等)
- 不做的影响:机器人可以自由移动到地图中的任何位置,可能进入危险区域或非预期的工作区域,存在安全风险
在建图完成后(假设地图保存路径为 /var/maps/room1102/),使用 engine_tools 工具转换点云地图为 OSM 文件:
- 执行
engine_tools,输入数字3,选择点云地图转 OSM 文件功能 - 直接回车使用默认地图。当前示例地图存放在
/var/maps/room1102/,所以需要输入地图的完整路径/var/maps/room1102/global_cloud.pcd,然后回车转换:

- 转换后的文件如下图绿框所示,使用 JOSM 软件打开该 OSM 文件,如图所示:

安装 JOSM(如未安装):
sudo apt install josm
安装完成后,终端输入 josm 打开软件。
绘制电子围栏步骤:
- 选择左上角文件 → 打开,找到
/var/maps/room1102/map_topo.osm - 选择下图白色箭头 1 指向的图标,鼠标左键单击绘制图形(红色细线),如白色箭头 2 所示
- 绘制结束后(封闭图形自动结束,非封闭图形按 Esc 结束),单击白色箭头 1 上方的图标,选择刚刚绘制的线(被选中的线呈红色,按住 Ctrl 可选择多条线),然后点击白色箭头 3:

- 在弹窗里选择 Fence 栏,设置类型为
barbed_wire(如白色箭头 4 所示),点击 Apply Preset,最后鼠标右击白色箭头 5,选择 Save 保存:

5. 地图更新 (可选)
当环境发生变化时(如新增家具、障碍物移动等),可以通过地图更新功能来优化地图。
如果环境发生变化后不更新地图,机器人仍使用旧地图进行导航,可能导致:
- 定位精度下降
- 路径规划不准确
- 机器人可能误判障碍物位置
为节省计算资源,地图更新功能默认关闭。可以手动开启更新开关并由人工操作保存更新后的地图:
步骤 1:在定位良好的情况下(当前评分大于 0.9)打开地图更新开关
vim /data/galbot/config/mes/manager.config
将 manager_update_map=0 改为 manager_update_map=1
步骤 2:原地重启定位,在评分恢复正常后(当前评分大于 0.9),执行 engine_tools 选择开始更新地图
步骤 3:推动机器人绕环境一周后,执行 engine_tools 选择结束更新地图
步骤 4:更新后的地图不会覆盖当前定位地图(/var/maps/cur),而是保存在 /var/maps/update_map
步骤 5:地图更新结束后,将参数 manager_update_map=1 改回 0,然后可以替换新地图了
- 修改参数和替换地图都需要重启定位服务才能生效
- 当前示例写的是
engine_tools,如果没有engine_tools,使用对应的/data/galbot/bin/test_start_update_map和/data/galbot/bin/test_stop_update_map
定位流程
定位是使用导航功能的前提。在开始导航前,必须确保定位服务正常运行且定位状态良好。
1. 准备地图 (必选)
定位程序需要启动雷达(定位程序不依赖建图程序,建图结束后即可关闭建图程序)。
定位使用的地图路径是 /var/maps/cur,将目标地图重命名为 cur,例如将刚刚新建的地图 room1102 直接重命名为 cur,如图所示:

2. 启动定位
该步骤同雷达,机器开机后,正常情况下定位服务自启,通过top检查进程是否启动,若没正常启动,请手动启动定位服务:
/data/galbot/bin/localization_server

3. 查看定位状态 (必选)
查看定位状态:
tail -f /userdata/log/localization_server/localization_server.INFO

如果分数低于 0.8 或者没有分数和位姿发布,请将机器推至建图起点位姿,下发一次初始位姿(使用 engine_tools 输入数字 2,Enter 回车发送一次初始位姿),如图所示:

4. 验证定位就绪 (必选)
在开始导航前,请确认以下检查项:
- 雷达服务正在运行
- 定位服务已启动
- 定位分数大于 0.8
- 当前位姿正常发布
完成以上所有必选步骤后,您可以开始使用机器人导航功能。详情请参考 入门教程 - Example 3. 机器人导航。