基于“树莓派”的六足搜救机器人

2021-03-16 10:08西北民族大学万德松李文闯
电子世界 2021年4期
关键词:树莓派波特率树莓

西北民族大学 万德松 林 兵 秦 璇 李文闯

六足搜救机器人突破轮式机器人只能在平地行驶的缺陷。其六足能适应各类复杂的险境并实现全方位的移动与探索,通过摄像头采集图像,在变电站、核电站或地震和火灾现场等会对人类产生危险的环境进行巡检或搜救。

当今世界科技发展水平日益提高,机器人研究已经拓展至各个领域。未来时代的各种机器人将会在人类无法生存、工作的环境代替人类去执行和完成检测、救援等任务。于是,我们要求机器人不仅可以适应对功能的要求,还要有完善的性能去探索未知的环境,这就使得对机器人的运动适应性、生存能力、灵活性有极高的需求。其中移动性能是未来机器人在很多场所的关键性能力,为了完成操控者下达的任务,经常要求机器人可以到达人们无法进入的环境进行探测、攻击、干扰、侦查等行动。因此,机器人需要拥有模仿动物的特性,能够适应不同的环境,行进范围广阔,生存能力和预判风险能力强,拥有极优异的行动能力等,以此达到能够代替人们到达有较高危险系数的环境中进行各种活动来完成任务。

大自然曾为人类的造物提供了丰富灵感,比如我国古人模仿鸟喙衔食物的动作发明了筷子。现在,仿生学已经得到了广泛应用,人们利用生物的结构和功能原理,研制机械或各种新技术。国内外对此进行了大量的研究并取得了突出的成果。

六足能适应各类复杂的险境并实现全方位的移动与探索,利用摄像头拍摄图像、利用手机连接机器人自带的WI-FI、利用手机APP来控制机器人的行进以及将实时图像传回手机。让人类在场外也能实时了解现场的情况或捆绑救援物资在六足机器人机身将物资带入进行救援,具有很高的实用价值。

1 控制系统总体设计方案

本设计主要采用“树莓派3B+”系统进行控制,树莓派是英国树莓派基金会研发的小型电脑。“树莓派3B+”系统的CPU有着1.2GHz的64位4核的ARM Cortex-A53,相比于树莓派1的性能提升了近十倍,在我们熟知的其他物联网设备中很少能有搭载主频超过600 MHz的CPU。通过“树莓派3B+”系统对LDX-218舵机、摄像头模块以及WI-FI模块传输图像及手机控制命令,保证整个系统流畅运行(如图1所示)。

图1 系统工作流程图

2 硬件设计与实现

2.1 模拟计算最稳定步态

通过Grubler公式,我们可以算出机器人机体的运动自由度为,公式中n代表连杆的个数,j代表关节的个数,fi代表的是第i个关节的自由度数,a=6是运动参数。机器人与地面的接触点可视为一个球状关节,其余关节都为旋转关节。所以,在任何时候机器人的灵活性不仅包括了三维平动还包括三维转动。通过“树莓派3B+”系统调节舵机的PWM波使舵机转动带动机器人完成抬脚收脚,最终实现全方位行进、蹲下、复杂环境自平衡、上楼梯等动作。强大的“树莓派3B+”系统在控制机器人行进的同时也能将摄像头采集到的图像实时传输给手机。参考国内外对蜘蛛“仿生学”形态研究及其应用领域的分析,通过Grubler公式计算出设计原理并设计出形态、步态稳固的机器人。

2.2 机械蛛足的机械结构及行进姿态分析和设计

图2 行进姿态图

如图2所示,以左前腿为例对其进行运动分解。设定初始状态时大腿与垂直方向夹角θ0=30°,其运动可分解为:该腿向前迈进一步后的姿态,此时机器人身体不发生移动;该腿向后迈出一步的姿态,此时机器人身体向前移;该腿向前迈步过程中,足端离地最高时的姿态。

2.3 主控制器选择

利用“树莓派3B+”系统进行控制,树莓派本质上是一种类似于微型便携计算机,其基于ARM芯片,以至少4G或以上内存的SD卡为内存硬盘,采用的是Linux系统。和传统STC89C51芯片、STM32F1系列芯片和K60系列芯片等芯片相比较,其具有更强的性能与功能。其代码使用Linux系统下的Python语言,相比传统的单一C语言编程更具有库函数丰富、操作方便、功能强大和语言简便的等优点。本项目采用树莓派作为主控,采用其Python环境、C环境下的Python语言和C语言进行编程。

树莓派从整体来看一共出了四代,其中每一代的CPU外设都是基本相同的,外设中一共包含了两个串口,一个是mini串口(/dev/ttyS0),一个是硬件串口(/dev/ttyAMA0),但是它们的内核有很大的区别。硬件串口由硬件部分实现,其配置着单独的波特率时钟源,性能极高且可靠。但是mini串口性能低,功能也比较简单,没有波特率专用的时钟源,其时钟是由CPU内核时钟提供,因此mini串口有个非常明显的弱点:其波特率受到CPU内核时钟的影响。内核如果在智能调整功耗时降低主频,这个时候相对应的这个mini串口的波特率理所当然会受到牵连,虽然我们可以固定CPU内核的时钟频率,但是这就不符合我们提倡的节能、低碳的要求了。所有的树莓派主板中都通过排针把一个串口引了出来,目前除了第三代树莓派引出的串口默认是CPU的那个硬件串口。但是树莓派第三代中,因为板载蓝牙模块,因此这个硬件串口被默认分配给了蓝牙模块通信,而把那个mini串口默认分配给了排针引出的GPIO Tx Rx。

3 软件设计与实现

摄像头部分使用的源代码采用Motion Joint Photographic Experts Group(简称Motion JPEG),Motion JPEG常被用于闭合电路的电视摄像机的模拟视频信号,其会被解析成视频流,然后把它储存在硬盘上。经典的应用有数字视频记录仪器等。然而MJPEG与MPEG不同,它是不使用帧间编码的,因此用一个非线性的编辑器就可以很容易编辑。MJPEG的压缩算法和MPEG基本是一样的,其不仅能发送高帧数的图片,还能生成动画视频等,功能十分强大。但正因如此,MJPEG对带宽的要求是非常苛刻的,基本相当于T-1,MJPEG信息在数字媒体中占很大的存储量,需要占用大量的存储空间来满足当今庞大用户群体的需求。因此,从另一个角度来说,在某些条件下MJPEG是效率最低的解码/编码器之一。

利用Python语言编写六足的控制源码及其图像处理,C语言编写WI-FI控制部分源码。把各类模块初始化封装在不同的.c和.py文件中,最后压缩成一整套镜像文件的压缩包,将镜像文件导入SD卡中,插入控制机器人的树莓派板即可使用,使用时的调用和初始化更加快速,使得编程的思路更加清晰。模块化编程在程序编写使用中最优的地方在于程序的可阅读力比较强,编程思路能体现得更加明了,对于程序的分模块调试、参数整定和程序修改也非常方便,方便他人阅读和学习编写的程序。

总结与展望:本设计的六足机器人实现的功能包括:手机实时控制、平地行走并实时传输图像至手机APP、蹲姿穿越障碍、翻越不高于机器人的障碍、超声波测距、携带救援物资到达目的地等。当设计完成后,会对产品的有效使用年限和安全度进行合理评估,并对各方面的干扰因素进行排除。其电路的设计及零部件的装配要求准确无误,编写程序并对产品进行整合及封装,对产品进行多次功能调试。研究使用姿态算法、图像处理保证机器人的步态稳固,能适应复杂险境且传回清晰图像。深入了解蜘蛛类“仿生学”,确定机器人步态、步态周期、占地系数、步幅、静态稳定性等参数以确保机器人达到预期的效果。

本项目设计的六足搜救机器人具有一定的实用价值,但其性能还不够优越,远程操作上由于受限于WI-FI距离还不可以完全替代人工的搜救、查验,希望在今后的学习研究中对性能做更优化的开发与升级,使该六足机器人更好的服务于实际监测、搜救之中。

猜你喜欢
树莓派波特率树莓
CAN 总线波特率自适应程序设计
基于树莓派的骑行智能头盔设计
基于树莓派的远程家居控制系统的设计
智能安全防盗探测小车
响应面法优化红树莓酒发酵工艺
基于嵌入式技术的农村医疗系统设计
欧盟:速冻树莓比鲜食树莓市场更好
C*Core芯片SCI串口波特率容限优化
UART波特率发生电路设计
计算机多设备接口波特率不匹配的研究