yanshee机器人初次使用说明(备注)-PyCharm

发布于:2025-02-14 ⋅ 阅读:(34) ⋅ 点赞:(0)

准备

需要:
1,(优必选)yanshee机器人+Yanshee 开发者说明
2,手机-联网简单操控 / HDMI线与显示器和键鼠标-图形化开发环境 / 笔记本(VNC-内置图形化开发环境/PyCharm等平台)。
在这里插入图片描述

3,PyCharm + 一定的Python基础
(本篇为个人学习小结,只介绍手机联网 + 笔记本PyCharm连接使用)

PyCharm的配置

1,获取SDK–YanAPI.py(多种途径可获得)

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

1-1,自己获取:(已经获取的跳到下一步)

下载VNC,安装
在这里插入图片描述

创立新连接
在这里插入图片描述
输入IP,连接树莓派(yanshee)
在这里插入图片描述
双击选中你要连接的
在这里插入图片描述
输入用户名和密码,用户名:pi,密码:raspberry,然后点击ok,如下图所示:
在这里插入图片描述

最后
在这里插入图片描述

2,新建Python项目,将YanAPI.py放在项目目录下

在这里插入图片描述

3,安装需要用到的三个包

# cmd控制台打开项目包目录下下载以下三个基础包
# pip3 install nest_asyncio
# pip3 install requests
# pip install opencv-python
安装时`opencv-python`指的是cv2,引用`import cv2`物体与颜色识别。
在 Yanshee 机器人上还需要引入 PiCamera 模块,可以实现与 CV2 联动采集并处理图像。

在这里插入图片描述
安装成功后,可以看到最下行Successfully注意网络
在这里插入图片描述
最后可以在lib文件目录下看到:
在这里插入图片描述

4-1,获取yanshee的ip

这里是引用

4,新建连接测试代码

import YanAPI
import requests
import cv2
# 初始化(第一步)
YanAPI.yan_api_init("获取yanshee的ip")

# 输出验证
print("Hello")  # 证明项目编译器没问题正常运行
print(YanAPI.get_robot_mode())  # 随便拿的代码看输出说明连接yanshee没问题

运行如下说明连接成功
在这里插入图片描述
接着就可以开始参照文档开始操控yanshee了!
先手后腿(注意不要让机器人摔了)

import math
import YanAPI
import time
YanAPI.yan_api_init('ip')  # 第一步初始化,确保IP正确

# 想要看执行详情print打印输出
print(YanAPI.get_robot_language())
YanAPI.get_robot_language()
print(YanAPI.get_button_led_color_value())
# YanAPI.set_robot_led(type:button, color:red, mode:on)
YanAPI.set_robot_led('button', 'red', 'on')

#  音量调节
print(YanAPI.get_robot_volume())  # 查看当前音量
YanAPI.set_robot_volume(80)  # 调节设置音量

# 语言播报-先调声音再播报
YanAPI.sync_do_tts("Hi,Nice to meet you!", True)

# 时间戳转正常时间
timeArray = YanAPI.get_current_motion_play_state()['data']['timestamp']
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timeArray)))

# 动作
YanAPI.sync_do_motion_gait(1, 0, 3, 3, True)  # 谨慎使用防摔
print(YanAPI.get_motion_gait_state())
YanAPI.exit_motion_gait()  # 停止所有动作

# 舵机角度
# 查询指定多个舵机角度
List = ["NeckLR", "RightShoulderRoll"]
print(YanAPI.get_servos_angles(List))
# # 转动一个或多个舵机
Dict = {
    "RightShoulderRoll": {"angle": 90, "isNeedBessel": True, "runtime": 1000},
    "LeftShoulderFlex": {"angle": 90, "isNeedBessel": False, "runtime": 800},
    "RightKneeFlex": {"angle": 90, "isNeedBessel": True, "runtime": 1500},
    "NeckLR": {"angle": 165, "isNeedBessel": False, "runtime": 200}
}
YanAPI.set_servos_angles({"NeckLR": 90}, 200)  # 单个({name:int},时间)
YanAPI.set_servos_angles(Dict, 200)  # 多个(字典名,时间)
# 设置分层动作舵机角度值(一次可以设置一个或者多个舵机角度值)
YanAPI.set_servos_angles_layers(Dict)
print(YanAPI.set_servos_angles_layers(Dict))

# 视觉-人脸识别
# types = ["recognition", "tracking", "gender", "age", "mask" ,"glass"]  # 其他模式看文档
res1 = YanAPI.sync_do_face_recognition("gender")
res2 = YanAPI.sync_do_face_recognition("glass")
print(res1, res2)
# 识别手势
res = YanAPI.sync_do_gesture_recognition()
print(res)

技巧积累

1,说明书(Yanshee 开发者说明)从头大概点到尾每个都点点,把握有哪些说明。有些后续遇到的问题官方都有写,比如用VNC连接后的屏幕调整。在这里插入图片描述

2,API 文件理解有误,搜别人编写或操作的视频可以快速把握,或者其实教程里也有。
在这里插入图片描述