您当前的位置: 首页 > 

暂无认证

  • 3浏览

    0关注

    98100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

读取多超声波传感器

发布时间:2022-09-22 07:00:44 ,浏览量:3

来源丨古月居

读取多超声波传感器

该模块是一个开源模块,并提供了配套的ROS节点,接收串口上传的数据并发布到指定的Topic上面。

目前支持 HC-SR04 、HY-SRF05和US-015这几个型号超声波模块。主要功能如下:

  • 同时读取12个超声波模块数据,通过串口打包上传,频率为20Hz。

  • 提供配套ROS节点程序,可将测量数据发布到ROS Topic上。

  • 开源ROS节点程序[3],并提供单片机端hex文件下载,使用其他单片机开发板也可以轻易使用。

  背景

在制作智能小车、自主导航小车的过程中我们通常会使用超声波来弥补小车的测量盲区,或者直接设计基于超声波的避障小车。

这其中都涉及到多个超声波模块的读取。一方面我们可以选取市面上已有的串行超声波模块通过IIC或者485总线实现多个超声波级联。

但是如下面表格1所示,市面上级联的超声波模块最便宜的也需要100元一个,这样12个成本约为1200元。如果使用其他模块则更贵。

另一方面超声波在读取的时候需要频繁调用定时器中断函数测量回波电平的宽度实现距离的测量。

而这个过程会占用大量的cpu资源,因此我们将这部分功能独立出来为一个模块,单独使用一个单片机去读取超声波模块的数据并通过串口转发出去。

3844a14e5ba6a38fed9d8fc306c991db.png

使用教程

2.1 接线说明

如下图所示,使用模块时需连接超声波模块

  • P1-P12 为超声波连接1-12通道

  • 电源输入电压为直流5-12V DC-DC圆孔2.5mm

  • 绿色灯为电源指示灯

  • 红色灯闪烁频率大约为20Hz 表示正常测量过程

ec61a06debb2b1a08b796ac1a681d24d.jpeg

SWD下载接口线序如下图所示

a05b59afe8306239ec43ba54ee594fb4.png

超声波接线说明:目前支持 HC-SR04 超声波模块

36dcddae1b651b7c1a63b076d3cde892.png

HC-SR04模块接线如下图所示: - 红色——VCC - 黑色——GND - 黄色——Trig - 绿色——Echo

1cd88491564df09de973452313829465.png

板子安装孔位置和外形尺寸如下:

7420e9176e6421110487c952aafec1b5.png

2.2 上传协议

数据格式为:帧头+数据长度+命令类型+数据+校验+帧尾。数据上传频率为20Hz,波特率使用115200。

b836a0e8637a0bbf633543fc65136ce1.png

  • 帧头:固定为两个字节:0xAE, 0xEE

  • 数据长度:为所有字节的和(包含了帧头和帧尾)

  • 命令类型:固定为:0xA1

  • 数据位:包含12个通道的超声波测量值,每个通道占用2个字节,共计24字节,采用高位在前方式(大端数据模式)发送,测量数据的单位为mm。即为:[CH1_HSB CH1_LSB … CH12_HSB CH12_LSB]

   校验位:所有数据位的加和取低八位(包括帧头和帧尾)

  • 帧尾:固定为两个字节 0xEF,0xFE

ROS节点使用

3.1 下载与配置

  1. 安装依赖项

sudo apt-get install ros-melodic-rosserial
cd catkin_ws/src
git clone https://github.com/RuPingCen/ultrasonic-ros.git

2.编译代码

cd ..
catkin_make

3.启动ROS节点

roslaunch ultrasonic_ros ultrasonic_ros.launch

启动节点以后可以看到终端打印输出的数据

8bae45c27cadf549b8cc06fc014fd6e6.png

4.使用 echo 命令打印查看超声波的数据

rostopic echo /ultrasonic/data

4fed568e8eefcbe5abdb235fab6c1049.png

5.使用 hz 命令查看话题发布的频率

rostopic hz /ultrasonic/data

f0da7bd8840490ccd1ae9fbd7bdfa072.png

3.3 常见问题-无串口权限

启动节点时候提示没有串口设备或者没有启动权限,这时候需要修改串口权限。

step1: 检查是否识别到USB转串口驱动

64c8d13ac9619dd5a89f951ba3597f55.png

查看设备的ID号 ls /dev/ttyUSB*

20d2c2f67aa41a583f6359046264ac64.png

这里我们可以通过一个简单的方式来修改串口权限

sudo chmod 766 /dev/ttyUSB0

上述的方式每次拔插串口以后都需要执行修改权限的命令比较麻烦,可以使用我们的脚本文件把串口权限写入rule文件中。

step2: 用记事本打开“ultrasonic-ros/scripts/ultrasonic.rules” 目录下的文件,会看到如下内容

cd ultrasonic-ros/scripts
gedit ultrasonic.rules

24f8afa5ddfee05d8c87aae5e34e8cda.png

step3: 这里的1a86和7523 就是上面图中我设备的ID号,这里修改成为你自己的ID号以后,把文件拷贝到/etc/udev/rules.d目录下就可以使用 /dev/ultrasonic 替代 /dev/ttyUSB0 来访问模块了

sudo cp ultrasonic.rules /etc/udev/rules.d/

更新程序

为了使得没有购买这个板子的小伙伴使用我们的程序,我们提供了Hex文件下载。

通过STLink进行烧写程序,对照我们提供的原理图接线也可以实现多个超声波的读取(需要一定的动手能力)。板载芯片为STM32F103C8T6。

SWD下载接口线序如下图所示:

81d3b3af1770bfc30821c8e8b6b4959c.png

从ST官方的下载烧写软件:STM32 ST-LINK utility 4.5.0 安装时候一直下一步默认即可,安装完成以后打开软件,使用STLink连接到STM32板子。

接下来点击这个插头一样的东西(如果没有识别到就拔插一下STLink下载器)

fec651796d2ea1321b362595dee41082.png

成功以后就可以看到芯片的信息

a0dbfbe89e2fad417e1ce49ba51acb81.png

接下来选中github网页中目录 ultrasonic-ros/reference/hex目录下的hex文件 ultrasonic_V1.0.0.hex

9004e743142d869fbc66fb5fdb606b03.png

成功打开以后这两个地方会有信息提示成功打开文件

830dd55a95e094ddb031fefec03b4b68.png

接下来点击烧写程序

6e5e552feac3a66accd6c5a655bc6045.png

程序下载完成以后扳子上的红色LED开始闪烁表示程序下载成功了

参考资料:

[1]https://github.com/RuPingCen/ultrasonic-ros/tree/master/reference/hex

[2]https://www.st.com/en/development-tools/stsw-link004.html

[3]https://github.com/RuPingCen/ultrasonic-ros

本文仅做学术分享,如有侵权,请联系删文。

干货下载与学习

后台回复:巴塞罗那自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

3D视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码) 3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进 4.国内首个面向工业级实战的点云处理课程 5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解 6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦 7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化 8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

16.基于Open3D的点云处理入门与实战教程

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

2606b14b8d34de5280b671d71079bdf9.jpeg

▲长按加微信群或投稿,加微信:dddvision

caddb9ca4ac739c73ad2c92848288a5f.jpeg

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

9a4ab7abe0ea63115a5a06d3e666f5c5.jpeg

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

关注
打赏
1655516835
查看更多评论
立即登录/注册

微信扫码登录

0.1685s