机器人课设语音舞蹈机器人.docx
- 文档编号:10605155
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:30
- 大小:913.27KB
机器人课设语音舞蹈机器人.docx
《机器人课设语音舞蹈机器人.docx》由会员分享,可在线阅读,更多相关《机器人课设语音舞蹈机器人.docx(30页珍藏版)》请在冰豆网上搜索。
机器人课设语音舞蹈机器人
舞蹈机器人的制作与仿真
学生姓名:
苏生凯
专业名称:
电气工程及其自动化
指导老师:
许丽讲师
摘要
Abstract
博创语音舞蹈机器人
一、课程设计目的
1了解一个机器人的基本组成部分,学会使用NorthStar软件编程。
2了解并掌握舵机的调整方法。
3通过编程是机器人具有基本的智能。
二、课程设计内容
2.1设计方案
在机器人整个运动过程中,机器人将会唱着歌执行各种指令,其中指令是由输入的数字信号决定的,例如:
当输入方波时,机器人将执行前进的动作,当输入三角波时,机器人执行左转90度的动作,当输入正弦波时,机器人执行右转180度的动作。
当这些动作都执行完成后,不再有指令发出时,机器人将推出循环,至此,机器人完成了所有的程序。
2.2流程图
2.2.1总体流程图
图1总体流程图
整个的结构流程:
首先是在众多经典的机器人中组建适合客户并且能满足要求的机器人,组装机器人不得不承认是一个很复杂的工程,万事开头难啊。
组装好机器人后,本设计就要让所设计的机器人小车动起来了,所以要设计一个程序,本设计想让机器人小车有能动又能唱歌,所以便设计了一个能唱歌能动的程序。
完成完程序将程序下载到机器人中,让机器人执行程序,如果没有问题将结束,有问题的话改正。
2.2.2程序流程图
图2程序流程图
机器人小车首先开始后便播放音乐“我最摇摆”之后机器人小车前进,机器人小车第四个舵机左转90度,第三个舵机左转90度,第二个舵机左转90度,第一个舵机左转90度,都完成后,第四个舵机右转180度,第三个舵机右转180度,第二个舵机右转180度,第一个舵机右转180度,都完成后在,第四个舵机左转180度,第三个舵机左转180度,第二个舵机左转180度,第一个舵机左转180度。
一边左右摇摆一边唱歌。
知道结束为止
2.3理论分析框架图
图3理论分析框架图
2.4结果:
机器人首先会向左摆动90度然后再向右摆动180度,在向左摆动90度,这样机器人就能面对着大家左右摆动180度,完成摇摆的动作,在配合着“我最摇摆”的歌曲,相当于机器人一边跳舞一边唱歌,十分有趣。
三、课程设计条件
准备好所需要的一切:
如下
PC机
博创软件安装盘两张
MultiFLEX2控制器
提前准备好的录音
学习“创意之星”书。
四、系统设计
4.1.系统简介
博创科技推出的最新UP-InnoSTAR创意之星机器人套件产品,以替换上一代“创意之星”产品。
该套件是一套用于开展机器人创新实验的模块化机器人套件。
分为入门版、标准版和高级版,并有多种配件可选购。
创意之星机器人套件的总体特点类似LEGOMindstormsNXT套件,都是具备多种基本“积木”构件的模块化零件套装,包括多种数百个结构零件,一个控制器,多个电机、舵机执行器,多种传感器,以及电池、电缆等附件。
用这些“积木”可以搭建出各种发挥想象力的机器人模型来。
创意之星机器人套件主要为创作机器人而设计。
具备32位520MHz的处理器,可处理视频、语音、大容量存储;支持最多254个CDS5500总线式舵机(也可作减速电机使用,指令兼容Robotis的DynamixelAX12+),并同时具备多个I/O和A/D转换器,以及USB、WiFi等端口。
另外,机器人的结构件和创新的连接方式专为创作机器人而设计,连接刚度和结构强度不逊色于铝合金构件,并且连接非常方便。
4.1.1控制器:
MultiFLEX2控制器是一款专为智能机器人和小型智能设备设计的多功能控制器,适合作为为智能机器人的主控制器。
尺寸小,功耗低,价格低。
典型工控PC机尺寸是MultiFLEXTM2-PXA270的4倍,功耗是8~10倍;整机价格相当于工控机的20%~25%。
专为机器人设计,集成电机控制、舵机控制、I/O输入输出、模拟量输入、RS-422总线、电源管理等功能;而如果采用工控机搭建机器人,还需要连接I/O卡、模拟量卡、总线卡、运动控制卡等大量外设,实际成本将是MultiFLEXTM2-PXA270方案的10-20倍以上。
图4控制器
支持NorthSTAR图形化开发环境,即使不会编程也可以开发机器人控制程序。
能处理视觉识别、语音识别与合成等单片机无法完成的高运算量任务。
因此采用MultiFLEX™2-PXA270控制器搭建小型仿人机器人可实现视觉识别、语音识别与合成等高级智能。
采用Linux系统,内置128MFLASH和64MSDRAM,能多任务运行,存储大量程序和数据,单片机很难完成。
因此采用MultiFLEX™2-PXA270控制器的机器人能够运用较为复杂的算法。
4.1.2NorthSTAR图形化软件:
目前来说,阻碍机器人技术普及和大规模发展的主要因素有两个,一个是硬件没有统一标准,另一个是各种机器人都有自己独立的软件,无法通用。
假设A厂商和B厂商都生产硬件类似的扫地机器人。
目前,如果要将A机器人的功能移植到B机器人,除了编写程序之外别无他法。
而对比目前巨大的PC市场,会发现如果A、B两个厂商生产的是PC机,那么只需要简单地把相应的程序拷贝过去就可以实现同样的功能。
这是PC机市场能够发展到今天的规模的重要原因,即软件通用化。
在当前机器人硬件标准不统一的阶段,博创科技为提高机器人软件的通用性,降低开发难度,推出了NorthSTAR图形化机器人开发环境。
包括以下三个部分的功能:
1.用图形化、可视化的方式给机器人编程,同步生成C语言代码,在后台编译、并下载到机器人控制器上执行;2.集成3D仿真。
可进行动作仿真、步态及路径规划等。
仿真数据能输入图形化编程环境;集成实时、可视化数据采集与显示。
类似虚拟示波器的功能,能在机器人运行的时候实时监控机器人各部分的数据,并用波形的方式显示在PC机上。
4.2整个系统介绍
4.2.1硬件部分:
本实验用到的硬件包括:
“创意之星”机器人套件。
“创意之星”机器人套件是一套用于高等工程创新实践教育的模块化机器人套件,他是一个套数百个基本“积木”单元的组合套件包.这些“积木”包括传感器单元、执行器单元、控制器单元、可通用的机构零件等。
零件清单如下
图5零件清单图
这些“积木”单元都很容易互相拼接、组装。
用这些“积木”可以很方便地搭建出各种发挥想象力的机器人,并可为自己搭建出的机器人编程。
下面是用零件可以拼接成不同的机器人
图6典型的机器人
在上述能完成各种不同动作的机器人中,本设计找了一个最能完成本设计目标的机器人模型,并进行了改装,最后完成了设计所需求的机器人,并给机器人进行了编程,让它变成一个生动有趣的机器人,下图即使本设计的机器人图片:
图7组装好的机器人
4.2.2软件部分,
NorthStar软件:
NorthStar是一个图形化交互式机器人控制程序开发工具。
在NorthStar中,通过鼠标拖动模块和对模块做简单的属性设置,就可以快捷的编写机器人控制程序。
程序编程完成后,可以翻译并下载到机器人控制器中运行。
NorthStar编程环境具有操作间编辑功能强大等特点,能在图标拖动中穿件复杂的逻辑,让机器人按照自己的意愿动作。
RobotServoTerminal软件:
舵机的调整。
能够数字舵机查找;设置参数,如ID、波特率、加速度以及位置限制等参数;参看舵机状态,如舵机当前温度,位置,载荷,电压等;动态曲线观测;BootLoader程序下载;想能展示。
4.2.2.1工程设计步骤
打开NorStar机器人设计软件,将会看到如下图所示的界面,这个界面中,就可以设计所需求要用到的控制器和构型。
在这款语音机器人中本设计用的是新版的控制器
,所以就选择它。
本设计是语音机器人,不是界面中提到五种机器人的任何一种,所以勾选“自定义”。
图8控制器选项和构型选项
勾选完成,点击下一步,进入下一个界面。
这个界面是舵机和模式的设置,因为本设计用到4个舵机,所以,在当前构型的舵机个数一栏中填写“4”,可以暂时将舵机的模式暂定为舵机模式,当有需要改时,在将其改为电机模式。
图9舵机设置
舵机设置完成,点击下一步,进入下一个界面,进行AD的设置。
本设计的语音机器人用到2个AD通道,因此,在当前构型使用的AD通道个数处填写“2”即可。
图10AD设置
设置完成,点击下一步,进入下一个界面,进行IO的设置。
本设计的语音机器人没有用到IO通道,因此,在当前构型使用的IO通道个数处填写“0”即可。
图11IO设置
4.2.2.2下面分别介绍各个模块的功能:
While循环:
保证机器人在一定条件下能够正常运行,并且,再不给出中断指令的条件先,可以连续不断进行。
循环结束,当没有满足输入的条件时,循环即结束。
数字信号输入,随机产生一个数字信号输入,或自定义一个数字信号,为后续的if语句实现的功能提供输入。
数字信号输出,与输入信号匹配。
舵机:
根据多级参数决定机器人执行什么样子的动作。
Delay模块:
延时根据录制MP3的长短进行设置。
MP3:
添加本设计所需要的语音。
4.2.2.3每个小单元的各个功能:
1)、主要完成第一部分动作:
这一部分主要是完成歌曲循环播放的功能呢,如果下面能满足任一要求,那么歌曲将一直循环播放。
图12歌曲循环播放
While循环的作用是可以使得歌曲即以下所需完成的程序循环播放,知道最终结束为止。
MP3主要是插入所需音频文件,这里本设计所需要的是一首歌曲,即在MP3属性模块中拆入所需歌曲。
MP3属性模块
本设计这里所循环播放的歌曲是现在非常火爆的“我最摇摆”。
根据所需要的语音不同,选择不同的MP3语音文件。
图13MP3属性模块
2)、主要完成第二部分动作
如果机器人满足本设计要求输入的要求,机器人将会完成前进的功能。
其中前进部分由舵机控制来调整。
图14机器人完成前进动作
舵机是控制机器人运动的,本部分的舵机要求其完成前进功能,根据调节机器人舵机参数可使其满足要求。
再根据前进的时间长短不同可以调节延时时间到达指定位置。
根据输入的不同,输出不同,当满足本部分要求的是执行本部分动作。
3)、主要完成第三部分动作
如果机器人满足本设计要求的输入的要求,机器人将会完成左转90度的功能,其中左转有舵机控制。
图15调整每个舵机左转90度
舵机是调节机器人动作的,总共有四个舵机,调节每个舵机参数使得机器人能够每个舵机旋转90度,最终完成指定动作。
机器人动的时间可以由延时来控制时间的长短。
4)、主要完成第四部分动作
如果机器人满足本设计要求的输入的要求,机器人将会完成右转180度的功能,其中右转180度有舵机控制。
图16调整每个舵机右转180度
舵机是调节机器人动作的,总共有四个舵机,调节每个舵机参数使得机器人能够每个舵机旋转180度,最终完成指定动作。
机器人动的时间可以由延时来控制时间的长短。
5)、主要完成第五部分动作
如果机器人满足本设计要求的输入的要求,机器人将会完成左转180度的功能,其中左转180度有舵机控制。
图17调整每个舵机左转180度
舵机是调节机器人动作的,总共有四个舵机,调节每个舵机参数使得机器人能够每个舵机旋转180度,最终完成指定动作。
机器人动的时间可以由延时来控制时间的长短。
6),3、4和5中总结
如果给定信号满足后退右转功能和后退左转功能,也就是下图的右半部分,之后智能机器人小车将会停止,不再运动。
图18机器人完成左转90,右转180,在左转180.完成整个摇摆动作
本部分主要由舵机和延时来控制,首先调节四个舵机的舵机参数使得每个舵机左转90,调整好延时时间,在调节四个舵机的舵机参数使得每个舵机右转180度,再次调整好延时时间,再次调节舵机参数使得四个舵机都能向右转180度,来满足本设计的要求。
7)机器人舵机调试系统如下图所示:
图19机器人舵机调试系统
五.实验调试过程
1.转盘运转不够平稳,这是实验台的机械结构造成的,但经过仔细的 PID参数整定可以使调速系统尽量满足要求;
2.设计中使用的光电传感器为反射式光电传感器,工作原理是利用测速转盘上的反光点反射的光线使传感器探头上的三极管导通或者截止,从而形成脉冲信号,通过测量这个脉冲信号的频率就可以得到此时转盘的转速。
但是,由于转盘上的反光点反射的光一般很弱,且不同的反光点反射性能也不同,光电传感器很容易误动作。
经过滤波,再加上反光片,尽量减少了控制系统的误动作;
3.由于位置式PID算法控制过程中的输出为绝对输出,每一次输出均需要重新计算,而不像增量式PID算法,输出的知识增量。
这样当系统出现误动作时,就会对输出产生较大的影响,以致产生较大的误差。
鉴于此,将位置式PID算法改进为增量式,减小了系统误差;
4.上面所说的PID整定方法理论性很强,但真正动起手来还真是费了一番工夫的,具体讲:
当转盘高速运转时,根据经典的PID理论整定出一个比例积分微分参数,但突然将速度减小至100r/min,参数必须经过重新调整才能使系统跟踪性能好,超调小,运行稳定且很好的抗干扰能力。
六.心得体会与总结
在这次的课设实验中,我们首先自己动手拼装自己的机器人小车,然后再通过博创软件制作程序,调整舵机让小车机器人根据自己所想像的想法运动,达到智能机器人。
通过这次的课设实验,我们增强了自己的动手能力和创新思维,并且让我们对编写程序有了一定的了解。
我的机器人小车是一个会跳舞会唱歌的小车,在左右摆动180度的同时可以唱我最摇摆,这首歌与机器人所运动十分贴切。
在这次实验中尽管遇到了困难,小车开始并非能满足要求的左右摇摆180度,音乐也不播放,后来发现音乐并非是MP3格式,改正之后才能唱歌。
但是最终克服完成了小车的程序。
机器人小车是也能十分生动的。
七、参考文献
1、创意之星:
模块化机器人创新设计与竞赛[M].北京:
北京航空航天大学出版社,2010[2]谭浩强.
2、C程序设计[M].北京:
清华大学出版社,2005[3](美)JosephL.Jones著.
3、机器人编程技术:
基于行为的机器人实战指南[M].北京:
机械工业出版社,2006[4]王立权,陈东良,陈凯云编著.
4、机器人创新设计与制作[M].北京:
清华大学出版社,2007
附录
C语言编写程序如下:
#include"background.h"
intmain(intargc,char*argv[])
{
intIO1=0;
intIO2=0;
MFInit();
MFSetPortDirect(0x00000FFC);
MFDigiInit(100);
DelayMS(100);
MFADInit(100);
MFSetServoMode(1,0);
MFSetServoMode(2,0);
MFSetServoMode(3,0);
MFSetServoMode(4,0);
MFSetServoMode(5,0);
MFSetServoMode(6,0);
MFSetServoMode(7,0);
MFSetServoMode(8,0);
MFSetServoMode(9,0);
MFSetServoMode(10,0);
MFSetServoMode(11,0);
MFSetServoMode(12,0);
MFSetServoMode(13,0);
MFSetServoMode(14,0);
MFSetServoMode(15,0);
while
(1)
{
MFMp3Play((char*)&(""),0);
IO1=MFGetDigiInput(0);
IO2=MFGetDigiInput
(1);
//前进
{
MFSetServoPos(1,512,512);
MFSetServoPos(2,512,512);
MFSetServoPos(3,512,512);
MFSetServoPos(4,512,512);
MFSetServoPos(5,512,512);
MFSetServoPos(6,512,512);
MFSetServoPos(7,512,512);
MFSetServoPos(8,512,512);
MFSetServoPos(9,512,512);
MFSetServoPos(10,512,512);
MFSetServoPos(11,512,512);
MFSetServoPos(12,512,512);
MFSetServoPos(13,512,512);
MFSetServoPos(14,512,512);
MFSetServoPos(15,512,512);
MFServoAction();
}
DelayMS(1000);
//4左转90
{
MFSetServoPos(1,155,512);
MFSetServoPos(2,120,512);
MFSetServoPos(3,110,512);
MFSetServoPos(4,140,512);
MFSetServoPos(5,160,512);
MFSetServoPos(6,125,512);
MFSetServoPos(7,150,512);
MFSetServoPos(8,160,512);
MFSetServoPos(9,150,512);
MFSetServoPos(10,160,512);
MFSetServoPos(11,190,512);
MFSetServoPos(12,190,512);
MFSetServoPos(13,143,512);
MFSetServoPos(14,225,512);
MFSetServoPos(15,165,512);
MFServoAction();
}
DelayMS(100);
//3
{
MFSetServoPos(1,140,512);
MFSetServoPos(2,160,512);
MFSetServoPos(3,150,512);
MFSetServoPos(4,155,512);
MFSetServoPos(5,160,512);
MFSetServoPos(6,125,512);
MFSetServoPos(7,160,512);
MFSetServoPos(8,160,512);
MFSetServoPos(9,150,512);
MFSetServoPos(10,150,512);
MFSetServoPos(11,160,512);
MFSetServoPos(12,160,512);
MFSetServoPos(13,143,512);
MFSetServoPos(14,225,512);
MFSetServoPos(15,165,512);
MFServoAction();
}
DelayMS(100);
//2
{
MFSetServoPos(1,155,512);
MFSetServoPos(2,160,512);
MFSetServoPos(3,150,512);
MFSetServoPos(4,140,512);
MFSetServoPos(5,200,512);
MFSetServoPos(6,165,512);
MFSetServoPos(7,150,512);
MFSetServoPos(8,130,512);
MFSetServoPos(9,120,512);
MFSetServoPos(10,160,512);
MFSetServoPos(11,160,512);
MFSetServoPos(12,160,512);
MFSetServoPos(13,143,512);
MFSetServoPos(14,225,512);
MFSetServoPos(15,165,512);
MFServoAction();
}
DelayMS(100);
//1
{
MFSetServoPos(1,185,512);
MFSetServoPos(2,160,512);
MFSetServoPos(3,150,512);
MFSetServoPos(4,110,512);
MFSetServoPos(5,160,512);
MFSetServoPos(6,125,512);
MFSetServoPos(7,120,512);
MFSetServoPos(8,160,512);
MFSetServoPos(9,150,512);
MFSetServoPos(10,190,512);
MFSetServoPos(11,160,512);
MFSetServoPos(12,160,512);
MFSetServoPos(13,143,512);
MFSetServoPos(14,225,512);
MFSetServoPos(15,165,512);
MFServoAction();
}
DelayMS(100);
//1右转180
{
MFSetServoPos(1,185,512);
MFSetServoPos(2,160,512);
MFSetServoPos(3,150,512);
MFSetServoPos(4,110,512);
MFSetServoPos(5,160,512);
MFSetServoPos(6,125,512);
MFSetServoPos(7,120,512);
MFSetServoPos(8,160,512);
MFSetServoPos(9,150,512);
MFSetServoPos(10,190,512);
MFSetServoPos(11,160,512);
MFSetServoPos(12,160,512);
MFSetServoPos(13,143,512);
MFSetServoPos(14,225,512);
MFSetServoPos(15,165,512);
MFServoAction();
}
DelayMS(100);
//2
{
MFSetServoPos(1,155,512);
MFSetServoPos(2,160,512);
MFSetServoPos(3,150,512);
MFSetServoPos(4,140,512);
MFSetServoPos(5,200,512);
MFSetServoPos(6,165,512);
MFSetServoPos(7,150,512);
MFSetServoPos(8,130,512);
MFSetServoPos(9,120,512
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器人 语音 舞蹈