龙芯俱乐部开源技术社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 5202|回复: 4

[转]舵机的说明

[复制链接]

28

主题

260

帖子

16万

积分

论坛元老

Rank: 8Rank: 8

积分
169669
发表于 2016-1-15 11:43:43 | 显示全部楼层 |阅读模式
本帖最后由 ratking 于 2016-1-15 11:55 编辑

舵机的说明
转载自:http://www.torobot.com/doc/servo/

最近几年国内机器人开始起步发展,很多高校、中小学都开始进行机器人技术教学。小型的机器人、模块化的机器人、组件式的机器人是教学机器人的首选。在这些机器人产品中,舵机是最关键,使用最多的部件。
根据控制方式,舵机应该称为微型伺服马达。早期在模型上使用最多,主要用于控制模型的舵面,所以俗称舵机。舵机接受一个简单的控制指令就可以自动转动到一个比较精确的角度,所以非常适合在关节型机器人产品使用。仿人型机器人就是舵机运用的最高境界。

一、舵机的结构
舵机简单的说就是集成了直流电机、电机控制器和减速器等,并封装在一个便于安装的外壳里的伺服单元。能够利用简单的输入信号比较精确的转动给定角度的电机系统。
舵机安装了一个电位器(或其它角度传感器)检测输出轴转动角度,控制板根据电位器的信息能比较精确的控制和保持输出轴的角度。这样的直流电机控制方式叫闭环控制,所以舵机更准确的说是伺服马达,英文Servo。
舵机的主体结构如下图所示,主要有几个部分:外壳、减速齿轮组、电机、电位器、控制电路。简单的工作原理是控制电路接收信号源的控制信号,并驱动电机转动;齿轮组将电机的速度成大倍数缩小,并将电机的输出扭矩放大响应倍数,然后输出;电位器和齿轮组的末级一起转动,测量舵机轴转动角度;电路板检测并根据电位器判断舵机转动角度,然后控制舵机转动到目标角度或保持在目标角度。

舵机的外壳一般是塑料的,特殊的舵机可能会有金属铝合金外壳。金属外壳能够提供更好的散热,可以让舵机内的电机运行在更高功率下,以提供更高的扭矩输出。金属外壳也可以提供更牢固的固定位置。


齿轮箱有塑料齿轮、混合齿轮、金属齿轮的差别。塑料齿轮成本底,噪音小,但强度较低;金属齿轮强度高,但成本高,在装配精度一般的情况下会有很大的噪音。小扭矩舵机、微舵、扭矩大但功率密度小的舵机一般都用塑料齿轮,如Futaba 3003,辉盛的9g微舵。金属齿轮一般用于功率密度较高的舵机上,比如辉盛的995舵机,在和3003一样体积的情况下却能提供13KG的扭矩。Hitec甚至用钛合金作为齿轮材料,其高强度能保证3003大小的舵机能提供20几公斤的扭矩。混合齿轮在金属齿轮和塑料齿轮间做了折中,在电机输出齿轮上扭矩一般不大,用塑料齿轮。


二、舵机的规格和选型
当今使用的舵机有模拟舵机和数字舵机之分(具体差别见第节),不过数字舵机还是相对较少。下面的技术规格同时适用与两种舵机。
舵机的规格主要有几个方面:转速、转矩、电压、尺寸、重量、材料等。我们在做舵机的选型时要对以上几个方面进行综合考虑。

  • 转速

转速由舵机无负载的情况下转过60°角所需时间来衡量,常见舵机的速度一般在0.11/60°~0.21S/60°之间。


  • 转矩

舵机扭矩的单位是KG·CM,这是一个扭矩单位。可以理解为在舵盘上距舵机轴中心水平距离1CM处,舵机能够带动的物体重量。


  • 电压

厂商提供的速度、转矩数据和测试电压有关,在4.8V和6V两种测试电压下这两个参数有比较大的差别。如Futaba S-9001 在 4.8V 时扭力为 3.9kg、速度为 0.22 秒,在 6.0V 时扭力为 5.2kg、速度为 0.18 秒。若无特别注明,JR 的舵机都是以 4.8V 为测试电压,Futaba则是以 6.0V 作为测试电压。
舵机的工作电压对性能有重大的影响,舵机推荐的电压一般都是4.8V或6V。当然,有的舵机可以在7V以上工作,比如12V的舵机也不少。较高的电压可以提高电机的速度和扭矩。选择舵机还需要看我们的控制卡所能提供的电压。

  • 尺寸、重量和材质

舵机的功率(速度×转矩)和舵机的尺寸比值可以理解为该舵机的功率密度,一般同样品牌的舵机,功率密度大的价格高。
塑料齿轮的舵机在超出极限负荷的条件下使用可能会崩齿,金属齿轮的舵机则可能会电机过热损毁或外壳变形。所以材质的选择并没有绝对的倾向,关键是将舵机使用在设计规格之内。
用户一般都对金属制的物品比较信赖,齿轮箱期望选择全金属的,舵盘期望选择金属舵
盘。但需要注意的是,金属齿轮箱在长时间过载下也不会损毁,最后确是电机过热损坏或外壳变形,而这样的损坏是致命的,不可修复的。塑料出轴的舵机如果使用金属舵盘是很危险的,舵盘和舵机轴在相互扭转过程中,金属舵盘不会磨损,舵机轴会在一段时间后变得光秃,导致舵机完全不能使用。

综上,选择舵机需要在计算自己所需扭矩和速度,并确定使用电压的条件下,选择有150%左右甚至更大扭矩富余的舵机。

三、模拟舵机及其控制原理
舵机是一个微型的伺服控制系统,具体的控制原理可以用下图表示:

工作原理是控制电路接收信号源的控制脉冲,并驱动电机转动;齿轮组将电机的速度成大倍数缩小,并将电机的输出扭矩放大响应倍数,然后输出;电位器和齿轮组的末级一起转动,测量舵机轴转动角度;电路板检测并根据电位器判断舵机转动角度,然后控制舵机转动到目标角度或保持在目标角度。
模拟舵机需要一个外部控制器(遥控器的接收机)产生脉宽调制信号来告诉舵机转动角度,脉冲宽度是舵机控制器所需的编码信息。舵机的控制脉冲周期20ms,脉宽从0.5ms-2.5ms,分别对应-90度到+90度的位置。如下图所示:

需要解释的是舵机原来主要用在飞机、汽车、船只模型上,作为方向舵的调节和控制装置。所以,一般的转动范围是45°、60°或者90°,这时候脉冲宽度一般只有1ms-2ms之间。而后舵机开始在机器人上得到大幅度的运用,转动的角度也在根据机器人关节的需要增加到-90度至90度之间,脉冲宽度也随之有了变化。
对于控制脉冲有的书上讲的是PPM(脉位调制信号),有的定义为PWM(脉宽调制信号)。准确的讲应该叫什么笔者也没有确定的答案,请恕我才疏学浅。对与模型遥控器,发射机到接收机之间的信号编码方式是PPM(也有PCM)方式,当然,这个信号的编码传输过程不是接收机到舵机之间,切不可混淆。对于PPM、PCM在调制信号上面的区别可以看《现代无线通讯》。
对与机器人控制而言,我们一般通过单片机产生PWM信号控制舵机,所以下面对于舵机的控制脉冲都称为PWM信号(一家直言,如若觉得不准确可以来信讨论)。
如果你是爱好者,只是想了解舵机,对于它的控制原理了解到这就可,下面我们将对模拟舵机的具体电路进行分析,需要读者具有初步的模电、数电常识。
我们在网上可以很容易找到Futaba 3003的电路图,如图4.3所示。PWM由接收通道进入信号解调电路BA6688的12脚,这是周期20ms,脉宽0.5ms-2.5ms之间的PWM信号。该PWM信号和内部以5K电位器实际电压为基准的脉冲进行比较,得到的脉冲进行展宽后给H桥,H桥根据展宽后的脉冲信号驱动电机。解调后的直流偏置电压和通过电位器得到反馈电压进行比较得到电压差,BA66898根据该电压差通过3脚输送的PWM信号给电机驱动电路BAL6686驱动电机正反转,同时电机转动带动电位器转动,导致比较后的电压差变化,直到电压差为0,电机停止。
查下H-Bridge的驱动信号是脉冲还是什么。测一下,这个脉冲和电机转动的关系。


叠加在5K的电位器反馈电压之上的还有一个Motor Back EMF,意思是电机反向电动势。根据电磁感应定律,无论作为电动机还是作为发电机运行,电枢都会产生感应电动势。发电机中的感应产生的电动势就称为感应电动势,电动机的感应电动势一般称为反电动势。电动机的感应电动势会和转速成比例变化。通过搭建桥式伺服电路,可以或许电动机的反电动势,通过和给定的基准电压进行比较,可以实现简单的速度换控制。3003用这样的方式来进行速度伺服控制,保证舵机的最高速度稳定。而电位器只是进行点位控制,做简单的位置闭环。

28

主题

260

帖子

16万

积分

论坛元老

Rank: 8Rank: 8

积分
169669
 楼主| 发表于 2016-1-15 11:44:11 | 显示全部楼层
本帖最后由 ratking 于 2016-1-15 11:52 编辑

Futaba之外的其它厂家使用的不是BA6688这款IC,一般选择M51660、AA5188、YT5166这些芯片一般没有EMF控制。

控制电路驱动电机的也是利用PWM脉冲,不过此脉冲非彼脉冲,此脉冲占空比是0-100%,周期20ms。控制电路通过占空比进行调速,通过正反脉冲进行调向。具体可以看直流电动机控制方面的书籍。

四、数字舵机及其控制原理
数字舵机从根本上颠覆了舵机的控制系统设计。数字和模拟舵机相比在两个方面有明显的优点。1、防抖。2、响应速度快。
模拟舵机由于使用模拟器件搭建的控制电路,电路的反馈和位置伺服是基于电位器的比例调节方式。电位器由于线性度的影响,精度的影响,个体差异性的问题,会导致控制匹配不了比例电压,比如我期望得到2.5V的电压位置,但第一次得到的是2.3V,经过1个调节周期后,电位器转过的位置已经是2.6V了,这样控制电路就会给电机一个方向脉冲调节,电机往回转,又转过头,然后有向前调节,以至于出现不停的震荡,这就是我们所看到的抖舵现象。我们购买一批舵机会发现有的很好用,有的在空载的时候也会在抖动,有的是在加一定的负载后就开始抖动。
我们不用装出机器人就可以预期一个事实,不停抖动的舵机装出来的仿人机器人是不可能走的很好的,用不停抖动的舵机装出来的机械臂是不可能写字的。可惜的是,现在的数字舵机还是很贵的,更别提用伺服直流电机+伺服驱动器+运动控制卡搭建的机器人系统了。
模拟舵机的调节周期是20ms(看看模块卡的舵机程序),也就是它的反应时间是20ms。根据舵机的不同,假设我们估计舵机的速度是0.2s/60°,那么20ms舵机最快的时候转过0.6度才会进行调节,这就是关节在突然出现大负载的情况下,会被扭矩摆动0.6度,然后才纠正回来,我们的直观感觉就是这个舵机不“硬”我们掰动舵盘,可以掰动一个位置。
数字舵机可以以很高的频率进行调节,这个周期和角度会变得非常小,并且有PID调节方式的存在,能够在以很适当的PID参数进行调节,能够让舵机有很高的响应速度,不会出现超调。

五、总线伺服舵机
总线伺服舵机实际上可以理解为舵机的衍生品,数字舵机相比与模拟舵机而言是设计上的颠覆,而总线伺服单元对于舵机而言则是在功能和运用上的颠覆。舵机实际上只能发挥出总线伺服舵机非常微小的部分。
那么什么是总线伺服舵机。我们先来看一下我们现在使用舵机和数字舵机时遇见的问题。

1、我们利用舵机(不论数字还是模拟)搭建一个仿人机器人,用了20个自由度,用了20个舵机。每根舵机都要接到控制卡上,有的线还需要延长,所有的线加起来有超过30根,像团海草一样把机器人整个身体缠了个遍,机器人在走动的时候突然发现舵机线被拉松了,机器人一个趔趄把脖子都摔断了。控制卡上需要做出20个PWM信号接口(我们一直在为这个技术问题发愁,现在或许好一点),那可是长长的一排插针啊。健忘的我还很容易忘记哪个插针对应哪个舵机,好不容易接上后,一通电,机器人腿转到背后去了,一排查发现腿关节接到肩关节了。当我们需要给机器人加些传感器时候,突然发现,IO口都被用掉了,定时器不够用了,天啊,真是噩梦。

2、舵机的每一个舵机的参数不一定一样,不时还会出现中位偏差比较大的,好不容易装出机器人来后发现舵机的中位不一致,和理论计算得出来的机器人步态不相匹配。这回麻烦大了,需要对每一个舵机设置中位,在发送舵机控制信号的时候还需要对每一个舵机都单独加入这个修正值,而不能统一调用某一个通用的PWM产生函数,天啊,一个步态就是20行代码啊。当然,程序员都是勤劳和严谨的,并不觉得这是辛苦的事情。而有些人会买可以通过编程器调节和设置中位的舵机,当然,可能会很贵。

3、机器人步态的编写是件非常麻烦的事,我们在编写步态的时候给舵机的初始值基本上都是有偏差的,比如我想肩关节转到180度位置,我给的是255的控制值,但由于舵机个体差异的问题,这个值已经让舵机处于堵转状态。过一会之后,我们发现机器人一只胳膊不能用了,可怜的机器人啊,还不知道到底发生了什么事。时候检查发现机器人肩关节堵转时间过久,导致电机过热,让舵机外壳融化,然后导致减速齿轮箱错位,舵机就失效了,机器人的一只胳膊就残废了。

第一点的原因我们可以理解为,现在的舵机都是并联控制的,线都是需要接到控制板上,我们可以幻想,如果舵机可以串联就好了。脚腕关键的舵机串到膝关节,一直串到髋关节,最后一根线直接接到控制卡上,甚至可以把所有的舵机都串进去。我们可以惊喜的发现,原来只需要999元就可以买到称心如意的镶钻手表哦,不好意思,离题了,我们同样可以惊喜的发现,只需要1根线,最多4根线就可以搞定20个舵机了,哎,世界真奇妙啊。

第二点的原因是舵机自己不能存储中位修正值,修正值需要我们发控制脉冲的时候补进去。我们可以想象,如果我告诉舵机:你好,放松,我要修正你的头的位置,它有点歪了。然后舵机就放松下来,我们把它的头摆正,然后告诉它:这是你头部的正确方向,你以后需要以这位置为正前方,然后舵机就把这个位置记下来了,并且我告诉它转60度它就以这为初始位置转60多,不多不少。我是不是在YY?

第三点原因是机器人没有神经系统,根本不知道疼痛。如果我们能给控制卡提供每一个关节的力矩、电流、电压、温度、转角,那么机器人缺胳膊少腿的问题都可以解决。呵呵,好像有点神奇了。

其实一点不神奇,因为自从总线伺服单元出现后,这些幻想都可以瞬间变成现实。总线伺服舵机简单的说就是可以串联,并且接受数据信号,能够提供关节的力矩、电流、温度、角度等信息,能准确控制位置的运动单元,外形可以和舵机一模一样。我们用一个带串口给总线发送一条指令:舵机1,转20度;舵机2转30度,舵机3休息……直到理论上最后一个舵机。然后所有的舵机就会执行这条指令。

总线伺服单元还有其它的用途。我们稍后再详细介绍。

28

主题

260

帖子

16万

积分

论坛元老

Rank: 8Rank: 8

积分
169669
 楼主| 发表于 2016-1-15 11:46:13 | 显示全部楼层

[转]舵机的控制方式

本帖最后由 ratking 于 2016-1-15 11:50 编辑

舵机的控制方式
转载自:http://www.torobot.com/doc/servo-control/

  • 舵机的工作原理:

控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。当然我们可以不用去了解它的具体工作原理,知道它的控制原理就够了。就象我们使用晶体管一样,知道可以拿它来做开关管或放大管就行了,至于管内的电子具体怎么流动是可以完全不用去考虑的。

  • 舵机的控制:

舵机的控制一般需要一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度舵机为例,那么对应的控制关系是这样的:
0.5ms————–0度;
1.0ms————45度;
1.5ms————90度;
2.0ms———–135度;
2.5ms———–180度;
请看下形象描述吧:


  • 舵机的工作电压和电流:

每一款舵机都有自己的参数,如TR213舵机的工作电压是4.8-7.2V,TR205舵机的工作电压是4.8-6V,电压不能超过这个范围,否则会很容易烧坏舵机,在不清楚舵机工作电压范围的情况下,建议使用5V给舵机供电。
舵机的工作电流是根据舵机的实际情况而定的,如TR213舵机,在空载的时候电流几乎为0,而在正常负载的情况下,电流在0.5A左右,视实际情况而定。六足机器人需要18个TR213金属舵机,需要提高的电流大概在8A左右,如果电源功率不够会影响舵机的性能,最常见的现象是,当一个舵机负载的时候,其他舵机会出现混乱,无规律的乱摆。

  • 舵机三根线的区分:


信号线接单片机I/O口,由于舵机内部有驱动电路,所以可以直接用普通的单片机I/O口直接控制;
电源正极,接输入电源的正极;
地线,接输入电源的负极;

备注:如果控制部分和电源部分是分开的,两者一定要共地。                                   

48

主题

257

帖子

4920

积分

新手上路

Rank: 1

积分
4920
发表于 2016-1-18 17:10:59 | 显示全部楼层
学习了,感谢楼主!

25

主题

218

帖子

10万

积分

论坛元老

Rank: 8Rank: 8

积分
101976
发表于 2016-5-6 20:12:52 | 显示全部楼层
加油。小白的救星!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|龙芯俱乐部开源技术社区

GMT+8, 2024-4-27 07:28 , Processed in 0.123387 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表