Skip to content

定位服务接口

介绍

定位服务接口:提供机器人在已加载地图中的定位操作,包括触发重定位和查询当前定位状态。

功能Python
设置定位/重定位
获取定位状态

定位操作

Python接口

set_localization(auto_relocation=True, location_name='', pose=None, timeout=200)

功能说明
触发机器人定位或重定位。支持自动重定位(扫描环境匹配地图)和手动指定位姿两种方式。

参数说明

参数名类型必填/默认值说明
auto_relocationbool默认: TrueTrue 时自动重定位;False 时使用手动位姿定位。
location_namestr默认: ''以已保存点位为初始位姿触发重定位。为空时从原点或当前估计位置开始。
posePose默认: 零位姿auto_relocation=False 时使用此位姿作为定位初始点。
timeoutint默认: 200等待定位完成的超时时间(秒)。

返回值

类型说明
SetLocationResponsestate.code == 0 表示定位成功。

调用示例

python
from daystar_api.lowlevel_skills import set_localization

# 自动重定位(推荐)
result = set_localization()
if result.state.code == 0:
    print("重定位成功")

# 指定已知点位作为初始位姿
result = set_localization(location_name="entrance", timeout=300)

# 手动指定位姿定位
from daystar_api.lowlevel_skills import Pose
pose = Pose()
pose.position.x = 1.0
pose.position.y = 2.0
pose.orientation.w = 1.0
result = set_localization(auto_relocation=False, pose=pose)

get_localization_state()

功能说明
获取机器人当前定位状态,自动进行数据有效性验证(等待最多 3 秒、5 秒过期阈值)。数据不可用时返回 UNKNOWN_LOC

参数说明

无参数。

返回值

类型说明
GetLocalizationStateResponsestate.code == 0 表示查询成功;loc_stateLocalizationState 枚举:NORMAL(0) 定位正常、LACKDATA(1) 数据不足、LOST(2) 定位丢失、UNKNOWN_LOC(99) 未知。

调用示例

python
from daystar_api.lowlevel_skills import get_localization_state, LocalizationState

response = get_localization_state()
if response.state.code == 0:
    if response.loc_state == LocalizationState.NORMAL:
        print("定位正常,可以导航")
    elif response.loc_state == LocalizationState.LOST:
        print("定位丢失,需要重定位")