舵机控制型机器人设计汇总.docx
《舵机控制型机器人设计汇总.docx》由会员分享,可在线阅读,更多相关《舵机控制型机器人设计汇总.docx(21页珍藏版)》请在冰点文库上搜索。
舵机控制型机器人设计汇总
课程设计项目说明书
舵机控制型机器人设计
学院机械工程学院
专业班级2013级机械创新班
姓名吴泽群王志波谢嘉恒袁土良
指导教师王苗苗
提交日期2016年4月1日
华南理工大学广州学院
任务书
兹发给2013级机械创新班学生吴泽群王志波谢嘉恒袁土良《产品设计项目》课程任务书,内容如下:
1.题目:
舵机控制型机器人设计
2.应完成的项目:
1.设计舵机机器人并实现运动
2.撰写机器人说明书
3.参考资料以及说明:
[1]孙桓.机械原理[M].北京.第六版;高等教育出版社,2001
[2]张铁,李琳,李杞仪.创新思维与设计[M].国防工业出版社,2005
[3]周蔼如.林伟健.C++程序设计基础[M].电子工业出版社.北京.2012.7
[4]唐增宏.常建娥.机械设计课程设计[M].华中科技大学出版社.武汉.2006.4
[5]李琳.李杞仪.机械原理[M].中国轻工业出版社.北京.2009.8
[6]何庭蕙.黄小清.陆丽芳.工程力学[M].华南理工大学.广州.2007.1
4.本任务书于2016年2月27日发出,应于2016年4月2日前完成,然后提交给指导教师进行评定。
指导教师(导师组)签发2016年月日
评语:
总评成绩:
指导教师签字:
年月日
目录
摘要1
第一章绪论2
1.1机器人的定义及应用范围2
1.2舵机对机器人的驱动控制2
第二章舵机模块3
2.1舵机3
2.2舵机组成3
2.3舵机工作原理4
第三章总体方案设计与分析6
3.1机器人达到的目标动作6
3.2设计原则6
3.3智能机器人的体系结构6
3.4控制系统硬件设计6
3.4.1中央控制模块7
3.4.2舵机驱动模块7
3.5机器人腿部整体结构8
第四章程序设计9
4.1程序流程图9
4.2主要中断程序9
4.3主程序11
参考文献13
附录14
一.程序14
二.硬件图17
摘要
机器人是上个世纪中叶迅速发展起来的高新技术密集的机电一体化产品,在发达国家,工业机器人已经得到广泛的应用。
随着科学技术的发展,机器人的应用范围也日益扩大,遍及工业、国防、宇宙空间、海洋开发、医疗康复等领域。
进入21世纪,人们已经越来越亲身地感受到机器人的深入生产,深入生活,深入社会的坚实步伐。
机器人技术在不断发展提高,机器人系统中的驱动装置也在不断更新,用以满足更高的控制要求。
舵机就是在机器人驱动装置发展中诞生的新型驱动装置。
本次课程设计应用MG995舵机与C51单片机来对二足机器人完成一系列制定的动作,用单片机实现了对舵机的控制,概述了程序控制思路。
基于舵机实现对二足机器人关节控制信号产生,关节摆动速度和角度还有同步运动的控制,使其能完成如向前行走、向后行走、蹲下、起立、检测障碍等一系列动作。
次设计可用于学校机器人教学,还可以用于机器人玩具产品开发等领域。
关键词:
二足机器人;MG995舵机控制;动作设计;C51单片机
第一章绪论
1.1机器人的定义及应用范围
机器人是能自动执行工作的机器装置。
既可以接受人类指挥,又可以运行预先编排的程序,也可以根据人工智能技术制定的原则行动。
它的任务是协助或取代人类的一些工作,例如生产业、建筑业,或是危险的工作。
国际上对机器人的概念已经逐渐趋近一致。
一般说来,人们都可以接受这种说法,即机器人是靠自身动力和控制能力来实现各种功能的一种机器,是一种可编程和多功能的,用来搬运材料、零件、工具的操作机;或是为了执行不同的任务而具有可改变和可编程动作的专门系统。
”
机器人的产生是一个科学技术发展的综合结果,也是生产力发展的必然结果,人们总是期待有种机器能够代替我们去从事复杂和繁重的体力劳动,社会的发展总是需要进行大批量的生产制造,需要不断的提高生产效率,可以说机器人是为了满足我们的发展需要而创造出来的。
而后发展的各种各样的机器人也是由于人类的需要所设计的,随着人们需求角度的增加,各种各样的机器人还会在今后问世。
我国的机器人专家从应用环境出发,将机器人分为两大类,即工业机器人和特种机器人。
工业机器人是面向工业领域的多关节机械手或多自由度机器人。
而特种机器人则是除工业机器人之外的、用于非制造业并服务于人类的各种先进机器人,包括:
服务机器人、水下机器人、娱乐机器人、军用机器人、农业机器人等。
1.2舵机对机器人的驱动控制
机器人上身的手臂结构是由多舵机组成的。
舵机是一种位置伺服的驱动器,适用于需要角度不断变化并可以保持的控制系统。
在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。
舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。
舵机与外界的连接端口只有三端,其中与单片机的接口只有一端,称之为控制线,另外两端分别接电源与电源地,为电源线与地线。
舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。
本设计的二足机器人的6个运动关节都是用舵机实现,设计机器人的动作其实就是对结构机器人关节舵机的一个控制过程。
第二章舵机模块
2.1舵机
舵机是一个闭环控制系统。
其输入信号为周期为20Ms,脉宽变化范围为0.5Ms到2.5Ms的PWM波。
PWM信号经过解调后得到一个直流偏置电压,舵机中的直流电机与一个电位器相连,直流电机的转动带动电位器转动,电位器又可以输出一个电压(这是反馈信号),直流偏置电压与这个电位器得到的电压经过电压比较器后得到的电压差输入控制芯片中,来完成对对舵机的控制。
所以对舵机的控制,即对PWM波形的控制。
以上说的是位置伺服舵机的原理,其实速度伺服舵机的原理是大同小异的,只不过随直流电机转动的电位器变成了事先固定好的电位器或电阻,输出一个固定的电压,这个电压对应的就是使舵机停转的PWM信号得到的直流偏置电压值,所以也可以通过调整这个电压的值,来调整舵机停转的PWM脉宽。
当PWM的脉宽为0.5Ms或2.5Ms时,舵机正转或反转的速度最快,当脉宽越接近1.5Ms时转速越慢,当脉宽为1.5Ms时舵机停转
2.2舵机组成
图2-1舵机内部结构
舵机的输入线共有三条,如图2-1所示,红色中间,是电源线,一边黑色的是地线,这辆根线给舵机提供最基本的能源保证,主要是电机的转动消耗。
电源有两种规格,一是4.8V,一是6.0V,分别对应不同的转矩标准,即输出力矩不同,6.0V对应的要大一些,具体看应用条件;另外一根线是控制信号线,Futaba的一般为白色,JR的一般为桔黄色。
另外要注意一点,SANWA的某些型号的舵机引线电源线在边上而不是中间,需要辨认。
但记住红色为电源,黑色为地线,一般不会搞错。
本次用的舵机型号为MG995,接地线为褐色,控制线为橙色。
2.3舵机工作原理
控制电路板接受来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。
舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机转动的方向和速度,从而达到目标停止。
其工作流程为:
控制信号→控制电路板→电机转动→齿轮组减速→舵盘转动→位置反馈电位计→控制电路板反馈。
流,才可发挥舵机应有的性能。
舵机的控制信号周期为20MS的脉宽调制(PWM)信号,其中脉冲宽度从0.5-2.5MS,相对应的舵盘位置为0-180度,呈线性变化。
也就是说,给他提供一定的脉宽,它的输出轴就会保持一定对应角度上,无论外界转矩怎么改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应位置上如图7所求。
舵机内部有一个基准电路,产生周期为20MS,宽度1.5MS的基准信号,有一个比出较器,将外加信号与基准信号相比较,判断出方向和大小,从而生产电机的转动信号。
由此可见,舵机是一种位置伺服驱动器,转动范围不能超过180度,适用于那些需要不断变化并可以保持的驱动器中,比如说机器人的关节、飞机的舵面等。
图2-2舵机输出转角与输出脉冲的关系
第三章总体方案设计与分析
3.1机器人达到的目标动作
1)外形与人手相似,包括肩、上臂、下臂、手腕及手等几部分;
2)双手可以做出各种简单的动作并实现自主行走的功能;
3.2设计原则
本项目中的机器人,它不但具有人类的外形特征,手臂能实现各种不同的动作,要求成本低廉,功能相对来说也比较单一,因此在保证性能的情况下,我们尽量不要采用高档的材料和元器件。
基于以上的考虑,我们有下面几条设计原则:
1)经济性:
在满足功能的前提下尽可能采用简单的方案,使用常见的、供应丰富的材料和元器件,以降低生产成本:
2)可靠性:
机器人的使用环境比较恶劣,有电机启制动火花对无线通讯及控制系统的干扰,有可能遇到的碰撞以及关节被卡住造成电机堵转等各种情况,对机器人控制系统提出了一定的要求。
3)易维护性:
包括机械维护和控制系统软硬件维护。
机械上尽可能采用模块化设计方法,减少零部件种类,提高通用性,便于安装拆卸,同时也可以提高可靠性和经济性。
控制系统软硬件设计同样采用模块化设计,便于检测调试。
4)强壮性:
机器人的手臂都是由各个关节链接起来的,对刚性的要求比较高。
在机械设计上,机器人应具有较好的刚性和较小的传动间隙,不至于发生严重的机械变形,各种接插件不能松动、脱落。
3.3智能机器人的体系结构
机器人的体系结构是定义一个智能机器人系统各部分之间相互关系和功能分配,确定一个智能机器人或多个智能机器人的信息流通关系和逻辑上的结构。
本设计的控制系统是以微处理器为基础,采用二级结构,即协调级和执行级。
协调级实现和外界环境的信息交换功能,包括人2机信息交换、外界环境信息的获取和处理、生成控制指令等功能;执行级实现对各个关节进行伺服控制,将接受的控制指令,分解成各关节的坐标,并对执行器进行伺服控制。
3.4控制系统硬件设计
按照机器人控制系统结构,设计控制系统硬件结构由中央控制模块、舵机驱动模块组成。
3.4.1中央控制模块
该模块是整个控制系统的核心,采用微处理器AT89S52为核心构成,负责输入数据处理、舵机协调动作处理和显示数据处理等功能。
机器人控制系统是一种典型的多轴实时运动控制系统。
传统的机器人控制系统基本上是设计者基于自己的独立结构和生产目的而开发,它采用了专用计算机、专用机器人语言、专用微处理器的封闭式体系结构。
这种结构的控制器存在制造和使用成本高,开发周期长,升级换代困难,无法添加系统的新功能等一系列缺点。
该系统基于TRIO运动控制卡的开放式结构机器人控制系统,采用IPC+DSP的结构来实现机器人的控制。
这种机器人控制系统采用开放式硬件、软件结构,可以根据需要方便地扩展功能,具有良好的开放性和扩展性,能适应于不同类型机器人或机器人自动生产线。
通过运动控制卡在工业机器人控制系统中的应用,根据运动控制的相关理论和直流伺服电机的具有不易受干扰、易于用微机实现数字控制、无积累误差等特性以及其动作迅速、反映快、维护简单、可实现过载自动保护等特点作为相关背景的基础之上提出了基于TRIO运动控制卡的自动化程度和定位精度均较高的工业机器人控制系统。
这种机器人控制系统的重要特点在于它采用通用个人计算机加DSP—多控制回路的开放式体系结构以及它的网络控制特性。
图3-151单片机最小系统
3.4.2舵机驱动模块
舵机是一种位置伺服的驱动器。
控制电路板接受来自信号线的控制信号,控制电机转动机带动一系列齿轮组,减速后传动至输出舵盘。
舵机的输出轴和位置反馈电位计是相连的舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈。
然后控制电路板根据所在位置决定电机转动的方向和速度,从而达到目标停止。
其工作流程为控制信号→控制电路板→电机转动→齿轮组减速→舵盘转动→位置反馈电位计→控制电路板反馈。
才可发挥舵机应有的性能。
控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。
它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较获得电压差输出。
最后电压差的正负输出到电机驱动芯片决定电机的正反转。
当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。
当然我们可以不用去了解它的具体工作原理,知道它的控制原理就够了。
就象我们使用晶体管一样,知道可以拿它来做开关管或放大管就行了,至于管内的电子具体怎么流动是可以完全不用去考虑的。
(1)电机参数:
空心杯电机;金属齿轮结构;双滚珠轴承;连接线长度30厘米;
(2)技术参数:
尺寸:
40mmX20mmX36.5mm重量:
62g技术参数:
无负载速度0.17秒/60度(4.8V)0.13秒/60度(6.0V)扭矩:
13KG使用温度:
-30~~+60摄氏度死区设定:
4微秒工作电压:
3.0V-7.2V;
3.5机器人腿部整体结构
图3-2
机器人下半部分共有4个舵机,其中脚部两个,主要实现抬腿功能;腿部两个,主要实现向前前进功能。
第四章程序设计
4.1程序流程图
图4-1
4.2主要中断程序
voidtt1()interrupt1
{
//右脚迈出
if(k{
a1=1;
a2=1;
}
else
{
a1=0;
a2=0;
}
//左脚抬起
if(kelsea3=0;
//右脚抬起
if(kelsea4=0;
//手部动作
if(k{
a5=1;
a6=1;
}
else
{
a5=0;
a6=0;
}
if(c==10000)
{
k=0;
x4=16;
}
if(c==15000)
{
k=0;
x3=10;
x5=13;
}
//2秒后左脚迈出
if(c==20000)
{
k=0;
x1=12;
}
if(c==25000)
{
x3=8;
}
//3秒循环一次
if(c==30000)
{
k=0;
c=0;
x1=22;
x4=13;
x5=22;
}
k++;
c++;
}
本次设计机器人行走的思路主要是模仿人走路。
中断函数设定为0.1毫秒执行一次。
因此,给K一定的值便可以实现舵机转一定的角度,K的变化范围为5由于走路时,需要两脚与地面的摩擦力不同,才能带动身体前行,因此,当迈出一只脚时,需要同时抬起脚,才能实现走路,否则机器人只会在原地踏步。
机器人行走的过程中,手部也不停摇摆。
4.3主程序
voidmain()
{
TMOD=0x02;
TH0=156;
TL0=156;//定时0.1毫秒
EA=1;
ET0=1;
TR0=1;
while
(1);
}
函数采用定时器2计时方式,定时0.1毫秒,计算方式为256-100=156,高四位和低四位都为156。
参考文献
[1]孙桓.机械原理[M].北京.第六版;高等教育出版社,2001
[2]张铁,李琳,李杞仪.创新思维与设计[M].国防工业出版社,2005
[3]周蔼如.林伟健.C++程序设计基础[M].电子工业出版社.北京.2012.7
[4]唐增宏.常建娥.机械设计课程设计[M].华中科技大学出版社.武汉.2006.4
[5]李琳.李杞仪.机械原理[M].中国轻工业出版社.北京.2009.8
[6]何庭蕙.黄小清.陆丽芳.工程力学[M].华南理工大学.广州.2007.1
附录
一.程序
#include
#defineuintunsignedint
#defineucharunsignedchar
uintc=0;
ucharx1=22,k=0,x3=8,x4=13,x5=22;
sbita1=P1^1;//右腿
sbita2=P1^2;//左腿
sbita3=P1^3;//左脚
sbita4=P1^4;//右脚
sbita5=P1^5;//左手
sbita6=P1^6;//右手
voidmain()//主函数
{
TMOD=0x02;
TH0=156;
TL0=156;//定时0.1毫秒
EA=1;
ET0=1;
TR0=1;
while
(1);
}
voidtt1()interrupt1//中断函数
{
//右脚迈出
if(k{
a1=1;
a2=1;
}
else
{
a1=0;
a2=0;
}
//左脚抬起
if(kelsea3=0;
//右脚抬起
if(kelsea4=0;
//手部动作
if(k{
a5=1;
a6=1;
}
else
{
a5=0;
a6=0;
}
if(c==10000)
{
k=0;
x4=16;
}
if(c==15000)
{
k=0;
x3=10;
x5=13;
}
//2秒后左脚迈出
if(c==20000)
{
k=0;
x1=12;
}
if(c==25000)
{
x3=8;
}
//3秒循环一次
if(c==30000)
{
k=0;
c=0;
x1=22;
x4=13;
x5=22;
}
k++;
c++;
}
二.硬件图
图1电路板
3.整体图