一种分布式集群扩展模块:Epuck2 测距板Range and bearing_集群c版 d版-程序员宅基地

技术标签: bearing  Range  移动机器人Epuck2  Epuck2  

引言

论文推荐

An Open Localization and Local Communication Embodied Sensor
Collective decision-making based on social odometry

测距板改进了现有的相对定位/通信软件库(libIrcom),该库是为e-Puck机器人开发的,基于其车载红外传感器。e-RandB是与Robolabo、Iridia和RBZ机器人设计公司合作开发的。
在这里插入图片描述

该板允许定位代理在本地通信,同时获得发射器的射程和方位,而无需任何集中控制或任何外部参考。因此,该板允许机器人拥有一个具体的、分散的和可扩展的通信系统。该系统依靠频率调制的红外通信,由两个相互连接的模块组成,用于数据和功率测量。
该板可通过Uart或I2C总线与e-puck通信。它允许用户根据其他扩展模块已经使用的总线,从两条总线中选择一条。然而,不同的帧速率取决于通信总线。对于实际的软件版本,我们使用Uart总线获得50 msg/秒,而I2C总线获得150 msg/秒,其中每条消息由6位报头、16位数据和4位crc组成。

1.引言

测距板是一个新的开放式硬件/软件板,可让小型机器人进行通信,同时获得排放源的范围和方位。 开放的E-Puck测距板改进了现有的红外相对定位/通信软件库(libIrcom),该库是为E-Puck机器人开发的,并基于其机载红外传感器。 该板允许机器人具有一个体现的,分散的和可扩展的通信系统。
使用E-Puck测距板,可以在机器人之间进行本地通信。 它基于红外通信,因此需要两个机器人之间的直接视觉通信。 该板具有许多不同的功能。 例如,发射机器人传输16位数据帧。 接收帧的机器人会提取16位数据,并计算到发射器机器人的距离(范围)和方向(轴承)。 此外,该板还允许您将透射范围从0 cm更改为80 cm。 因此,您可以根据实验需要调整通讯范围。 最后,由于e-puck机器人有许多不同的扩展模块,我们实现了两条不同的通信总线(I2C和UART),可以通过它们与开发板和机器人进行通信。

2.硬件

设计的E-Puck范围和轴承板(见图1)由其自己的处理器控制。 每块板包含12组IR发射/接收模块。 每个模块都配备一个红外发射二极管,一个红外调制接收器和一个红外光电二极管:如图2所示,这些模块几乎均匀地分布在电路板上。 因此,它们之间的距离约为30°。
在这里插入图片描述
图1:E-puck测距板(a)顶视图和(b)底视图
为了正确理解本地化和通信系统及其复制或修改的可能性,接下来的小节将详细介绍板上实现的各种硬件模块。
在这里插入图片描述
图2:(a)发射器和(b)接收器在电路板周边的分布

2.1电源模块

该板可用2.5 V至6 V的电源供电。板上电后,将创建三根隔离的电源线:一根用于数字系统,一根用于模拟,另一根用于发射模块。 这三个电源线是从两个不同的电源获得的。
第一个电源由发射模块负责。 该电源基于低压差线性稳压器,该稳压器允许在0.8 V至3.46 V之间的电压变化。这种功率变化使电路板可以更改其发射范围。 调节器连接至数字SPI电位计,该电位计可改变ADJ引脚的负载,从而修改电源的输出。 得益于此数字可变电阻器,可以通过软件控制发射范围和功耗。
第二电源负责其余的电子设备,包括微控制器。 3.3 V的模拟和数字线仅在一点处分开并短路,以减少噪声。
评估板的功耗取决于发射电源的设置。

2.2发射模块

发射模块由12个不同的发射器组成。 每个传感器组均由窄光束红外灯和逻辑门组成,以产生调制信号。
通信基于频率调制,并在455 KHz的载波上以10 KHz的数据传输(更多信息,请参见图3)。
在这里插入图片描述
图3:发射模块图
Vemis电源的修改会改变流经发射器的电流,从而改变发射范围。 对于最小值0.8 V,对于Vemis = 3.46 V,可实现0 cm范围,而最大范围约为80 cm。

2.3接收模块

接收模块分为两个不同的子模块。第一个子模块负责数据接收,而第二个子模块负责检测信号强度。分为两个子模块,使开发板可以独立于信号强度接收数据。在第一个模块中,该板能够作为简单的通信系统工作,在其中无需提取发射器位置即可对数据进行解调和接收。第二子模块在帧接收期间测量红外信号的强度。为了确保正确测量信号强度,强度传感器和解调传感器必须具有相同的方向,因此必须彼此叠置。
数据接收子模块基于用于远程控制的小型红外接收器。信号通过微控制器中的数字输入接收。
信号强度子模块基于PIN二极管和两个运算放大器。当光电二极管开始接收红外信号时,电路开始充电。峰值检测器的输出面向微控制器中的12个模数转换器。

2.4通讯模块

通信模块已被设计为主要处理器系统的从属。 集成了两条总线I2C和RS232,以方便使用该板。 在两种通讯类型中,主站均控制发射范围。 可以随时订购电源输出的修改,并且可以立即修改发射范围。

2.4.1 I2C总线

在I2C通信中,E-puck范围和轴承板充当主处理器系统的从属。 该板负责传输请求,并不断检查传入的帧。 主处理器系统不断轮询板,以检查是否已接收到任何通信。

2.4.2 UART

在UART通信中,双向允许中断。 主板能够发送传输命令或范围修改。 一旦通信板解调出一帧,它将中断主机,并将解调后的数据,估计的角度和到发射器的距离发送出去。

2.5板子配置

2.5.1TV Remote Receiver

因为开发E-puck Range&Bearing的目的是为那些不希望使用扬声器功能的用户卸下电子跳板,所以我们复制了IR TV Remote接收器(见图4)。 该信号进入机器人主连接器,并与电子跳线板连接到同一引脚。 因此,接收器以相同的方式工作,并且取代了电子跳板上的接收器。
在这里插入图片描述
图4:TV remote receiver

2.5.2 E-Puck范围和与E-Puck UART的通信关系

如前所述,有可能通过UART与E-Puck通信E-Puck范围和方位。 但是,由于其他扩展模块也使用UART,因此有一个4位微动开关,它允许UART线的连接/断开。 如果要禁用此连接,请在S1微动开关中将PIN2和PIN3置于OFF(见图5)。 默认情况下启用连接。
在这里插入图片描述
图5:E-Puck测距板UART通信开关配置。 (a)启用通讯 (b)通讯被禁用

2.5.3 E-Puck测距板与PC UART的通信

我们还启用了与计算机的通信。 机器人可以与PC通信的方式相同,开发板也可以进行通信。 但是,有一些限制。 由于板上空间不足,我们使用了机器人上已经提供的MAX232。 因此,我们无法同时与机器人和控制板通信计算机。 默认情况下,与板的通信处于启用状态,而与机器人的板则处于禁用状态。 如果要禁用此选项,则应将S1微动开关的PIN1和PIN4设置为OFF(见图6)。 默认情况下启用通讯。 (机器人已经具有与PC通信的蓝牙)。 您可以从X5 4针微型匹配红色连接器中的PIN1(TX),PIN2(RX)和PIN3(GND)提取信号(参见图7)。
在这里插入图片描述
图6:E-Puck测距板PC的UART通讯开关配置。 (a)启用通讯。 (b)通讯被禁用。
在这里插入图片描述
图7:UART连接器

2.6不同版本

实际上,该板有2个不同版本,即C版和D版。它们的性能大致相同,但是硬件上存在一些差异。
•版本C:
红外发射器的标称半强度角为±20°(很小,金黄色发射器位于电路板的顶部)。
•D版
红外发射器的标称半强度角为±60°(它们是板顶部的白色发射器)。
红外峰值接收器已拆分。每个峰值接收器模块由3个光电二极管组成,这些信息被合并并提取为一个单独的传感器。因此,有12组3个光电二极管。

3.安装E-Puck范围和轴承板

要安装E-puck范围和轴承板,只需拧下将e-jumper板和e-puck相连的3个螺钉。之后,您必须拔下电子跳线板的插头,然后插入E-puck范围和轴承。您可以再次将E-puck范围和轴承板顶部的电子跳线板插入。但是,请看第7节,了解两块板之间的不兼容性。

4.固件

电路板初始化后,将以1.09 µs的周期初始化一个脉宽调制(PWM)计时器。此计时器创建发射的载体
该模块只有在板上电后才能停止。实施Manch-ester码以允许接收器以相同的强度接收在一定距离下发送的任何数据。负责调制信号的计时器每100 µs中断一次。实施
曼彻斯特代码允许的最大数据速率为5 kbps。定时器的每次中断都会获取所存储的数据,并将其发送到硬件门进行传输。用于传输的数据存储在根据硬件引脚排列正确构造的缓冲区中。可以向通讯板询问三种不同类型的传输:
•所有传感器都传输相同的数据:一条指令连同要传输的数据一起发送到板。
•仅某些传感器发送数据:每个传感器必须向板发送一条指令。数据和传感器编号也必须提供给开发板。加载所有传感器后,必须将发送指令发送到板。
•不同的传感器传输不同的数据:每个传感器必须向板发送一条指令。数据和传感器编号也必须提供给开发板。加载所有传感器后,必须将发送指令发送到板。
一旦主机将传输命令发送到板,通信模块将负责用前导码(6位),数据(16位)和CRC(4位)分解不同传感器的数据)。如果主机需要发送数据流,则通信模块以透明方式将所有消息依次传输给传输计时器。
接收软件正在不断检查消息是否到达。 红外调制接收器检测到帧的前同步码后,该板将继续通过红外光电二极管为峰值检测器充电时接收数据和CRC。 如果帧已正确到达(由CRC检查),则将读取峰值检测器电平并将其存储在缓冲区中。 由于接收传感器的孔径较大,因此可能有多个传感器同时接收相同的数据。 不同峰值检测器提供的信息用于计算方向和到发射器的距离。 然后,将这两个值存储在缓冲区中,以发送到主板。 图8显示了发射和接收软件模块的框图。
在这里插入图片描述
图8:(a)软件发射模块和(b)软件接收模块的框图。
红外噪声主要来自环境中的光照条件。 为了解决这个问题,开发板在开始时就测量环境中的红外信号。 正确接收到帧后,开发板将从峰值接收器中减去环境测量值,并将其作为帧信号强度返回。

5.e-RandB库

待更新

6.e-Puck示例

待更新

7.问题报告

E-puck测距板在使用过程中会遇到不同问题。

7.1红外线接近干扰

因为E-puck范围和轴承板通过IR通信,所以当接近传感器激活时会产生干扰。如果您测试示例,您将看到帧的数据完美到达,因为信息是经过调制的。但是,范围和方位计算将受到干扰。某些人正在解决不使用红外接近传感器时停止它们的问题。

7.2电子跳线与UART通信

一些发烧友正在使用E-Puck范围和轴承板并且已插入E-Jumper板时检测到问题。问题是因为电子跳线板在UART模式下使E-puck测距和轴承板使用的某些线路短路。如果在插入电子跳线板的同时打开四个位置开关(S1)的PIN1和PIN4,则将无法与E-puck范围和轴承板通信。如果您将其关闭,则一切正常。一些发烧友说,即使更改了S1,有些板也无法通过UART进行通信,而其他板则可以。尚未解决此问题。

8.epuck2

e-puck2标准固件包含范围和轴承扩展的示例用法。当选择器处于位置4时,机器人设置为接收器,当处于位置5时,机器人同时为发射器和接收器。在两个演示中,接收到的信息(接收到的数据、方位、距离和传感器id)将通过蓝牙打印。
请注意,机器人与测距和方位扩展之间唯一可用的通信通道是I2C总线,UART通道不适用于e-puck 2。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ben_xiao_hai_123/article/details/103868300

智能推荐

结对项目——四则运算GUI项目-程序员宅基地

文章浏览阅读120次。一、项目地址:https://git.coding.net/lvgx/wsz.git二、PSP:PSP2.1任务内容计划共完成需要的时间(min)实际完成需要的时间(min)Planning计划1515Estimate估计这个任务需要多少时间并规划...

PhotoZoom Pro 3 无损放大你的照片_photozoompro3-程序员宅基地

文章浏览阅读1.6k次。今天去番薯窝逛 了逛,发现番薯窝发布了一个可以无损放大图片的软件 PhotoZoom Pro 3,一下子对这个软件来了兴趣,以我的常识,只有矢量图放大才不失真,一般的图片放大的话,都要失真的,而这个软件却利用一些算法来弥补失去的像素,让图 片达到不失真放大的效果,真的不错。没经过番薯窝的同意就先转藏一下。一会再去和番薯说一下,应该不会怪罪我吧?PhotoZoom Pro 是一款新颖的、技术_photozoompro3

How to Use the Nslookup Command-程序员宅基地

文章浏览阅读412次,点赞14次,收藏8次。#Linux #Command #Nslookup #DNS

头条分库分表与分区的区别和思考,王者笔记!_mall-swarm b2b b2c-程序员宅基地

文章浏览阅读116次。1、Java基础Java基础务必要有一个非常牢固的根基,尤其是对于JVM和并发编程的掌握情况**(属于进阶内容,但也是Java最为重要的基础内容)**,不论是面试还是工作,基础不好,写不出高质量、漂亮的代码;面试估计刚开始就会被面试官给拍死。基础不好的话,《Java编程思想》和《Java核心技术》这两本书一定要好好看一下,同时再搭配学习笔记等资料,能让你更好的打稳基础!同时,大家可以对照下面这份学习路线梳理一下自己的知识体系,需要获取高清完整版Java学习路线的话,可以在文末免费领取Java架构师筑基_mall-swarm b2b b2c

macOS下 弹出无法保存文件,请检查权限或文件是否处于只读状态_mac 修改系统文件无法保存-程序员宅基地

文章浏览阅读6.5k次。首先打开问题文件所在文件夹的显示简介 将下面权限全部更改为读与写 一定要先解锁然后点击应用到包含的项目 更改完成后记得把小锁锁上 这样就完成啦_mac 修改系统文件无法保存

小米如何升级android版本升级提示,小米MIUI8怎么升级 5种MIUI 8系统升级方法-程序员宅基地

文章浏览阅读484次。小米MIUI8怎么升级 5种MIUI 8系统升级方法来源:www.18183.com作者:皮卡时间:2016-08-24小米MIUI8系统已经开始测试!MIUI8怎么升级?在MIUI8即将推送之际,你的小米手机准备好迎接MIUI8的到来了吗?小米MIUI8系统已经开始测试!MIUI8怎么升级?在MIUI8即将推送之际,你的小米手机准备好迎接MIUI8的到来了吗?今天小编抢先带来MIUI8升级方法大..._小米4升级安卓8教程

随便推点

银河麒麟(Linux)磁盘做逻辑卷——LVM_银河麒麟分区vg为空-程序员宅基地

文章浏览阅读1.7k次,点赞8次,收藏9次。Linux银河麒麟v10制作逻辑卷_银河麒麟分区vg为空

python opencv cv2.resize()函数-程序员宅基地

文章浏览阅读2.9k次。**def resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None): # real signature unknown; restored from __doc__ """ resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) -> dst ..._python opencv cv2.resize(

Java与数据结构的实现:线性表(链式:带头结点的单链表)_java构建完整的带头结点单链表使其拥有插入,删除和遍历三大功能。 并通过main方法-程序员宅基地

文章浏览阅读380次。分析:先要满足以下基本的要求,遇到问题再做完善。单链表的属性 结点类: 数据项 data 结点类型的变量 next &nbs_java构建完整的带头结点单链表使其拥有插入,删除和遍历三大功能。 并通过main方法

matplotlib中使用imshow绘制二维图-程序员宅基地

文章浏览阅读163次。这里所指的二维图,是二维矩阵数据的平面色彩显示[python] view plain copy print?#-*-coding:utf-8-*-frommatplotlibimportmplimportmatplotlib.pyplotaspltimportnumpyasnp#----..._cmap=mpl.cm.hot

Q107:Linux系统下GDB对PBRT-V3进行debug_pbrt ao-程序员宅基地

文章浏览阅读1.4k次。——————-Notes for the first debug of pbrt——————-1.在pbrt-v3下新建一个名为build.debug的文件夹,定位打该文件夹; cd ~/pbrt-v3/build.debug/2.用cmake生成debug版本的makefile; cmake ../ -DCMAKE_BUILD_TYPE=Debug3.编译生成debug般的可执行文件p_pbrt ao

Mybatis中配置文件xml的头部声明_mybatis.xml头部-程序员宅基地

文章浏览阅读925次。Mybatis中配置文件xml的头部<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration></configuration>Mybatis中映射配置文件 即每个d_mybatis.xml头部