Skip to content

高层技能接口

介绍

高层技能接口:封装了复杂的前置状态检查和底层调用流程,为常见机器人任务提供开箱即用的高层接口。调用方无需手动处理定位状态、姿态切换、模式切换等复杂流程。

功能Python
智能导航到点位(含前置检查和路网规划)

智能导航

Python接口

go_to_location(location=None, pose=None, travel_params=None, timeout=600, complete_callback=None, failed_callback=None, progress_callback=None, graph_file=None, start_location=None)

功能说明

导航到指定点位或位姿的高层技能。自动完成以下前置检查与调节,调用方无需手动处理:

  1. 验证点位存在(仅 location 模式):检查目标点位是否已注册,支持口语化后缀模糊匹配(如"茶水间那里"→"茶水间")
  2. 检查定位状态:若定位异常,自动触发重定位(set_localization(auto_relocation=True)
  3. 检查机器人姿态:若未站立,自动执行站立(stand_up()
  4. 检查控制模式:若非导航模式,自动切换至 NAV_MODE

路网规划(仅 location 模式有效):若配置目录中存在路网图文件,且目标点位在路网中,则自动拆分为多段导航;否则降级为直接导航。

参数说明

参数名类型必填/默认值说明
locationstrpose 二选一目标点位名称(须已注册)。
posePoselocation 二选一目标位姿对象,适用于"返回原位"等场景。通常配合 get_current_pose() 使用。
travel_paramsMsgTravelParams默认: None导航行驶参数,None 时使用默认参数。
timeoutint默认: 600整个导航过程的超时时间(秒)。启用路网时,每段超时为 max(60, timeout // 段数)
complete_callbackcallable默认: None导航成功到达时的回调,接收 NavCompleteEvent
failed_callbackcallable默认: None导航失败时的回调,接收 NavFailedEvent
progress_callbackcallable默认: None导航进度回调,接收 NavProgressEvent
graph_filestr默认: None路网图文件名或路径。None 时自动发现配置目录中的默认路网(default.yaml 或第一个 .yaml)。
start_locationstr默认: None起始路网节点名称。None 时根据当前位置自动匹配最近节点。

返回值

类型说明
IntelligentNavigationResponsestate.code == 0 表示成功到达目标。

异常

异常说明
GoToLocationError前置检查失败时抛出,包含中文描述(如点位不存在、重定位失败、站立失败等)。

调用示例

python
from daystar_api.highlevel_skills import go_to_location

# 导航到命名点位(自动前置检查 + 自动路网规划)
result = go_to_location("茶水间")
if result.state.code == 0:
    print("已到达茶水间")

# 指定路网文件
result = go_to_location("会议室", graph_file="office")

# 指定起始节点(已知当前位置时更准确)
result = go_to_location("会议室", start_location="大厅")

# 返回出发位置(先记录,执行任务后回来)
from daystar_api.lowlevel_skills import get_current_pose
pose_resp = get_current_pose()
origin_pose = pose_resp.response.location_pose
# ... 执行其他任务 ...
result = go_to_location(pose=origin_pose)

# 带错误处理
from daystar_api.highlevel_skills import GoToLocationError
try:
    go_to_location("未注册的点位")
except GoToLocationError as e:
    print(f"导航前置检查失败: {e}")