在本工作中,制作了一款多功能、模块化的管家机器人。在原理样机中,上层以X3 Pi为工控机,下层搭载了一款自研制的底层自适应驱动板,以摄像头、二维激光雷达和九轴姿态传感器作为基础传感器。可以通过更换不同的工作模块,实现不同的功能,例如,装载脱钩,可以实现拖挂功能;装在红外测温和烟雾传感器,可以实现环境的火灾检测。它能够通过传感器进行感知环境,与用户进行语音交互,并通过“哨兵模式”守护家人的安全;设有“欢迎回家”功能,让劳累一天的你找到家的温暖;为提高复用性,自研制了一款底层自适应驱动板,可直接通过“插、拔”的方式,更换电机,无需针对电机设计通讯和算法。
智能管家机器人的目标是提高使用者的生活质量,守护使用者的生命财产安全、提高智能家居的使用体验,使用户能够更好地管理家庭事务,享受智能化生活。
在本工作中,所有的功能设计都是基于ROS(机器人操作系统)实现的。在硬件设计方面,实现了:①车体模块化、②自适应底层驱动板;在软件设计方面,实现了:①动态环境感知——“哨兵”模式、②多种算法建图导航与路径规划、③人机交互。
1硬件设计
1.1车体模块化设计
在实际得使用过程中发现,如何提高“一车多用”是一个关键问题。机器人整体上采用模块化设计,以保证机器人的稳定性,并能迅速扩展机器人的功能和满足新的需求。模块化设计能显著提升维修保养的效率,并显著降低相应的成本。模块化设计可以只更换相应模块,而无需对整个系统进行繁琐的检查和修理。采用稳定的标准化模块,大大减少了人为的混乱因素在机器人设计、组装、检测、修理的过程中因操作不当导致损坏的风险。
在实验样机的结构上,采用24 V、24000 mAh大容量电池,实现5-6小时的续航。同时能够搭载大于60公斤的负载,大大提高承重能力。尺寸压缩到550 mm*500 mm*440 mm的尺寸,与亚克力板和铜柱组合的原理机相比减少了占地面积和垂直空间;四驱四转的阿克曼模型能大大减小转弯半径,使运动更加灵活;同时采用四轮独立弹簧悬挂,让机器人运行更加平稳,大大提高运载的稳定性。


!(file:///C:/Users/ZHENGX~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png)
!(file:///C:/Users/ZHENGX~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg)
Figure.1.结构示意图。a.原理机结构示意图。b.户外实验样机
1.2自适应底层驱动板设计
为满足不同场景使用需求,在底层驱动设计方面,增加了“底层自适应”功能。主要实现了车轮数目的统计和车轮状态检测,车轮数目的统计采用GPIO-A/B通用输入输出接口检测到驱动电路时进行频率信息发送,根据各个接口获取的信息统计,当确认驱动电路数目后间接确认驱动车轮数目;车轮状态检测采用GPIO-A/B通用输入输出接口获取车轮驱动频率信息,得到车轮状态;GPIO-A/B通用输入输出接口的到的检测信息上传Cortex-M3 MCU处理。这也是本工作的创新点之一。
!(file:///C:/Users/ZHENGX~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png)
Figure.2.自适应底层驱动板原理
(发明专利,专利号:ZL 2020 1 1168860.8)
2软件设计
2.1 “哨兵模式”功能设计
在室内,车体处于封闭环境中,环境变量相对较少。据调查,在中国家庭中“三代同堂”占据了89%。老人和孩子独守家中,这成为了在外工作的人的顾虑。在本产品中,针对老人和孩子的检测设计了相应的功能:
(1)跌倒检测:智能管家通过视觉识别捕获目标人群,在目标人群倒地时间≥3 min时,会相管理员发送短信强制提醒,同时会发出尖锐叫声吸引邻居的注意力,及时避免不幸发生。
(2)火灾检测:智能管家机器人通过搭载红外温度传感器和烟雾传感器,在检测到房间内某点温度≥100 ℃,并且烟雾报警,管家会向管理员发送强制提醒,并询问管理员是否拨打火警电话。
在室外,随着生活质量的提高,城市中生活的居民在闲暇时间都会寻找一处自然景观露营,放松身心。户外环境不确定性因素大,危险系数高。对智能管家机器人更换履带式底盘,并安装用于动态捕捉的毫米波雷达,可实现半径5 m范围内的动态预警,当有不明物体进入到预警范围,智能管家机器人会发出警报声,这也是本课题的创新点之一。
2.2多种算法建图导航与路径规划
运用基于ROS的AMCL功能包实现了自适应蒙特卡洛定位方法,即机器人在二维移动过程中概率定位系统,是在满足了AMCL概率定位算法稳定性和效率的前提下的改进的算法,避免了计算资源的浪费,实现了可以根据已有地图使用粒子滤波器推算机器人位置的功能,且有很高的鲁棒性,适用于移动机器人的导航控制,并能够结合里程计信息提高定位准确度,最终从而判断机器人的实际轨迹是否符合预期。
!(file:///C:/Users/ZHENGX~1/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg)
Figure.3.环境感知及路径规划
运用基于ROS的Move_base 功能包完成了基于Action的路径规划实现,根据给定的目标点,通过碰撞算法生成全局/本地代价地图,控制机器人底盘运动至目标位置,并且在运动过程中会连续反馈机器人自身的姿态与目标点的状态信息,从而进行路径规划。


!(file:///C:/Users/ZHENGX~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg)
!(file:///C:/Users/ZHENGX~1/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg)
Figure.4.定位与巡检。a.SLAM地图中GPS定位。B.定时巡检路径轨迹
2.3人机交互
(1)人脸识别与用户身份验证
基于Mediapipe项目,通过卷积神经网络(CNN)架构,使得模型人脸识别与用户身份识别功能具有强大的图像处理功能。将图像灌入深度学习模型,可以快速、准确地检测和识别人脸[15]。
为了实现多用户身份验证,使用了一个基于人脸嵌入的面部识别技术。该技术将每个面部映射到一个n维向量空间中,这些向量能够表示它们的特征信息。然后,通过计算每对向量之间的欧氏距离来比较它们,以确定它们是否属于同一个人。此技术不仅能够有效地识别面部,而且能够辨别相似但不完全一样的面部。
Mediapipe技术与传统的人脸检测和识别方法相比,优势在于在精度和性能方面都表现出色,能够快速、准确地识别面部并进行身份验证,因此非常适合应用于需要同时处理多个用户的场景。
!(file:///C:/Users/ZHENGX~1/AppData/Local/Temp/msohtmlclip1/01/clip_image018.jpg)
Figure.5.视觉识别模型训练
(2)姿态识别与手势控制
基于Mediapipe项目库,为了实现准确的姿态估计,我们采用了一种基于卷积神经网络的方法,通过使用残差连接和批标准化等技术来提高其准确性。该方法有效利用了数据中的空间信息,能够对人体进行精准的姿态估计。在进行手势识别时,采用了同样的方法,从输入视频流中提取手势特征,将人体各个关节和身体部位的重要标记,以实现对手势的分类和相关命令的执行。
对于手势识别,需要对视频流进行处理和判断。首先,进行视频流的获取,通过一台支持UVC协议的USB摄像头连接到X3 Pi,在Ubuntu系统中运行launch文件以获取摄像头信息,在rqt窗空中能够获取到摄像头的实时数据;然后进行手部骨骼检测,运行相关ROS节点,通过Cvbrige将摄像头采集视频数据转化为ROS系统所能读取的传感器数据,再通过Mediapipe库,侦测出画面中的手,然后在手上标定21个关键点,进行视频流中手掌的锚定,最后实现手势识别,通过对各手掌关键点的连接固定将手指信息作为判断的主要依据,再通过关键点之间的矢量运算、不同手指关键点数量和手指弧度的判断实现数字和方向的识别。
!(file:///C:/Users/ZHENGX~1/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg)
Figure.6.a.手势识别算法模拟验证。b.X3Pi验证。