22 使机器人有视觉.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
22 使机器人有视觉

2.2 使机器人有视觉 通过前面的学习,我们已经能够控制机器人自如地移动,如直行、转弯等,但这样的机器人还犹如盲人一般,随时可能会撞墙或撞其它障碍物。因此,我们必须为机器人增加视觉功能。 实际上,在能力风暴机器人上盖的前端装有红外传感器和光敏传感器,见图1-2-2,它们分别可用来检测前方有无障碍或周围环境光线的强弱。我们只要在程序中调用这些传感器的检测模块,就可以使机器人看清周围,从而采取相应的动作,如:避障、追光等。本节我们就来学习如何使机器人通过红外传感器和光敏传感器来识别周围环境。 1.红外传感器的安装及工作原理 红外传感器由两个红外发射器和一个红外接收器组成,两只红外发射器轮流发出红外信号,当发射的红外信号遇到前方物体阻挡而返回时,会被红外接收器接收;而当前方无障碍时,红外接收器就收不到返回的红外信号。根据红外接收器是否收到返回的红外信号,以及收到的是从哪边的红外发射器发射的信号,就可识别机器人正前方、左前方或右前方有无障碍。红外检测距离可以通过调节主板上的左红外调节器或右红外调节器来调节。红外传感器的安装位置以及和主板连接的接口位置如图2-2-1。 图2-2-1 红外传感器安装位置示意图 2.红外接收信息与障碍物位置对应关系 在机器人不同方位有障碍时,红外接收器收到的信号值不同,对应关系如下表: 红外信号接收情况 接收值 前方障碍状况 无返回信号 0 无障碍 接收到左边的返回信号 1 左前方有障碍 接收到右边的返回信号 2 右前方有障碍 两边的返回信号都收到 4 正前方有障碍 3.红外检测程序的设计 为了试验红外测障的效果,我们可设计一个如下的小程序,该程序不仅可用于真实环境的检测,也可在仿真环境中模拟检测。 图2-2-2 红外检测程序 设计提示: (1)拖动控制模块库中的“永远循环”模块连接到主程序下方; (2)拖动传感器模块库中的 “红外测障”模块连接到 “永远循环”模块的下方,将红外传感器接收的值记录在 “红外变量一”中; (3)拖动执行器模块库中的 “显示”模块连接到 “红外测障”模块的下方,“显示”模块参数设置如图2-2-3、2-2-4。 图2-2-3 显示红外变量值 图2-2-4 变量百宝箱 从这个程序的JC代码可以看出,“红外测障”模块实际上就是调用了一个红外检测函数:ir_detector( ),该函数可能的返回值为0、1、2、4。调试时,如果在仿真环境中画一个障碍墙,当机器人接近该墙时,液晶屏会显示对应的值。 4. 红外检测后的处理 当检测到某一方向有障碍时,机器人必须做出相应的处理,否则会发生碰撞。那么,程序中如何判断障碍在哪个方向呢?要实现既读取红外接收器的值,又能判断障碍的方位,就要在程序中对 “红外测障”模块进一步处理。 【实践名称】机器人避障。 【实践目的】掌握用红外传感器测障的方法。 【实践项目】控制机器人自动沿着一个任意的方形围墙内侧行走。 【实践步骤】 1.项目分析:要让机器人沿着围墙内侧行走,必须在仿真环境中构建一个方形的围墙(围墙就是障碍)。因围墙的长短是任意的,所以不能用时间来控制机器人转弯,必须在程序中让机器人自动判断是否遇到围墙,如遇到围墙,则右转90°,未遇到围墙,则继续直行。如此循环,就可以自如地沿墙内侧行走。最终的程序如图2-2-5。 判断是否遇到围墙,可用 “红外测障”模块检测正前方,并判断红外接收值,如果红外接收值是4,则表明遇到墙了。 图2-2-5 沿围墙内侧行走的程序 2.编程与调试:进入VJC仿真版编程环境,做如下操作: (1)设置一个永远循环结构:拖动控制模块库中的 “永远循环”模块连接到主程序的下方; (2)设置红外测障:拖动传感器模块库中的 “红外测障”模块连接到 “永远循环”模块下方的流程线上,此时的 “红外测障”模块只能读取红外信息而无法判断。要实现 “红外测障”的判断功能,必须右键单击流程线上的 “红外测障”模块,打开 “红外测障”模块设置框,如图2-2-6,再继续按图示进行设置。 图2-2-6 “红外测障”模块 图2-2-7 “红外测障”模块判断参数 默认的判断条件是:“红外变量一= = 前”,即判断正前方有无障碍(如要判断其它方向的障碍,可在此处重新设置),单击 “确定”按钮后,流程线上的 “红外测障”模块图标就从平行四边形框变成了菱形框,如图2-2-5。菱形框左右各有一个分支出口,当正前方有障碍时,程序就会自动按左边“是”的分支路线向下执行;当正前方无障碍时,程序就会自动按右边 “否”的分支路线向下执行; (3)设计红外测障判断后相应的处理模块:当执行左边的分支时,表明遇到了围墙,应该控制机器人右转弯,所以

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档