刘洁(江苏省宿迁学院机电工程系,江苏宿迁223800)
中图分类号:TP311文献标识码:A文章编号:1673-0992(2010)01-078-01
舞蹈机器人作为智能服务机器人的雏形,不仅为机器人学、控制理论、机电一体化及其它相关学科提供了良好的实验平台,而且为进一步研究智能服务机器人提供了借鉴经验。机器人舞蹈既具有极强的观赏和趣味性,更是一个系统化的工程设计。
我们设计的机器人以单片机为中央处理器,设计并实现了基于PWM技术的关节电机速度控制电路,形成了对机器人舞蹈动作的控制。机器人整体是靠脚下的轮子用步进电机驱动而移动的,同时控制两台步进电机的转速和转速比可以进行纵、横、斜任意方向的移动。把动作形式用程序预先存储在只读存储器ROM中。表演时随着音乐的播放章鱼手臂动作和身体的移动同时进行,并在此基础上为机器人安置冷烟火以达到更高的可观赏性和趣味性。
软件设计在控制系统设计中是相当重要的,它实现的好坏也直接关系到彩焰黑章鱼舞姿的“优美”与否。在机械结构设计中采用两种不同的电机驱动方式,分别是直流电机驱动和伺服电机驱动。故采用两种不同的软件编程平台即采用纳英特机器人积木式编程平台来控制直流电机,用机器人快车的编程平台来间接控制伺服电机。
1中鸣机器人快车系统
1.1功能介绍:
机器人快车系统采用基于工程C的图形化、模块化编程语言,全部功能模块使用图标表示,遵循自顶向下的编程逻辑思维过程。只需要简单地拖放相应的功能模块图标,绘制出流程图,机器人快车系统就能自动生成可视化c源代码,帮助轻松完成编程,快速掌握如何控制机器人。机器人快车系统是图形化编程,比传统的文本编程更加高级。机器人快车贯彻了模块化的思路,拥有强大的模块封装和管理功能,方便爱好者相互之间的自由交流,培养团队合作精神。
1.2特征
由于中鸣数码微型伺服马达控制器对伺服控制信号没有存储能力,所以我们用中鸣机器人快车系统软件来存储控制信号,通电后中鸣数码微型伺服马达控制器会向中鸣机器人快车发送控制信号,以驱动18个伺服电机动作。
程序编制的特点是:一块控制器分时控制多个电机动作,电机工作稳定可靠,且速度调节十分方便。在此基础上我们为机器人选择了一套节奏较慢,节拍感较强的英文歌。并以音乐为背景,为机器人设计了一套舞姿。在手动状态下,机器人表演起了舞蹈。
为了编程方便,需要给触手编号即1~6号。同时每个触手的3个伺服电机应按从上往下依次排列插在控制板上。舞蹈的编排主要是控制各个伺服电机转过的角度,控制电机的个数由少到多,动作由简单到复杂。尽量让舞步与舞步之间没有重复动作。每个动作的时间也应该有所限制,根据不同的舞步,更改发送信号的时间。舞步的编排尽量是按照同时动作的触手逐一增加的顺序。尽量让舞步编排复杂化,体现动作创新性、音乐的谐性和艺术观赏性。编程时应用图形化模块编程,然后将自动生成C语言代码。
1.3调试和优化:这是制作机器人的最后一步,包括结构的合理化,外观的美化,程序的优化等。
2纳英特机器人积木式图形化编程系统
2.1系统介绍
2.1.1概述:纳英特机器人图形化系统是一个为用户提供全面的机器人教育与竞赛解决方案的综合系统。系统集入门与高级应用于一体,实时提供最新的机器人解决方案与该领域的最新信息,丰富用户的机器人知识储备,为钻研机器人技术、开展机器人教学、参加机器人竞赛提供有力的支持。
积木式编程与常规的计算机编程有所不同,纳英特机器人积木式编程软件在使用时不用关心语言实现的细节,同时也避免了编程中经常会出现的语法错误。纳英特机器人积木式编程平台采用的就是流程图模型。每一个积木模块都可以完成一定的功能,只要按程序编写的逻辑连接这些模块就可以很快的完成一个程序的编写。
2.1.2使用通用库函数说明:库函数文件为机器人提供了标准C的接口函数。这些函数是用C或者汇编语言写成的驱动程序。库函数提供了诸如控制电机,发出声音,输入传感器值等功能。而编程中仅使用用于控制伺服电机的库函数。
2.1.3使用的执行器模块库
2.1.3.1移动模块:该模块主要完成机器人的直行、转向动作。0、1号电机分别代表机器人的左、右电机。通过功率大小滚动条的拖拉或者功率数值输入框的输入可以设定电机的运行功率。“-”表示电机反转。功率绝对数值越大,电机转速越快。
2.1.3.2延时模块:该模块主要实现延续机器人的上一个动作状态。主要和移动模块或者扩展电机模块相搭配,实现机器人移动或者某个动作的延续性。
2.1.3.3停止模块:该模块主要实现停止电机运转。可实现所有电机停止运转,也可以设定停止一个或几个电机。
停止所有电机,则给“停止所有电机”打上“”。
停止一个或几个电机,去掉“停止所有电机”的“”,选择停止对象。
2.2程序编写
打开纳英特机器人积木式编程平台,新建流程图文件;首先添加循环模块:用鼠标双击模块库区“控制模块库”,从中选择“多次循环模块”,拖放至流程图区。详细操作如下:对准“多次循环模块”按下鼠标左键不放,拖拉至流程图中,待方向线变成红色时,即可送开鼠标。同时也可以使用C语言文件直接编写程序,或使用LOGO语言文件编写程序。三种方法都可以实现相同的编程要求,在编程时可以根据所需自由选择编程方式。让程序的编写更加灵活,让复杂问题简单化,给编程着带来了很多方便,这也是我们选择纳英特编程的主要原因。程序编写完毕,先保存该文件。
积木式机器人主板提供四路直流电机驱动接口,直接引线到端口即可。直流减速电机的正接与反接都会造成电机轮子的正传与反转.将四个电机分别接入:“motor0口”“motor1口”“motor2口”“motor3口”,然后在采用C语言按模块化的编程思想编写。
为了提高舞蹈动作的复杂程度,决定通过驱动直流电机的转动来配合触手的动作,使舞蹈动作变的丰富而又灵活。
3程序的下载及运行
将随机配套的数据线一端接计算机上的串行通讯口,一端接纳英特机器人主电路板上的通讯口。连接好后,“编译下载”按软件提示即可下载到机器人。下载完成后可脱机运行。
4调试程序
启动纳英特机器人,检查机器人是否按要求运行,如果与预定的情况不符,就要在原程序基础上调整对应的参数直至符合要求。比如偏转的角度不合要求,就需要对转向时的马达功率、转向时间等参数进行调整,直到符合要求为止。
作者简介:刘洁(1981-),江苏建湖人,宿迁学院机电工程系,从事机电与控制方面的教学及科研工作。