《乐高实验报告书.docx》由会员分享,可在线阅读,更多相关《乐高实验报告书.docx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、机电一体化创综合试验学院:机械与汽车工程学院10专业:姓名:学号:机械电子工程名目第一局部 根底试验3试验 1 光电传感器自动跟踪小车31. 试验目的32. 试验要求33. 软件设计34. 测试环境35. 试验步骤46. 留意事项47. 试验总结4试验 2 光电传感器测距功能测试51. 试验目的52. 试验要求53. 软件设计54. 测试环境65. 试验步骤66. 调试与分析77. 留意事项98. 试验总结9试验 3 光电传感器位移传感应用101. 试验目的102. 试验要求103. 软件设计104. 试验步骤115. 调试与分析116. 留意事项137. 试验总结14其次局部 创试验15双轮
2、自平衡机器人151. 试验目的152. 试验要求153. 试验原理154. 试验步骤175. 试验过程186. 试验总结及留意事项207. 试验感想211. 试验目的:第一局部 根底试验试验 1光电传感器自动跟踪小车 了解光电传感器感光特性; 把握 LEGO 根本模型的搭建; 根本把握 ROBOLAB 软件;2. 试验要求: 搭建牢靠的小车模型 实现小车沿着黑线行走(实际上是沿着黑线走 Z 字形)。3. 软件设计:写出程序如下:4. 测试环境:如下图:5. 试验步骤:1) 参考附录步骤搭建小车模型。2) 用 ROBOLAB 编写程序。3) 将小车与电脑用 USB 数据线连接,翻开 NXT 的电
3、源。点击 ROBOLAB的 RUN 按钮,传送程序。4) 取有黑线的白板,运行程序,观看小车的运动状况,不断调试程序,知道小车能平稳地运行。6. 留意事项:l 光电传感器对环境光较为敏感,现承受直接采光装置,提高对环境的适应度。另外,承受光电传感器的自身光源,最大限度的削减环境光对试验的不利影响。l 小车在行进之中,并不能保证轨迹完全沿着黑线行走,而是沿着黑线走 Z字形。7. 试验总结在下载程序之后,将 Lego 机器人的光感传感器先对准稍偏离黑线局部,启动程序,之后机器人能够平稳的沿着黑线 Z 字形行走。四周环境对小车有肯定的影响,但只要依据环境调试到适宜的光感值,小车就能正常运行。体会:用
4、ROBOLAB编写程序时各个图标比较难找,但是生疏了各个界面之后就可以很快找到了。乐高机器人具有简洁简洁操作的优点,通过简洁的图形编程就可以对它进展掌握了,这同时也激发了学习的兴趣。这次的乐高机器人试验初步熬炼了利用 ROBOLAB 编程的力量,为以后的试验打下了良好的根底。试验 2光电传感器测距功能测试1. 试验目的: 了解光电传感器测距的特性曲线; 把握 LEGO 根本模型的搭建; 娴熟把握 ROBOLAB 软件。2. 试验要求: 用 LEGO 积木搭建小车模式,并在车头安置光电传感器。 小车能在光电传感器紧贴红板,以垂直红板的方向作匀速直线倒车运动过程中进展光强值采集。 绘制出时间光强曲
5、线,推导出位移光强曲线及方程。3. 软件设计:编写程序流程图如下:开头设置采样函数电机转动采样 24 次0.05S/次电机停机音乐响完毕写出程序如下:4. 测试环境:红板光电传感器直尺如下图:留意事项:试验应尽量降低环境干扰因素,同时小车的设计宜使速度尽量低。可参考左图传动机构设计。5. 试验步骤:1) 搭建小车模型,参考附录步骤或自行设计2) 用 ROBOLAB 编写上述程序。3) 将小车与电脑用USB 数据线连接,并翻开 NXT 的电源。点击 ROBOLAB的 RUN 按钮,传送程序。4取一红颜色的纸板竖直摆放,并在桌面平面与纸板垂直方向放置直尺,用于记录小车行走的位移。5) 将小车的光电
6、传感器紧贴红板放置,用电脑或 NXT 的红色按钮启动小车,进展光强信号的采样。从直尺上读取小车的位移。6) 待小车发出音乐后,点击 ROBOLAB 的数据采集按钮,进展数据采集, 将数据放入红色容器。共进展四次数据采集。7) 点击 ROBOLAB 的计算按钮,分别对四次采集的数据进展同时显示、平均线及拟和线处理。8) 利用数据处理结果及图表,得出时间同光强的对应关系。再利用小车位移同时间的关系近似为匀速直线运动,推导出小车位移同光强的关系表达式。6. 调试与分析a) 采样次数设为 24,采样间隔为 0.05s,共运行 1.2s。采得数据如下所示:数据显示b) 在 ROBOLAB 的数据计算工具
7、中得到平均后的光电传感器特性曲线,如以下图所示:平均线c) 对上述平均值曲线进展线性拟合,得到的光强与时间的线性拟合函数:拟和线以上四条曲线在一个图中显示如下:d) 取四次试验小车位移的平均值,依据时间与光强的拟合函数求取距离与光强的拟合函数:由上图可得光强与时间的关系为:y= -25.261858t+56.524457 ;量取位移为 4.5cm,用时 1.2s,得:x=3.75t;光强与位移的关系为:y= -6.73649547x+56.524457;e) 通过观测上图及导出的光强位移函数可知,光电传感器在短距离里内对位移信号有着良好的线性关系,可以利用光强值进展位移掌握。但我们也可以觉察,
8、其线性区域格外狭窄,从图中可看出,主要集中在 0.1s 到 0.8s 之间。故只能用于短距离测控。7. 留意事项: 光电传感器对环境的光较为敏感,应承受肯定的遮光措施,使环境尽量的暗,增大光强变化范围,提高定位准确度。另外,承受光电传感器的自身光源, 最大限度的削减环境光对试验的不利影响。 小车在行进之中,并不能保证轨迹完全与红板垂直,可以实行固定后轮的方式,强制小车直线运动。 由于光电传感器的自身光源为红色光,故承受红板反射效果最好。在同等条件下,白板的反射光强曲线较陡。 由于线性区域很窄,故只用低速档并可以考虑承受齿轮减速机构,使速度尽量的慢,得到较为抱负的曲线。8. 试验总结:通过这次试
9、验,我们看到光电传感器的另一种功能,在短距离内的测距功能。但我们也看到,这种工作方式简洁受环境的影响,产生较大的误差。另外, 它也只适合于短距离的测量,这是由于其与位移的线性关系打算的。最终, 这次试验也为下次试验供给了理论支撑和相关数据确实定。体会:本次试验观点传感器对环境光格外敏感,试验时应当把装置放在较暗的地方如桌子下方。试验 3光电传感器位移传感应用1. 试验目的:把握利用光感的局部线性特征进展测距的方法。2. 试验要求: 小车由动身点向障碍物方向匀速行进,距离 3CM、2CM、1CM 时各停顿5 秒钟并以不同音调提示到达指定位置。 回程亦然并停顿在 3CM 位置。测量小车到达各目标位
10、置的实际位置。 重复试验三次并记录相关数据。3. 软件设计:编写程序流程图如下:开头延时 1s电机正转N光强值是否上升到指定Y电机停机 5s,响音光强值是否上升到指定YN电机停机 5s,响音光强值是否上升到指定YN电机停机 5s,响音电机正转光强值是否下降到指定YN电机停机 5s,响音光强值是否下降到指定YN电机停机,响音乐完毕写出程序如下:4. 试验步骤:1) 参考附录搭建小车模型。2) 用 ROBOLAB 编写上述程序。3) 将小车与电脑用USB 数据线连接,并翻开 NXT 的电源。点击 ROBOLAB的 RUN 按钮,下载程序。4) 取一红颜色的纸板竖直摆放,并在桌面平面与纸板垂直方向放
11、置直尺, 用于记录小车与红板之间的距离。5) 将小车的正对红板放置,与红板距离约为 4cm。用电脑或 NXT 的红色按钮启动小车。每逢小车停顿,从直尺上读取小车的位移。重复三次。6) 将记录的数据记录在自制的表格中。5. 调试与分析a) 利用上次试验推导出光强与位移的方程:y= -6.73649547x+56.524457得出:x=1cm 时,y=49.861150;x=2cm 时,y=43.1688943;x=3cm 时,y=36.4666536;b) 利用上述数据进展程序设置,虽然小车能够按要求在不同的距离停顿, 但与我们所设的位置有较大误差,特别是回程的时候。这是由于拟和的函数本身就存在
12、误差,再加上环境的影响,故实现起来有较大的误差。c) 记录的试验数据:预定停机位置3cm2cm1cm2cm3cm各位置掌握阈值36%43504336实际停机位置第一次2.0cm1.2cm0.5cm1.5cm2.6cm实际停机位置其次2.0cm1.1cm0.3cm1.6cm2.5cm次实际停机位置第三1.8cm1.0cm0.4cm1.5cm2.4cm次实际停机位置 平1.9cm1.1cm0.4cm1.5cm2.5cm均误差1.1cm0.9cm0.6cm0.5cm0.5cmd) 为更好的进展程序调试,故改进程序如下,参加光电感应器的数据采集:e) 运行程序,得到以下图:f) 观测上图,可以觉察小车
13、并未在我们设定的掌握阈值处停顿。在向前运动中,停顿位置的实际光强值比预设的大。而在回程中,停顿位置的光强值比我们预设的小,故可以推想由于小车的惯性及电机自身的因素, 产生了掌握误差。另外,我们可以从图表中读出停顿位置的实际光强值, 故可以依据现场状况,调整掌握阈值,到达较好的掌握效果。g)依据现场状况调整掌握阈值后的记录表格:预定停机位置3cm2cm1cm2cm3cm修改前各位置掌握阈值3643504336修改后各位置掌握阈值3337444235实际停机位置第一次 2.9cm2.2cm1.1cm2.1cm3.0cm实际停机位置其次次 2.8cm2.1cm1.0cm2.0cm3.1cm实际停机位
14、置第三次 3.0cm2.1cm1.1cm2.1cm3.0cm实际停机位置平均2.9cm2.1cm1.1cm2.1cm3.0cm误差0.1cm-0.1cm-0.1cm-0.1cm0cmh) 调整掌握阈值后采集的数据:i) 依据上图可以觉察,小车实际停顿位置的光强值为 34,39,47。将这些数据代入上次试验得出的方程,觉察处在这些光强之下的位移都比估量值大,说明上一个试验得出的方程存在误差,把一开头的加速运动简化为匀速直线运动处理所产生的。6. 留意事项:l 光电传感器对环境光较为敏感,应承受肯定的遮光措施,使环境尽量的暗,增大光强变化范围,提高定位准确度。另外,本试验承受光电传感器的自身光源,
15、最大限度的削减环境光对试验的不利影响。l 小车在行进之中,并不能保证轨迹完全与红板垂直,可以实行固定后轮的方式,强制小车直线运动。l 由于光电传感器的自身光源为红色光,故承受红板反射效果最好。在同等条件下,白板的反射光强曲线较陡。l 由于掌握的位移很小,故尽量承受低速档及齿轮减速机构,使速度尽量的慢。另外一开头摆放的距离也不宜太大,尽量减小惯性,才能得到较为准确的掌握。l 读取直尺数值时尽量保持以垂直桌面的角度,减小误差。7. 试验总结:通过这次试验,我们看到利用光电传感器,可以实现短距离的较为准确的位移掌握。但由于受环境光,以及小车的惯性等因素的影响,利用上次试验拟和的位移光强曲线函数虽然实
16、现不同距离停顿的功能,但与预定值有着较大的误差。故可以考虑现场采集光强值的方式,以上次试验计算出的掌握阈值作为初始值,通过屡次试验进展校正,最终到达较为抱负的位置掌握。另外,从直尺上读取小车的位移值时,从不同的角度读取值不一样,易引入误差。故可以考虑在车轮上直接绘制标尺的方式或改用角度传感器反响的方式来进展位移值的读取。红板光电传感器直尺附测试环境: 如下图:其次局部 创性试验-双轮自平衡机器人1. 试验目的 了解 LEGO 传感器的相关功能并娴熟应用 把握 LEGO 根本模型的搭建, 娴熟把握 ROBOT C 软件,探究机器人的自动掌握调整算法争论。2. 试验要求1. 利用 LEGO 积木搭
17、建一辆两轮机器人小车,并配置所需传感器一个光感传感器;2. 利用 ROBOTC 编写掌握程序,选择 PID 掌握算法,选择适宜的 kp,ki, kd 等参数使该机器人能够在较长一段时间内实现自动平衡当有外界扰动时,机器人小车也能快速做出反响使自己处于一个平衡状态。3. 试验原理PID 掌握参数 K p TiTd 相互独立,参数整定比较便利;PID 算法比较简洁,计算工作量比较小,简洁实现多回路掌握。在计算机掌握系统中,数字调整器的输出和输入的关系是:Tu ( k T) =K e(k+T)pTi试验承受 :kj = 0T(e + j )TdT-(ek )T- (ek T) T (5.4)u (
18、kT) =Ke ( kT) + Kpkij = 0e ( jt ) + K e ( kt ) - e ( kT- T )d(5.5)p式中 K成为比例系 数;K= KTip Ti称为积 分系数 , T 为采样周期;K= KTddp T称为微分系数。机器人安装有一个光电传感器,通过这个传感器把位置信息反响到掌握器, 掌握器通过 PID 算法算出机器人运动的方向和速度,从而实现机器人的平衡。掌握系统的构造框图如下:输 入 信方向PID 掌握器稳 定 位速度机器人反响离地面的距离机器人掌握框图实现上述的掌握的框图,先采平衡位置的光感值 offset,由于环境光度对传感器的影响很大,所以每次运行机器人
19、的时候传感器把平衡位置的光感强度存为稳定位置比 较便利 。进入循 环体,采 其次个 位置的光 感值 now,算出偏差err=now-offset,当前微分 errdiff=err-errold,积分 errint=errint+err,把当前偏差存储到 errold,接着算出 pid u ( kT ) ,由于机器人的马达只有 5 个速度档,所以要设定速度上限和下限,接着给指令马达,然后设定掌握周期,再返回到其次步采光感值 now,算法流程图如下图。程序初始化,设采样目前光算出偏差,定平衡位置光感值 now微分和积分设定速度上下限等待采样周期的时间驱动机器人算法流程图数字 PID 调整器参数的整
20、定,除了需要确定K p,T ,T 外,还需要确定系id统的采样周期To 。生产过程对象通常有较大的惯性时间常数,而大多数状况,采样周期与对象的时间常数相比要小的多,所以数字掌握器参数的整定可以仿照模拟 PID 调整器参数整定的各种方法。PID 参数确实定是通过试凑法来确定,因此,通过采集数据,画出图线,分析掌握参数对掌握性能的影响显得很重要。数据采集的难点在于给系统一个固定的扰动。由于依据前面的掌握算法,机器人开头必需在平衡位置以便采得目标光感值,当机器人运动以后,想给定一个固定的扰动就比较困难了,经过思考,可以尝试承受以下 3 种方法:(1) 待机器人稳定后,程序等待一段固定的时间。由于机器
21、人稳定后,并非真正的稳定在平衡位置,而是在平衡位置四周有小的摇摆,因此,掌握程序断开一段时间所产生的扰动并不固定。(2) 待机器人稳定后,突然转变转变传感器的值。同样的道理,机器人稳定后,并非真正的处于平衡位置,而是在平衡位置四周振荡,因此,产生的扰动无论大小和方向都不稳定。(3) 在试验前先测定平衡位置的光感值,机器人运行前让光电传感器离开地面一个固定的距离,平衡位置的距离和这个固定的距离的差就是给系统的固定的扰动。 这样,机器人运行时并不把第一个采到的数据作为平衡位置的光感值。虽然这个方法能得到一个固定的扰动,但也有缺点,就是当环境光强转变的时候, 要重测定稳定位置的光感值。第三个方法满足
22、了 PID 参数整定时数据采样的要求,因此选用第三个方法。比例掌握 K加大,使系统的动作灵敏,速度加快,Kp偏大,震荡次数加多,p调整时间加长。当K太大时,系统会趋于不稳定。假设Kp太小,又会使系统的动p作缓慢。加大比例掌握 K,在系统稳定的状况下,可以减小稳态误差,提高控p制精度,但是加大 K只是减小稳态误差,却不能完全消退稳态误差。p积分掌握Ti 通常使系统的稳定性下降, Ti 太小系统不稳定。 Ti 偏小,振荡次数较多。Ti 太大,对系统性能的影响削减,当T i 适宜时,过渡性能比较抱负。积分掌握Ti 能消退系统的稳态误差,提高掌握系统的掌握精度。但是假设 Ti 太大时,积分作用太弱,以
23、至不能减小稳态误差。微分掌握可以改善动态性能,如超调量削减,调整时间ts缩短,允许加大比例掌握,使稳态误差减小,提高掌握精度。当Td偏大时,超调量也较大,调整时间t 也较长。只有适宜时,可以得到比较满足的过渡过程。s综合起来,选定 K=20,Kpi=2,Kd=12.5,两轮自平衡机器人获得良好的控制性能,超调量小,调整速度快,稳态误差小。但此时,机器人还有小幅摇摆, 这主要是由于光电传感器是可见光的传感,简洁受环境光的影响,试验的抱负条件应当在黑暗的环境下,水平的均匀的地面上进展。另一方面,机器人的平衡位置并不格外准确,由于试验前查找机器人的平衡位置时的光强值是通过目测推断的。4. 试验步骤1
24、. 参照 LEGO 快速入门,利用 LEGO 积木搭建试验所需的机器人小车并安装必要的传感器;2. 利用 PID 掌握算法,设计程序流程图;3. 学习 ROBOCTC 的编程方法,初步把握一些功能函数的调用,并利用ROBOTC 编写掌握程序;4. 下载程序到 NXT 小车中进展调试、收集必要的数据,不断改善算法参数,使得小车能够长时间保持平衡状态;5. 编写课程设计说明书,完成试验。5. 试验过程:机器人搭建如以下图(2) 试验程序/*!Sensor,S2,Light,sensorLightActive,!*/*!*/*!Startautomaticallygenerated code.!*/
25、*!Sensor,S2,sensorLightActive,!*/*!Motor,motorA, tmotorNxtEncoderClosedLoop,!*/*!Sensor,S2,sensorLightActive,!*/configurationLight, motorA, Light,/*!*/*!Startautomaticallygeneratedconfiguration code.!*/*!Sensor,S2,Light,sensorLightActive,!*/*!Motor,motorA,motorA,tmotorNxtEncoderClosedLoop,!*/*!Motor
26、,motorB,motorB,tmotorNxtEncoderClosedLoop,!*/*!*/*!Startautomaticallygeneratedconfiguration code.!*/const tSensors Light= (tSensors) S2;/sensorLightActive/*!*/consttMotormotorA=(tMotor)motorA;/tmotorNxtEncoderClosedLoop /*!*/consttMotormotorB=(tMotor)motorB;/tmotorNxtEncoderClosedLoop /*!*/*!CLICKto
27、edit”wizard”createdsensor&motorconfiguration.!*/*!Sensor,S3,Light,sensorLightActive,!*/*!*/*!Startautomaticallygeneratedconfiguration code.!*/task maindouble err,errold,errdiff,errint=0; double kp=20;double ki=2; double kd=12.5; double now;/double scale=2; double pid;/*nSyncedMotors=synchAB; nSynced
28、TurnRatio=100;*/bFloatDuringInactiveMotorPWM=false; int offset= SensorValueLight;/int offset=SensorValueLight;/nMotorPIDSpeedCtrlmotorA = mtrSpeedReg; wait1Msec(100);while(true)/i100)pid=100; if(pid-100)pid=-100;/*if(pid-35)pid=abs(pid);*/ if(abs(pid)10)pid=0;/Display(kp,ki,kd,now,errold,errint,pid)
29、;motormotorB=pid; motormotorA=pid; wait1Msec(10);6. 试验结果及留意事项1. 小车自平衡站立 10 分钟,如以下图所示2. 最优后的 kp=20; ki=2; kd=12.5;3. 机器人在原地小幅摇摆时能较好平衡,一旦行走速度过快,或者偏移过大时就简洁失衡。4. 机器人初始平衡点假设没有找好,机器人很难保持平稳。由于会受到四周环境的影响,可以适当修改 kp,ki,kd 等参数,使机器人具有良好的自动调整功能。7. 试验感想这次乐高机器人的创试验是用ROBOT C软件编程,即要用 C 语言编程。用 ROBOT C 编程虽然不如用 ROBOLAB 编程直观便利,但是它在掌握方面更加便捷,可以实现的功能更加强大。我认为,设计编写程序并不是最困难的,最困难的是调试工作。由于机器人对最初的平衡状态很敏感,初始位置放不好,机器人就很难平衡,但是一旦初始位置放好,机器人就可以自平衡站立很长时间。