第四章 基于Microsoft Robotics Studio的机器人避障的实现 35
图4.10 驱动模块程序设定
至此,整个程序设置完成,该程序能够完成测距和避障过程。
4.3 基于接触传感器的避障程序实现
基于接触传感器的避障算法我们在第三章3.1.1小节进行了分析,这里我们将使用iRobot Create?机器人平台实现该避障程序。
我们建立一个Activity组件,将其命名为RandomDrive,这个组件将作为驱动模块,该模块我们设计要包含三个页面,分别为:Backup、Drive、Turn三个页面,这三个页面将控制机器人前进、后退和随机转向,该模块只有一个变量Polarity输入,该变量设定为double的数据类型。
基于Microsoft Robotics Studio的机器人设计 36
图4.11 RandomDrive模块的命名及其子程序的输入量名称/类型设定
接下来我们开始设定Turn页面中的驱动处理,Turn页面中我们将设定一个随机两量,然后将输入的变量Polarity和随机变量相乘赋入Left变量中,Left取反赋入Right值中,然后将两个值输入差分驱动器的左右轮,驱动器开始转弯,我们使用Data和Timer来设定一个1500ms的延时程序,使转弯的角度受到控制,最后将结果输出到RandomDrive的Result接口上。
图4.12 Random子程序Turn的程序设定
第四章 基于Microsoft Robotics Studio的机器人避障的实现 37
根据Turn页面相同的操作,我们在Backup页面和Drive页面。在Backup页面中读入Polarity的数据,然后将Polarity的数据乘以-0.4,输入到差分驱动器中,让机器人开始缓速后退,进行延时,使后退时间定在1500ms;在Drive页面中,中我们采用了随机速度驱动的方式,使用了Polarity和Random的随即量乘积设定差分驱动器的驱动力。
图4.13 Random子程序Backup的设定
图4.14 Random子程序Drive的设定
现在我们开始设置主程序,主程序用来获得接触传感器的数据并进行处理,当接触传感器触发时,使变量Polarity获得变量的当前值,同时输入RandomDrive中进行驱动判断。
基于Microsoft Robotics Studio的机器人设计 38
图4.15 基于接触传感器的避障主程序
至此,基于接触传感器的程序编写完毕。
4.4 本章小结
本章选择了试验所使用的虚拟机器人模型,并逐一对其介绍,然后我们编写了基于激光测距传感器和接触传感器的两种避障程序,并着重分析了基于激光测距传感器的避障程序。同时向读者展示了如何使用Visual Programming Language编写机器人程序。
相关推荐: