吴凯,周悦,郭威,李广伟,孙洪鸣
(1.上海海洋大学工程学院,上海 201306;2.中国科学院深海科学与工程研究所,三亚 572000;3.中国科学院大学,北京 100049)
我国海岸带领域面积宽广、资源丰富,是经济发展的“黄金地带”[1]。近年来,各国对海岸带开发力度逐渐加大,但由于海岸带环境复杂,人工勘测难度大,作业成本高等问题。因此,作为重要载体和技术手段的海岸带勘测装备的研发尤为重要。
为满足海岸带大范围、无人化移动考察作业需求,在海岸带履带机器人载体平台基础上,基于LabVIEW开发上位机人机交互终端,使用ARMCortex-M4内核的STM32F407芯片作为控制核心,软件上基于FreeRTOS实时操作系统开发,设计了一套结构简单、通信可靠、实时性强的履带机器人控制系统,从而实现其近程端、远程端的有效运动控制、数据获取、存储、显示等功能。
海岸带履带机器人载体平台采用克里斯蒂全独立悬挂设计,车体两侧使用内嵌凯夫拉纤维橡胶一体成型履带韧性强、耐磨性好。承重轮主要用于载体支撑及履带规正,以保证其运动的平稳性。诱导轮通过调节履带的张紧度以适应不同路况的越障需求。托链轮用于托起履带上部部分重力,避免履带下垂。载体平台的驱动力是由两台直流无刷电机经减速器将动力传递给驱动轮。同时,合理的底盘大小保证了运动控制系统执行器和搭载的各类传感器有充裕的空间[2-3]。海岸带履带机器人载体平台及主要参数如图1、表1所示。
图1 海岸带履带机器人载体平台
表1 载体平台主要参数
海岸带履带机器人作为一种新型的海岸带探测装备,其控制系统设计主要为实现远程模式下履带机器人的运动控制、定点精细化勘测以及应对突发状况下履带机器人的回收控制。这要求控制系统及设备对采集的数据进行快速处理并上报至上位机终端;要求上位机有效的对下位机进行控制以及对下位机上传的各种数据进行记录、存储和显示;要求各个传感器依据某一标准协议及接口与主控制器进行通信。
依据控制功能及要求,最终将控制系统划分为五大单元:
1)控制单元:用于近程遥控端、上位机远程端对履带机器人实时监视与运动控制;
2)通信单元:用于主控制器与上位机终端之间的4G网络通信,以及主控制器与GPS、位姿传感器、电机控制器的串行通信;
3)数据采集单元:包括用于采集作业环境的图像信息以及自身的位置和姿态信息;
4)电源单元:为各类传感器、控制器、电机等用电模块供电;
5)电机控制单元:用于控制两台直流无刷电机运动。
海岸带履带机器人控制系统硬件设计采用模块化设计思想[4,5],依据控制系统5大功能,设计控制单元、数据采集单元、通信单元、电机控制单元、电源单元的硬件电路,这样既便于硬件安装、调试及维护,又可为后续海岸带履带机器人系统功能的升级优化奠定基础。控制系统硬件架构如图2所示。
图2 控制系统硬件架构图
为了满足以上控制应用需求,主控制器选用高性能、低功耗、实时响应ARMCortex内核的STM32F407ZGT6作为控制核心[6,7],该芯片拥有高速数据缓存、168MHz高速运行频率、自带FPU与DSP指令集、丰富的外设接口等特点。各项参数指标与实践表明,STM32F407ZGT6芯片是一款功能强大且适用于海岸带履带机器人主控制器的芯片。
采集电路主要包括采集位置、位姿、图像等数据信息电路。由于控制系统对位置、位姿数据采集精度要求较高,而GPS信号经过对流层时受到水汽分布不均的影响,在短距离设置基站时可以通过使用差分方法消除这一误差,但中长距离、单点定位时我国设置参考基站并不能满足有要求精度的模型。经过试验,本文选用体积小、性能优异的ATK-S1216F8-BD GPS/北斗双模定位芯片。位姿数据采集选用Bosch公司BMX055自带数字运动处理器及硬件加速引擎的MPU6050芯片,该芯片内部具有3轴陀螺仪和3轴加速度计。通过试验,该芯片能够满足采集的速度与精度要求,适用于该控制系统。由于海岸带履带机器人需要在夜间作业,环境信息的图像采集也存在数据信息量较大、MCU处理资源不足问题,为减轻MCU负担提高其实时处理的能力,本文选用HIKVISION 1920*1080px分辨率、内置锂电池、微光全彩夜视、超长待机的4G高清摄像头。通过验证,该4G高清摄像头是对海岸带履带机器人无线图像采集的一种有效解决方案。
通信电路设计包括4G无线通信、RS232通信、IIC总线通信电路[8]。其中,4G无线通信电路负责将图像信息上传至上位机以及主控制器与上位机终端的数据交互;IIC和RS232通信电路分别负责将采集的位姿数据和GPS数据经主控制器打包上传至上位机。使用3种通信协同合作使得该控制系统信号传输速率快、通信稳定可靠。
履带机器人运动依靠两台直流无刷电机差速旋转实现,因此电机控制器需要同时满足控制两台直流无刷电机运动,同时采集转子位置反馈的霍尔信号及增量式编码器信号以实现电机速度闭环控制。本文选用了DC48DPW50BL-PC2智能型双直流无刷电机控制器,该控制器可以同时控制两台直流无刷电机,支持模拟量、脉冲量以及数字量输入。
考虑到海岸带履带机器人需要执行远程情况下的运动控制、定点精细化勘测,以及应对突发状况下近程端履带机器人的回收,将系统控制模式设计为远程端控制和近程端控制两种方式。如图2所示,远程端控制模式采用数字量输入控制方式,当主控制器接收到上位机终端指令时,经过SP3232(TTL电平转RS232电平模块)将解析的数据下达至电机控制器。而近程端遥控模式采用RC航模遥控控制方式即航模发射器发出脉宽信号,RC航模Radio接收机将接收的脉宽信号传至电机控制器模拟量输入端,设定接收1.0ms脉宽信号时对应于操纵杆的最小速度,2.0ms脉宽时对应于操纵杆的最大速度,通过调节1.0ms~2.0ms脉宽实现电机的速度控制[9,10]。
根据硬件电路连接需求,将主控制器I/O引脚进行分配,引脚分配如表2所示。
表2 主控制器I/O引脚分配表
下位机基于FreeRTOS嵌入式实时操作系统进行设计。FreeRTOS是一个可裁剪、轻量级、调度策略灵活的实时嵌入式操作系统内核,具有任务通知、消息队列、信号量、时间片调度等功能[11]。依据控制需求设计4个应用任务:初始化任务、数据采集任务、电机控制任务和通信任务,利用其多任务(scheduler)管理机制协调各个工作任务,可以提高系统的实时性。基于FreeRTOS操作系统的软件结构如图3所示。
图3 履带机器人控制器软件结构图
1)系统初始化
初始化任务主要完成系统的初始化工作。初始化主要包括系统时钟、串口、IIC总线、GPIO引脚、定时器、创建应用任务后挂起自身任务等。
2)数据采集任
数据采集任务主要包括对GPS数据、MPU6050位姿数据以及电机控制器数据的采集。其中,GPS数据通过ATKS1216F8-BD模块进行采集,采集的数据包括北京时间、经度、纬度、海拔高度以及运动速度。位姿数据通过MPU6050芯片采集,采集的数据包括俯仰角、横滚角、航向角。而电机控制器数据采集包括左右电机速度,电压和电流等。采集任务流程如图4所示。
图4 采集任务流程图
3)电机控制任务
电机控制任务通过上位机下达控制指令实现。上位机访问电机控制器时,双方采用应答机制进行交互,对于有要求应答的查询,例如读取速度、电流等,回复查询被认为是命令的响应。对于不需要回复的命令,例如速度设置,控制器应答数据帧将在每个回车符之后以“+”作为命令响应结束。当命令或查询已被接收,但不能被识别或因为某种原因不能被接收时,控制器应答数据帧将在回车符后以“-”提示错误。电机控制任务流程如图5所示。
图5 电机控制任务流程图
4)通信任务
通信任务包括RS232通信,4G通信和IIC通信3种方式。其中,4G DTU模块使用RS232转4G双向透传,实现上位机终端与下位机4G收发模块之间的远程通信。RS232通信任务运行时,将等待USART中断回调函数通知,当上位机终端下达控制指令时,会触发USART接收中断,在中断回调函数中通知RS232通信任务。如果RS232通信任务未就绪或未运行则立即退出中断,进行任务调度使RS232通信任务就绪获得主控制器控制权,然后主控制器根据通信协议解析收到的指令帧从而控制各个设备。IIC通信任务负责将位姿信息传至主控制器,根据任务要求,设置1s定时采集一次位姿数据,然后主控制器打包数据将其放入发送队列中,等待USART发送函数将队列中的数据依次发送至上位机终端。
软件控制协议帧采用ASCII编码格式,帧长度规定为变长,以/r/n为结束符,通信协议编码如表3所示。
表3 通信协议编码表
其中,数据帧的nn 和mm 分别表示通道1 和通道2从-1000r/min到1000r/min的转速给定值,cc表示电机通道值,aa表示设备的on/off。
上位机选用NI公司LabVIEW集成开发环境开发,能显著降低控制系统开发周期及维护成本[12]。为了调试时方便读取通信的数据帧以及运动控制时提高操作的便捷性,上位机设计了程序调试和运动控制两个窗口。
在程序调试窗口中,为了方便串口配置及通信,使用VISA函数设计了支持自动识别串口,可以设置常用9600、115200以及自定义波特率、校验位、数据位和停止位,并且数据帧发送形式设计了可以支持ASCII码或十六进制的可选按钮。调试时通过串口将指令帧从数据发送区下达至海岸带履带机器人主控制器,同时机器人的运动状态、各个传感器数据、电机的运行状态也将以数据帧形式响应在程序调试窗口数据显示区。程序调试窗口设计主要包括:串口设置区、数据显示区、数据发送区等。
而运动控制窗口为了易于实现海岸带履带机器人基本运动控制,行驶控制区设计了4个代表履带机器人前进、后退、左转、右转的运动控制按钮,操作员通过4个控制按钮可以实时调整履带机器人的运行方向及姿态。考虑实验后方便对履带机器人控制系统性能进行分析,设计传感器数据区用于记录履带机器人每个时刻的状态及各个传感器数据,同时GPS、位姿传感器采集的数据信息将在轨迹显示区、位姿显示区中动态显示。运动控制窗口的设计包括:串口设置区、行驶控制区、传感器数据区、轨迹显示区、位姿显示区等。上位机监控终端架构如图6所示。
图6 上位机监控终端架构
为验证控制系统有效性,本文首先对控制系统的各个功能模块进行调试,其次正确连接控制器、各类传感器以及上位机硬件电路进行整体测试,然后对上位机和下位机进行系统联调,最后将海岸带履带机器人置于海岸滩涂进行实验测试,实验如图7所示。
图7 海岸带机器人实验
实验时首先对GPS、位姿传感器进行调试,通过将GPS和位姿任务程序下载至主控制器,正确连接硬件电路、设置通信参数,用开发的上位机程序调试窗口进行数据读取,读取结果如图8所示。由程序调试窗口数据接收区可以看到GPS和位姿传感器数据每间隔1s上发一次。GPS数据的授时时间、经度、纬度、海拔高度与GPS校准仪测量的数据基本一致。位姿传感器的航向角、俯仰角、横滚角数据也与位姿标定传感器测量的数据相同。
图8 程序调试界面
最后,将海岸带履带机器人置于滩涂进行实验,通过上位机终端的运动控制窗口下达前进运动指令,履带机器人在实验滩涂从起始点以0.5m/s速度平稳出发,实验员通过视频图像及上位机终端界面操作4个运动控制按钮,使履带机器人按照作业路径安全平稳行驶,此间控制系统通信稳定,各个传感器数据采集及上位机显示正常,履带机器人实验运动轨迹曲线实时显示于上位机运动控制窗口地图中,如图9所示。传感器数据区记录其运动轨迹经纬度坐标点,使用Matlab绘制坐标曲线与上位机地图轨迹相同,如图10所示。
图9 运动控制界面
图10 经、纬度坐标曲线图。
本文针对海岸带大范围、无人化勘测作业需求,对海岸带履带机器人控制系统进行设计、实现与实验。下位机基于ARM Cortex-M4内核STM32F407芯片,围绕功能需求进行了系统的硬件与软件设计。其中,软件部分采用FreeRTOS嵌入式实时操作系统进行模块化编程,提高了MCU资源的利用率及事件的实时响应速度。同时采用模块化设计思想,根据不同勘测需求搭载不同传感器,克服了单一固定数据采集的难题,也便于后期系统的维护以及功能的升级。上位机采用LabVIEW集成开发环境进行监控终端的设计,缩短了控制系统程序调试周期,提高了开发效率。实验测试结果表明,设计的控制系统通信可靠、实时性强、工作性能稳定、上位机终端控制效果理想。