基于STM32的家庭服务机器人系统设计

时间:2020-10-16 18:05:33 计算机软件毕业论文 我要投稿

基于STM32的家庭服务机器人系统设计

  摘要:为解决当前大部分家庭服务机器人不具备行走功能或只具有简单的避障能力等问题,本文设计一种基于STM32的家庭服务机器人系统。整个系统由轮式机器人、XBee协调器、RFID智慧地板和上位机组成。轮式机器人由主板、传感器模块、射频模块、舵机模块、电源模块和机器人金属主体组成,传感器模块包括电子罗盘、红外传感器和RFID读卡器。主板以ARM Cortex-M3内核微处理器STM32F103VCT6为核心进行开发,采集传感器模块数据信息,实现机器人与XB ee协调器之间的通信连接。该系统在模拟智能家居的环境下通过自主决策稳定和高效地完成设定任务,能够满足家庭服务机器人的应用要求。

基于STM32的家庭服务机器人系统设计

  关键词:服务机器人;XBee;自主决策;RFID;ZigBee;STM32

  引言

  随着人工智能和传感器技术的发展,机器人已从工厂的结构化环境进入人们的日常生活环境,机器人不仅能自主完成工作、还能与人共同协作完成任务或在人的指导下完成任务。家庭服务机器人是智能家居系统的一个重要组成部分,在生活中的作用越来越重要。当前,大部分的家庭服务机器人不具备行走功能或只具有简单的避障能力,机器人的研究很多依赖于仿真实现,但是现实情况和仿真结果可能大相径庭。也有一些研究将问题复杂化,反而走了更多的弯路。

  针对当前家庭服务机器人的不足和现代智能服务机器人的要求,本文提出一种基于STM32的家庭服务机器人系统的设计方案。该方案模拟智能家居环境,简化了定位方式,有效地利用了ZigB ee技术低成本、低功耗的特点,设计出一个合适大小的轮式机器人进行试验,试验结果表明机器人能够实现预期目标并体现出较强的自主决策能力。

  一、系统整体设计方案

  整个家庭服务机器人系统主要由四部分组成,包括铺满RFID智慧地板的模拟智能家居环境、移动的轮式机器人、XBee协调器以及上位机。

  智能家居环境设计长为3.25米,宽为2米,铺满RFID智能地板,分隔成厨房和客厅两个房间,中间的房门宽0.3米。厨房有水槽、搁板、智能冰箱等电器,客厅有餐桌、餐椅等。RFID智能地板的排列信息给机器人提供准确定位。轮式机器人负责往返厨房与客厅之间给服务对象运送物品,是整个系统的核心部分。XBee协调器是基于ZigBee技术的无线传输模块,负责数据快速稳定地传递。上位机主要负责数据的接收、处理和控制指令的下达等。

  二、系统工作原理和流程

  系统的主要工作流程是:上位机输入任务命令,该命令通过XBee协调器发送给轮式机器人。机器人收到任务命令后从休眠模式启动,读取智能地板RFID定位信息,将该实时位置信息上传到上位机,以显示机器人运动轨迹。机器人通过传感器模块检测自身姿态和周围障碍物情况,自主决策移动至目标位置抓取物品,运送到最终目标位置给服务对象使用。其中,轮式机器人是整个系统设计的重点。

  2.1 XBee协调器工作流程

  XBee协调器是最先启动的XBee网络节点,主要完成KBee网络的组网功能和数据的收发功能,其中组网功能包括XBee网络的建立和子节点的入网。

  首先,在XBee协调器上电复位后对包括硬件和软件的各个模块进行初始化。然后,开始扫描信道、进行能量检测、选择信道以及选择合适的PAN ID。成功之后就广播网络ID、信道,XBee网络就建立了。之后,XBee协调器进入监听状态,等待子节点发送入网请求信号,收到入网请求后协调器允许子节点入网并分配网络短地址给子节点,这就实现了节点的入网功能。最后,XBee协调器将上位机数据发送给子节点射频模块,启动轮式机器人,在收到来自子节点的数据请求后,将接收数据并通过串口线传输给上位机,这就是数据的收发功能。

  2.2 轮式机器人工作流程

  轮式机器人是任务的执行设备,往返于厨房和客厅两个房间之间,准确和高效地执行用户对象发送的各种命令任务,并发送机器人坐标数据给XBee协调器进行以下工作。

  首先,轮式机器人上的XBee模块需要初始化和发送入网请求,实现节点入网。然后,XBee模块接收XBee协调器传输的任务命令数据,主板对各传感器模块初始化。RFID读卡器读取智能地板坐标数据,发送给XBee协调器。电子罗盘获取机器人当前的姿态信息。红外传感器检测机器人所处环境的障碍物距离,主板控制启动由左右两个连续旋转舵机组成的移动轮。机器人通过自主决策规划路径,移动至目标位置,启动机械臂抓取物品,其中机械臂由多个角度舵机组成。在机械臂保持抓取物品的状态下,再次规划路径移动至最终地点,机械臂准确将物品放在目标位置。完成任务后机器人回到起始位置,进入休眠模式。

  三、关键环节设计

  3.1 机器人硬件结构设计

  轮式机器人采用模块化的设计原则,使机器人的设计为模块化方式,并采用分层控制,有利于综合性能的发挥。将机器人系统分为五个部分:主板、传感器模块、无线射频模块、舵机模块和电源模块。轮式机器人的结构框图如图1所示。

  3.1.1 主板

  主板是针对该轮式机器人设计,采用ARM Cortex-M3内核的STM32F103VCT6处理器,主板资源包括SDRAM、NAND Flash, UART接口、GPIO接口、SPI接口和JTAG接口。辅助的资源有USB接口、定时器等。

  主板的设计专门为射频模块、传感器模块和机械臂模块提供了接口,简化了电路结构,使控制器集成度更高,运行更加稳定和高效,从而节约硬件成本。

  3.1.2 传感器模块

  传感器模块由传感器和相应的信号调理电路组成。轮式机器人使用的传感器包括红外传感器、电子罗盘和RFID读卡器。根据轮式机器人移动过程中检测障碍物距离的精度要求,红外传感器采用的型号为SharpGP2D12,分别安装在机器人前方、左前方、右前方、左侧和右侧五个位置。电子罗盘采用GY-80九轴模块中的HMC5883L三轴电子罗盘,可以在复杂环境下测得准确方位值,抗磁电干扰能力较强。RFID读卡器采用Parallax公司的低频段28 140读卡器,可读取125kHz标签。