引言

论文推荐

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。

一种分布式集群扩展模块:Epuck2 测距板Range and bearing相关推荐

  1. Solr系列二:solr-部署详解(solr两种部署模式介绍、独立服务器模式详解、SolrCloud分布式集群模式详解)...

    一.solr两种部署模式介绍 Standalone Server 独立服务器模式:适用于数据规模不大的场景 SolrCloud  分布式集群模式:适用于数据规模大,高可靠.高可用.高并发的场景 二.独 ...

  2. java使用国标方式取流,一种基于JAIN-SIP的国标28181平台分布式集群实现系统的制作方法...

    本发明涉及国标设备接入相关技术领域,尤其是指一种基于jain-sip的国标28181平台分布式集群实现系统. 背景技术: 在传统安防行业,采用较多的是用c++编写的产品,该类产品存在一些缺陷:该类产品 ...

  3. Redis 分布式集群的几种方案及问题

    1.Redis 分布式集群的几种方案 1.1.主从复制 从服务器连接主服务器,发送SYNC命令: 主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命 ...

  4. redis详解(四)-- 高可用分布式集群

    一,高可用 高可用(High Availability),是当一台服务器停止服务后,对于业务及用户毫无影响. 停止服务的原因可能由于网卡.路由器.机房.CPU负载过高.内存溢出.自然灾害等不可预期的原 ...

  5. redis全分布式集群

    文章目录 前言 Redis集群分片 槽位分片举例: Redis集群节点复制 Redis集群故障转移 全分布式集群搭建 Redis集群总结 前言 之前我们介绍了Twitter的解决方案,推出了路由代理的 ...

  6. RabbitMQ分布式集群架构

    RabbitMQ分布式集群架构和高可用性(HA) (一) 功能和原理 设计集群的目的 允许消费者和生产者在RabbitMQ节点崩溃的情况下继续运行 通过增加更多的节点来扩展消息通信的吞吐量 1 集群配 ...

  7. tcp out of order解决_分布式集群解决方案 学习笔记

    回到目录: OrangeZh:拉勾教育:JAVA高薪训练营 学习技术篇​zhuanlan.zhihu.com 介绍 文章内容输出来源:拉勾教育 Java高薪训练营 分布式集群解决方案相关 什么是分布式 ...

  8. mysql 热块_MySQL分布式集群之MyCAT(三)rule的分析【转】

    首先写在最前面,MyCAT1.4的alpha版本已经发布了,这里面修复了不少的bug,也完善了一细节,之前两篇博客已经做了一些修改 ---------------------------------- ...

  9. 阿里云mysql 分布式_MySQL大型分布式集群

    本套课程将通过分布式集群和分库分表两部分内容进行讲解 1.主要解决针对大型网站架构中持久化部分中,大量数据存储以及高并发访问所带来是数据读写问题.分布式是将一个业务拆分为多个子业务,部署在不同的服务器 ...

最新文章

  1. [导入]如何用WAP手机远程遥控电脑
  2. 生信小白7行代码画一个高颜值的世界地图
  3. 说说 Spring 事务管理的实现类
  4. ❤️❤️❤️【资料免费领取】简历模板、职场PPT模板、硬核学习资料+PDF资料(Java、Python、大数据、机器学习)❤️❤️❤️
  5. P4113 [HEOI2012]采花
  6. iTunes恢复备份时失败?3个常见原因
  7. ltp测试操作步详解(压力测试网站最详、下载、使用)
  8. android 我叫mt 插件,叉叉我叫MT助手
  9. win10 cortana搜索没有任何结果,只是一片空白的解决方案
  10. linux 免费 版本,五个免费的轻量级Linux发行版
  11. 多搜- 多个网站一起搜(舆情监控版)
  12. ThingJS技术分享:建筑建模常用软件一览 3D 可视化
  13. Androidstudio配置git及连接远程库全过程
  14. 微信小程序 手机号码验证
  15. 2007年世界顶级防火墙排名(附下载地址)
  16. OGG Data Pump进程
  17. python网页爬虫+简单的数据分析
  18. Python | 人脸识别系统 — UI界面设计
  19. 微信小程序万能模板(tabBar\openid\授权登录\云开发之一个云函数实现云数据库增删查改!)
  20. java版和基岩版怎么联机_我的世界基岩版联机教程

热门文章

  1. 我自己编的程序:小型的教务管理系统
  2. jQuery(三)常规选择器
  3. Labelme 批量转 dataset 使用 labelme_json_to_dataset 命令 (简明图文教程)
  4. 安装使用 gaps和montage
  5. Mac 下安装Homebrew以及laravel开发环境valet
  6. Linux环境下安装Python解释器--生活有感
  7. 剩余电流监测仪在施工场地的应用
  8. 关于供应链,一文教你全面了解什么是供应链
  9. 如何做好优秀的UI设计
  10. 开户行查询 API数据接口