上一期的内容中,我给大家介绍了如何使用触碰传感器检测障碍物和避障,今天我们再来说说如何使用颜色传感器和超声波传感器检测障碍物和避障。

使用颜色传感器

在大多数情况下,EV3颜色传感器并不适合用于障碍物检测。颜色传感器寻找的是由物体反射回传感器的光线,非常适合用于检测任务场地上的标记,但并不适合检测机器人何时与障碍物接触。

理论上说,我们可以让颜色传感器面向前方,当它无法检测到反射光时,就是与其他物体接触了,但是阴影或光照条件的变化可能会让颜色传感器出现误判。

在巧妙的结构的帮助下,我们也可以使用EV3颜色传感器进行障碍物检测,如搭建一个特殊的接触杠,当按下接触杠时,颜色传感器可以读取不同的光值。下图显示了这样的结构。

将颜色传感器安装在一组黑色科技梁上,当接触杠处于静止状态时,科技梁遮住了颜色传感器,所以传感器的读数很小;但是当按下接触杠时,如下图所示,移开颜色传感器前面的科技黑梁,传感器可以读取到较大的光值。

使用颜色传感器时,无论接触杠关闭还是打开,外部光源都可能会影响传感器读取的光值,因此最好对颜色传感器进行校准。

使用这种接触杠的EV3代码与使用触动传感器的代码非常相似。在下图的代码示例中,只要颜色传感器检测到黑色,机器人就向前移动;一旦颜色传感器不再看到黑色,机器人将停止然后后退。

使用超声波传感器

EV3超声波传感器适合在任务场地中检测大型物体。传感器发出超声波并接收由物体表面反射回来的反射波,传感器根据声波返回所需的时间来确定距离,超声波传感器应该被安装在水平位置以获得准确的读数,使用厘米单位时检测效果最好。传感器无法准确读取小于3cm的距离,此外,当物体距离传感器超过25cm时,传感器的精度会降低。超声波传感器的最佳范围为3~25cm。传感器的左侧是接收器,也就是说传感器从右侧发出超声波,所以检测右侧的物体时信号较强。

计算物体与机器人超声波之间的距离时,可以在EV3程序块内置的查看功能中查看超声波传感器的读数,尝试不同的位置,看看检测特定物体时哪一个位置给出的测量值是最一致的。如果在类似FLL比赛中使用超声波传感器时,传感器的安装高度应该低于比赛台的侧墙。如果另一个赛台的机器人也使用了超声波传感器,则两个机器人的超声波信号可能会互相干扰,让传感器的高度低于赛台侧墙,可以避免这种干扰。

超声波传感器在检测较大的平坦的物体时工作效果很好,但它不能精确检测较小或弧形表面的物体。就如在2010年FLL“智能交通”比赛中,有一些机器人必须检测的“感应墙”,机器人可以撞倒它们或者绕过它们。如果我们的比赛策略是让机器人绕过“感应墙”,那么使用接触杠或触动传感器检测“感应墙”肯定不是理想方式。这堵墙大而平坦,使用超声波传感器可以完美完成任务,所以用超声波传感器检测墙壁非常适宜。在下图中,我们可以看到DemoBot上安装了超声波传感器,正在检测“感应墙”。

上图所示的EV3代码用超声波传感器检测障碍物,机器人向前移动,检测到前方的物体后停止并向右转,以避免撞上障碍物。

在机器人上使用超声波传感器时,一定要注意可能进入传感器视野中的意外物体。在许多比赛中,裁判或团队成员可能必须要拿掉比赛场地中的某些掉落的物体。大家要小心,不要让机器人检测到进入赛台的人员,否则机器人会认为自己遇到了障碍物,从而改变路径。

通过上期和本期的介绍,我们了解到利用传感器是让机器人更加智能的最佳方式。能够通过环境信息进行导航的机器人可以更好地处理任务场地的变化或差异。大家快快用起来吧!

推 荐 阅 读

如何使用触动传感器检测障碍物和避障

如何利用线条和场地边缘调整机器人姿态

机器人运动中利用交互式靠墙对正方法调整姿态

机器人运动中利用被动式靠墙对正方法调整姿态

机器人巡线中双颜色传感器的应用

利用颜色传感器控制机器人巡线

学会校准颜色传感器的正确姿势

如何在巡线和检测线条应用中安装EV3颜色传感器

陀螺仪传感器在机器人准确转弯中的应用

乐高EV3机器人设计与控制系列往期精彩内容

扫码求关注

给我好看

距离传感器控制灯泡代码_如何使用颜色传感器和超声波传感器检测障碍物和避障...相关推荐

  1. 距离传感器控制灯泡代码_生迪全彩智能 LED 灯泡体验评测

    市面上大多数智能灯具无外乎智能控制,冷暖标准区间的简单调光,仅仅满足我们日常照明之外,似乎用处不多.如果有一款能在自己房间制造多彩氛围的灯泡就好了. 这次有幸体验到了华为智能家居生态链产品生迪全彩智能 ...

  2. 工业级洗地机器人_基于多传感器融合的自动洗地机器人避障研究

    龙源期刊网 http://www.qikan.com.cn 基于多传感器融合的自动洗地机器人避障研 究 作者:杨建峰 杨丽英 刘珍娜 来源:<山东工业技术> 2019 年第 13 期 摘 ...

  3. layuiajax提交表单控制层代码_漏洞预警|ThinkPHP 5.0 远程代码执行

    漏洞预警|ThinkPHP 5.0 远程代码执行 2019-01-11 事件来源 2019年1月11日,ThinkPHP Github仓库发布了新的版本v5.0.24,包含重要的安全更新,山石安服团队 ...

  4. 消息队列控制灯代码_代码实现RabbitMQ死信队列的创建

    ‍ ‍前言:‍ ‍ 之前有写过死信队列的使用场景以及通过管控台创建死信.这次就通过代码实现死信队列的创建,同时也分享一下RabbitMQ封装的类. 准备: 1. 先准备一个死信队列(最后用来消费)的参 ...

  5. layuiajax提交表单控制层代码_究竟怎么用Restful风格编代码必看这篇。(二)

    点击上方"IT咸鱼",星标公众号每天分享技术栈,开发工具等 简单急记几个小点:RequestMapping注解的使用和里面涉及到的参数用途和写法 @RequestMapping(& ...

  6. pwm波如何控制电机代码_柴油发电机机组的控制器该如何操作

    对于用电紧张的,因此相关部门都会采取措施,安排分区停电整顿用电高峰.在停电时往往有些小企业,小商店还得运营不停产,这时柴油发电机控制器可提供酒店.消防.医疗等应急电力的紧急供应. 常用柴油发电机控制器 ...

  7. layuiajax提交表单控制层代码_无代码搭建系统(一)——流程表单搭建

    迎着2020疫情带来的线上办公.远程协同办公,把无代码带上风口浪尖,众多无代码厂商迅速发展起来,推出自己的无代码产品.实现全民开发,是无代码发展的愿景和目标.数字化和网络化使各行各业的客户对应用开发的 ...

  8. pwm波如何控制电机代码_【附代码】日本工程师带你easy电机矢量控制

    之前有朋友反应对电机矢量控制有很大的学习需求,他说缺乏"实干"的书籍,国内暂时并没有发现太多实用的书籍,这里给大家推荐一本日本一线工程师的电机矢量控制书籍--<无刷直流电机矢 ...

  9. pwm波如何控制电机代码_电动车电机如何选择功率匹配的电机控制器?

    一般和整车厂进行技术沟通时他们会给控制器的线束图纸及功能要求图纸.功能要求中罗列了控制器的相关功能及线束总成,技术要求一般如低电平/高电平防盗.巡航.过欠压.平均电流等. 电机控制器客户输入技术要求图 ...

最新文章

  1. 创业故事:腾讯的创始人们
  2. java list set map的区别_Java集合类List/Set/Map的区别和联系
  3. 《操作系统》实验报告——进程管理
  4. Web Service 一些对外公开的网络服务接口以及http://www.webxml.com.cn/zh_cn/index.aspx
  5. JAVA中的变量和常量
  6. Fight against involution
  7. 1-3 交换变量(算法竞赛入门经典)
  8. MAVEN 私有仓库库迁移
  9. cisco 模拟器安装及交换机的基本配置实验心得_看完这份1113页的TCP/IP协议+路由与交换机,成功上岸字节跳动...
  10. Django项目实践1 - 创建Django项目
  11. Qt Sqlite中替换部分字符串
  12. Steam Roller UVALive - 4128
  13. 爬虫实战——QQ空间自动点赞!这个脚本值三千五你信吗?
  14. 一般线性模型混合线性模型广义线性模型【转】
  15. 计算机考试模拟软件双击为什么打不开,win7系统双击“计算机”打不开的解决方法...
  16. 上下相机贴合对位计算公式_相机界的小公主康泰时Contax g1
  17. sar adc的常用指标(一)
  18. hexo-theme-icarus配置 valine 评论系统
  19. 艺赛旗(RPA) Python 常见 excel 文件的操作模块
  20. STM32-点灯程序

热门文章

  1. Linux shell 学习笔记(6)— vim 编辑器使用方法及技巧
  2. vs2012下编码引起的一个神坑
  3. 条件随机场(CRF) - 1 - 简介
  4. PyTorch官方中文文档:torch.optim 优化器参数
  5. LeetCode简单题之拼写单词
  6. MindSpore技术理解(下)
  7. 客快物流大数据项目(十五):DockeFile常用命令
  8. 2021年大数据HBase(五):HBase的相关操作JavaAPI方式
  9. 2021年大数据Flink(二十三):​​​​​​​Watermaker案例演示
  10. Python 虚拟环境 virtualenv