Bootstrap

基于RK3588/RK3576+FPGA的巡检机器人六自由度机械臂的系统设计

当今巡检机器人机械臂在管廊隧道等复杂环境的作业过程中,经常面临空间狭窄 且障碍物密集的问题,这就要求机械臂具备在狭窄空间进行避障路径规划的能力。此 外,一些不确定性因素如在突发或异常环境条件下,机械臂的全局状态信息感知困难, 这些都会对机械臂避障造成新的影响。对此,本文主要对以下几点展开研究: 
(1)针对机械臂在狭窄空间的避障问题,本文提出了一种改进的RRT*算法,主 要是在原有算法的节点扩展导向机制中引入了贪婪思想,在一定概率下以目标为导向 进行节点扩张。与原来算法相比,改进后的算法在无效的扩张上耗时显著减少,随机 树的扩张变快,算法收敛时间极大缩减,并且优化过程中加入了随机树搜索自适应策 略,能够避免随机树在搜索时陷入局部极小值。 
(2)针对机械臂路径规划过程中的不确定性因素导致机械臂不能感知环境中的全 部信息的问题,本文提出将机械臂在感知不确定情况下的路径规划问题看作一个部分 可观测的马尔可夫决策过程(Partially Observable Markov Decision Process, POMDP),在 POMDP框架下,本文用高斯分布表示信念,值函数用二次函数表示,用卡尔曼滤波描 述信念动力学信念的动态更新,用线性二次高斯方法对信念空间变量进行值迭代求解 得到最优值函数,进而得到最优轨迹的线性控制策略,最终得到局部最优路径。并且 在Matlab和ROS机器人操作系统中的MoveIt!平台上进行了机械臂的运动仿真。 
(3)针对机械臂对检测目标的识别和定位问题,本文对基于YOLOv4算法的改进 措施进行研究,该算法通过对YOLO算法进行网络轻量化,使得改进后的算法在运算 时间上显著缩减,有助于提高任务的实时性。 
(4)本文在软硬件设计的基础上搭建了6自由度机械臂系统,通过ROS机器人操 作系统中的MoveIt!对机械臂模型进行了配置,能够实现机械臂的可视化控制与路径规 划仿真。此外,本文进一步基于该机械臂系统开展了面向管廊中管道的无损检测应用 的开发,对管道的有害气体泄露和液体泄露等进行检测。 

本章节将完成巡检机器人机械臂系统的设计,作为本次研究的核心平台,机械臂 系统将承担着自主避障、无损探伤、人机交互等多种任务,是本次研究的重要一环。 本章将从硬件和软件两个方面对机械臂系统进行研究和开发。  5.1 巡检机器人与机械臂的控制系统设计  5.1.1 系统架构设计 
巡检机器人的机械臂的控制系统由上位机和下位机控制系统构成,其中上位机控 制系统包括机器人系统主控模块和远程上位机监控模块,能够实现远程控制机械臂。 下位机控制系统包括机器人底盘和机械臂的运动控制模块、环境数据采集处理模块, 电源模块分别为各模块供电,整体系统结构如图5.1所示。

5.1.2 控制系统硬件组成 
(1)上位机主控模块 
巡检机器人是由微控制器和高性能处理器为核心组成的分布式平台,架构的设计主要出于两个原因,一是机器人作为一个独立的个体存在,上位机在和人的交互过程 中需要处理大量指令和实时数据,而且需要完成图像处理的功能,因此需要算力强大 的处理器作为上位机系统核心,除此之外,考虑到机器人和机械臂的电机控制和图像 和算法处理所需要的资源不同,机器人的功能繁多,如果把任务处理全都放到上位机 处理器,经常遇到计算能力不足,出现卡顿等现象,如果可以将这些任务拆解,分配 到多个核心中运行可以很好的减轻运行压力。通过一个微控制器和一个性能强大的处 理组成了机器人上位机和下位机的控制系统核心,更好的实现了功耗处理资源的合理 配置。 
在本次研究中设计的机器人下位机模块中,采用stm32微控制器实现传感器驱动和 电机控制等功能,但是深度相机读取的图像信息处理就不适合放在stm32中处理了。于 是在综合考虑之后,本文选择了瑞芯微的RK3588处理器作为机器人上位机平台的主控 制器,RK3588采用四核A76+四核A55 CPU,Mali-G610 GPU,具有丰富的功能接口, 能够满足实验要求。 

2)下位机主控模块 
下位机主控模块是执行机构和传感模块与上位机之间的桥梁,起到采集传感器数 据和上位机指令解析的作用。下位机控制采用微控制器STM32F103ZET6,这款控制器 在工业控制领域应用广泛,包含丰富的资源,片内搭载了大小为64KB的SRAM、 512KB的FLASH,还包括多个定时器和DMA控制器以及通信接口模块。 
 
图5.3  STM32微控制器  (3)电池模块 (3)电池模块 电池模块为上位机和下位机各模块供电,本文选用了三元锂电池组,标称电压和 工作电流为24V/20A,标称容量为40AH。通讯方式为RS485协议,输出电池电压、电 流和剩余电量等信息。 

5.1.4 执行机构控制实现 
在机械臂系统中,下位机控制对上位机而言,一是上位机对执行机构运动的控制,二是获取各个传感器采集到的机器人底盘和机械臂信息。在上位机RK3588的系统开发 中设置了两个线程分别进行管理,互相独立。 
信息采集阶段,下位机STM32通过串口、IIC等通信接口获得编码器、距离传感 器采集到的数据,采用串口通信方式发送给RK3588主控制器,RK3588中启动串口通 信节点,创建数据订阅节点,该节点负责订阅机械臂的关节信息话题/sensor_msgs下的 /JointState消息、机器人底盘运动里程计数值和速度话题/odom,获得机械臂的位姿和 关节速度信息,以及机器人底盘移动里程计和速度信息,通过话题通信将这些数据发 送到上位机平台实现监控。 
控制机械臂时,上位机建立节点发布/joint_state话题,STM32接收话题之后对消息 进行数据解析,将末端位置坐标解析成各个关节角度值进行驱动。控制机器人底盘时, RK3588通过节点发布/cmd_vel话题,由于驱动机器人底盘在直线上运动,所以STM32 只需要对消息数据格式中的X轴上的线速度和角速度进行解析。机器人底盘和机械臂 节点及订阅/发布关系如图5.9所示。

;