时间:2024-07-28
任工昌,张 冉,刘 朋,尚亚东
(陕西科技大学机电工程学院,陕西 西安 710021)
在疫情的催化之下以及近几年机器人产业的持续高速增长的基础上,中国服务机器人产业未来将迅速扩张且潜力巨大[1]。同时疫情也刺激了智能配送机器人的市场需求,加速了配送机器人应用的落地[2]。
医用配送机器人可在医院、隔离区等多场景开展物资配送工作,可减少医护人员交叉感染的风险,提高医护人员工作效率,降低劳动强度。目前,配送机器人大都采用移动底盘加车厢的方式,需要人工将物品从药箱取出或放置,无法完全避免与人接触[3]。
本文在拖车式移动底盘的结构上,优化确定了机械臂和摄像头的安装位置,设计了一种循环式车厢搭配机械臂,通过对视觉识别与定位、机械臂轨迹规划等关键技术的研究,完成机器人自主抓取的任务。同时将导航功能与自主抓取功能相结合,实现了配送过程全程无人化。
医用配送机器人自主配送分为自主导航和自主抓取两大功能,导航功能利用移动平台实现,自主抓取采用机械臂加深度摄像头来完成[4],总体方案的示意图如图1所示,总体方案框架如图2所示。
图1 总体方案示意图
图2 总体方案框架图
图3 循环式车厢
循环式车厢采用链轮带动链条传动,如图3所示。利用平行四杆机构的原理,配合平衡机构,保证了循环机构在运行中不会产生过大的晃动,提高了运行的平稳性。同时每个存储箱循环运动,存储箱到达位置相同,相较于传统车厢,箱门开口朝上方便摄像头的识别与定位,简化了机械臂的抓取轨迹,大大提升了机械臂抓取的成功率。
由于机器人移动底盘为拖车型,机械臂的安装位置可选择牵引车头或车厢上,车箱安装在拖车型移动底盘上,机械臂安装在循环车箱的前侧,如图4(b)方案所示,将机械臂的位置安装在车厢前侧,其机械臂的基坐标系难以确定,因为拖车型移动底盘的动力源在牵引车头上,拖车坐标是根据牵引车坐标系和编码器侧的角度转换得到,存在误差。安装在车厢上影响机械臂抓取的成功率。将机械臂安装在牵引车车头更加容易确定机械臂的基坐标系,对抓取成功率的影响较小,且随着车厢的更换而机械臂无需拆装,故最终选择方案(a)。最终确定机器人整体结构方案如图5所示。
图4 机械臂安装示意图
图5 整体结构示意图
医用配送机器人采用上、下位机的结构,上位机采用ROS系统(机器人操作系统)实现对传感器信息的处理和机械臂抓取轨迹的规划。下位机采用STM32F103和Arduino将雷达、摄像头等传感器的信息发送给上位机,并接收上位机的指令,分别驱动移动底盘和机械臂运动。控制系统框架如图6所示。
图6 控制系统总体框架
在Ubuntu16.04中安装Kinetic版本的ROS系统,作为操作系统层的核心,安装各种需要的功能包,其中,move_base包根据传感器反馈的信息进行路径规划,amcl包在已知地图中进行自主定位与导航,Cartographer包实现建图功能[5-6],find_object_2d功能包是实现摄像头目标识别,camera_calibration功能包和easy_handeye实现对相机的内外参的标定以及各种依赖的功能包等,快速的完成上位机ROS系统框架搭建。
MoveIt!含有开源运动规划库OMPL(Open Motion Planning Library),RRT算法是其中比较经典的算法[7]。在使用MoveIt!配置机械臂时,从OMPL库中选择合适的算法,RRT算法不需要对空间进行建模,搜索效率高,选择RRT算法对三维空间中的机械臂进行路径规划。
在二维平面上RRT算法基本思路:
图7 RRT基本原理图
1)从初始位置Pinit开始,以树的形式进行探索;
2)生成随机采样节点Prandom;
3)Pnearest是最接近该随机生成的节点,将两点相连判断否满足障碍物约束;
4)如果满足障碍物约束,则判断两点间距与q搜索步长的大小关系,小于q,则Prandom作为新的节点;
5)两点间距如果大于q,在Pnearest和Prandom连接线上选择距离Pnearest距离为q的点作为新节点Pnew,如此往复进行,如图8所示。
在二维空间中随机采样,对路径进行随机扩展,直到“树枝”覆盖目标区域,选取一条路径作为最终结果。
ROS有大量可以在应用程序中重用的软件包。find_object_2d包是一种基于模板匹配的物体识别和检测的功能包。通过它提供的GUI,可以标记待检测的物体,建立模板库后可用来进行特征检测。功能包提供的检测器节点可检测摄像头图像中的物体,并通过ROS话题、服务通信机制发布物体的位置消息,还可通过深度摄像头估计物体的深度信息和姿态信息,机器臂通过订阅该功能包发布的位姿消息实现对物体的抓取。
在ROS系统中对Kinect V2进行标定,采用camera_calibration功能包,基本原理为张正友标定法,获取摄像头的内参和外参矩阵,消除图像畸变[8]。标定过程如图8。
图8 相机标定过程
采用基于模板匹配的find_object算法功能包对目标进行识别,该算法首先建立模板,提取待测物品的特征点,通过与摄像头传回的图像对比识别待测物品,以三维空间坐标和四元数的方式输出目标的位置和姿态信息。识别效果如图9所示。
图9 视觉识别效果图
安装有ROS系统的Mini PC固定在医用配送机器人牵引车车头上,与远程计算机连接在同一WIFI下,远程计算机通过ssh方式访问Mini PC实现远程监控。启动KinectV2相机和find_object_3d识别算法,物品被Kinect V2识别和定位成功后,可在rviz中看到待抓物品相对于Kinect V2的坐标,机械臂需要让夹爪中心到达该位置夹取物体,通过TF坐标变换和ROS通信机制,将待抓物品位姿信息发布并使机械臂订阅到位姿信息,调用OMPL库的RRT算法自主规划从初始位姿到目标位姿的多组关节位置,再通过ros_lib和arduino通信,使机械臂末端执行机构到达抓取目标物的最终姿态,抓取过程如图10中(a)至(d)所示。
图10 机械臂抓取过程图
本文在拖车式移动底盘的结构上,优化确定了机械臂和摄像头的安装位置,设计了一种循环式车厢搭配机械臂,搭建了配送机器人的控制框架。同时对视觉识别与定位、机械臂轨迹规划等关键技术的研究,将移动机器人定位、导航功能与自主抓取功能相结合,实验验证实现了移动机器人自主抓取及配送过程全程无人化。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!