张 振 张雨晴 高金凤
(浙江理工大学机械与自动控制学院 杭州 310018)
近五十年以来,世界各国都开始了对移动机械臂的研究与设计,并取得了丰硕的成果。2016 年KUKA 公司推出了一款全向移动底盘的移动械臂KMR iiwa,该产品可以帮助人们完成货物搬运、机床换刀等工作,极大地节省了人力物力[1]。此外,西班牙一公司开发了一款采摘草莓的机器人,通过机器学习识别已经成熟的草莓,同时机械臂不会与草莓接触而是直接剪断草莓的茎,其效率以及采摘质量超过了人工采摘的效果[2]。如今在智能服务、太空室外作业、救援排查排爆等方面移动机械臂都有广泛的应用。由于我国机器人领域发展较晚,移动机械臂发展现状与国外相比还存在着很多不足,但是受到“中国制造2025”战略的鼓舞,移动机械臂小车发展速度十分迅猛,并且取得了一系列的成果。如京东物流在国内首先成立了全流程无人仓,机器人对快递上的信息进行识别,再将其放到指定区域,前进过程中避免碰撞[3~6]。
综合国内外的研究现状,其中如何使移动机械臂提高运动的精度、规划出安全可靠的移动路径已成为研究的趋势。基于此本文研究和设计可用于室内的移动机械臂小车。本设计采用ROS系统,该系统具有松耦合、多语言支持、代码开源且复用等优点。
本设计小车底盘是由麦克纳姆轮构成,它具有多方向移动的优点,运动灵敏,受场地限制比较小,其结构示意图如图1所示。
图1 麦克纳姆轮结构示意图
2.1 底盘运动的分解
机械臂小车的运动是一个平面的运动,底盘运动的分解如图2所示。
图2 底盘运动分解图
其中→ 表示机械臂小车的移动速度,→ 表示机械臂小车沿x轴方向运动的速度,表示沿y轴方向的速度,表示机械臂小车围着z轴方向旋转的角速度。、、三个变量表示的是机械臂小车底盘的几何中心的速度。
2.2 计算轮子轴心位置的速度
机械臂小车的底盘到麦克纳姆轮的轴心运动分解如图3(以右前轮为例)。定义→为几何中心指向轮子轴心的矢量;
→为轮子轴心的运动速度矢量;
为轮子轴心沿垂直→的方向(即切线方向)的速度分量。由此可以计算出:
图3 轮子轴心速度分解图
分别计算出x、y轴的分量为
同理也可以计算出其它三个轮子的轴心速度。
2.3 计算辊子的速度
如图4 所示为辊子运动分解图,根据轮子的轴心速度,可以分解出辊子方向的速度⇀和垂直于辊子方向的速度→。由于垂直方向的速度使辊子绕自身轴线滚动,辊子可以绕自身轴线运动,所以忽略不计。
图4 辊子运动分解图
由此可以得到:
其中:̂为沿辊子方向的单位矢量。
2.4 计算轮子的速度
如图5 所示为小车的运动学模型,其中a为机械臂小车几何中心到到轮子轴心的水平距离,b为小车几何中心到轮子轴心的垂直距离。
图5 小车的运动学模型
其中:为轮子的转速。
由式(1)~(4),可得四个轮子的转速为[7~9]
如图6 所示为机械臂小车系统框架。其中采用Jetson Nano 为上位机进行系统控制如语音信号的接收、导航算法、路径规划等,STM32单片机及其外围电路作为下位机进行传感器数据的获取、运动学求解、电机控制、舵机控制等底层驱动功能,Jet⁃son Nano 与STM32 通过串口进行通信以及传输数据,整个机械臂小车系统由锂电池供电。
图6 机械臂小车系统框架
本设计的系统软件设计是在Ubuntu 操作系统上进行的,并搭载了ROS(机器人操作系统)框架。其中复杂的、占用内存较大的程序算法在电脑上运行,大大降低了小车的负载。基于ROS的移动机械臂小车软件系统设计整体划分为地图的构建、机器人的定位、机器人路径规划三个部分。
4.1 地图构建
建立一张完整准确的地图是机械臂小车进行运动的前提。SLAM(同步定位与建图)适用于室内复杂的环境进行建图。
本设计采用的是Gmapping 功能包建立小车周围环境的地图,Gmapping功能包是基于Rao-Black⁃wellized 粒子滤波算法,通过把雷达、IMU 以及里程计信息采集到的数据传输到上位机Jetson Nano中,上位机进行计算同时输出二维栅格地图。相对比其它算法来说具有鲁棒性高,对雷达要求比较低,适用于建立室内较小的地图[10~11]。
4.2 机器人定位
本次设计机械臂小车定位采用的算法Adap⁃tive Monte Carlo Localization(自适应蒙特卡洛定位)即AMCL,它用于粒子滤波器跟踪机械臂小车在已知地图上的位姿。AMCL 通过订阅地图的信息以及tf 坐标间接的订阅里程计的信息,然后经过tf 的坐标变换实现机械臂小车在地图中的定位[12]。
4.3 机器人路径规划
小车建立好地图后,就可以在二维栅格地图规划出一条从起点到终点的最优路径,并在移动的过程中雷达不断扫描周围环境信息进行实时避障。路径规划分为全局最优路径规划和本地实时最优路径规划两种模式。
4.3.1 全局最优路径规划
本设计采用的全局最优路径规划算法玮A*算法,它是一种静态网格中求解最短路径最有效的直接搜索方法,被广泛的用于室内机器人路径搜索[13~15]。路径评价公式为
其中:f(n)是指从起点经状态n到终点的代价估计,g(n)是在状态空间中从起点到状态n的实际代价,h(n)是从状态n到终点的最佳路径的估计代价。
4.3.2 局部路径规划
机械臂小车在自主导航的过程中可能会出现障碍物阻碍机械臂小车前进,导致其偏离原来设定的全局最优路径,本地实时最优路径规划可以解决相关问题。本设计采用的是DWA(动态窗口法)算法,它是基于速度来建立机械臂小车的模型,其原理主要是根据机械臂小车速度设定、电机性能以及避障的性能对机械臂小车进行速度采样。即在速度空间(v,w)中采样多种速度,并模拟这些速度在一段时间内的运动路径,然后根据评价函数(7)对这些路径筛选,最后选出最优的速度采样值传输给STM32下位机驱动电机进行运动[16]。
通过使用ROS 系统下的Rviz 可视化工具可以查看生成的二维栅格地图以及传感器的信息。
首先Gmapping 建立实验室环境的地图,给定机械臂小车目标点的坐标后,机械臂小车会在建立好的地图中机械臂小车进行自主导航,如图7 所示为机械臂小车正在进行路径规划,其中红色线为A*算法进行全局路径的规划,绿色线为DWA 算法进行本地路径规划实时避障。
图7 小车路径规划
经过系统的测试小车在复杂的办公环境中规划出了比较良好的路径,并且可以成功地避开障碍物准确地到达终点,机械臂小车到达目标点后机械臂对物品进行抓取,并返回初始位置,如图8 所示。根据实验的结果,对机械臂小车的实时定位建图导航和机械臂的抓取进行了实地实验。实验结果表明,机械臂小车具备良好的建图与定位精度,可有效地完成自主导航与机械臂抓取功能。
图8 机械臂小车抓取物品
本文设计了一款基于ROS的移动机械臂小车,该小车具有自主导航避障和机械臂抓取的功能。经过测试小车运行平稳可靠,具有良好的导航效果,提高了机械臂的灵活性,能够应用在不同的场所内如工厂仓库、大型超市等,相信在未来能广泛地应用。
猜你喜欢辊子轴心轮子两个轮子“走路”小学科学(学生版)(2021年7期)2021-07-28基于UG的麦克纳姆轮有限元分析和结构优化*精密制造与自动化(2020年2期)2020-06-30没有轮子的挖挖幼儿园(2020年22期)2020-03-29读北岛:一只轮子,寻找另一只轮子中学语文(2019年31期)2019-12-05钢结构轴心受压构件稳定性分析建材发展导向(2019年10期)2019-08-24板坯热送转弯辊道的设计计算中国重型装备(2019年2期)2019-05-13Mecanum轮结构特征参数建模方法研究机械设计与制造(2018年11期)2018-11-12CFRP和角钢复合加固混凝土矩形柱轴心受压承载力西安建筑科技大学学报(自然科学版)(2016年5期)2016-11-10以门静脉-肠系膜上静脉为轴心的腹腔镜胰十二指肠切除术16例报道腹腔镜外科杂志(2016年10期)2016-06-01压延退火窑辊子更换工具的实践建筑工程技术与设计(2015年22期)2015-10-21