ORIN 上地图管理模块(Map Management, MM)负责机器人地图的管理,包括地图的获取、存储、更新等功能。
SLAM 建图、重定位等功能暂未提供二次开发接口,相关功能只可配合 AimMaster 客户端软件使用。
为二次开发提供了地图信息查询类接口,方便获取地图特征数据以及导航点数据(供规控导航接口使用)。
| 接口名 |
pb:/aimdk.protocol.MappingService/Get2DWholeMap |
| 功能概述 |
获取 2D 地图数据 |
| 接口类型 |
HTTP JSON RPC |
| URL |
http://192.168.100.110:50807/rpc/aimdk.protocol.MappingService/Get2DWholeMap |
| 入参 |
{
"command": "MappingCommand_GET_2D_WHOLE_MAP",
"map_id": "1764059676131"
}
- command:保持不变即可
- map_id:填写需要获取信息的地图 id
|
| 出参 |
{
"data": {
"map_id": "1764059676131",
"map_name": "园区",
"width": 2898,
"height": 2603,
"resolution": 20,
"origin_x": 1274,
"origin_y": 1371,
"map_data": "...",
"rotate_angle": -5.512457272434708,
"map_url": ""
}
}
- map_id:地图 id
- map_name:地图名
- width:地图宽度
- height:地图高度
- resolution:分辨率
- origin_x, origin_y:建图时的坐标原点,可认为地图原点
- map_data:地图数据,png 格式
- rotate_angle:旋转角度,指示客户端展示方式,可忽略
- map_url:无效字段
|
| 示例脚本 |
examples/mm/get_2d_whole_map.sh |
| 备注 |
-
可以通过以下公式计算机器人在像素地图中的位置
pixel_x = origin_x + x * resolution
pixel_y = origin_y - y * resolution
其中 x, y 为 map 坐标系到机器人本体 base_link 坐标系的变换坐标,可通过 /tf 话题获取
|
| 接口名 |
pb:/aimdk.protocol.MappingService/GetStoredMapNames |
| 功能概述 |
获取地图列表 |
| 接口类型 |
HTTP JSON RPC |
| URL |
http://192.168.100.110:50807/rpc/aimdk.protocol.MappingService/GetStoredMapNames |
| 入参 |
{
"command": "MappingCommand_GET_STORED_MAP_NAME"
}
|
| 出参 |
{
"data": {
"map_lists": [
{
"map_id": "1764137567113",
"map_name": "园区河边",
"map_index": 5
},
{
"map_id": "1764059676131",
"map_name": "园区",
"map_index": 3
},
{
"map_id": "1762584133656",
"map_name": "e2-8",
"map_index": 2
}
]
}
}
- map_id:地图 id
- map_name:地图名称
- map_index:地图索引
|
| 示例脚本 |
examples/mm/get_stored_map_names.sh |
| 备注 |
|
| 接口名 |
pb:/aimdk.protocol.MappingService/GetCurrentWorkingMap |
| 功能概述 |
获取当前工作地图 id |
| 接口类型 |
HTTP JSON RPC |
| URL |
http://192.168.100.110:50807/rpc/aimdk.protocol.MappingService/GetCurrentWorkingMap |
| 入参 |
{
"command": "MappingCommand_GET_CURRENT_WORKING_MAP"
}
固定填写即可 |
| 出参 |
{
"data": {
"map_id": "1764059676131"
}
}
map_id:当前正在使用的地图 id |
| 示例脚本 |
examples/mm/get_current_working_map.sh |
| 备注 |
|
| 接口名 |
pb:/aimdk.protocol.LocalizationService/GetTopoMsgs |
| 功能概述 |
获取地图拓扑数据 |
| 接口类型 |
HTTP JSON RPC |
| URL |
http://192.168.100.110:50807/rpc/aimdk.protocol.LocalizationService/GetTopoMsgs |
| 入参 |
{
"command": "TopoCommand_GET_TOPO_MSG",
"map_id": 1764059676131
}
- command 字段固定填写 TopoCommand_GET_TOPO_MSG
- map_id:地图 id
|
| 出参 |
{
"data": {
"points": [
{
"point_id": 1,
"name": "导航点1",
"point_type": "NaviPointType_NAVI_POINT",
"pixel_pose": {
"position": {
"u": 1506,
"v": 1420
},
"angle": 0
},
"pose": {
"position": {
"x": 11.6,
"y": -2.45,
"z": 0
}
}
}
],
"paths": [],
"regions": []
}
}
- points,paths,regions 分别代表点位、路线、区域,其中点位可用于动线讲解,导航等,后二者一般不使用,无需关注
- point_id:点位 id
- name:点位名称
- point_type:点位类型
- pixel_pose:像素坐标
- pose:世界坐标
|
| 示例脚本 |
examples/mm/get_topo_msgs.sh |
| 备注 |
|