论文部分内容阅读
摘要:本论文的舞蹈机器人包括腰、肩、肘、颈等人体基本关节,它们分别由8个舵机驱动,其控制系统采用ATmega64单片机。本文重点研究了顺序脉冲控制方法来控制各关节舵机配合音乐节奏协调动作,实现舞蹈动作。经过测试,舞蹈机器人在表演过程中能够很好的配合音乐节奏翩翩起舞,达到了预期效果。
关键词:舞蹈机器人;单片机;舵机;顺序脉冲
1 引言
舞蹈机器人是一种类人娱乐机器人,它能够随着音乐“翩翩起舞” ,其新颖的功能和较强的观赏性使其本身具有很大的研究与市场开发价值。目前,日本在此类机器人上的研究比较领先,国内的研究相对还比较落后。
本文介绍一个轮式10DOF(Degree Of Freedom,自由度)的舞蹈机器人,该机器人使用舵机来模拟人的关节,一共由8个关节组成,包括手臂关节、腰关节和颈关节等。通过不同关节(舵机)旋转到不同角度位置可以模仿人的一些基本动作,例如抬手,旋臂,转身,扭腰,摇头,行走等。把这些基本动作组合起来,并配合适当的乐曲,就可以构成一套优美的舞蹈表演动作。
2 系统总体设计
舞蹈机器人的动作是表现在一定时间序列上的空间位姿(位置和姿态)的集合。整个设计始终围绕舞蹈机器人的特点,以实现系统的艺术性和观赏性为出发点和核心,并根据系统总体分析提出如下总体设计方案:
(1)系统采用模块化设计思想,如图1。
图1 系统框架示意图
(2)确定机器人的自由度为10个,如图2。
图2 舞蹈机器人自由度示意图
3 硬件实现
3.1 控制模块
控制模块采用ATmega64作为舞蹈机器人的主控芯片。在表1中列出ATmega64端口的使用情况。
表1 主控芯片端口分配表
ATmega64引脚 舞蹈机器人中的功能
PORTF 舵机控制输出信号
PORTA5,6,7 LED点阵控制输出信号
PORTB 调试设备输入输出信号
PORTC6,7 主控模块启动信号
3.2 关节驱动模块
从成本和控制的难易度与精度上考虑,作者考虑采用分级使用不同扭力舵机。在受力较大的关节处,如腰部,肩部等处采用扭力强劲的强力舵机,在关节的末尾处才用力量小的自身重量也小的微型舵机。这样在性能价格比上找到了一个很好的折衷点。
3.3 LED显示模块
该模块是作为人机交互输出的可视化设备。不仅仅可以显示当前机器人的运行状态,还可以通过文字或动画展现机器人的情感,是一个非常人性化的模块。
3.4 行走机构模块
行走机构采用两轮驱动,将机器人的移动方式设定为轮式。电机驱动采用SGS公司的L298N。比较常见的是15脚Multiwatt封装的L298N,该芯片具有4路逻辑通道,为恒压恒流桥式2A驅动芯片。
3.5 调试模块
LED数码管:
为了能够方便的对系统进行测试,故使用了LED数码管来显示系统运行的状态。能够不用让机器人动起来也能直观的观察系统。
键盘:
在单独测试动作子集时,文中采用把各个动作子集定义到键盘的按键上。当按下键盘上不同的按键就会出现不同的动作组合,非常方便的观察动作是否到位。
3.6 电源系统
采用LM2576模块进行并联并用1N4007整流方法。
4 软件设计
本软件设计的重点为关节驱动模块的控制程序,其中单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PPM周期信号,本设计是产生周期信号为20ms;其次是脉宽的调整,即单片机模拟PPM信号的输出,并且调整占空比。图3给出了一个典型的20ms周期性脉冲的正脉冲宽度与舵机输出臂位置的关系,通过设置正脉冲宽度来调整舵机的转动角度。
图3 正脉冲宽和舵机转动度数关系示意图
针对系统有8个舵机的情况,专门制定了一套解决方法——顺序脉冲法。
具体的设计过程:例如想让舵机转向左极限的角度,它的正脉冲为2.5ms,则负脉冲为20ms-2.5ms=17.5ms,所以开始时在控制口发送高电平,然后设置定时器在2.5ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为17.5ms,再过17.5ms进入下一次定时中断,再将控制口改为高电平,并将定时器初值改为2.5ms,等待下次中断到来,如此往复实现PPM信号输出到舵机。用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动。
下图是顺序脉冲法控制8个舵机的时序图:
图4 舵机控制时序图
如图4所示,用这种方法控制舵机,从微观上来讲,每个舵机其实是顺序启动的。但是由于系统处理的速度非常快,所以从宏观上来看,所有被控舵机是同时动作的,完全能满足控制8个舵机的要求。
顺序脉冲法控制舞蹈机器人主要由两个中断服务程序来实现一是定时器0中断服务程序;二是定时器2中服务程序。下面就对这两个子程序进行介绍。
(1)定时器0中断服务程序
定时器0产生周期为2.5ms的中断信号,每次进入中断后选择PORTF的一个端口将其输出的电平置高,并对定时器2设置定时初值,如图5所示。
图5 定时器0中断服务程序流程图
(2)定时器2中断服务程序
在定时器0中断服务程序里对定时器2设置的初值就是PPM信号的高电平长,而进入该中断服务程序就是为了结束高电平,从这里开始就是先前所说的“长中断”了,如图6所示。
图6 定时器2中断服务程序流程图
5 参考文献
[1](日)Brain Navi著.机器人集锦[M].北京:科学出版社.2003.
[2]蔡自兴.机器人学[M].北京:清华大学出版社.2000.
[3]董建军,杨文杰,王兵.舞蹈机器人的设计与控制[J].信阳师范学院学报(自然科学版).2002.15(4):456-459.
[4]Richard C Dorf,Robert H Bishop.Modern Control System(9th edition)[M].Prentice Hall.2001
[5]Karl Williams.Build Your Own Reptilian Robot.McGraw-Hill Companies,Inc.2003
关键词:舞蹈机器人;单片机;舵机;顺序脉冲
1 引言
舞蹈机器人是一种类人娱乐机器人,它能够随着音乐“翩翩起舞” ,其新颖的功能和较强的观赏性使其本身具有很大的研究与市场开发价值。目前,日本在此类机器人上的研究比较领先,国内的研究相对还比较落后。
本文介绍一个轮式10DOF(Degree Of Freedom,自由度)的舞蹈机器人,该机器人使用舵机来模拟人的关节,一共由8个关节组成,包括手臂关节、腰关节和颈关节等。通过不同关节(舵机)旋转到不同角度位置可以模仿人的一些基本动作,例如抬手,旋臂,转身,扭腰,摇头,行走等。把这些基本动作组合起来,并配合适当的乐曲,就可以构成一套优美的舞蹈表演动作。
2 系统总体设计
舞蹈机器人的动作是表现在一定时间序列上的空间位姿(位置和姿态)的集合。整个设计始终围绕舞蹈机器人的特点,以实现系统的艺术性和观赏性为出发点和核心,并根据系统总体分析提出如下总体设计方案:
(1)系统采用模块化设计思想,如图1。
图1 系统框架示意图
(2)确定机器人的自由度为10个,如图2。
图2 舞蹈机器人自由度示意图
3 硬件实现
3.1 控制模块
控制模块采用ATmega64作为舞蹈机器人的主控芯片。在表1中列出ATmega64端口的使用情况。
表1 主控芯片端口分配表
ATmega64引脚 舞蹈机器人中的功能
PORTF 舵机控制输出信号
PORTA5,6,7 LED点阵控制输出信号
PORTB 调试设备输入输出信号
PORTC6,7 主控模块启动信号
3.2 关节驱动模块
从成本和控制的难易度与精度上考虑,作者考虑采用分级使用不同扭力舵机。在受力较大的关节处,如腰部,肩部等处采用扭力强劲的强力舵机,在关节的末尾处才用力量小的自身重量也小的微型舵机。这样在性能价格比上找到了一个很好的折衷点。
3.3 LED显示模块
该模块是作为人机交互输出的可视化设备。不仅仅可以显示当前机器人的运行状态,还可以通过文字或动画展现机器人的情感,是一个非常人性化的模块。
3.4 行走机构模块
行走机构采用两轮驱动,将机器人的移动方式设定为轮式。电机驱动采用SGS公司的L298N。比较常见的是15脚Multiwatt封装的L298N,该芯片具有4路逻辑通道,为恒压恒流桥式2A驅动芯片。
3.5 调试模块
LED数码管:
为了能够方便的对系统进行测试,故使用了LED数码管来显示系统运行的状态。能够不用让机器人动起来也能直观的观察系统。
键盘:
在单独测试动作子集时,文中采用把各个动作子集定义到键盘的按键上。当按下键盘上不同的按键就会出现不同的动作组合,非常方便的观察动作是否到位。
3.6 电源系统
采用LM2576模块进行并联并用1N4007整流方法。
4 软件设计
本软件设计的重点为关节驱动模块的控制程序,其中单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PPM周期信号,本设计是产生周期信号为20ms;其次是脉宽的调整,即单片机模拟PPM信号的输出,并且调整占空比。图3给出了一个典型的20ms周期性脉冲的正脉冲宽度与舵机输出臂位置的关系,通过设置正脉冲宽度来调整舵机的转动角度。
图3 正脉冲宽和舵机转动度数关系示意图
针对系统有8个舵机的情况,专门制定了一套解决方法——顺序脉冲法。
具体的设计过程:例如想让舵机转向左极限的角度,它的正脉冲为2.5ms,则负脉冲为20ms-2.5ms=17.5ms,所以开始时在控制口发送高电平,然后设置定时器在2.5ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为17.5ms,再过17.5ms进入下一次定时中断,再将控制口改为高电平,并将定时器初值改为2.5ms,等待下次中断到来,如此往复实现PPM信号输出到舵机。用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动。
下图是顺序脉冲法控制8个舵机的时序图:
图4 舵机控制时序图
如图4所示,用这种方法控制舵机,从微观上来讲,每个舵机其实是顺序启动的。但是由于系统处理的速度非常快,所以从宏观上来看,所有被控舵机是同时动作的,完全能满足控制8个舵机的要求。
顺序脉冲法控制舞蹈机器人主要由两个中断服务程序来实现一是定时器0中断服务程序;二是定时器2中服务程序。下面就对这两个子程序进行介绍。
(1)定时器0中断服务程序
定时器0产生周期为2.5ms的中断信号,每次进入中断后选择PORTF的一个端口将其输出的电平置高,并对定时器2设置定时初值,如图5所示。
图5 定时器0中断服务程序流程图
(2)定时器2中断服务程序
在定时器0中断服务程序里对定时器2设置的初值就是PPM信号的高电平长,而进入该中断服务程序就是为了结束高电平,从这里开始就是先前所说的“长中断”了,如图6所示。
图6 定时器2中断服务程序流程图
5 参考文献
[1](日)Brain Navi著.机器人集锦[M].北京:科学出版社.2003.
[2]蔡自兴.机器人学[M].北京:清华大学出版社.2000.
[3]董建军,杨文杰,王兵.舞蹈机器人的设计与控制[J].信阳师范学院学报(自然科学版).2002.15(4):456-459.
[4]Richard C Dorf,Robert H Bishop.Modern Control System(9th edition)[M].Prentice Hall.2001
[5]Karl Williams.Build Your Own Reptilian Robot.McGraw-Hill Companies,Inc.2003