跳转到内容

地图管理模块

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

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

接口名接口描述请求消息类型答复消息类型备注通信后端
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

地图管理命令枚举

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

拓扑管理命令枚举

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

导航点类型枚举

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

推送给客户端实时位姿

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

获取 2D 地图数据请求

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

获取 2D 地图数据响应

FieldTypeDescription
headeraimdk::protocol::ResponseHeader响应头
dataaimdk::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地图旋转角度

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

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

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

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

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

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

地图ID和名称组合

FieldTypeDescription
map_iduint64地图ID
map_namestring地图名称

获取当前工作地图请求

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

获取当前工作地图响应

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

获取当前工作地图数据

FieldTypeDescription
map_iduint64当前地图id

获取拓扑消息请求

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

获取拓扑消息响应

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

获取拓扑消息数据

FieldTypeDescription
pointsaimdk::protocol::PixelNaviPointDataType[]像素导航点拓扑信息
pathsaimdk::protocol::PixelPathDataType[]像素path拓扑信息
regionsaimdk::protocol::RegionReqDataType[]区域region信息
NameNumberDescription
RegionType_UNDEFINED0未定义类型
RegionType_WORKSPACE1工作区
RegionType_WALL2虚拟墙
NameNumberDescription
RegionDrawingType_UNDEFINED0未定义类型
RegionDrawingType_CLOSURE1闭包
RegionDrawingType_LINES2线段
FieldTypeDescription
namestring区域名称
typeaimdk::protocol::RegionType区域类型
drawing_typeaimdk::protocol::RegionDrawingType区域绘制类型
region_idint32区域id
verticesaimdk::protocol::Pixel[]区域顶点
FieldTypeDescription
namestring路径名称
path_idint32路径点id
posesaimdk::protocol::PixelPose[]路径点集合
is_recordingbool标记是否是录制
FieldTypeDescription
point_idint32导航点id
namestring导航点名称
point_typeaimdk::protocol::NaviPointType导航点类型
pixel_poseaimdk::protocol::PixelPose导航点像素坐标

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

Terminal window
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"}'
Terminal window
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"}'
Terminal window
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"}'
Terminal window
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"}'