APP下载

电子罗盘在智能吸尘器路径分析中的应用*

2014-07-18王时群张永辉曹一波

传感器与微系统 2014年12期
关键词:罗盘吸尘器读数

王时群, 张永辉, 曹一波

(1.海南大学 信息科学技术学院,海南 海口 570228;2.华南师范大学 软件学院,广东 广州 528225)

电子罗盘在智能吸尘器路径分析中的应用*

王时群1, 张永辉1, 曹一波2

(1.海南大学 信息科学技术学院,海南 海口 570228;2.华南师范大学 软件学院,广东 广州 528225)

在智能吸尘器开发和路径规划过程中,直线行走和转弯所产生的偏差是影响路径规划的主要因素。为了适应行走路径的多变性,将电子罗盘应用到智能吸尘器的控制系统中,由单片机通过I2C接口与电子罗盘进行通信,采用Zig Bee无线模块将数据传输到上位机,通过Matlab进行仿真实验,并对直线行走和转弯偏差进行分析研究。实验过程精确得出了智能吸尘器的方位信息和行走路径,有利于优化路径规划算法和提高路径规划效率。

智能吸尘器; 电子罗盘; 路径规划

0 引 言

智能吸尘器通过行走驱动、合理的路径规划算法和避障算法,按照一定的规则有序地走完需要清扫的区域,实现室内、写字楼等环境的全自动清扫[1]。然而,在实际工作中,智能吸尘器的直线行走并非想象中那样不存在方向偏离现象,而且智能吸尘器需要根据周围环境信息不断地进行多次转弯以避开障碍物,此过程中智能吸尘器的方向角受到其速度、重心位置、转动惯量、前后轮偏侧系数、摩擦力、两个驱动轮的直径以及实际地面环境等多种因素的影响[2],使得其直线行走、拐弯角度和定位变得十分复杂和难以控制,导致出现遍历时间长、重复路线多、清扫覆盖率不佳等问题[3]。

电子罗盘是一种能辨别方位的电子设备,磁阻效应式三维电子罗盘具有体积小、响应速度快等优点,容易嵌入到各种控制系统中[4]。因此,在智能吸尘器的开发阶段,可利用电子罗盘能够获取运动信息,实现精确分析智能吸尘器行走路径的目的,并满足路径规划需要。鉴于智能吸尘器是不断行走的物体,因此,采用了无线通信模块实现数据的无线传输。

1 系统结构与行走实现过程

系统主要由电子罗盘模块、单片机控制电路、Zig Bee无线通信模块以及上位机组成,如图1所示。其中,电子罗盘模块采用美国霍尼韦尔(Honeywell)公司的MC5883L三轴磁阻传感器,它通过芯片内部的AD采样电路对电流进行采样、量化和编码后通过I2C接口将数据送入到单片机STM32F103VBT6进行运算后得出方向角。单片机通过Zig Bee无线点对点通信模块[6](采用DiGi公司的XBee射频RF模块),将方向角数据实时从智能吸尘器传送到上位机,利用Matlab获取串口数据并进行在线仿真,数据由上位机软件显示。

图1 系统结构框图Fig 1 Block diagram of system structure

硬件设计上,将电子罗盘模块嵌入在智能吸尘器的主机PCB板上。此部分程序设计中,按照I2C协议,编写了以下主要函数:

1)I2C初始化函数IIC_Init(),用来配置与电子罗盘相连的STM32的I/O端口。

2)开始信号函数IIC_Start(),用来产生I2C起始信号。

3)结束信号函数IIC_Stop(),用来产生I2C结束信号。

4)应答信号函数IIC_Ack(),用来产生I2C应答信号。

5)发送字节函数IIC_Send_Byte(u8 txd) ,从STM32中发送一个字节的数据给电子罗盘传感器HMC5883L,此处用来发送从机地址。

6)接收字节函数u8 HMC5883_RecvByte(),用来从I2C总线上接收电子罗盘传过来的字节数据。

根据以上基本读写函数编写如下函数:

1) Init_HMC5883() 函数,其功能是初始化电子罗盘传感器,初始化电子罗盘传感器的模式寄存器,将其设置成连续测量模式。

2)Single_Write_HMC5883(u8 REG_Address,u8 REG_data)函数,其功能是向从机地址中写入一个字节的数据,用来向电子罗盘寄存器中写数据或者命令。

3)Multiple_Read_HMC5883()函数,其功能是依次从电子罗盘传感器存放X轴、Z轴、Y轴数据的寄存器中读出数据后存放在一个BUF数组中,为计算角度提供原始数据。

4)方位角计算函数HMC5883GetAngle(),其功能是根据BUF数组中的数据计算出电子罗盘方位角。

通过以上函数就能准确得到电子罗盘的方位角,程序设计流程图如图2所示。

图2 电子罗盘程序流程图Fig 2 Program flow chart of electronic compass

2 转角实验

在智能吸尘器路径规划研究过程中,不同的路径需要不同的转弯角度,同一路径中也需要不同角度多次转弯,尤其在障碍物形状多种多样的环境中。因此,需要测试智能吸尘器多次转动后电子罗盘读数的误差,以保证误差在允许的范围内。由于智能吸尘器实际转弯过程的复杂性,在对实验结果不会造成很大影响的情况下,简化了实验过程:将智能吸尘器任意放置在某个位置后,通过单片机软件控制让智能吸尘器按正常行走速度原地顺时针依次转动α角,直至转动一周为止。表1为α=30°时电子罗盘读数,表中实测值与电子罗盘的初始放置状态有关。

表1 转动30°角度电子罗盘读数Tab 1 Electronic compass readings for 30°

从表1中可以得出,每次旋转最大误差为3°,累计总误差为-4°,表明智能吸尘器并没有完全旋转一周,可以改变 值进行多次实验。实际上每次转角误差不超过3°,累计总误差不超过5°,即满足路径规划要求。若需进一步降低误差,则对智能吸尘器的机械性能和控制算法有更高的要求。

事实上,当智能吸尘器围绕不规则孤立障碍物行走时,若无外在因素干扰,智能吸尘器将一直围绕孤立障碍物行走,直到控制行走模式改变为止。因此,造成路径重复,可利用电子罗盘转角读数加以解决。电子罗盘传感器的角度读数变化有如下规律:当智能吸尘器顺时针转角时,电子罗盘方向角读数逐渐增大;相反,逆时针转角时,电子罗盘方向角读数逐渐减少。然而,在智能吸尘器围绕不规则孤立障碍物行走过程中,前行、顺时针转角和逆时针转角交替出现,电子罗盘读数也因此呈现非线性变化。此时只需考虑,若某时刻电子罗盘读数与开始围绕孤立障碍物行走时的读数之差为-360°,则判断已围绕孤立障碍物一周,可以改变行走路径,避免路径重复。

3 路径仿真

为了便于仿真分析,设计了一种简单且容易实现的“矩形行走”路径,以代替智能吸尘器最常见的“迂回式”全区域覆盖路径规划。过程如下:

1)底层系统初始化,包括I/O输入输出口、A/D转换、定时器、电子罗盘传感器等。

2)规定智能吸尘器按照一个1.5 m×1 m的矩形顺时针行走,直角拐弯n次后停止, 初始值为0。

3)每转弯一次,计数一次,即 count++。

其详细程序流程如图3所示。

图3 “矩形行走”程序流程图Fig 3 Program flow chart of “rectangle walking”

电子罗盘传感器在没有校准的情况下存在较大误差,因此,实验前应首先对其进行校准。为了得到更清晰的行走路径轨迹,可忽略机身尺寸,利用Matlab获取串口数据并进行仿真,图4为n=4时的仿真结果,电子罗盘传感器读数如表2所示,图5为n=50时的仿真结果。

表2 90°转角电子罗盘读数Tab 2 Electronic compass readings for 90° angle

由表2可知,转弯角度最大误差为3°,累计总误差为3°;相应地从图4可以看出,智能吸尘器的行走路径并非一个完整的矩形,起始位置与最终位置不在同一地点,直线行走和转弯有偏差,两者综合影响导致行走轨迹出现偏离,已不符合智能吸尘器路径规划要求。除了电子罗盘自身误差和环境误差(铁磁介质干扰)影响外,样机的重心位置和驱动轮的机械设计问题是主要影响因素。电子罗盘自身误差是芯片固有的,无法彻底解决,但一般不会影响正常使用,环境误差只需重新校准电子罗盘便可消除。

重心和机械设计偏差可通过多次直线行走实验并结合电子罗盘读数偏差进行调整。长距离直线行走是检测样机机械设计问题的有效方法,直线行走距离越长,偏离轨道越明显。一般家庭室内区域有限,因此,只需保证智能吸尘器在一定距离范围内(一般为10 m)直线行走时电子罗盘读数累计偏差低于3°即满足要求。图5中,由于误差累计,行走路径严重偏离原来的轨迹。最终导致智能吸尘器行走路径混叠,以至于出现重复路线多、清扫覆盖率低等现象。此时需要对智能吸尘器的机械性能和控制程序进行改善,以达到路径规划的要求。

图4 “矩形行走”一周路径仿真结果Fig 4 Simulation results for“rectangle walking”one circle path

图5 “矩形行走”多周路径仿真结果Fig 5 Simulation results for“rectangle walking”multiple circle path

4 结束语

在智能吸尘器项目中,受传感器技术和控制系统开发难度的影响,路径规划具有一定的局限性。通过电子罗盘在智能吸尘器路径分析中的应用,借助无线传输模块,能够明确智能吸尘器的位置、直线行走和转弯的路径轨迹;通过实验和仿真并结合电子罗盘读数对路径偏差进行分析和研究,满足了路径规划中数据分析的需要,提高了分析结果的精确度;对智能吸尘器的机械性能和控制性能有更高的要求,有利于为智能吸尘器改进有效的遍历性能。

[1] 戴光智,许锦标,王 群.家用智能吸尘器测控系统的研究[J].微特电机,2005(1):5-7.

[2] 艾延廷,杨明绥,崔 静,等.智能吸尘器控制系统软件设计[J].测控技术,2007,26(2):73-75.

[3] 张 义.电动喷涂机器人中的步进电机控制[J].机器人技术与应用,2001(5):21-24.

[4] 韩 峰.基于磁传感器的电子罗盘的研究[D].长春:吉林大学,2013.

[5] 支 炜.基于AVR单片机的数字电子罗盘的研究和实现[D].大连:大连交通大学,2009.

[6] 钟永锋,刘永俊.Zig Bee无线传感器网络[M].北京:北京邮电大学出版社,2011.

[7] 陶良鹏,华 蓓.无线传感器网络基于信号相关的目标计数[J].计算机仿真,2009,26(5):65-67.

[8] Fu Yili,Li Han,Jiang Zainan,et al.Double layers fuzzy logic-based mobile robot path planning in unknown environment[J].Intelligent Automation and Soft Computing,2009,15(2):275-288.

[9] 刘 义,张 宇.基于改进人工势场法的移动机器人局部路径规划的研究[J].现代机械,2006(6):48-49.

[10] 王等华,张翠敏.智能机器人综合路径规划算法Matlab中的实现[J].天津工程师范学院学报,2006(3):47-50.

Application of electronic compass in intelligent cleaner path analysis*

WANG Shi-qun1, ZHANG Yong-hui1, CAO Yi-bo2

(1.School of Information Science and Technology,Hainan University,Haikou 570228,China;2.School of Software,South China Normal University,Guangzhou 528225,China)

In process of intelligent cleaner development and path planning,deviation produced in straight walking and turning are main factors influencing path planning.In order to adapt to variability of walking paths,electronic compass is used to control system of intelligent cleaner,and communicate with MCU through I2C interface; Zig Bee wireless module is used to transmit data to upper PC,simulation experiments are carried out through Matlab and analyze deviation.The process of experiment accurately obtains azimuth information and walking paths,it's conducive to optimize path planning algorithm and improve efficiency of path planning.

intelligent cleaner; electronic compass; path planning

10.13873/J.1000—9787(2014)12—0155—03

2014—08—29

海南省自然科学基金资助项目(612129)

TP 242

A

1000—9787(2014)12—0155—03

王时群(1982-),男,湖南邵阳人,硕士研究生,主要研究领域为嵌入式系统开发与应用。

猜你喜欢

罗盘吸尘器读数
大战吸尘器
多功能吸尘器
吸尘器(1)
吸尘器(2)
基于磁阻传感器的车载型磁电子罗盘的设计
读数
读数
读数
读数
不宜上课