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

准备

需要:
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 文件理解有误,搜别人编写或操作的视频可以快速把握,或者其实教程里也有。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/17481.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

webshell通信流量分析

环境安装 Apatche2 php sudo apt install apache2 -y sudo apt install php libapache2-mod-php php-mysql -y echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php sudo ufw allow Apache Full 如果成功访问info.php&#xff0c;则环境安…

uniapp - iconfont下载本地并且运用至项目上

1、项目中创建一个文件夹放置iconfont相关文件&#xff0c;例如src/assets/iconfont&#xff08;名称自己定义&#xff09; 2、在iconfont下载项目至本地 3、解压后把文件复制进1的文件夹中 4、修改src/assets/iconfont - iconfont.css里的font-face的src地址&#xff0c;修…

黑马Redis详细笔记(实战篇---短信登录)

目录 一.短信登录 1.1 导入项目 1.2 Session 实现短信登录 1.3 集群的 Session 共享问题 1.4 基于 Redis 实现共享 Session 登录 一.短信登录 1.1 导入项目 数据库准备 -- 创建用户表 CREATE TABLE user (id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 用户ID,phone …

企业级高并发全链路优化:流量分发、边缘防护与服务治理的整合之道

文章目录 第一章&#xff1a;引入概览1.1 高并发时代的业务挑战与背景1.2 全链路思维在高并发架构中的必要性1.3 解决方案总览&#xff1a;技术演进与混合架构模式 第二章&#xff1a;流量分发与边缘网络2.1 DNS 解析与全球流量调度2.2 LVS 与 Nginx 集群&#xff1a;流量负载均…

Mysql中使用sql语句生成雪花算法Id

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

react传递函数与回调函数原理

为什么 React 允许直接传递函数&#xff1f; 回调函数核心逻辑 例子&#xff1a;父组件控制 Modal 的显示与隐藏 // 父组件 (ParentComponent.tsx) import React, { useState } from react; import { Modal, Button } from antd; import ModalContent from ./ModalContent;co…

DeepSeek、Kimi、文心一言、通义千问:AI 大语言模型的对比分析

在人工智能领域&#xff0c;DeepSeek、Kimi、文心一言和通义千问作为国内领先的 AI 大语言模型&#xff0c;各自展现出了独特的特点和优势。本文将从技术基础、应用场景、用户体验和价格与性价比等方面对这四个模型进行对比分析&#xff0c;帮助您更好地了解它们的特点和优势。…

国际主流架构框架整理【表格版】简介、适用场景、优缺点、中文名、英名全称,附TOGAF认证介绍

国际主流架构框架表格 国际主流架构框架架构框架英名全称中文名简介适用场景优缺点TOGAFThe Open Group Architecture Framework开放工作组体系结构框架是由The Open Group组织开发的一种企业架构框架&#xff0c;它提供了一套方法论、工具和术语&#xff0c;用于帮助组织设计…

缓存三大问题及其解决方案

缓存三大问题及其解决方案 1. 前言 ​ 在现代系统架构中&#xff0c;缓存与数据库的结合使用是一种经典的设计模式。为了确保缓存中的数据与数据库中的数据保持一致&#xff0c;通常会给缓存数据设置一个过期时间。当系统接收到用户请求时&#xff0c;首先会访问缓存。如果缓…

微信小程序自定义tabbar,跳转tabbar后页面加载路径不正确

我设置小程序自定义tabbar是两种角色&#xff0c;分两个菜单。 我需要在tabbar每一个菜单的页面onshow中都调用这个init方法&#xff0c;但是我在onshow有其他if判断&#xff0c;如果是出现错误后&#xff0c;init方法就不能执行&#xff0c;需要提前到最前面。

小程序canvas2d实现横版全屏和竖版逐字的签名组件(字帖式米字格签名组件)

文章标题 01 功能说明02 效果预览2.1 横版2.2 竖版 03 使用方式04 横向签名组件源码4.1 html 代码4.2 业务 Js4.3 样式 Css 05 竖向签名组件源码5.1 布局 Html5.2 业务 Js5.3 样式 Css 01 功能说明 技术栈&#xff1a;uniapp、vue、canvas 2d 需求&#xff1a; 实现横版的全…

stm32 lwip tcp服务端频繁接收连接失效问题解决(tcp_recved)

一、问题描述 最近用stmf429单片机作为TCP服务端遇到一个问题&#xff0c;就是客户端特别频繁的发送消息&#xff0c;过一段时间以后&#xff0c;客户端的请求不再被客户端接收到&#xff0c;而且服务器端监控的掉线回调函数也不会被调用&#xff0c;好像这个连接就凭空的消失…

让 DeepSeek R1 锐评一下自己

让 DeepSeek R1 锐评一下自己 1. 技术领域覆盖广泛&#xff0c;内容实用性突出2. 内容系统性强&#xff0c;适合阶段性学习3. 持续更新与技术敏锐度4. 潜在改进方向总结 突发奇想&#xff0c;让 AI 锐评一下自己~ Gorit 是一名活跃于技术领域的 CSDN 博主&#xff0c;其内容主…

19.4.9 数据库方式操作Excel

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 本节所说的操作Excel操作是讲如何把Excel作为数据库来操作。 通过COM来操作Excel操作&#xff0c;请参看第21.2节 在第19.3.4节【…

Android原生的HighCPU使用率查杀机制

摘要 原生的HighCPU使用率查杀机制是基于读取/proc/pid/stat中的utime stime后&#xff0c;根据CPU使用率 (utime stime / totalTime)*100%进行实现&#xff0c;当检测后台进程的CPU使用率超过阈值时&#xff0c;执行查杀和统计到电池数据中。 细节点&#xff1a; 1. 原生根…

Linux学习笔记之进程

进程 进程的定义 进程是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配的基本单位&#xff0c;也是操作系统结构的基础。   例如当QQ程序运行的时候&#xff0c;计算机会先从磁盘读取QQ程序到内存&#xff0c;然后OS管理这个程序&#xff0c;…

深入理解 MyBatis 框架的核心对象:SqlSession

Mybatis框架中的SqlSession对象详解 引言 MyBatis 是一个优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0…

Tcp_socket

Tcp不保证报文完整性&#xff08;面向字节流&#xff09; 所以我们需要在应用层指定协议&#xff0c;确保报文完整性 // {json} -> len\r\n{json}\r\n bool Encode(std::string &message) {if(message.size() 0) return false;std::string package std::to_string(m…

【运维心得】Centos7安装Redis7.4.2并处理相关告警

概述 单机版的redis安装比较简单&#xff0c;这里重点记录下告警的处理。 安装步骤 1. 确认版本 可以通过官方仓库或者知名的网站获取最新安装包&#xff0c;截止20250213&#xff0c;未找到官方安装包。 rpmfind: RPM resource redis(x86-64)https://rpmfind.net/linux/rpm2h…

社区版IDEA中配置TomCat(详细版)

文章目录 1、下载Smart TomCat2、配置TomCat3、运行代码 1、下载Smart TomCat 由于小编的是社区版&#xff0c;没有自带的tomcat server&#xff0c;所以在设置的插件里面搜索&#xff0c;安装第一个&#xff08;注意&#xff1a;安装时一定要关闭外网&#xff0c;小编因为这个…