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调用
- 找到所需的API函数
- 了解函数的输入和输出数据,及其数据形式
- 调用函数获取/设置信息