机器人技术-HC-SR04超声波传感器数据及机器人避障的应用

2023-05-16

比较详细的HC-SR04超声波传感器数据及机器人避障的应用方法

 

言.超声波传感器概述

     超声波传感器型号繁多,价格从几元钱到几百元不等,主要用于检测距离,同时根据声速计算出物体的距离.但超声波传感器有四个缺点:

1.声音速度易受温度和风向等环境因素干扰,在室内应用可忽略.

2.超声波有可能被吸引材料吸收,如毛毯,毛衣等.

3.传感器可能受外部噪音(干扰源与传感器有同样的频率)或相同传感器干扰.

4.超声波传感器检测与自身斜角较大的物体可能出现检测不到的情况.

一.HC-SR04超声波传感器电子结构

二.HC-SR04工作原理

   采用IO触发测距,触发信号输入端(Trig)输入一个10微秒以上的高电平信号,超声发送口收到信号自动发送8个40Hz方波,同时启动定时器,待传感器接收到回波则停止计时并输出回响信号,回响信号脉冲宽度与所测距离正比.根据时间间隔可以计算距离,公式:距离=(高电平时间*声速)/2.

   使用I2C协议,一个CPU可控制多个传感器.

三.HC-SR04出厂标准参数

四.HC-SR04实际测量结果

  测距时,被测物体面积不宜少于0.5平方米且尽量要求平整,否则影响测量结果.

1.前方有平滑物体(如图书封面,镜面,墙体)与传感器夹角大于45度(非垂直反射)时误差明显,且在5-40cm范围内读数不稳定.其中可能会出现的误差有三角误差、镜面反射、多次反射等。

2.前方有毛衣,毛毯等吸音材料时读数不稳定.

3.声波测量角度为30度,精度平均正负4cm.

五.其他研究应用方法

    1.一体式超声波传感器与步进电机组成的探测系统:利用电机带动一个超声波传感器旋转测距,并与步进电机相互协调.

    2.多超声波传感器共同作用,互相补偿.多见超声波和红外协同 

    3.物理感应:超声波传感器和弹簧式的保护层共同工作,如保护层碰到障碍物,弹簧压缩,机器人接收到碰撞信息,调整位置.

六.在机器人上的应用设计

由于用超声波测量距离并不是一个点测量。超声波传感器具有一定的扩散特性,发射的超声能量主要集中在主波瓣上,沿着主波轴两侧呈波浪型衰减,左右约30°的扩散角。事实上,距离计算是基于超声波成功、垂直的反射名义下进行的。但对于移动机器人很难保证其自身运动姿态的稳定性,采用超声波传感器固定在移动机器人车身的探测方式,当移动机器人偏离平行墙面时,探测系统往往很难得到实际的距离。另外,超声波这种发散特性在应用于测量障碍物的时候,只能提供目标障碍物的距离信息,而不能提供目标的方向和边界信息。因此需要用多个超声传感器以及其他传感器共同工作.

应用6个超声波传感器,两边对称放置,每20度角一个,单侧角度为40,60,80度.探测盲区在15cm以内,整体探测角度150度以上,可以应用. 

建议测量周期60ms以上,防止发射信号受回响信号影响.
--------------------- 
作者:lzw李正文 
来源:CSDN 
原文:https://blog.csdn.net/weixin_39513374/article/details/79650949 
版权声明:本文为博主原创文章,转载请附上博文链接!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器人技术-HC-SR04超声波传感器数据及机器人避障的应用 的相关文章

  • cmake编译依赖opencv的c++库

    前面一篇主要讲了c 43 43 项目怎么在本地配置opencv过程 xff0c 这种方式缺点就是只能在开发着本地环境编译 xff0c 换台电脑就会出现环境配置问题 接下来主要讲解 xff0c 使用cmake编译 xff0c 生成一个依赖op
  • c++ stl 迭代器iterators(traits编程技法)

    文章目录 1 1 迭代器设计思维 stl关键所在1 2 迭代器是一种smart pointer1 3 迭代器相应型别 xff08 associated types xff09 1 4 traits编程技法 stl源代码门匙1 4 1 val
  • 如何用算法把一个十进制数转为十六进制数-C语言基础

    这一篇文章要探讨的是 如何用算法实现十进制转十六进制 并不涉及什么特别的知识点 属于C语言基础篇 在翻找素材的时候 xff0c 发现一篇以前写的挺有意思的代码 xff0c 这篇代码里面涉及的知识点没有什么好讲的 xff0c 也没有什么特别的
  • 关于 Qt使用QJsonObject解析失败的问题。

    1 问题 在QJsonObject转 toInt toLongLong 等类型时 xff0c 转换失败 但是转toString xff08 xff09 没有任何问题 列如 xff1a 解决方法 xff1a 这样 xff0c 就可以结局问题

随机推荐

  • char 和 string 的相互转换

    一个char字符转为string span class token keyword char span ch span class token operator 61 span span class token char 39 A 39 s
  • C++STL标准库学习总结/索引/学习建议

    前言 xff1a 如果刚刚开始学习STL标准库 xff0c 不知道从哪里入手学习的话 xff0c 建议去中国大学mooc平台 xff0c 先学习北京大学郭炜老师的 程序设计与算法 xff08 一 xff09 C语言程序设计 xff08 ht
  • Python 调用API接口方式,通过http.client调用api接口,远程调用flask接口方式

    一 创建接口 xff08 如果调用别人的接口 xff0c 跳过此条 xff09 如果没有api xff0c 首先自己写一个接口玩一下 xff1a 必备知识 xff1a 一个项目最基本的文件 xff0c 接口run py文件 config文件
  • git tag和branch的区别

    tag 和branch的区别 Git tag是一系列commit的中的一个点 xff0c 只能查看 xff0c 不能移动 branch是一系列串联的commit的线 git tag的用法 我们常常在代码封板时 使用git 创建一个tag 这
  • 结构体对齐计算(超详细讲解,一看就会)

    想要计算结构体大小 xff0c 咱就先要清楚结构体内存对齐的规则 xff1a 1 结构体的第一个成员直接对齐到相对于结构体变量起始位置为0处偏移 2 从第二个成员开始 xff0c 要对齐到某个 对齐数 的整数倍的偏移处 3 结构体的总大小
  • RTK差分编码

    一 概念 DCB xff08 Differential Code Bias 差分码偏差 xff09 是全球卫星导航系统 xff08 GNSS xff09 中 xff0c 通过不同信号得到的观测值之间存在的系统性偏差 DCB是由卫星和接收机硬
  • 详解JAVA的事件监听机制和观察者设计模式

    一 事件监听机制的三要素 事件源 事件监听器 xff0c 事件对象 监听器一般是JAVA接口 xff0c 用来约定可以执行的操作 二 事件监听机制简要说明 事件源注册一个或者多个事件监听器 xff0c 事件源对象状态发生变化或者被操作时 x
  • Nginx控制IP(段)的访问策略配置

    Nginx engine x 是一个高性能的HTTP和反向代理web服务器 xff0c 同时也提供了IMAP POP3 SMTP服务 有着负载均衡 动静分离等强大的功能 xff0c 而且还有众多三方插件来满足应用要求 这里重点介绍nginx
  • 敏捷开发-互联网时代的软件开发方式

    一 什么是敏捷开发 敏捷开发简单的描述为 xff1a 是一种应对需求快速变化的软件开发方式 敏捷开发的核心思想就是小步快跑 不断迭代 xff0c 在一次次的迭代升级中完成 小目标 最终完成那个 大目标 正因为敏捷开发的这种不断迭代升级的开发
  • Window系统查看端口是否启用以及占用程序

    1 打开DOS命令行窗口 开始 gt 运行 gt cmd xff0c 或者是 window 43 R gt cmd xff0c 调出命令窗口 2 查看当前正在使用的所有端口 命令 xff1a netstat ao 包括协议 xff0c 端口
  • ThreadLocal的深度解读

    一 J2SE的原始描述 This class provides thread local variables These variables differ from their normal counterparts in that eac
  • 消息中间件如何保证消息不丢失

    一 消息队列MQ的三个阶段 1 生产者发送消息到MQ 2 MQ存储消息到内存或者硬盘 3 消费者消费消息 由于网络的原因 服务器的原因 程序的原因等等 xff0c 在每个阶段都有可能引起消息的丢失 xff1a 1 生产者发送消息到MQ xf
  • 32位系统为什么最大只支持4GB运存?

    首先要明白 1B 61 2 3b 1KB 61 2 10B 1MB 61 2 20B 1GB 61 2 30B 4GB 61 2 2 2 30B 61 2 32B b表示一个比特位 xff0c B表示一个字节 xff0c 一字节等于8个比特
  • 数据库和Spring事务隔离级别

    事务隔离级别 xff0c 指的是数据库多个并发事务操作共享数据时 xff0c 共享的数据对多个并发事务之间的可见性和影响程度 隔离的内容主要指数据方面 具体举例来说就是一个事务A读操作时 xff0c 其他并发事务修改操作事务A读的数据时 x
  • Java中各种锁的详细介绍(二):悲观锁和乐观锁

    Java中锁的类型多种多样 xff0c 有简单有复杂 xff0c 适合各种不同的应用场景 xff0c 接下来会分几章给大家详细介绍java中各种类型的锁 一 悲观锁和乐观锁的说明 1 悲观锁 Pessimistic Lock xff1a 对
  • Java中各种锁的详细介绍(三):自旋锁 VS 适应性自旋锁

    一 自旋锁 在介绍自旋锁前 xff0c 需要介绍一些前提知识来帮助大家更好的明白自旋锁的概念 阻塞或唤醒一个Java线程需要操作系统切换CPU状态来完成 xff0c 这种状态转换需要耗费处理器时间 如果同步代码块中的内容过于简单 xff0c
  • Java中各种锁的详细介绍(四):无锁|偏向锁|轻量级锁|重量级锁

    无锁 偏向锁 轻量级锁和重量级锁 xff0c 都是指锁的状态 xff0c 专门针对synchronized的 一 Synchronized如何实现线程同步 xff1f Java对象中有两个重要概念 xff1a Java对象头 和 Monit
  • A-star 算法原理分析

    搜索算法 图论中 xff0c 应用最广泛的就是搜索算法了 xff0c 比如 xff0c 深度优先搜索 广度优先搜索等 在介绍 Dijkstra 算法那篇中 xff0c 除了深度优先 广度优先这种暴力搜索算法 xff0c 还有一些最短路算法也
  • ROS物理仿真环境学习 gazebo + rviz【问题记录】

    Turtlebot3与仿真 仿真环境搭建 span class token comment 一个命令安装所有TurtleBot3依赖项 span span class token function sudo span span class
  • 机器人技术-HC-SR04超声波传感器数据及机器人避障的应用

    比较详细的HC SR04超声波传感器数据及机器人避障的应用方法 言 超声波传感器概述 超声波传感器型号繁多 价格从几元钱到几百元不等 主要用于检测距离 同时根据声速计算出物体的距离 但超声波传感器有四个缺点 1 声音速度易受温度和风向等环境