基于STM32和服务器的家庭服务机器人的设计与实现外文翻译资料
2022-05-05 21:18:22
基于STM32和服务器的家庭服务机器人的设计与实现
摘要
以STM32为核心的家庭服务机器人具有独立的移动单元,使用者可以利用手机远程控制它的移动,并可通过机器上的WIFI摄像头查看家中的视频数据,还可以通过机器人上的传感器在家中获取环境数据信息。使用PHP和Qt构建起来的服务器实现了机器人与移动设备之间的通信。该系统具有蓝牙定位追踪功能,可以使机器人在启动时根据蓝牙的iBeacon信号定位人员并自动追踪,将药品送达人员。
关键词: 家用服务机器人, STM32, iBeacon,服务器
一、介绍
该系统开发的目的是,改善孤寡老人特别是那些不能自由活动的老人的生活状况,提升他们的生活质量,加强安全方面的控制和预防,并使他们的儿女能够轻松了解父母的生活状况,给他们日常的照顾和关注。
二、概念设计
家用服务机器人具有独立的运动单元,可以接收机器人核心控制器STM32发出的命令,如前进,后退,左转,右转,停止命令,实现对行驶状态的控制。该机器人装有WIFI摄像头,并且能够通过它的运动穿越NAT检查家中每个位置的视频数据,并通过机器人上的传感器获取家中的环境数据和信息。该系统构建了一个服务器来传输移动设备和机器人之间的通信,以便远程控制机器人的移动或通过移动设备检查家里的情况。该系统的整体结构如图1所示。
图1.系统架构图
三、家用服务机器人的设计
A.功能设计
该机器人包括四个功能:移动单元控制,环境数据检测,定时服药,蓝牙定位和跟踪。
1)运动单元
家用服务机器人具有独立的运动系统,该运动系统包括控制器,驱动电路,底盘控制和四个车轮。该机器人的系统包括STM32核心控制器,传感器,WIFI以及其他几个模块。STM32处理器接收并解析来自移动端或服务器端的控制指令,然后向移动单元发送相应的指令以控制机器人的移动。
2)环境数据检测
该功能包括温度检测,湿度检测和有毒气体检测。机器人定期检测家中的环境数据,将数据上传到服务器,并在数据异常情况下及时发出警报。
3)定期服药
该机器人有语音广播和定时的功能。每次启动机器时,机器人和服务器都会进行时间的同步。药品类别和服用时间可以通过服务器进行设置。当到了吃药的时候,机器人开启扬声器播放声音,提示该人吃药。
4)蓝牙定位和追踪
作为机器人的核心功能,它可以极大地方便那些无法自由移动的人。人们可以将普通药物放置在机器人上,在该功能启动时,机器人就可以判断人的位置并计算路径自动到达人们面前。
B.硬件设计
家用机器人的硬件结构如图2所示。
图2. 家用服务机器人的硬件结构
一些模块的介绍如下。
1)Mq135气体传感器
其核心气体敏感材料二氧化锡(SnO2)在清洁空气中具有非常高的抗性,然而随着有毒气体浓度的增加,其抗性逐渐降低。因此,这个传感器可以连接一个GPIO端口。
2)Syn6288语音合成芯片
它是一种高性价比,更自然的中高端语音合成技术。SYN6288通过异步串口接收待合成文本,实现文本到声音的转换(TTS)。
3)Dht11数字温度和湿度传感器
它采用1-Wire总线数据格式。数据包共有40位,数据分为小数部分和整数部分。数据输出时,高位位于前面。具体的数据包可分解为8位湿度积分数据 8位湿度十进制数据 8位温度积分数据 8位温度十进制数据 8位校验和。由于数据尚未处理,因此需要将其分解为不同的部分进行单独处理。
4)Hm-10蓝牙模块
蓝牙技术是一种用于取代有线连接与无线连接的短距离无线通信技术,它能构成一个带有固定或移动信息设备的个人局域网以实现设备之间的无线通信。该系统主要采用蓝牙技术对室内物体进行无线定位。机器人检测室内部署的多个iBeacon节点所传输的信号强度,然后计算强度差异来计算出自己的位置,并计算从机器人到控制侧的线路,从而自动控制行驶。
5)RM04 Wifi模块
该模块是ALIENTEK推出的高性能UART-ETH-WIFI模块,该模块利用串口与MCU进行通信,内置TCP / IP协议,用于在用户串口,以太网,无线网络(WIFI)之间转换数据。若要使用该模块,应首先使用AT指令模式配置机器人,然后进入透明传输模式。
C.软件设计
机器人控制程序主要包括主要任务,运动控制,湿度检测,有毒气体检测,定时服药,蓝牙定位等六项任务。该程序采用uCOSII OS来实现任务调度的合理安排。uCOSII OS采用基于任务抢先调度的方法调用任务切换功能(一般为SSched),并推送已处于就绪模式(条件1)且优先级最高的任务所需的资源(条件2)到CPU寄存器(陷阱完成),然后CPU开始运行该任务的代码。
程序的主要任务包括系统时间显示和解析WIFI信息。它是始终从USART3接收WIFI命令信息,并解析这些信息。若命令解析错误,则会被直接丢弃,或者设置其他的任务标志,然后uCOSII OS调用与其设置的任务标志对应的任务。湿度和有毒气体检测任务每分钟检测一次最新数据,然后合成模块根据通信协议合成命令,并且该命令通过USART3清楚地发送到服务器。
以上任务的优先级为:运动控制gt;蓝牙定位gt;主要任务gt;有毒气体检测任务gt;语音广播任务gt;湿度任务。所有任务可以在1秒内扫描一次。如果任务标志设置为1,则表明该任务需要被调用。每个任务在完成之前不得中断。机器人的运动系统任务被设置为具有最高优先级,也就是说,运动是机器人的核心。
D.蓝牙Ibeacon的定位算法
机器人的定位算法根据蓝牙基站与机器人蓝牙之间的信号强度进行定位。首先,蓝牙信号可以通过公式转换为距离。这样可以利用基站建立一个坐标系统,来确认两圆相交法所需要的信号点。如图3所示,A,B,C点是基站的位置,r1,r2和r3分别是基站到机器人蓝牙的距离。p1,p2和p3是坐标系中半径为r1,r2和r3的三个圆的交点。
图3. 坐标系的绘制
为便于计算,系统规定A点所在的垂直线为Y轴,方向为正,C点所在的水平线为X轴,方向为正。点A所在的垂直线和点C所在的横线在原点相交。在左下角的原点没有设置iBeacon基站。为了锁定一个范围并更精确地求解,将点B布置在与点A具有相同高度并且与点C具有相同长度的位置处。因此,系统可以得到将点A,B的坐标C为圆心,建立三个交点操作圆。
求解三圆交点的核心实际上是求解两个圆的交点,它有三种情况:两个圆相切,两个圆相交,两个圆之间没有交点。如果三个圆的交点叠加在一个点上,就直接找到需要的点。但是,在典型的情况下,三个圆圈之间的位置关系倾向于成对相交。显然,需要计算约6个相交点。但是,分析后可以对系统进行排除,只留下三点。首先,可以直接排除范围外的交点。如果两个圆的点正好在这个范围内,那么这两个圆几乎相切,并且两个相交点中的任意点与机器人所在的实际点距离不太远,即可以排除一个随机点。以这种方式,可以形成三角形以提供高精度。
实质性测试表明,三点有几种常见情况:两点共线,一点在线外,三点共线,直接形成钝角三角形的极端情况。为了排除三点共线的情况,系统可以计算平均值来解决机器人位置的这种情况。该系统还面临三点形成三角形的其他两种情况。这种设计把计算其正中心而不是平均值作为更精确的方法,如下图4所示。
图4.通过正中心方法绘制精度
根据几何元素中的描述,三角形必须有一个正中心,其距每个顶点的距离是相同的。在锐角三角形的情况下,正中心出现在三角形内并且接近真实点。而当三角形是一个钝角三角形时,正中心基本上出现在中心位置,而不会倾斜到狭窄的角度。因此平均值可以减少偏差。
四、方案制定
由于该设计涉及服务器和机器人之间的通信,机器人和移动单元也有通信指令,因此该设计制定了很多协议。当服务器和机器人正常通信时,规定每次只发送一条指令,并用空格隔开命令。
五、服务器设计
我们通过PHP编写该服务器。服务器的中继机制依赖于数据库,也就是说数据在保存到数据库之前不会被中继。服务器的设计围绕着多线程数据存储的两个问题进行,即连续查询数据库和传输数据。我们使用Qt编写与服务器交互的Socket后台程序,利用信号量和槽功能来组合多个线程,从而轻松避免信息堵塞,从而实现了与机器人的多线程通信,并能够接收来自移动设备或机器人的信息,以及遍历数据库的数据,。
六、结论
家庭服务机器人能够监测家庭环境,督促健忘的老年人吃药,并在有毒气体出现时迅速报警,使生活更加的方便。与传统的GPS定位系统相比,蓝牙iBeacon技术在小空间定位方面具有非常显著的优势。此外,体积小,功耗低,成本低的优点,使蓝牙模块非常适用于家庭。尽管蓝牙iBeacon技术还不够成熟,无法获得精确的距离,但随着蓝牙iBeacon技术的成熟,设计的算法也会变得更加精确。
参考文献
[1]Xu Xuan, 'Research on STM32-based Motion Controller', Science and Technology amp; Innovation, vol. 33, pp. 56-57, 2016.
[2]Zhang Yang, Atom Teaches You How to Play STM32 (library function edition) (edition 2), Beihang University Press, 2015.
[3]Yan Xiaodong, Elements of Geometry, Jiangsu People#39;s Press, 2011.
[4]Liu Jun, 'Socket-based network Programming Technology and Its Realization', Journal of Jiangnan University, vol. 3, pp. 20-28, 2004.
自平衡两轮车双级联串级控制算法研究
摘要
为了解决自平衡两轮车的问题,本文提出了双级联PID控制算法。由于特殊的系统结构,该方法减少了平衡控制,速度控制和方向控制的耦合。本文利用卡尔曼滤波算法成功地解决了陀螺仪与加速度计的传感器融合,并加入模糊PID算法以提高转向系统的灵活性,大大提高了系统的精度和响应速度。
一、介绍
国内外自平衡两轮车有几种控制方案。飞思卡尔智能汽车竞赛委员会[1]给出了线性组合的三个PID控制器的参考方案。由瑞士联邦技术大学开发的两轮机器人JOE是基于最优控制和状态反馈控制而设计的[
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。