楼宇巡查机器人的设计与研究
2019-09-24赵宏伟徐叶军
赵宏伟 徐叶军
摘要:设计一种集自主定位导航技术、数据传输技术、智能控制技术、视频传输技术等多种技术为一体的巡逻机器人。以STM32F407为核心,利用智能控制技术和ROS开发框架成功地构建了一个自主定位导航行走的巡逻机器人。本文主要介绍了智能安保巡逻机器人的软硬件设计和工作原理。
关键字:巡逻机器人;自主定位导航;智能控制
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)21-0198-02
开放科学(资源服务)标识码(OSID):
1 前言
20世纪60 年代,美国和苏联开始了移动机器人研发工作,并在不断的实践和应用中取得了长足的进步。随着科技的不断进步与发展,一系列可以大幅度提高机器人性能的设备和元件不断被开发出来并应用到机器人技术上,机器人技术已经日趋完善和成熟。目前国内外的机器人主要采用高端器件作为主控器,如ARM、DSP、FPGA等,开发难度和成本相对比较高。有鉴于此本文介绍以stm32f407为核心芯片开发的智能巡逻机器人,该机器人具有自主导航行动能力,通过所搭载的无线网络摄像头对楼宇内部进行实时监控,提高安保效率,减少安全风险。
2 楼宇巡逻机器人系统需求分析
2.1 巡逻机器人控制系统硬件需求
巡逻机器人硬件搭建的重要模块有中央控制系统模块、驱动控制模块、信息收集处理模块、电源模块 、信号传输模块。
中央控制系统模块主要是设计一块巡逻机器人的单片机芯片,使得机器人的各个功能可以得到有效的执行,同时也应当具有高效,稳定,耐干扰,实用性强等特点。
驱动控制模块主要是控制巡逻机器人移动,包括进退,停止,转向等,而这些功能的实现需要用到控制器 、电机、里程计等设备。
信息收集处理模块主要是将采集到的图像信息发送回主机,主机完成数据处理后将命令反馈给巡逻机器人,机器人接收到相应命令后开始执行动作。
电源模块是提供动力的元器件,主要包括电池、保护电路组成,为机器人的行动提供可靠和稳定的能量输入。
2.2 巡逻机器人控制系统软件设计需求
软件设计分为控制系统程序设计、移动控制程序设计、数据通信程序设计。
巡逻机器人控制系统程序主要处理由主机发送的指令信号,根据不同的优先级策略发起对应指令。
移动控制程序是指驱动控制模块接收到主控机的指令后,根据雷达扫描反馈并处理的信息完成机器人导航和运动。
数据通信程序主要用于实现将图像和雷达数据发送到控制主机,同时将主机的命令反馈至相关驱动控制器控制机器人行动和决策。
3 硬件電路设计
3.1 巡逻机器人控制系统硬件总体设计方案
巡逻机器人控制系统通过主机控制系统与主体控制系统之间的数据通信,完成机器人的行动,数据采集分析和数据传输功能。
3.2 巡逻机器人主体控制系统设计
主体控制系统由上位机和下位机组成,通过总线的形式进行连接。上位机通过数据通讯模块与主机进行数据交换,同时在接收到主机反馈的命令后对下位机进行转发,并在下位机的命令完成执行后,将执行结果提交给控制主机,等待主机的下一个命令。这种结构能够充分发挥出单片机的高效性和稳定性的特点,整体提高机器人的工作效率。
控制系统的总体设计方案如图1所示。
系统采用模块化设计,主要分为核心控制板模块、电源模块、电机驱动模块。
3.2.1 控制电路
控制电路采用STM32F407系列单片机,与控制器通信及系统扩展可选用UART、I2C、SPI、I/O、CAN、RS485等接口,STM32F407单片机的不同的定时器分别输出占空比可调和频率可调的PWM信号,用来控制LED驱动器、直流电机驱动器和交流电机驱动器。
3.2.2 电源电路
电源电路使用锂电池充电电路。锂电池充电电路中选用TI的BQ24617作为电池充电器。BQ24617最高输入电压为26V,最大充电电流可达10A,最多可以给5节串联的锂电池充电,而且可以对电池进行多种保护。
3.2.3 电机驱动模块
步进电机驱动器采用TI的DRV8880,DRV8880采用单路PWM控制,输入电压范围是6.5V-45V,输出电流可达2A,而且可以根据电机驱动电流的大小来选择控制DRV8880的输出电流。电机驱动回路出现故障时,DRV8880可以把故障信号传输给控制电路用来保护整个回路。
3.4 无线网络摄像机组件
无线网络摄像机由镜头、图像传感器、A/D 转换器控制主板等设备组成,通过把物体反射的光用摄像机镜头进行收集,再通过信号转换设备将其转化为视频信号,经过信号放大处理,最后通过网络传输到客户端。用户只需在客户端设置完成对应的IP地址,即可接收到实时视频数据流,完成对现场环境的实时监控。同时系统主机也会通过软件将视频文件以一定格式进行存储,方便用户后期进行调用。
4 软件设计
4.1 系统软件
软件部分是控制巡逻机器人的核心,软件部分的主要工作是根据需要实现的功能划分软件模块并确定单片机资源的分配。ROS是一个开源的机器人操作系统。它可以提供硬件抽象、底层设备控制、常用功能实现、进程间消息以及数据包管理。ROS的独特之处还在于能够支持C++、Python、Octave和LISP等多种语言,这可以简化开发者的工作。ROS不是一个传统意义上的操作系统,而是一个构建在异构计算机集群和其操作系统之上的一层通讯层和软件开发框架。
4.2 应用软件所实现的目标
1.实现上下位机通讯,取得车轮反馈信号,里程计正常;
2.取得雷达信息,成功创建地图;
3.实现路径规划和机器人自主行走。
系统的整体流程如下:
⑴上位机发送命令给单片机。
⑵单片机接收到命令后驱动直流电机。
⑶直流电机驱动器接收到信号,驱动电机,并反馈给单片机。单片机将反馈的信号传给上位机进行处理,使其知道机器人的位置,走了多远,方向是多少,从而实现自主导航的功能。
4.3 世界坐标到机器人坐标的变换以及到3个轮子的变换程序片段
通过车轮的计数器计算出车轮转数并反馈给单片机,得出机器人实际走出的距离,从而算出机器人的坐标在实际世界中的位置,这样机器人就知道自己在哪里,走出了多远,到达目标地点该走多少距离。
部分代码如下:
5 研制结果
本系统实现了机器人从创建地图到自主行走巡逻的一系列功能,以黑盒测试法对软件进行测试,得出所研制的机器人样机的基本性能指标为:定位误差在正負五厘米;定位姿势误差在正负十度;在机器人前放置障碍物能提前避障等功能,较好地实现了自主行走,定位避障和信息收集等功能。本文针对楼宇内部环境的特点,所研究设计的试验模型从实际测试和应用中验证了自动化和智能化的巡逻机器人确实能够大幅提高了楼宇内部安保效率,同时为巡逻机器人的不断深入研究提供了一定的参考和基础。
参考文献:
[1] R.西格沃特.自主移动机器人导论[M].西安:西安交通大学出版社,2006.
[2] 蔡自兴.机器人学基础[M].北京:机械工业出版社,2009.
[3] 陈金宝,等.ROS 开源机器人控制基础[M].上海:上海交通大学出版社,2016.
[4] Thrum S.Learning metric-topological maps for indoor mobile robot navigation[J].Artificial Intelligence,1998,99⑴:21-71
[5] 阿尼尔·马哈塔尼.ROS机器人高效编程[M].北京:机械工业出版社,2017.
【通联编辑:光文玲】