YanAPI接口文档说明

1. 前言

1.1 YanAPI简介

YanAPI是基于Yanshee RESTful接口开发的、针对Python编程语言的API。

YanAPI提供使用Python获取机器人状态信息、设计控制机器人表现的能力,您可以轻松定制与众不同的专属机器人。

1.2 适用对象

具备一定Python3编程经验、了解函数接口调用方式、持有Yanshee机器人的用户。

1.3 YanAPI功能列表

模块 功能 函数名
电量 获取机器人电量信息 get_robot_battery_info
摔倒管理 获取机器人摔倒管理状态 get_robot_fall_management_state
设置机器人摔倒管理开关 set_robot_fall_management_state
语言 获取当前机器人语言 get_robot_language
设置机器人语言 set_robot_language
灯效 获取机器人灯效 get_robot_led
设置机器人灯效 set_robot_led
设置机器人灯效,设置完成后返回布尔值 sync_set_led
版本信息 获取机器人版本信息 get_robot_version_info
模式信息 获取机器人当前运行模式 get_robot_mode
音量 获取机器人音量 get_robot_volume
设置机器人音量 set_robot_volume
音乐 删除音乐文件 delete_media_music
获取机器人音乐播放状态 get_media_music_state
上传音乐文件 upload_media_music
播放音乐 start_play_music
停止播放音乐 stop_play_music
获取音乐列表 get_media_music_list
播放音乐,播放完成后返回布尔值 sync_play_music
动作 删除动作文件 delete_motion
获取当前动作文件执行状态 get_current_motion_play_state
开始执行动作 start_play_motion
暂停动作执行 pause_play_motion
恢复动作执行 resume_play_motion
停止动作执行 stop_play_motion
开始执行动作,执行完成后返回布尔值 sync_play_motion
上传动作文件 upload_motion
获取动作文件列表 get_motion_list
机器人步态动作控制 control_motion_gait
获取机器人步态执行状态 get_motion_gait_state
退出机器人步态执行 exit_motion_gait
机器人步态动作控制,执行完成后返回布尔值 sync_do_motion_gait
舵机 查询舵机角度值 get_servos_angles
设置舵机角度值 set_servos_angles
设置分层动作舵机角度值 set_servos_angles_layers
设置舵机角度值并获取返回结果 sync_set_servo_rotate
查询舵机工作模式 get_servos_mode
设置舵机工作模式 set_servos_mode
传感器 传感器校准 sensor_calibration
获取所有传感器的列表 get_sensors_list
获取环境传感器值 get_sensors_environment
获取九轴陀螺仪运动传感器值 get_sensors_gyro
获取红外距离传感器值 get_sensors_infrared
读取机器人身上的压力传感器值 get_sensors_pressure
获取触摸传感器值 get_sensors_touch
获取超声传感器值 get_sensors_ultrasonic
语音 停止语音识别服务 stop_voice_asr
获取语义理解工作状态 get_voice_asr_state
开始语义理解 start_voice_asr
执行语义理解并获取返回结果 sync_do_voice_asr
删除指定离线语法名称下的所有配置 delete_voice_asr_offline_syntax
获取指定语法名称下的所有配置 get_voice_asr_offline_syntax
创建一个新的离线语法名称配置 create_voice_asr_offline_syntax
修改已有语法配置中的命令词和对应的返回值 update_voice_asr_offline_syntax
获取所有离线语法名称 get_voice_asr_offline_syntax_grammars
停止语音听写 stop_voice_iat
获取语音听写结果 get_voice_iat
开始语音听写 start_voice_iat
执行语义听写并获取返回结果 sync_do_voice_iat
停止语音播报任务 stop_voice_tts
获取指定或者当前工作状态 get_voice_tts_state
开始语音合成任务 start_voice_tts
执行语音合成并获取返回结果 sync_do_tts
视觉 获取视觉任务结果 get_visual_task_result
开始人脸识别 start_face_recognition
停止人脸识别 stop_face_recognition
执行人脸识别并获取返回结果 sync_do_face_recognition
开始颜色识别 start_color_recognition
停止颜色识别 stop_color_recognition
执行颜色识别并获取返回结果 sync_do_color_recognition
开始物体识别 start_object_recognition
停止物体识别 stop_object_recognition
执行物体识别并获取返回结果 sync_do_object_recognition
开始AprilTag识别 start_aprilTag_recognition
停止AprilTag识别 stop_aprilTag_recognition
查询AprilTag识别状态 get_aprilTag_recognition_status
开始二维码识别并获取返回结果 sync_do_QR_code_recognition
配置物体跟踪 config_object_tracking
开启物体跟踪 start_object_tracking
关闭物体跟踪 stop_object_tracking
获取物体跟踪状态 get_object_tracking_status
删除指定名称的图片 delete_vision_photo
获取指定名称的照片,并保存到特定路径下面 get_vision_photo
拍一张照片 take_vision_photo
获取机器人照片列表 get_vision_photo_list
删除指定名称的样本照片 delete_vision_photo_sample
获取样本照片列表 get_vision_photo_samples
上传样本图片到指定文件夹 upload_vision_photo_sample
打开摄像头网络视频流 open_vision_stream
关闭摄像头网络视频流 close_vision_stream
删除指定样本标签 delete_vision_tag
获取样本标签列表 get_vision_tags
给已有样本数据打标签 set_vision_tag
视觉任务视频流 开启或关闭视觉任务视频流 do_visions_visible
显示视觉任务视频流 show_visions_result
订阅内容 停止运动控制状态信息订阅 stop_subscribe_motion
订阅运动控制状态信息 start_subscribe_motion
停止步态运动控制状态信息订阅 stop_subscribe_motion_gait
订阅步态运动控制状态信息 start_subscribe_motion_gait
停止传感器订阅服务 stop_subscribe_sensor
订阅传感器消息 start_subscribe_sensor
停止指定视觉任务订阅 stop_subscribe_vision
订阅指定视觉任务消息 start_subscribe_vision
停止订阅语义理解消息 stop_subscribe_voice_asr
订阅语义理解消息 start_subscribe_voice_asr
停止订阅语音听写消息 stop_subscribe_voice_iat
订阅语音听写消息 start_subscribe_voice_iat
停止订阅语音播报消息 stop_subscribe_voice_tts
订阅语音播报消息 start_subscribe_voice_tts
语音类 创建语音类对象 voice
停止语音识别服务 stop_voice_nlp
获取语义理解工作状态 get_voice_nlp_state
开始语义理解 start_voice_nlp
执行语义理解并获取返回结果 sync_do_voice_nlp
删除指定离线语法名称下的所有配置 delete_voice_asr_offline_syntax
获取指定语法名称下的所有配置 get_voice_asr_offline_syntax
创建一个新的离线语法名称配置 create_voice_asr_offline_syntax
修改已有语法配置中的命令词和对应的返回值 update_voice_asr_offline_syntax
获取所有离线语法名称 get_voice_asr_offline_syntax_grammars
停止语音听写 stop_voice_asr
获取语音听写结果 get_voice_asr
开始语音听写 start_voice_asr
执行语义听写并获取返回结果 sync_do_voice_asr
停止语音播报任务 stop_voice_tts
获取指定或者当前工作状态 get_voice_tts_state
开始语音合成任务 start_voice_tts
执行语音合成并获取返回结果 sync_do_tts
控制uKit2.0 通过Yanshee机器人控制uKit2.0的接口类 ukit_controller
设置Yanshee UDP广播通道的ukit端口号 creat_channel_to_ukit
发送UDP广播消息给uKit2.0 send_msg_to_ukit
设置Yanshee UDP广播地址 set_broadcast_ip
设置Yanshee UDP广播接收地址 set_recv_ip
接收UDP广播消息 get_msg_from_ukit
关闭Yanshee UDP广播通道 close_channel_to_ukit
uKit手柄 获取蓝牙手柄按键和动作文件映射关系 get_gamepad_keymap
设置单个按键的动作 set_gamepad_keymap
设置多个按键的动作 set_gamepad_keymaps
重置单个按键到默认配置 reset_gamepad_keymap
重置多个按键或者全部按键到默认配置 reset_gamepad_keymaps
常用简化接口 语音听写 sync_do_voice_iat_value
语义理解 sync_do_voice_asr_value
获得所有动作文件 get_motion_list_value
人脸识别 sync_do_face_recognition_value(type:”recognition”)
人脸录入 do_face_entry
人脸年龄识别 sync_do_face_recognition_value(type:”age”)
人脸年龄段识别 sync_do_face_recognition_value(type:”age_group”)
人脸性别识别 sync_do_face_recognition_value(type:”gender”)
人脸数量识别 sync_do_face_recognition_value(type:”quantity”)
人脸表情识别 sync_do_face_recognition_value(type:”expression”)
获取传感器列表 get_sensors_list_value
获取红外传感器的值 get_sensors_infrared_value
获取触碰传感器的值 get_sensors_touch_value
获取温湿度传感器的值 get_sensors_environment_value
获取压力传感器的值 get_sensors_pressure_value
获取超声波传感器的值 get_sensors_ultrasonic_value
获取机器人灯效颜色(胸口指示灯) get_button_led_color_value
获取机器人灯效状态(胸口指示灯) get_button_led_mode_value
获取机器人灯效颜色(摄像头) get_eye_led_color_value
获取机器人灯效状态(摄像头) get_eye_led_mode_value
获取机器人版本信息 get_robot_version_info_value
设置机器人音量 set_robot_volume_value
获取机器人音量 get_robot_volume_value
获取机器人电量 get_robot_battery_value
获取舵机角度值 get_servo_angle_value

2.环境依赖

  • 情况一、在机器人本体系统中调用YanAPI

软件依赖: 机器人固件版本≥2.1.0

编程开发环境: 推荐使用内置于机器人本体系统中的JupyterLab(支持远程访问,具体访问方式可参见【指南】)

编程语言: Python 3.5.0及以上版本

  • 情况二、在PC端调用YanAPI

软件依赖: 需要将机器人本体系统/usr/lib/python3.5路径下的YanAPI.py文件拷贝到PC端相应Python开发软件依赖库的路径下

编程开发环境: 推荐 VSCode(官网:https://code.visualstudio.com/) 、PyCharm(官网: https://www.jetbrains.com/pycharm/)、 Jupyter(官网:https://jupyter.org/)

编程语言: Python 3.5.0及以上版本

3 入门指南

3.1 引入SDK

import YanAPI

3.2 初始化

  • 情况一、在机器人本体系统中调用API

无需初始化操作,无需设置机器人IP地址,默认操控当前机器人

  • 情况二、在PC端调用API

需要设置机器人IP地址,且要求机器人与PC端接入同一局域网(IP地址查看方式可参见【指南】)

/*
 *  初始化SDK
 *  @param robot_ip  参数:机器人IP地址
 *  @return 无返回值
 */
YanAPI.yan_api_init(ip_addr)

3.3 API调用

  1. 找到所需的API函数
  2. 了解函数的输入和输出数据,及其数据形式
  3. 调用函数获取/设置信息