基于Freertos与ARM的智能探索机器人系统设计与实现

2021-06-18 06:16琚子晗白贺杨喜童
机械工程师 2021年6期
关键词:堆栈树莓底盘

琚子晗, 白贺, 杨喜童

(哈尔滨理工大学,哈尔滨150080)

0 引言

随着人工智能和计算机技术的发展,探索机器人在各个方面都得到了广泛运用。智能探索机器人可以完成大部分的地形探索,在一些危险地带、地形崎岖狭小的地带,机器人完全可以代替人类完成危险的探索任务,减少一系列安全问题,提高探索工作的效率。

智能探索机器人可用于对未知环境的探索和研究,基于SLAM技术的探索机器人可用于导航和捕获目标[1],采用六足仿生机器人制做的全地形智能探索机器人[2],能满足基本的探索任务需求。对于智能移动机器如控制系统的研究,可以基于AVR单片机设计一个两轮驱动移动机器人[3]。环境建模和自主导航也属于智能探索机器人研究课题,可以采用激光雷达实现避障,并且采用卡尔曼滤波提高定位精度[4]。针对复杂地形给机器人带来的机动性和安全性问题,文献[5]对全地形移动机器人建模与控制研究做了全面综述,并分析了国内外研究现状,特别是近年来所取得的最新成果,指出了目前存在的问题及将来可能的发展趋势。Freertos操作系统是一个嵌入式系统使用的开源实时操作系统,可以被用在各种微控制器上[7],与RISC-V微控制器共同设计红外耳温测量系统[7],与机电传感器配合可组成人体辅助机械臂系统[8],采用了多任务调度,并且系统中各关键节点采用独立任务完成。也可用于与ARM芯片控制器组成智能搬运小车[9],根据需求也满足了一定的搬运任务。

本文系统基于Freertos低延时操作系统和ARM系列处理器,能实时获取周边环境信息,实时反馈数据,具备远程控制功能。采用多任务调度机制,并且任务流程规范,任务优先级清晰分明。使得机器人系统变得任务多样化,降低了多中断带来的死机风险,有效地提高了系统的鲁棒性。

1 系统整体设计

本文系统总体结构如图1所示。采用ARM系列的单片机作为核心控制器,结合树莓派作为运算设备获取视频数据,采用Freertos操作系统进行任务控制,通过4个单元对机器人系统进行整体控制,完成一系列的探索任务和需求。

图1 智能探索机器人系统总体结构图

动作单元主要由机械臂构成,机械臂由舵机模块构成。传感器单元由各种传感器模块组成,通过不同传感器可以获取不同信息。通信单元包括机器人上面各个硬件之间的通信及机器人与上位机终端的通信。底盘单元采用履带底盘,加上减震机构,从而实现全地形的移动,可以广泛应用于各种复杂地段。视频数据通过树莓派连接WiFi后内网上传到指定IP地址,上位机终端打开IP地址即刻实时查看视频数据。

在控制过程中,通过串口获取遥控器控制数据,并且将控制数据转化为底盘单元或者动作单元的控制命令,机器人会根据命令来完成相应动作,同时传感器任务会将当前获取的环境数据进行分析,经过滤波筛出有用信息,通过蓝牙串口发送回上位机,从而完成多样化的探索任务。

2 硬件设计

本文系统采用ARM公司的STM32F427作为核心控制器,基于系统需求设计了机械臂和履带底盘。配合一系列外设传感器,无线传输模块,完成基础的机器人探索任务需求。并且通过机器人端运算设备可以实时查看视频数据。

2.1 机械臂设计

机械臂采用模块化设计,可以根据环境需求组装不同自由度的机械臂,同时具备一定的伸缩功能,如图2所示。机械臂的抓取结构为基于丝杠结构的双手爪,是一个可开合结构,两机械爪结构间有可伸缩钻孔装置,方便在完成探索任务的同时完成一定量的作业任务。

图2 机械臂三维设计图

2.2 履带底盘设计

该设计是基于适应全地形的减震底盘(如图3),包含支架、减震装置和驱动装置,履带底盘可以广泛适用于大部分陆地地形。减震装置采用半扭杆式悬挂系统,通过轮组之间的拉簧,可以调整履带倾角,有效减少地面崎岖带来的阻力,从而可以较好地越过障碍物。

图3 履带底盘减震机构

3 软件设计

3.1 Freertos系统的优点

本系统在Freertos操作系统的基础上进行机器人系统开发。Freertos操作系统是一个嵌入式系统使用的开源实时操作系统,Freertos支持没有限制的任务数量和没有限制的任务优先级,我们可以任意支配单片机外设的使用数量和该外设的重要程度,方便后期进行执行跟踪和堆栈溢出检测。在整个机器人系统使用过程中,根据探索需求分为多个任务,每个任务需要设置一定的优先级和堆栈资源,由操作系统来分配每个任务所需的系统资源,根据优先级进行任务调度。

3.2 任务功能设计

根据本系统的基础探索要求,设置了6个主要任务,及2个中断任务,数据获取任务和看门狗任务,系统总框图如图4所示。

在控制过程中,通过串口获取遥控器控制数据,并且将控制数据转化为底盘单元或者动作单元的控制命令,机器人会根据命令来完成相应动作,同时传感器任务会将当前获取的环境数据进行分析,经过滤波筛出有用信息,通过蓝牙串口发送回上位机,从而完成多样化的探索任务。看门狗任务主要是用于防止系统出现不可预料的问题而死机,然后自动复位重置系统。

3.3 任务优先级分配,堆栈空间分配

在Freertos操作系统中,任务的堆栈空间是需要事先设置好的,然后系统统一在单片机资源中申请内存,同时系统会根据任务设置的堆栈大小分配栈空间。根据函数调用量的大小、局部变量的多少及数据计算量的大小来给机器人系统中6个任务设置堆栈空间大小,最终分配情况如表1所示。

图4 系统任务设计图

表1 Freertos系统任务堆栈空间分配及优先级分配

系统初始化任务是所有外设初始化和任务初始化必需的任务,并且为了不让其受单片机资源干扰,任务会在临界区中进行。并且因为初始化任务仅仅执行一次,在执行后需要用vTaskDelete函数删除,因此给予最低的优先级即可。

4 探索机器人行为功能设计

4.1 避障功能设计

根据被探测环境设置一定的障碍距离,放置在车身前方的3个传感器数据可以实时获取与机器人向前探测到障碍的距离,如图5所示。通过读取机器人前身3个传感器数值,与在主控中预设的障碍距离做比较,如果小于预设值就说明前方有障碍,向检测无障碍方向行驶。如果多个传感器均小于预设值,说明前方堵塞无法前进,持续转向直到传感器均反馈无障碍为止,再进行探索。

图5 避障三维模拟图

核心代码:

4.2 摄像头与热成像实时视频

采用树莓派作为机器人视频数据获取端。摄像头与热成像都通过提前写好的python程序在树莓派中进行调控,图6为树莓派获取到的热成像视频数据,获取的视频可以通过vlc进行播放。然后将vlc获取的流媒体通过WiFi内网进行网络串流,只要上位机终端与树莓派处于同一WiFi网络下,即可通过树莓派的IP地址实时获取到树莓派连接的视频数据。

图6 热成像视频数据

4.3 探测数据分析与打包发送

机器人获取到实时的传感器数据后,会进行一系列的滤波分析后通过蓝牙串口来与上位机终端进行数据交互,上位机会通过发送控制值来控制机器人,机器人会将获取的数据进行打包发送到上位机。数据打包遵循一定的格式,具体发送数据格式如表2所示。

表2 数据打包格式规范

5 结论

人类对于未知环境的探索需求日益增长,基于ARM核心处理器和Freertos操作系统设计了一种智能探索机器人系统,并且设计了履带底盘、机械臂等硬件设备,根据任务需求设计了基本的系统运行任务。经过多次的调试和测试验证后,确定了本系统可以满足一定的探索任务需求,并且在一定的数据干扰下仍然可以做到稳定运行,数据传输稳定,任务堆栈不会溢出。本系统可用于各种未知地带的考察探索,不仅可以在复杂的野外地形环境中保持工作,还可以代替人类进入一些危险地带完成一定的探索任务,为安全的环境考察提供了有效的解决办法。

猜你喜欢
堆栈树莓底盘
基于行为监测的嵌入式操作系统堆栈溢出测试*
基于树莓派的骑行智能头盔设计
基于树莓派的远程家居控制系统的设计
基于堆栈自编码降维的武器装备体系效能预测
铿锵回答“关键五问”夯实脱贫攻坚底盘
依维柯New Daily底盘改装房车中国首秀
响应面法优化红树莓酒发酵工艺
底盘测功机的发展及应用
瑞风S5车底盘异响
欧盟:速冻树莓比鲜食树莓市场更好