舵机的基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
舵机的文献综述
最近几年国内机器人开始快速发展,很多高校、中小学在进行机器人技术教学。
小型的机器人、模块化的机器人、组件式机器人是教学机器人的首选。
在这些机器人产品中,舵机是最关键、使用最多的部件。
依据控制方式的特点,舵机应该称为微型伺服马达。
早期在模型上使用最多,主要用于控制模型的舵面,所以俗称舵机。
舵机接受一个简单的控制指令就可以自动转动到一个比较精确的角度,所以非常适合在关节型机器人产品上使用。
仿人型机器人就是舵机运用的最高境界。
一、舵机的结构
舵机简单是集成了直流电机、电机控制器和减速器等,并封装在一个便于安装的外壳里的伺服单元。
能够利用简单的输入信号比较精确的控制转动角度的机电系统。
舵机内部有一个电位器(或其它角度传感器)用于检测输齿轮箱出轴转动角度,控制板根据电位器的信息能比较精确的控制和保持输出轴的角度。
这样的直流电机控制方式叫闭环控制,所以舵机更准确的说是伺服马达,英文 servo。
舵机的主体结构主要有几个部分:外壳、减速齿轮组、电机、电位器、控制电路。
简单的工作原理是:控制电路接收信号源的控制信号,并驱动电机转动;齿轮组将电机的速度成大倍数缩小,并将电机的输出扭矩放大相应倍数,然后输出;电位器和齿轮组的末级一起转动,测量舵机轴转动角度;电路板检测并根据电位器判断舵机转动角度,然后控制舵机转动到目标角度或保持在目标角度。
舵机的外壳一般是塑料的,特殊的舵机可能会有铝合金外壳。
金属外壳能够提供更好的散热,可以让舵机内的电机运行在更高功率下,以提供更高的扭矩输出。
金属外壳也可以提供更牢固的固定位置。
齿轮箱有塑料齿轮、混合齿轮、金属齿轮的差别。
塑料齿轮成本底,噪音小,但强度较低;金属齿轮强度高,但成本高,在装配精度一般的情况下会有很大的噪音。
小扭矩舵机、微舵、扭矩大但功率密度小的舵机一般都用塑料齿轮,如Futaba 3003,辉盛的 9g 微舵。
金属齿轮一般用于功率密度较高的舵机上,比如辉盛的 995 舵机。
995 在和 3003 一样体积的情况下却能提供 13KG 的扭矩。
Hitec 甚至用钛合金作为齿轮材料,其高强度能保证 3003大小的舵机能提供
20 几公斤的扭矩。
混合齿轮在金属齿轮和塑料齿轮间做了折中,在电机输出轴上的齿轮扭矩一般不大,可以用塑料齿轮。
二、舵机的规格和选型
当今使用的舵机有模拟舵机和数字舵机之分,不过数字舵机还是相对较少。
下面的技术规格同时适用于两种舵机。
舵机的规格主要有几个方面:转速、转矩、电压、尺寸、重量、材料等。
我们在做舵机的选型时要对以上几个方面进行综合考虑。
1、转速
转速由舵机无负载的情况下转过 60°角所需时间来衡量,常见舵机的速度一般在0.11/60°~0.21 S/60°之间。
2、转矩
舵机扭矩的单位是 K G·CM,这是一个扭矩单位。
可以理解为在舵盘上距舵机轴中心水平距离 1CM 处,舵机能够带动的物体重量。
舵机扭矩=n Kg.cm
3、电压
厂商提供的速度、转矩数据和测试电压有关,在 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 的舵机也不少。
较高的电压可以提高电机的速度和扭矩。
选择舵机还需要看我们的控制卡所能提供的电压。
4、尺寸、重量和材质
舵机的功率(速度×转矩)和舵机的尺寸比值可以理解为该舵机的功率密度,一般同样品牌的舵机,功率密度大的价格高。
塑料齿轮的舵机在超出极限负荷的条件下使用可能会崩齿,金属齿轮的舵机则可能会电机过热损毁或外壳变形。
所以材质的选择并没有绝对的倾向,关键是将舵机使用在设计规格之内。
用户一般对金属物品比较信赖,齿轮箱期望选择全金属的,舵盘期望选择金属舵盘。
但需要注意的是,金属齿轮箱在长时间过载下不容易损毁,最后却会让电机过热损坏或外壳变形,而这样的损坏是致命的、不可修复的。
塑料轴的舵机如果使用金属舵盘也很危险的,舵盘和舵机轴在相互扭转过程中,金属舵盘不会磨损,舵机轴会在一段时间后变得光秃,导致舵机完全不能使用。
综上,选择舵机需要在计算自己所需扭矩和速度,并确定使用电压的条件下,选择有150%左右甚至更大扭矩富余的舵机。
三、模拟舵机及其控制原理
舵机是一个微型的伺服控制系统,工作原理是控制电路接收信号源的控制脉冲,并驱动电机转动;齿轮组将电机的速度成大倍数缩小,并将电机的输出扭矩放大响应倍数,然后输出;电位器和齿轮组的末级一起转动,测量舵机轴转动角度;电路板检测并根据电位器判断舵机转动角度,然后控制舵机转动到目标角度或保持在目标角度。
模拟舵机需要一个外部控制器(比如遥控器的接收机)产生脉宽调制信号来告诉舵机转动角度,脉冲宽度是舵机控制器所需的编码信息。
舵机的控制脉冲周期 20ms,脉宽从0.5ms-2.5ms,分别对应-90 度到+90 度的位置。
舵机原来主要用在飞机、汽车、船只模型上,作为方向舵的调节和控制装置。
所以,一般的转动范围是 45°、60°或者 90°,这时候脉冲宽度一般只有
1ms-2ms 之间。
而后舵机开始在机器人上得到大幅度的运用,转动的角度也在根据机器人关节的需要增加到-90 度至 90 度之间,脉冲宽度也随之有了变化。
对于机器人控制而言,我们一般通过单片机产生 PWM 信号控制舵机,所以下面对于舵机的控制脉冲都称为 PWM 信号。
PWM 由接收通道进入信号解调电路BA6688 的 12 脚,这是周期 20ms,脉宽 0.5ms-2.5ms 之间的 PWM 信号。
该 PWM 信号和内部以 5K 电位器实际电压为基准的脉冲进行比较,得到的脉冲进行展宽后给 H 桥,H 桥根据展宽后的脉冲信号驱动电机。
解调后的直流偏置电压和通过电位器得到反馈电压进行比较得到电压差,BA66898 根据该电压差通过 3 脚输送的 PWM 信号给电机驱动电路 BAL6686 驱动电机正反转,同时电机转动带动电位器转动,导致比较后的电压差变化,直到电压差为 0,电机停止。
叠加在 5K 的电位器反馈电压之上的还有一个 Motor Back EMF,意思是
电机反向电动势。
根据电磁感应定律,无论作为电动机还是作为发电机运行,电枢都会产生感应电动势。
发电机中的感应产生的电动势就称为感应电动势,电动机的感应电动势一般称为反电动势。
电动机的感应电动势会和转速成比例变化。
通过搭建桥式伺服电路,可以获取电动机的反电动势,通过和给定的基准电压进行比较,可以实现简单的速度环控制。
3003 用这样的方式来进行速度伺服控制,保证舵机的最高速度稳定。
而电位器只是进行点位控制,做简单的位置闭环。
舵机控制电路用于驱动电机的也是 PWM 脉冲,不过此脉冲与上述控制舵机的 PWM 信号不同,此脉冲占空比是在 0-100%之间变化的。
控制电路通过占空比进行调速,通过正反脉冲进行调向。
具体可以看直流电动机控制方面的书籍。
总线伺服舵机
总线伺服舵机实际上可以理解为数字舵机的衍生品,数字舵机相比与模拟舵机而言是控制系统设计上的颠覆,而总线伺服舵机对于舵机而言则是在功能和运用上的颠覆。
舵机的运用方式实际上只能发挥出总线伺服舵机非常小的一部分功能。
那么什么是总线伺服舵机。
我们先来看一下我们现在使用舵机和数字舵机时遇见的问题。
1、我们利用舵机(不论数字还是模拟)搭建一个仿人机器人,用了 20
个自由度,用了20 个舵机。
每根舵机都要接到控制卡上,有的线还需要延长,所有的线加起来有超过 30 根,像团海草一样把机器人整个身体缠了个遍,机器人在走动的时候突然发现舵机线被拉松了,机器人一个趔趄把脖子都摔断了。
控制卡上需要做出 20 个 PWM 信号接口(我们一直在为这个技术问题发愁,现在或许好一点),那可是长长的一排插针啊。
健忘的我还很容易忘记哪个插针对应哪个舵机,好不容易接上后,一通电,机器人腿转到背后去了,一排查发现腿关节接到肩关节了。
当我们需要给机器人加些传感器时,突然发现 IO 口都被用掉了,定时器不够用了,真是噩梦。
2、舵机的每一个舵机的参数不一定一样,不时还会出现中位偏差比较
大的,好不容易装出机器人来后发现舵机的中位不一致,和理论计算得出来的机器人步态不相匹配。
这回麻烦大了,需要对每一个舵机设置中位,在发送舵机控制信号的时候还需要对每一个舵机都单独加入这个修正值,而不能统一调用某一个通用的 PWM 产生函数,一个步态就是 20 行代码。
当然,程序员都是勤劳和严谨的,并不觉得这是辛苦的事情。
而有些人会买可以通过编程器调节和设置中位的舵机,当然,可能会很贵。
3、机器人步态的编写是件非常麻烦的事,我们在编写步态的时候给舵
机的初始值基本上都是有偏差的,比如我想肩关节转到 180 度位置,我给的是 255 的控制值,但由于舵机个体差异的问题,这个值已经让舵机处于堵转状态。
过一会之后,我们发现机器人一只胳膊不能用了,可怜的机器人啊,还不知道到底发生了什么事。
检查的时候我们发现机器人肩关节堵转时间过久,导致电机过热,让舵机外壳融化,然后导致减速齿轮箱错位,舵机就失效了,机器人的一只胳膊就残废了。
第一点我们可以这么理解,现在的舵机都是并联控制的,线都需要接到控制板上,我们可以幻想,如果舵机可以串联就好了。
脚腕关键的舵机串到膝关节,一直串到髋关节,最后一根线直接接到控制卡上,甚至可以把所有的舵机都串进去。
我们可以惊喜的发现,只需要1 接口,最多 4 个接口就可以搞定 20 个舵机了。
第二点的根源在于舵机自己不能存储中位修正值,修正值需要我们发控制脉冲的时候补进去。
我们可以想象,如果我告诉舵机:您好,放松,我要修正您的头部位置,它有点歪了。
然后舵机就放松下来,我们把它的头摆正,然后告诉它:这是您头部的正确方向,您以后需要以这位置为正前方,然后舵机就把这个位置记下来了,当我告诉它转 60 度它就以这个位置为初始位置转 60 度,不多不少。
第三点可以理解为机器人缺少神经系统,根本不知道疼痛。
如果各个关节能给控制卡提供力矩、电流、电压、温度、转角等反馈信息,那么机器人缺胳膊少腿的问题都可以解决。
这么说好像有点神奇了。
其实一点不神奇,自从总线伺服舵机出现后,这些幻想都可以瞬间变成现实。
总线伺服舵机是针对机器人运用而设计的,所以也称为机器人舵机。
机器人舵机简单的说是具有总线功能,能够串联使用,控制卡通过一个总线接口可以控制总线上的所有舵机。
机器人舵机可以根据控制器的指令反馈力矩、电流、温度、角度等信息,能够更准确地到达指定角度,能够更快地响应控制命令。
机器人舵机能够设置各种保护、功能参数,方便不同场合的使用要求。