APP下载

基于多传感器的6足救援机器人设计

2020-03-05

技术与市场 2020年2期
关键词:主控板控制板树莓

(西北工业大学动力与能源学院航海学院,陕西 西安 710129)

0 引言

近几年,仿生机器人的研制与发展十分迅速,在利用机器人进行灾后废墟搜救方面,由于地形不规则为这些环境共同特点,传统轮式机器人与履带机器人的应用受到限制,而新研制的各式仿生机器人面临的最大问题为体积限制与制作成本,而未来搜救机的发展要求其活动自主性、运动能力,对外部的感知能力与通信能力在其体积减小、成本减少的条件下能得到提高。

1 机器人结构

蜘蛛步足3对,分基节、转节、腿节、膝节、胫节、后跗节、跗节和跗端节(上具爪),共48个自由度。这保证了蜘蛛拥有很高的灵活度,这正是小型6足救援机器人所需要的。当然48个自由度实现自动控制几乎是不可能完成的任务,所以简化了一下设计,共18个自由度,同样可以实现相对灵活的行动,适应复杂地形。关节处有舵机驱动,摄像头位于机器人前方,机身两层夹板之间放置电池。机身尺寸为半径20 cm的圆弧,整体高度24 cm,整体设计图如图1所示。

图1 6足救援机器人机械结构图

2 机器人电路部分与传感器

基于多传感器的6足救援机器人采用3个主要电路板,分别为舵机控制板、主控板(搭载传感器)和树莓派,其中树莓派采用已有商业化产品,其他部分自行设计如下。

2.1 舵机控制板部分

舵机控制板的主控芯片采用STM32F103RBT6芯片作为主控芯片,采用5个定时器产生20路PWM波对舵机进行相应的控制接口。采用7.4V电源进行给舵机进行供电,芯片的供电则通过稳压芯片产生3.3 V和5 V的电压进行供电。可以看出整个电路以STM32单片机作为控制核心,通过W25Q64储存相应的数据包,通过PWM波对舵机进行相应的控制。

2.2 主控板部分

2.2.1 主控板基本电路设计

STM32F103C8T6作为主控芯片,STM32F103C8T6拥有128 K字节的系统内可编程Flash,高达20 K字节的内部SRAM,工作主频最高为72 MHz。芯片具有足够多的I/O口能够满足传感器相应的需求。包括超声波模块,热释红外传感器模块,以及GPS模块。

2.2.2 热释红外传感器模块

热释红外传感器是基于红外线技术的能够感应人体的自动控制模块。本文采用HC-SR501型号的传感器,其采用德国原装进口LHI778探头设计,灵敏度高、可靠性强、超低电压工作模式。

此外,还应用了菲涅尔光学系统,它不仅要检测空间辐射的红外光线聚焦到传感器上的量,还要能敏锐地体现这些红外线能量的变化。菲涅尔光学系统通过对光滑的光学镜面作棱状或柱状处理,将检测空间割裂为一系列交替的狭小红外“感应区”和“空白区”,人在其间移动,就会使有些“感应区”内的红外线时有时无,传感器接受到的是相应变化的光脉冲,从而提高接受灵敏度,使探测距离提高到10~20 m。

2.2.3 超声波模块

在超声波模块中,开始给trig一个大于10 μs的脉冲,使模块开始工作,同时开启定时器开始计时,将外部中断接到echo引脚上,当模块检测到回波时echo被置高电平,这时外部中断被触发,进入中断程序,因此我们可以在中断程序中将时间读出来,有了时间就可以根据distance=v×t/2,计算出距离,距离值就可以用于进一步的工作。

2.2.4 GPS模块

GPS模块我们采用NEO-6M UBLOX芯片模块来实现。具有灵敏度高、低功耗、小型化的特点,其极高精度灵敏度大大扩大了其定位的覆盖面,在普通GPS接受模块不能定位的地方,都能够进行高精度定位。模块的灵敏度高、小静态飘逸、低功耗以及轻巧的体积,非常适用于机器人使用。

使用:NEO-6M UBLOX模块使用串口协议进行通信。可向用户传回GSV、RMC、GSA、GGA、GLL、VTG等数据,但不会用到所有的数据,因为接受所有的数据可能对其造成麻烦。我们只需要使用串口协议,通过16字节的指令包以特定的波特率进行访问,就可以得到相应的数据,然后得出机器人位置。

3 通信机制

在通信息量方面我们使用自己设计的通信协议,主要分为以下2个部分。

3.1 舵机控制板和主控板通信协议

在舵机控制板通信协议部分,我们通过将机器人的每一个动作都进行相应的打包,以及相应的储存。通过其主控板的串口通信来得到相应的控制。舵机控制板的基本协议格式为:0×55 0×55 0×06 0×aa 0×bb 0×00。其中0×aa为相应的动作组,我们将机器人的每一个动作封装成一个相应的动作组数据,数据中包括机器人动作的速度,角度以及相应的时间。0×bb为动作执行次数。每一个动作组文件中的基本数据为0×FF 0×FF 0×01 0×aa 0×bb 0×cc 0×02 0×aa 0×bb 0×cc 0×03 0×aa 0×bb 0×cc…其中0×aa 0×bb为角度数据,分别为高位和低位,将舵机角度分为1 500分。0×cc为舵机运动速度,即舵机运行到该位置的时间。如此,我们能够将机器人的动作一个个封装起来。

当主控板发送动作控制包,舵机控制板即可以识别相应的数据包来识别。在数据包中,难免有坏包。我们通过每一位进行相应的flag位定位来进行对于动作包的识别。

3.2 主控板和树莓派通信协议

对于树莓派和主控板的协议主要是GPS数据和树莓派发送停止指令包。其中GPS数据主要为经纬度,其包头为0×ff 0×ff,后面通过2个16进制表示经度,而后面的2个16进制表示维度,最后的为校验和。校验和的计算公式为CheckSum=~(0×aa 0×bb 0×cc 0×dd)即为四位数据和取反。

而停止指令包,即为舵机控制板的数据停止包。为0×55 0×55 0×07 0×00来进行相应的控制,主控板指令包识别方法同舵机控制板一样,判断完成后,即进行相应停止包的发送。使机器人停止运动,并且返回GPS数据包。

4 软件设计

本基于多传感器的6足救援机器人软件设计主要分为动作库搭建和受害者识别两部分。

4.1 动作库搭建

动作库搭建是运用一系列的运动公式(机器人运动方程),写出用PWM波控制舵机的底层代码,然后将这些代码以函数的形式封装起来,在控制机器人运动的时候只需要给函数相应的参数就可以控制其运动。利用C#编写动作调试上位机,通过不断的实际测试,得出相应的动作参数,将这些参数储存,封装起来。程序中只留出动作控制接口,主控板只需要发送相应的指令,调用对应的函数即可。

4.2 受害者识别

本项目在树莓派下进行图像处理,在对于树莓派的图像识别中,我们给树莓派配置相应的python库以及OpenCV安装包,在vim下,我们使用python交互式编程。更改树莓派的config.int文件来使用我们的串口,设置其波特率为115 200来配合主控板进行相应的通信功能和识别功能。

图像识别部分,我们用树莓派做上位机进行相应的数据识别,在视觉编程中,首先,我们调用事先训练好的识别模型,然后进行相应的人脸识别。人脸识别通过直方图均衡化也就是调整图像的灰阶分布,使得其在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的,对于对比度较低的图像更适合用其来增强图像细节。

猜你喜欢

主控板控制板树莓
一种快速可靠的主控冗余及切换机制的设计与实现
重庆轨道交通闸机三杆机芯主控板的技术自主化探究
基于树莓派的骑行智能头盔设计
轨道交通AFC导向标识控制板设计
升级双主控板交换机ISO
基于树莓派的远程家居控制系统的设计
一种集成脚本控制单元的设计与实现
响应面法优化红树莓酒发酵工艺
一种机载SAR中心控制板的设计
DX-600发射机FCOG6100控制板的原理与应用