建图服务接口
介绍
建图服务接口:提供 SLAM 地图的创建、加载和管理功能。使用导航接口前需先加载地图并完成定位。
| 功能 | Python |
|---|---|
| 开始建图 | ✔ |
| 停止建图并保存 | ✔ |
| 加载地图 | ✔ |
| 获取可用地图列表 | ✔ |
建图模式
Python接口
start_mapping(timeout=120)
功能说明
启动 SLAM 建图模式,机器人开始扫描并构建周围环境的点云地图。启动后需遥控机器人在目标区域慢速移动以完成地图覆盖。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
timeout | int | 默认: 120 | 等待建图模式启动的超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
StartMappingResponse | state.code == 0 且 success 为 True 时表示建图模式已启动。 |
调用示例
python
from daystar_api.lowlevel_skills import start_mapping, stop_mapping
import time
# 启动建图
result = start_mapping()
if result.success:
print("建图已启动,请遥控机器人扫描区域...")
time.sleep(300) # 遥控机器人扫描 5 分钟
stop_mapping("office_map")stop_mapping(map_name, auto_reload=False, need_2d_map=True, block=True, timeout=30)
功能说明
停止 SLAM 建图,保存地图文件,并切换回地图定位模式。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
map_name | str | 必填 | 地图保存名称。 |
auto_reload | bool | 默认: False | True 时保存后自动加载该地图以立即使用。 |
need_2d_map | bool | 默认: True | 是否同时生成 2D 栅格地图。 |
block | bool | 默认: True | True 时阻塞等待地图保存完成。 |
timeout | int | 默认: 30 | 保存操作超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
StopMappingResponse | state.code == 0 且 success 为 True 时表示地图已保存。 |
调用示例
python
from daystar_api.lowlevel_skills import stop_mapping
# 停止建图并保存,保存后自动加载
result = stop_mapping("office_floor1", auto_reload=True)
if result.success:
print("地图已保存并加载")地图操作
Python接口
load_map(map_name, auto_reload=True, timeout=30)
功能说明
从地图资源目录(/root/data/daystar_api/maps)加载已有地图,加载完成后自动切换到定位模式。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
map_name | str | 必填 | 地图名称(须已存在于资源目录中)。 |
auto_reload | bool | 默认: True | True 时永久加载(下次启动也使用此地图);False 时仅本次会话有效。 |
timeout | int | 默认: 30 | 等待加载完成的超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
LoadMapResponse | state.code == 0 且 success 为 True 时表示地图加载成功。 |
调用示例
python
from daystar_api.lowlevel_skills import load_map
# 永久加载地图
result = load_map("office_floor1")
if result.success:
print("地图加载成功")
# 临时加载(本次会话)
result = load_map("warehouse_map", auto_reload=False)
# 大地图需要更长超时
result = load_map("large_outdoor_map", timeout=60)get_available_maps(timeout=5)
功能说明
获取地图资源目录中所有可用的地图名称列表。
参数说明
| 参数名 | 类型 | 必填/默认值 | 说明 |
|---|---|---|---|
timeout | int | 默认: 5 | 查询超时时间(秒)。 |
返回值
| 类型 | 说明 |
|---|---|
GetAvailableMapsResponse | state.code == 0 时表示查询成功;response.map_names 为地图名称列表;response.success 为布尔值。 |
调用示例
python
from daystar_api.lowlevel_skills import get_available_maps, load_map
result = get_available_maps()
if result.response.success:
print("可用地图:")
for name in result.response.map_names:
print(f" - {name}")
# 检查目标地图是否存在
if "office_map" in result.response.map_names:
load_map("office_map")