kaiyun官网
Industrial Layout
产业布局
九大产业集群 您的位置: 首页 > 产业布局 > 九大产业集群
基于STM32的家庭服务机器人系统工作原理及设计
2023-11-24 23:17:10 作者: 九大产业集群

  为解决当前大部分家庭服务机器人不具备行走功能或只具有简单的避障能力等问题,本文设计一种基于STM32的家庭服务机器人系统。总系统由轮式机器人、XBee协调器、RFID智慧地板和上位机组成。轮式机器人由主板、传感器模块、射频模块、舵机模块、电源模块和机器人金属主体组成,传感器模块包括电子罗盘、红外传感器和RFID读卡器。主板以ARMCortex-M3内核微处理器STM32F103VCT6为核心进行开发,采集传感器模块数据信息,实现机器人与XBee协调器之间的通信连接。该系统在模拟智能家居的环境下通过自主决策稳定和高效地完成设定任务,能够很好的满足家庭服务机器人的应用要求。随着AI和传感器技术的发展,机器人已从工厂的结构化环境进入人们的日常生活环境,机器人不仅能自主完成工作,还能与人共同协作达成目标或在人的指导下达成目标。家庭服务机器人是智能家居系统的一个重要组成部分,在生活中的作用逐渐重要。当前,大部分的家庭服务机器人不具备行走功能或只具有简单的避障能力,机器人的研究很多依赖于仿真实现,但是现实情况和仿真结果可能大相径庭。也有一些研究将问题复杂化,反而走了更多的弯路。针对当前家庭服务机器人的不足和现代智能服务机器人的要求,本文提出一种基于STM32的家庭服务机器人系统的设计的具体方案。该方案模拟智能家居环境,简化了定位方式,有效地利用了ZigBee技术低成本、低功耗的特点[3],设计出一个合适大小的轮式机器人做试验,试验根据结果得出机器人可以在一定程度上完成预期目标并体现出较强的自主决策能力。整个家庭服务机器人系统主要由四部分所组成,包括铺满RFID智慧地板的模拟智能家居环境、移动的轮式机器人、XBee协调器以及上位机。智能家居环境设计长为3.25米,宽为2米,铺满RFID智能地板,分隔成厨房和客厅两个房间,中间的房门宽0.3米。厨房有水槽、搁板、智能冰箱等电器,客厅有餐桌、餐椅等。RFID智能地板的排列信息给机器人提供准确定位。轮式机器人负责往返厨房与客厅之间给服务对象运送物品,是总系统的核心部分。XBee协调器是基于ZigBee技术的无线传输模块,负责数据快速稳定地传递。上位机主要负责数据的接收、处理和控制指令的下达等。系统的主要工作流程是:上位机输入任务命令,该命令通过XBee协调器发送给轮式机器人。机器人收到任务命令后从休眠模式启动,读取智能地板RFID定位信息,将该实时位置信息上传到上位机,以显示机器人运动轨迹。机器人通过传感器模块检测自身姿态和周围障碍物情况,自主决策移动至目标位置抓取物品,运送到最终目标位置给服务对象使用。其中,轮式机器人是总系统设计的重点。XBee协调器是最先启动的XBee网络节点,主要完成XBee网络的组网功能和数据的收发功能,其中组网功能包括XBee网络的建立和子节点的入网。首先,在XBee协调器上电复位后对包括硬件和软件的各个模块进行初始化。然后,开始扫描信道、进行能量检测、选择信道以及选择正真适合的PAN ID。成功之后就广播网络ID、信道,XBee网络就建立了。之后,XBee协调器进入监听状态,等待子节点发送入网请求信号,收到入网请求后协调器允许子节点入网并分配网络短地址给子节点,这就实现了节点的入网功能。最后,XBee协调器将上位机数据发送给子节点射频模块,启动轮式机器人,在收到来自子节点的数据请求后,将接收数据并通过串口线传输给上位机,这就是数据的收发功能。轮式机器人是任务的执行设备,往返于厨房和客厅两个房间之间,准确和高效地执行用户对象发送的各种命令任务,并发送机器人坐标数据给XBee协调器进行以下工作。首先,轮式机器人上的XBee模块需要初始化和发送入网请求,实现节点入网。然后,XBee模块接收XBee协调器传输的任务命令数据,主板对各传感器模块初始化。RFID读卡器读取智能地板坐标数据,发送给XBee协调器。电子罗盘获取机器人当前的姿态信息。红外传感器检验测试机器人所处环境的障碍物距离,主板控制启动由左右两个连续旋转舵机组成的移动轮。机器人通过自主决策规划路径,移动至目标位置,启动机械臂抓取物品,其中机械臂由多个角度舵机组成。在机械臂保持抓取物品的状态下,再次规划路径移动至最终地点,机械臂准确将物品放在目标位置。达成目标后机器人回到起始位置,进入休眠模式。轮式机器人采用模块化的设计原则,使机器人的设计为模块化方式,并采用分层控制,有利于综合性能的发挥[4] 。将机器人系统分为五个部分:主板、传感器模块、无线射频模块、舵机模块和电源模块。轮式机器人的结构框图如图1所示。

  3.1.1 主板主板是针对该轮式机器人设计,采用ARM Cortex-M3内核的STM32F103VCT6处理器,主板资源包括SDRAM、NAND Flash,UART接口、GPIO接口、SPI接口和JTAG接口。辅助的资源有USB接口、定时器等。主板的设计专门为射频模块、传感器模块和机械臂模块提供了接口,简化了电路结构,使控制器集成度更高,运行更稳定和高效,从而节约硬件成本。3.1.2 传感器模块传感器模块由传感器和相应的信号调理电路组成。轮式机器人使用的传感器包括红外传感器、电子罗盘和RFID读卡器。根据轮式机器人移动过程中检测障碍物距离的精度要求,红外传感器采用的型号为Sharp GP2D12,分别安装在机器人前方、左前方、右前方、左侧和右侧五个位置。电子罗盘采用GY-80九轴模块中的HMC5883L三轴电子罗盘,可以在复杂环境下测得准确方位值,抗磁电干扰能力较强。RFID读卡器采用Parallax公司的低频段28140读卡器,可读取125kHz标签。3.1.3 射频模块射频模块是设备之间通信的主要模块,负责整个网络的数据传输工作。射频模块采用基于ZigBee技术的XBee无线传输模块,该模块覆盖面积大且易于配置,是机器人通讯组网的不错选择。XBee协调器由XBee无线模块和XBee USB适配板组成。XBee USB适配板是专门为XBee无线模块配套设计,利用该模块,可以在PC机使用配套的X-CTU软件对XBee无线模块进行配置及串口通讯监控。XBee协调器通过USB线与上位机连接通信。3.1.4 舵机模块舵机模块分为机械臂舵机和移动轮舵机,机械臂由角度舵机和金属杆件组成。五个角度舵机构成五自由度机械臂,尺寸大小与搭建智能家居环境匹配,为保证机械臂动作精度,采用HS-322HD角度舵机。移动轮舵机使用Parallax连续旋转舵机。3.1.5 电源模块根据各个组成部分工作的场合和特点的不同,采用不一样的供电模式,轮式机器人采取电池供电的模式,而XBee协调器则要从始至终保持工作状态,所以采用上位机USB供电的模式。电源模块与主板相连,而主板留有接口给传感器模块、射频模块和舵机模块,通过接口给传感器模块、射频模块和舵机模块进行供电。由于RFID读卡器对电流要求比较高,因此主板和RFID读卡器分开使用双电源供电。3.2 机器人软件设计3.2.1驱动控制设计驱动控制设计包括各个模块的初始化、模块之间的通信和上位机软件设计。该文采用与STM32F103VCT6配套的MDK-ARM作为开发环境,完成各个模块初始化和通信,上位机软件采用VC++开发。具体的各个模块软件实现的功能及工作流程在系统的工作原理和流程中已经介绍,这里不再叙述。

  3.2.2 路径规划路径规划主要可分为全局路径规划和局部路径规划,前者是指在环境信息完全已知的情况下,机器人规划一条从初始位置到目标位置的无碰撞最优路径;后者由于环境信息是未知的,需考虑局部的特定情况来进行路径调整。机器人移动过程中利用电子罗盘进行姿态调整,即调整前进方向,努力寻找一条最快捷的路径到达目标位置。机器人姿态调整主要根据当前位置和前一位置与目标位置的距离,包括横向距离和纵向距离。若当前位置与目标位置的横向距离和纵向距离分别小于或者等于前一位置与目标位置的横向距离和纵向距离,表明机器人与目标位置的距离在逐渐缩小,机器人在朝目标位置前进,否则就说明机器人没有按预期的轨迹前进,需要再次进行姿态调整。姿态调整示意图如图2所示。局部路径规划包括避障处理、振荡位置分析、房门位置搜索和过房门策略分析。在机器人移动过程中,要一直探测周围环境,从而更好地决定下一步动作。五个红外传感器数据使机器人时刻掌握周围环境,避障处理要求机器人合理避开障碍物,向目标位置移动。振荡位置指的是机器人不能顺利通过某一位置,而在这一点附近反复来回走动。如果起始位置和目标位置分别在两个房间,在全局路径规划思想的指导下,机器人会在两间房的公用墙边不断徘徊。振荡位置分析示意图如图3所示。

  当机器人到达振荡位置时,需要调整路径规划策略,此时放弃全局路径规划策略,选择直接以公用墙为基准墙搜索房门。沿墙走算法的基本规则是:当机器人不断靠近墙面时需要调整两轮速差使机器人朝偏离墙面的方向前进;当机器人不断远离墙面时,则需要调整两轮速差,使机器人朝靠近墙面的方向前进。综合调整的结果是机器人的前进轨迹是以基准线为轴的类正弦曲线所示。过房门是机器人达成目标必不可少的一个环节,怎样确保机器人顺利穿过房门是任务成功的关键。机器人准备过房门时并不是正对房门,可能向左侧或者右侧不同程度的倾斜。根据倾斜程度的划分,机器人检测相对应的红外传感器距离值,不断调整机器人姿态,使机器人正对房门并顺利通过。

  4 结束语本文设计的家庭服务机器人系统,为智能家居环境服务对象的需求任务提出了详细可行的解决方案。总系统应用了基于XBee模块的主流无线通信技术,以保证数据的传输速率。此外,对轮式机器人的模块化设计具有结构相对比较简单和稳定性很高等特点,大幅度的提升了家庭服务机器人的可靠性,并且降低了系统的硬件成本。自主决策过程中的路径规划,使得机器人能快速沿着最合适的路线移动。总之,该设计系统对家庭服务机器人有关问题的解决提供了可借鉴的方法。关键字:编辑:什么鱼 引用地址:基于STM32的家庭服务机器人系统工作原理及设计

  1. stm32f103re,使用外部晶振32.768k,没有校准rtc时钟,使用串口打印时间,用带时间戳的串口工具记录串口接收的时间。 2. 测试时间一天。 数据如下: 开始计时:电脑时间 stm32时间 00:03:20 结束计时:电脑时间 stm32时间 25:35:50 历时:电脑 25:32:01:641 stm32时间 25:32:30 3. 结论 单片机快28秒, 28/25=1.12 stm32平均每小时快1.12秒 4. 按照AN2604.pdf描述的原理,RTC 的校准值应在0-127之间。可实现的校准误差对应为0-121ppm。相当于每30天跑快的秒数为0-3

  最近要驱动电机,看了下PWM的输出,有所总结,这次贴上。 stm32 的高级定时器 很复杂,看了下例程,设置的东西太多了,就没有碰, 看了通用定时器还比较可爱,什么都刚刚好够用,就用它做了,这次用的是TIM3定时器3。 硬件平台用的是stm32f103vet6 100脚的。 由于手头没有示波器,所以用软件仿真,先上一张仿真图: 下面是代码部分Timer3.c C语言: Codee#20528 #include Timer3.h /*********************************************************

  pinMode()定义 Arduino平台的易于使用性主要就体现在屏蔽的大量底层细节的实现,对于该函数来说也不例外。虽然该函数只有两个参数(arduino引脚号和模式),但这两个参数需要多层的映射才能转化为具体适合STM32芯片的配置信息,并调用底层接口完成配置。 从下面源码中能够准确的看出主要由两个函数来完成引脚模式配置的:digitalPinToPinName()和pinfunction()。在具体深入下面两个函数之前我们应该一些预备知识—该库对于STM32硬件端口和引脚的封装。 void pinMode(uint32_t ulPin, uint32_t ulMode) { PinName p = digitalPinTo

  监控系统已经经过了第一代模拟 视频监控 系统、第二代数字视频监控系统,已发展到了第三代网络视频监控系统,监控系统管理也经过了从人防到人防技防相结合、从单点到集中联网管理的过程。数字监控作为继模拟监控之后的第二代监控技术为用户更好的提供了超高的性价比的监控解决方案,当前数字监控已牢牢地成为主导整体视频监控市场的视频监控解决方案,并成熟部署与金融、商业等行业之中。 移动视频监控技术是视频监控技术在移动网络和移动终端上的应用,其目的是为了移动终端提供实时的视频监控服务,它是无线网络技术、流媒体技术和视频监控技术等多技术融合的产物,移动视频监控系统客户端是安装于客户端电脑、手机上的控制系统软件,用于远程查看实时监控画面和操控摄像机,并可通过客户端软

  曾经的电感电压采集让我心碎的多少次、又让我开心了多少次、但慢慢的变成了过去、(软件和硬件都会影响),呵呵、估计有人已经猜到我接下来要介绍什么了、在你们面前、我已无秘密、额、其实标题也直接“表白”了、看到标题,别吓到哈、并不是要用英文写、至于原因是什么、请往下看: 好吧、言归正传:STM32的ADC模块,请允许我用如此通俗的语言:普通线位、记住这个12位哈、因为2^12=4096 ,也请记住4096哈) STM32F103系列:在56MHz时转换时间为:1μs 在72MHz时转换时间为:1.17μs 2、转换范围:0~3.6V (3.6v--

  之ADC+步骤小技巧 /

  随着化石类能源的日益减少,以及温室气体的过度排放导致全球变暖问题慢慢的受到重视,人们一方面在积极开发各类可再生新能源,另一方面也在倡导节能减排的绿色环保技术。太阳能作为取之不尽、用之不竭的清洁能源,成为众多可再次生产的能源的重要代表;而在照明领域,寿命长、节能、安全、绿色环保、色彩丰富、微型化的LED固态照明也已被公认为世界一种节能环保的重要方法。太阳能-LED街灯同时整合了这两者的优势,利用清洁能源以及高效率的LED实现绿色照明。 本文介绍的太阳能-LED街灯方案,能自动检验测试环境光以控制路灯的工作状态,上限功率点追踪(MPPT)保证最大太阳能电池板效率,恒电流控制LED,并带有蓄电池状态输出以及

  单片机的太阳能LED街灯解决方案 /

  一夜之间,自行车站在了智能硬件的风口浪尖上。 智能手环、智能手表、智能家居,一连串概念之后,忽如一夜春风来,智能自行车也跟着火爆了起来。现在,涉足自行车领域的公司已有几十家,不只是勇于探索商业模式的公司纷纷宣布进入自行车领域,一些互联网巨头,乃至于大型跨国汽车公司也纷纷涉足自行车制造大军。野兽骑行、700Bike、蘑菇兄弟、菜鸟、拓能/TOPE、BiCi、曲奇、乐视、轻客、云马……就连小米也在风传要投身智能自行车。 智能自行车为啥火起来? 为何会有众多创业者或巨头都在智能自行车领域“跟风”呢?最简单的一个原因,是因为自行车市场空间足够大。 这两年的创业市场上,我们大家可以看到,跟出行相关的项目,是慢慢的变多了。交通出行

  通常来说,在单片机上编程,要么汇编,要么C语言,而用C++进行开发的很少,那么究竟能不能用C++开发单片机呢? 答案肯定是可以的,下面讲讲基于Keil、STM32,用C++编写流水灯程序的一些内容。 1 为什么很少用C++开发单片机 不知道大家对面向过程和面向对象的理解有多少? C语言是面向过程的语言,C++是面向对象的编程语言。结合本文来说,面向过程相比面向对象的编程,生成代码量(bin文件)更小,运行效率更加高。 所以,C语言相比C++具有更小代码量(bin文件)、更快的工作速度。 当然,这里是C相对C++而言。其实,汇编相对C而言,具有更小代码量和更快的工作速度。可以参看文章:用 汇编 和 C语言 写流水灯程序有什么不

  f100驱动代码

  U5xx_DFP.2.1.0


  使用STM32 Nucleo撬开针对物联网的ARM mbed IDE之门

  STM32CubeMX and STM32Cube HAL basics

  有奖直播 与英飞凌一同革新您的电动汽车温控系统:集成热管理系统(低压侧)

  MPS 隔离式稳压 DC/DC 模块——MIE系列首发,邀你一探究竟!

  【下载】LAT1317 STM32CubeProgrammer和STM32CubeIDE协同调试的方法

  【下载】LAT1298 基于Azure USBx开发USB_OTG_HS MSC应用的几个问题

  【下载】LAT1306 使用STM32CubeIDE填充未用FLASH区域

  【视频】使用STM32cubeMX与STM32PackCreator的最初步骤

  【新品】STM32H5-Arm® Cortex®-M33 内核,主频高达250MHz,提升性能与信息安全性

  【新品】STM32MP13X-支持Linux、RTOS和Bare Metal应用,新一代通用工业级MPU

  【新品】Arm® Cortex®-M33处理器内核,运行频率160 MHz,基于Armv8-M架构并带有TrustZone®

  【下载】AN5609 基于STM32WB系列新产品开发Zigbee智能能源(SE)应用

  【下载】RM0490 STM32C0x1 Arm®32位MCU参考手册

  【下载】UM2986 STM32U5系列IEC 60730自测试库用户指南

  【AI】意法半导体发布安全软件,保护STM32边缘AI设备连接AWS IoT Core的安全

  【新品】意法半导体微控制器STM32H5探索套件加快安全、智能、互联设备开发

  今天就分享一个读者问到的关于中断处理的问题。 很多人都知道STM32CubeMX这套工具的一个目的:减少开发者对STM32底层驱动的开发时间,把重 ...

  在万利STM32学习板的USB摇杆例程中,摇杆的按键处理并没有消抖处理,因此重新修改了摇杆的驱动,顺便还增加了两个按键以及摇杆中键下压的驱 ...

  STM32F103+ESP8266接入机智云 实现小型IOT智能家居项目

  前言最近有不少小伙伴私信留言,想要我推出一章可以通过APP进行远程控制并获取传感器信息的实验教程。说实话在嵌入式毕设里边,这算是中等 ...

  该设计采用esp8266烧写机智云固件。并且esp8266与stm32进行通信,则stm32能够最终靠esp8266与机智云服务器进行数据交互,而机智云服务器可以 ...

  stm32mp1 Cortex M4开发篇2:通过GPIO点亮LED灯详解

  写在前面:本文章为《ARMCortex-M4裸机开发篇》系列中的一篇,,全系列总计14篇。笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157 ...

  max7219驱动数码管程序(51单片机+STM32 MAX7219数码管程序案例)

  综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程