地图管理模块

地图管理模块

地图管理模块(Map Management, MM)负责机器人地图的管理,包括地图的获取、存储、更新等功能。

本模块位于 orin 开发板上,http 后端监听的端口为 50807。

RPC 接口

接口名接口描述请求消息类型答复消息类型备注通信后端
pb:/aimdk.protocol.MappingService/Get2DWholeMap获取2D地图数据aimdk::protocol::Get2DWholeMapReqaimdk::protocol::Get2DWholeMapRsp获取2D地图接口,根据地图id获取地图数据,可获取到地图名,地图分辨率,地图大小,地图数据(png 格式二进制)等信息http
pb:/aimdk.protocol.MappingService/GetStoredMapNames获取已存储的地图列表aimdk::protocol::GetStoredMapNamesReqaimdk::protocol::GetStoredMapNamesRsp获取已存储的地图列表,返回已存储的地图id以及对应的名字列表http
pb:/aimdk.protocol.MappingService/GetCurrentWorkingMap当前工作地图idaimdk::protocol::GetCurrentWorkingMapReqaimdk::protocol::GetCurrentWorkingMapRsp获取当前工作地图id,所有地图都以id作为标识,不可重复,地图名称可重复http
pb:/aimdk.protocol.LocalizationService/GetTopoMsgs获取相关地图的所有拓扑数据aimdk::protocol::GetTopoMsgsReqaimdk::protocol::GetTopoMsgsRsp获取相关地图的所有拓扑数据,返回拓扑数据列表,拓扑数据中只有导航点信息有效,区域信息和路径信息暂时为空http

Protobuf 消息类型

aimdk::protocol::MappingCommand

地图管理命令枚举

NameNumberDescription
MappingCommand_UNDEFINED0未定义命令
MappingCommand_GET_2D_WHOLE_MAP1获取2D完整地图
MappingCommand_GET_STORED_MAP_NAME2获取已存储地图名称
MappingCommand_GET_CURRENT_WORKING_MAP3获取当前工作地图

aimdk::protocol::TopoCommand

拓扑管理命令枚举

NameNumberDescription
TopoCommand_UNDEFINED0未定义命令
TopoCommand_GET_TOPO_MSG1获取拓扑消息

aimdk::protocol::NaviPointType

导航点类型枚举

NameNumberDescription
NaviPointType_UNDEFINED0未定义类型
NaviPointType_NAVI_POINT1普通导航点
NaviPointType_CHARGE_POINT2充电桩导航点

aimdk::protocol::PubCurrentPose

推送给客户端实时位姿

FieldTypeDescription
timestampaimdk::protocol::Timestamp发送时刻的时间戳
poseaimdk::protocol::SE3Pose当前时刻位姿数据
positionaimdk::protocol::PixelPose当前时刻像素坐标数据
map_iduint64当前定位关联的地图id

aimdk::protocol::Get2DWholeMapReq

获取 2D 地图数据请求

FieldTypeDescription
headeraimdk::protocol::RequestHeader请求头
commandaimdk::protocol::MappingCommand请求命令,值为MappingCommand_GET_2D_WHOLE_MAP
map_idstring地图ID

aimdk::protocol::Get2DWholeMapRsp

获取 2D 地图数据响应

FieldTypeDescription
headeraimdk::protocol::ResponseHeader响应头
dataaimdk::protocol::Get2DWholeMapData地图数据

aimdk::protocol::Get2DWholeMapData

2D 地图数据

FieldTypeDescription
map_idstring地图ID
map_namestring地图名称
map_widthint32地图宽度
map_heightint32地图高度
map_resolutionfloat地图分辨率
origin_xfloat地图原点X坐标
origin_yfloat地图原点Y坐标
map_databytes地图数据
rotate_anglefloat地图旋转角度

aimdk::protocol::GetStoredMapNamesReq

获取已存储的地图列表请求

FieldTypeDescription
headeraimdk::protocol::RequestHeader请求头
commandaimdk::protocol::MappingCommand请求命令,值为MappingCommand_GET_STORED_MAP_NAME

aimdk::protocol::GetStoredMapNamesRsp

获取已存储的地图列表响应

FieldTypeDescription
headeraimdk::protocol::ResponseHeader响应头
dataaimdk::protocol::GetStoredMapNamesData地图列表

aimdk::protocol::GetStoredMapNamesData

获取已存储的地图列表数据

FieldTypeDescription
map_listsaimdk::protocol::MapIdNameCombine地图列表

aimdk::protocol::MapIdNameCombine

地图ID和名称组合

FieldTypeDescription
map_iduint64地图ID
map_namestring地图名称

aimdk::protocol::GetCurrentWorkingMapReq

获取当前工作地图请求

FieldTypeDescription
headeraimdk::protocol::RequestHeader请求头
commandaimdk::protocol::MappingCommand请求命令, 值为MappingCommand_GET_CURRENT_WORKING_MAP

aimdk::protocol::GetCurrentWorkingMapRsp

获取当前工作地图响应

FieldTypeDescription
headeraimdk::protocol::ResponseHeader响应头
dataaimdk::protocol::GetCurrentWorkingMapData响应数据

aimdk::protocol::GetCurrentWorkingMapData

获取当前工作地图数据

FieldTypeDescription
map_iduint64当前地图id

aimdk::protocol::GetTopoMsgsReq

获取拓扑消息请求

FieldTypeDescription
headeraimdk::protocol::RequestHeader请求头
commandaimdk::protocol::TopoCommand请求命令,值为TopoCommand_GET_TOPO_MSG
map_iduint64地图id

aimdk::protocol::GetTopoMsgsRsp

获取拓扑消息响应

FieldTypeDescription
headeraimdk::protocol::ResponseHeader响应头
dataaimdk::protocol::GetTopoMsgsData响应数据

aimdk::protocol::GetTopoMsgsData

获取拓扑消息数据

FieldTypeDescription
pointsaimdk::protocol::PixelNaviPointDataType像素导航点拓扑信息
pathsaimdk::protocol::PixelPathDataType像素path拓扑信息
regionsaimdk::protocol::RegionReqDataType区域region信息

aimdk::protocol::RegionType

NameNumberDescription
RegionType_UNDEFINED0未定义类型
RegionType_WORKSPACE1工作区
RegionType_WALL2虚拟墙

aimdk::protocol::RegionDrawingType

NameNumberDescription
RegionDrawingType_UNDEFINED0未定义类型
RegionDrawingType_CLOSURE1闭包
RegionDrawingType_LINES2线段

aimdk::protocol::RegionReqDataType

FieldTypeDescription
namestring区域名称
typeaimdk::protocol::RegionType区域类型
drawing_typeaimdk::protocol::RegionDrawingType区域绘制类型
region_idint32区域id
verticesaimdk::protocol::Pixel区域顶点

aimdk::protocol::PixelPathDataType

FieldTypeDescription
namestring路径名称
path_idint32路径点id
posesaimdk::protocol::PixelPose路径点集合
is_recordingbool标记是否是录制

aimdk::protocol::PixelNaviPointDataType

FieldTypeDescription
point_idint32导航点id
namestring导航点名称
point_typeaimdk::protocol::NaviPointType导航点类型
pixel_poseaimdk::protocol::PixelPose导航点像素坐标

使用示例

提供 Http Curl 示例, 需要将 127.0.0.1 替换为机器人 orin 开发板的 IP 地址, map_id替换为想要请求的地图id:

获取2D地图数据

bash
curl --location --request POST 'http://127.0.0.1:50807/rpc/aimdk.protocol.MappingService/Get2DWholeMap' \
--header 'Content-Type: application/json' \
--data-raw '{"header":{},"command":"MappingCommand_GET_2D_WHOLE_MAP","map_id":"1732275337238"}'

获取已存储的地图列表

bash
curl --location --request POST 'http://127.0.0.1:50807/rpc/aimdk.protocol.MappingService/GetStoredMapNames' \
--header 'Content-Type: application/json' \
--data-raw '{"header":{},"command":"MappingCommand_GET_STORED_MAP_NAME"}'

获取当前工作地图id

bash
curl --location --request POST 'http://127.0.0.1:50807/rpc/aimdk.protocol.MappingService/GetCurrentWorkingMap' \
--header 'Content-Type: application/json' \
--data-raw '{"header":{},"command":"MappingCommand_GET_CURRENT_WORKING_MAP"}'

获取当前地图的拓扑数据

bash
curl --location --request POST 'http://127.0.0.1:50807/rpc/aimdk.protocol.LocalizationService/GetTopoMsgs' \
--header 'Content-Type: application/json' \
--data-raw '{"header":{},"command":"TopoCommand_GET_TOPO_MSG","map_id":"1732275337238"}'