段,便形成了机器人实现特定功能的优选方案。然后,即可进入机电一体化创新设计阶段,该阶段主要解决基于机器人灵活性、稳定性、精确性设计问题。
综上所述,机电一体化创新化设计有如下特点: 1、涉及多学科,如机械、、电力、电子、信息、蓝牙及控制等多种科技的交叉、渗透与融合;
2、设计过程中相当部分工作是非数据性、非计算性的,必须依靠在知识和经验积累基础上思考、推理、判断,以及创造性发散思维(灵感、形象的突发性思维)相结合的方法;
3、 尽可能在较多方案中进行方案优选。即在大的设计空间内,基于知识、经验、灵感与想象力的系统中搜索并优化设计方案;
4、机电一体化创新设计是多次反复、多级筛选过程,每一设计阶段有其特定内容与方法、但各阶段之间又密切相关,形成一个整体的系统设计。
机电一体化创新设计技术和机械系统设计(SD)、计算机辅助设计(CAD)、优化设计(OD)、可靠性设计(RD)、控制元设计(CD)等一起构成现代机电设计方法学库,并吸收邻近学科有益的设计思想与方法。随着认识科学、思维科学、人工智能、专家系统及人脑研究的发展,认识科学、思维科学、人工智能、设计方法学、科学技术哲学等已为MEICD提供了一定的理论基础及方法。
可以说,机电一体化创新设计是建立在现有机械设计学和电子计算机理论基础上,吸收科技哲学、认识科学、思维科学、设计方法学、发明学、创造学等相关学科的有益成份,经过综合交叉而成的一种设计技术和方法。
二、 课题简介
1. 双轮自平衡机器人
搭建一个双轮自平衡的机器人,选定一种可以实现机器人自平衡的算法
(PID算法),确定适用的传感器(建议用光电传感器),选定实现这种算法的编程平台和编程语言(RobotC).
2. 碰触传感机器人设计(基于Microsoft Robotics Studio)
建议在Microsoft Robotics Studio 1.5 版(2008技术预览版已经推出,有兴趣可以试着使用)平台上,充分利用网上资源,在这里推荐1个(http://msdn.microsoft.com/robotics/)
其实在Google搜Microsoft Robotics Studio这个关键词会得到所要的资料。入门最重要一点是看安装软件随带的教程。
这个平台提供的实例,认识模块化设计理论,设计出一个基于建模
16 / 21
控制机器人的实例。Microsoft Robotics Studio是微软一个战略性计划,它不拘于硬件平台,是一个通用的设计平台,甚至可以自己设计硬件,而使用Microsoft Robotics Studio编程,在这里,使用的硬件是LEGO的NXT系列,要求使用NXT与Microsoft Robotics Studio(当然还可以结合其它软件,这就突出了Microsoft Robotics Studio的兼容性)设计出属于自己的东西。例如走迷宫机器人。
3. 寻线机器人的仿真和建模及实例(基于Lejos-Osek 设计一个机器人的实
例);
nxtOSEK、ECRobotNXT与MATLAB简介:
nxtOSEK是一个提供给NXT的RTOS(实时操作系统)和C/C++编程环境。不仅如此,nxtOSEK也可以被用作图形化编程和仿真模拟环境平台,它由设备驱动、C汇编源代码、实时操作系统代码构成。NXTOSKE可提供:
i. 使用GCC系列工具的ANSI C/C++语言开发环境
ii. NXT 电机,传感器和其他装置的实时控制的C语言的API与C++
语言的API
iii. 符合汽车电子控制系统标准的(TOPPERS)OSEK提供的实时多任
务调度
NXT的一些其他编程语言是通过一个虚拟机解释执行的,而nxtOSEK的应用程序是于本地运行的。并且NXTOSEK固件消耗的ROM存储器空间共仅占约10 kb。
Embedded Coder Robot NXT是一个为LEGO MINDSTORMS NXT设计的基于MATLAB 和Simulink的开发环境。Embedded Coder Robot NXT提供了一个编程建模功能,用来完成NXT的控制策略、设备的动态特性和在3D图形虚拟环境中模拟呈现这些模型部件。它也提供了nxtOSEK对于真实NXT硬件的对象调度,它是基于Real-Time Workshop Embedded Code的。这意味着可以完全体会LEGO的建模、仿真、代码生成、目标对象的建立以及在真实的NXT上进行测试。MATLAB和Simulink是由The MathWorks生产的专有软件,目前主要被广泛地应用在控制工程中。
MATLAB是一个高性能的科学计算软件,一种简单、高效、功能
极强的高级语言,具有强大的矩阵运算能力和极高的编程效率,这一方面使得MATLAB程序可以被高度向量化,另一方面使得程序易读易懂。它广泛应用于数学计算、算法开发、数学建模、系统仿真、数据分析处理及可视化、科学和工程绘图、应用系统开发(包括建立用户界面)等。当前它的使用范围涵盖了工业、电子。医疗、建筑等领域。
附件为四个课题的入门指导及实现简介:
附件1:双轮自平衡机器人
17 / 21
附件2:碰触传感机器人设计(基于Microsoft Robotics Studio)
附件3:寻线机器人的仿真和建模及实例(基于Lejos-Osek 设计一个机器人
的实例)
18 / 21
光电一体化创新实验指导书
附件1:
双轮自平衡机器人
一、 目的
了解LEGO传感器的相关功能并熟练应用,掌握LEGO基本模型的搭建,熟练掌握ROBOT C软件,探索机器人的自动控制调节算法研究。
二、 要求
能够利用LEGO积木搭建一辆两轮机器人小车,并配置所需传感器;利用ROBOTC编写控制程序,建议选择PID控制算法,选择合适的kp,ki,kd等参数使该机器人能够在较长一段时间内实现自动平衡(当有外界扰动时,机器人小车也能快速做出反应使自己处于一个平衡状态)。
三、 过程简介
1. 利用LEGO积木搭建实验所需的机器人小车并安装必要的传感器;
2. 选择控制算法,设计程序流程图;
3. 学习ROBOCTC的编程方法,初步掌握一些功能函数的调用,并利用
ROBOTC编写控制程序;
4. 下载程序到NXT小车中进行调试、收集必要的数据,据此来不断改善算
法参数,使得小车能够长时间保持平衡状态; 5. 编写课程设计说明书,完成该实验。
四、 拓展
机器人只能在较暗的环境下、纯色的白纸板上才能维持较长时间不倒。在调试过程中,传感器应尽可能的缩短与地面的距离,因为传感器在5~30mm内才是近似线性相关。机器人初始平衡点如果没有找好,机器人很难保持平稳。由于会受到周围环境的影响,可以适当修改kp,ki,kd等参数,使机器人具有良好的自动调节功能。
此次实验的最终目标是希望能实现两轮机器人的行走,以及利用摇杆控制两轮机器人转向或前行后退等。在行走过程中如何计算及调节机器人的重心,都是非常关键的困难点。
19 / 21
光电一体化创新实验指导书
附件2:
碰触传感机器人设计
-----基于Microsoft Robotics Studio平台
一、目的
学习基于Microsoft Robotics Studio平台的建模和仿真方法,对乐高机器
人进行相关的控制和算法实现的研究。
二、要求
设计一个碰触传感机器人,也就是说触动该机器人的触碰传感器则驱动电机马达使机器人能够前行,一旦当从触碰传感器上撤去外部压力时,则电机马达停止转动,机器人停止前行。首先充分利用MSRS的丰富扩展功能,为机器人增添一个计算机报数功能,即每按下一次触碰传感器时,机器人不但向前运新,而且还能够将信号通过蓝牙无线传输给远端控制计算机,在电脑上语音播报当前碰触传感器的按键次数。
在开始变成前,要对Microsoft Robotics Studio作充分学习了解。
三、过程简介
1. 在开始动手编程前,需要对所要设计的机器人程序有一个大致的流程框架
和思路;
2. 在VPL编程环境中设计碰触传感器的判断;而后数据流分为两路,一路控
制语音播报,一路控制乐高电机马达。
3. 利用VPL提供的TTS服务实现计算机语音朗读; 4. 乐高 NXT 机器人马达控制。除了在碰触传感器被按下时使计算机能朗读数
据以外,还有另一个重要的工作就是要让机器人能够启动电机旋转并前行; 5. 下载程序,运行机器人。
四、拓展
利用Microsoft Robotics Studio可视化编程环境(VPL),可以轻松的
d&d(drag&drop)编写图形化程序。Microsoft Robotics Studio有多个乐高NXT机器人服务供编程者使用,发挥创造力,就会设计出各种各样的乐高机器人应用程序,如设计走迷宫的机器人。除此之外,结合其可视化虚拟环境(VSE),可以完成各项不具备硬件条件的机器人应用程序开发。
20 / 21
光电一体化创新实验指导书
附件3:
寻线机器人设计
-----基于matlab-nxtOsek平台
一、目的
熟悉了解nxt--osek软件以及matlab的工具包的使用,能够利用已有的实例
来仿真模拟以及下载到nxt中运行,从而掌握建模、仿真的实际应用。
二、要求
利用nxtosek和matlab设计出一个能追踪黑线行走的机器小车,可以是沿着黑线走Z字形,也可以优化其算法,让小车在黑线中走段直线,利用matlab、simulink和ecrobotnxt来模拟仿真小车追踪黑线行走这一个过程,能够实现利用matlab(其实是利用cygwin以及GNU等第三方软件)编译并上传目标文件到NXT中,让NXT小车能在现实中追踪任何形状的黑线。
三、过程简介
1. 下载所需用到的各种软件(cygwin、GNU等)并安装,详细安装过程见2.
3. 4. 5.
lejos-osek官方网页,安装过程有点繁杂,仔细阅读安装说明书;
利用cygwin编译并上传部分lejos-osek中附带的实例到NXT中,熟悉了解下cygwin以及lejos-osek的使用方法(例如nxtgt程序就是利用摇杆通过蓝牙来控制NXT小车);
Ecrobotnxt中含有自平衡、走迷宫以及追踪黑线行走等许多实例,仔细阅读说明书,了解如何运行这些实例;
根据所提供的这些实例,修改参数或者优化算法,使这些实例更好的能够进行模拟仿真并能在实际中运行(至少要修改或优化其中一种实例算法); 编译所修改的程序并上传到NXT中,查看程序是否能正常运行;
四、拓展
Matlab具有非常强大的建模仿真功能,基于nxtosek的matlab可以虚拟仿
真出nxt在现实中的运行状态;同时,matlab的编程效率也是非常的高,而且简单易懂,利用它可以解决很多的nxt程序问题。可以利用matlab simulink来完成nxt小车走迷宫以及两轮小车自平衡的设计并进行一系列的模拟仿真。
例如:可以制作一个使用乐高小车来控制平衡架平衡的实验装置。有一个通过弧形塑料管与地面接触的支架,并且一辆带有悬挂摆的小车在这个支架平台上运行。通过各种控制算法和试凑法的组合来控制小车的运动,使得该支架能够趋于平衡。使用自动控制原理中的PID算法和观察器来对小车进行控制,通过支架上小车的直线运动来保持支架的平衡。研究系统模型的推导和PID控制器参数的计算,并使用MATLAB对该系统进行仿真实验。
21 / 21