Yanshee课程2—舵机回读与连续动作执行
课程目标:
从向前走路到跟着音乐跳舞,Yanshee机器人可以做出各种各样的动作。机器人是怎样做出这些动作的呢?本节课将从机器人运动的基本元件:舵机的工作原理讲起,向你介绍机器人是如何做出动作的。你将亲手操作Yanshee机器人,录制和编辑一组动作,在机器人上执行。并完成机器人各种动作编排的练习。最后你可以学会如何通过python来调用动作文件完成更加强大的机器人动作编程实践。
苹果刷机教程课程引入原因:
在前一节课我们学习了机器人的舵机是如何动起来的。对于机器人来说,舵机相当于它的“关节”。仅仅能够转动关节,还不能随心所欲的运动。一个复杂一点的动作,需要多个关节相互协调,共同完成。
路由器密码忘记了怎么办人类完成这一切,依靠的是中枢的脑和遍布全身的神经。机器人也有类似的“神经系统”。对于Yanshee来说,它的“神经系统”是单片机、串行总线和数字舵机的处理器。这些系统共同作用,才能让Yanshee作出各种动作。这节课我们将陆续介绍这些重要的概念。
基础概念和术语介绍:开车省油技巧
大中国 歌词
单片机:单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
PWM信号:PWM是脉冲宽度调制的缩写,指的是一种宽度可变的脉冲波形。通过调整占空比(脉冲宽度占整个周期的比)实现对设备的控制。
占空比:在一个脉冲周期内,通电时间占总时间的比例。(下面是一个占空比示意图)
舵机的分类:舵机可以分为模拟舵机和数字舵机两种。这两种舵机主要区别是控制方式的不同。数字舵机可以看作模拟舵机基础上添加了处理器。模拟电机是通过PWM信号进行控制的。在实际使用中,
舵机通常检测高电平的长度来确定输出的位置。(脉冲宽度与输出位置关系图)
模拟舵机运行时,以一定频率(一般为50Hz)不断从控制端接收PWM信号。每个信号所指示的角度都与当前的角度相差不多。每次旋转一点角度,最后转到目的位置。数字舵机也要用PWM 信号驱动电机,但它接收的控制信号与模拟舵机不同。通常来说,数字舵机只需要接收一个脉冲信号,获取到需要转到的角度。舵机内部的处理器对这个角度分析,自动产生连续的控制脉冲,以很高的频率(300Hz)发送给舵机,驱使舵机旋转。这样不但让控制变得更简单,提高舵机接收的信号频率,也能让转动更加流畅。
最酷吃鸡网名串行总线及舵机ID:一般来说,舵机在运行时,从控制端接收控制信号。如果每个舵机都单独拉一根线,不但控制比较复杂,而且对布线也限制很大。解决这个问题的办法是采用串行总线,即把所有舵
机接到一根总线上。与PWM控制不同,总线上传输的是编码过的二进制消息。舵机接收到消息后,按照协议解析,判断消息的目的地(舵机ID)。当消息目的地的ID与自己一致时,就依照消息内容,做出相应的反应。这样一根总线就能控制多个舵机。不仅如此,采用总线的控制方式,
舵机也可以传输信号给控制端,这意味着控制端可以读取舵机的各种信息,舵机出现故障时也能及时上报,进行相应的处理。
舵机回读:总线的结构使舵机向控制端回传数据成为了可能。Yanshee的舵机就有这样的功能。当控制端发送特定指令给舵机时,舵机可以从内部的传感器读取当前的位置,并组装一条包含位置信息的消息传回控制端,控制端可以将这个位置信息记录下来以供以后使用。这个过程我们叫做回读。
舵机掉电:控制输入只需要输入一次指令,数字舵机就能稳定在固定位置。实际上在数字舵机内部,驱动电路会持续发送固定的PWM信号给舵机,将舵机锁在固定位置。如果驱动电路不给舵机发送PWM信号,舵机就会失去动力。表现出来就是舵机“变软”,人可以轻易用手掰动舵机转动。这种状态就是舵机的掉电状态。相对的,舵机“变硬”,难以掰动的状态称作上电状态。
舵机保护:尽管上电状态下,舵机很难掰动,但如果用户非常用力去掰它,或者在舵机上施加一个较大的负载,持续一段时间后,舵机会突然进入一种类似掉电的状态,不再响应各种控制。这实际上是触发了舵机的自我保护功能。电机工作时,会产生一定的热量,如果电流很大,产生热量超过了散热的能力,就会持续升温,烧坏舵机电路或结构。因此,数字舵机有一系列传感器监测舵机的工作状态,一旦发现舵机有过热风险,就会停止工作,防止舵机被损坏。Yanshee的舵机在自我保
护状态下,舵机上的LED会持续闪烁提醒用户,此时用户需要重启机器人,让舵机恢复正常工作状态。
环境准备:
硬件需求:Yanshee机器人一台、装有App的手机一部
软件需求:树莓派Rasbian系统、linux系统、python环境
工作原理:
Yanshee回读编程步骤及原理:像Yanshee这样的人形机器人,它的一个姿态可以由所有舵机的角度共同表示。因此,记录了一组全部舵机的角度,就相当于记录了机器人的姿态。我们可以随时向机器人发送指令,让舵机转到记录的角度,重现这个姿态。如果我们保存多个机器人的姿态,按照一定时间间隔执行起来,这就形成了一个机器人的连续动作。构成这个动作的逐个姿态,就像电影胶片的每一帧一样,因此我们把这些记录了一组舵机角度和执行时间的数据称作动作帧。一系列连续的动作帧,构成一个连贯的机器人的动作。
在Yanshee的App里,我们可以回读机器人的姿态,编辑自己的动作。在Home界面点击「回读
编程」按钮,进入回读编程界面
点击右上角按钮,连接机器人之后。点击左下角手动回读按钮(写有M字母)。会跳出选择肢体界面。
在选择肢体界面,点击机器人的肢体,该部分身体对应的舵机会掉电,方便用户掰动。再次点击已经掉电的肢体,将会使机器人在原来位置上电。当用户将机器人掰到一个合适的位置时,可以点击手动回读按钮,记录这个姿态。通过这种操作,用户可以记录多个。点击预览按钮,机器人将从头开始执行,把这些姿态穿起来,组成一个连贯的动作。
2022年中秋节教师节祝福语
这样编辑出来的动作会有一个问题,就是执行的速度比较缓慢。这时候就需要用到编辑功能。点击
编辑按钮进入编辑模式。点击一个动作帧选中它,屏幕下方工具栏的按钮将会亮起。在工具栏里选择运行时长和间隔时长,可以调整动作帧执行的时间长短。运行时长表示动作开始到结束的时间长短,间隔时长表示运动结束之后,下一帧开始之前等待的时间长短。调整这些数据,可以控制动作
的速度和节奏,配合用户的需求。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论