首页>AI>正文

BicMap-GL:机器人Web地图五个案例

Feng 25 阅读 AI

BicMap-GL底层集成MapLibreGLJS等库,对外暴露一套面向机器人语义的API以屏蔽坐标换算。该引擎支持多边形、圆形、矩形绘制与语义地图分割。

做机器人业务的前端同学大多有过这样的经历:拿到一张 SLAM 栅格图(PGM/PNG + YAML),要在 Web 上把它渲染出来,还得算坐标、画区域、加语义标注。

BicMap-GL 是北京人形机器人创新中心(BIC)在多个机器人项目中沉淀出来的一层 Web 地图能力,底层集成 MapLibre GL JS,对外暴露面向机器人业务的 API,把坐标换算、地图渲染、区域绘制等细节封装起来。

本文挑选仓库示例工程里的五个案例,从”业务想要什么”倒推”引擎提供了什么”,逐个拆开看。

1. 多边形绘制(Polygon Draw)

多边形绘制

禁行区、虚拟墙、清扫区域、电梯等待区——机器人业务里”框一块地”的需求高频到令人发指。base/polygonDraw 示例演示了如何在 Web 端实现交互式多边形绘制。

一次调用即开启交互,回调里拿到标准 GeoJSON Polygon。交互细节上,引擎把桌面端与移动端的操作习惯都照顾到了:单击加点、移动预览当前边、双击或点击起点闭合、Enter 强制完成。

2. 圆形绘制(Circle Draw)

圆形绘制

充电桩的作业半径、基站的信号覆盖、人员的安全距离——这些场景本质上都是”圆心 + 半径”。用多边形去逼近圆是常见做法,但 base/circleDraw 走的是另一条路:直接支持原生圆形绘制。

这个示例还演示了一种值得借鉴的分层组织方式:临时绘制层与持久展示层分离。按下鼠标拖动时,预览走绘制层;松手完成后,成品被添加到展示层。好处很直接:绘制态与数据态互不干扰。

3. 矩形绘制(Rectangle Draw)

矩形绘制

货架区、库位、电梯轿厢、闸机通道——规则空间用矩形描述最省事。base/rectangleDraw 的交互简化到了极致:按下拖动确定对角线,松手完成。

回调第二个参数直接给出四角的语义化命名,业务代码不用再去猜 GeoJSON 环里哪个点是左上角。移动端做了一个容易被忽略但很关键的处理:双指手势会取消当前绘制并恢复地图拖拽。

4. 语义地图分割(Semantic Map)

单纯的 SLAM 栅格图对机器人而言只是一堆”能走”和”不能走”的像素。要实现智能调度,必须给地图赋予语义:这是会议室、那是走廊、这里是充电桩。

indoor/semanticMap 示例在 SLAM 底图上叠加了一层高亮多边形,把整层楼切分为开放办公区、办公室、会议室、走廊等功能区域,每类区域有自己的配色预设与透明度。

5. 预定义路线(Route)

机器人需要按照预定路线移动,base/route 示例展示了如何在地图上绘制和管理预定义路线,包括起点、终点和途经点的可视化。

Feng
这位作者很神秘,还没有填写简介。