一种改进蒙特卡洛法求解机械臂工作空间的优化方法
文献发布时间:2023-06-19 13:27:45
技术领域
本发明属于机器人机械臂工作空间的求解优化方法技术领域,具体涉及一种基于MATLAB的机械臂工作空间优化方法。
背景技术
近些年求解机械臂工作空间得到快速发展,蒙特卡洛法在求解机械臂工作空间上发挥着很重要的作用。
但求解的工作空间解集只能趋近结果但不能得到真实结果。
机械臂的工作空间在机器人的工作精度上面发挥着很重要的作用,是评价机器人优良的重要指标,由于传统蒙特卡洛法结构简单,求解得到的机械臂工作空间内随机点分布不均造成的边界点附近精度降低。
发明内容
本发明所要解决的技术问题是提出一种在工作空间分层后的每个层域内重新生成空间随机点,从而有效提高了工作空间边界处随机点分布的密度,解决了由于工作空间随机点分布不均造成的边界点附近精度降低。
机械臂的各个关节在一定取值范围内运动, 基于蒙特卡洛法对其工作空间进行模拟,并通过机器人正向运动学方程求解可以清晰、直观的得到机器人末端参考点坐标值的集合,这些坐标值包络的空间就代表了机器人的工作空间。
臂末端参考点在基础坐标系中可以表示为
传统蒙特卡洛法求解工作空间步骤如下。
利用MATLAB中随机函数,生成机器人关节变量随机值:
qi=q
式中:
q为关节随机变量;
q
i=1,…,D,D为机器人关节节数。
基于关节角计算机械臂末端执行器的笛卡尔位置和姿态产生的关节空间随机点,进而求得机械臂末端位置的随机点,可以通过这些随机点求得工作空间的边界。
基于上一步生成的关节角随机值,通过机器人正向运动学方程可求得机械臂末端巡检机构参考点在空间中的位置坐标P(x,y,z)。
通过MATLAB中的三维笛卡尔坐标系将每个巡检机构末端参考点的位置坐标清晰、明确描绘出机器人工作空间。
在求得的大量工作空间随机点中可以提取到分布在工作空间边界附近的随机点,将提取到的边界点在MATLAB中进行拟合,进而求得工作空间边界曲线。
由于本发明涉及的井下巡检机器人生成的工作空间为立体图形,按所需要的精度将工作空间细化为一定数量的空间层进行处理。即:沿着规定的坐标轴方向,将生成的所有工作空间随机点按一定距离划分为若干相互平行且等距的空间“层”,设为,则每一层的宽度为:
ε=(x
式中:x
计算工作空间的体积:将分层后的每个空间层按照二维图形的计算方法得到每一层的参数,总面积S为所有单元的总和,即:
随机点数越多,得到的机器人工作空间边界云图就越清晰,但随着工作空间随机点数量的增多,工作空间内以及工作空间边界处随机点分布的密度逐渐增加,但工作空间内随机点分布密度增加的速率明显快于工作空间边界处,进而造成了工作空间内随机点分布密度不均匀、工作空间边界处的随机点分布密度较低的现象。
由于关节空间到工作空间是非线性映射且随机点在工作空间内的分布呈现出不均匀性的现象,所以在提取工作空间边界时,边界附近随机点分布的稀疏会影响提取的精度,进而影响对工作空间容积的计算。
由于利用传统蒙特卡洛法求取机器人工作空间时正向运动学方程求解过程中的矩阵变换为非线性的缘故,导致了关节角角度值服从矩阵分布,进而导致了由关节角计算机械臂末端执行器的笛卡尔位置和姿态时,生成的工作空间随机点在整个工作空间中的分布为离散型分布,而不再满足矩形分布。显见,传统的蒙特卡洛法存在工作空间边界精度不高,工作空间边界点密度分布不均的问题。
本发明解决上述问题所采用的技术方案为。
S1、在关节角度范围内,利用MATLAB中的随机函数RAND对各个关节角随机选取大量的采样点进行计算,生成机器臂关节变量随机值;
qi=q
式中:
q为关节随机变量;
q
i=1,…,D,D为机器人关节节数。
S2、将关节变量随机值逐一代入运动学方程,得到机械臂末端参考点的位置坐标P(x,y,z),同时绘制大量末端位置点即可视化机器人工作空间。
S3、将双臂机器人工作空间分100层,并搜索每层边界点;
ε=(x
S4、在求得的大量工作空间随机点中可以提取到分布在工作空间边界附近的随机点,将提取到的边界点在MATLAB中进行拟合。
S5、将S3中每层搜索到的边界点图层邻域内增加
S6、利用新生成的随机点数据矩阵中的随机点数据重复改进算法的步骤S1到S4,在新生成的工作空间中提取清晰的边界曲线。
与传统蒙特卡洛法求解机械臂工作空间相比,本发明所具有的收益效果是:
本发明针对改进方法得到的机器人机械臂工作空间提出了一种再分层算法求取工作空间解集。为了提高结果精度,在已搜索到的边界点对应关节变量值的邻域内重新生成一定数量的随机关节变量值,分布在原有随机点的周围,结合再分层算法减小投影误差,从而得到精度更高的工作空间边界点。
结果表明:采样点数量相同情况下,采用原始蒙特卡洛法生成工作空间边界与理论空间边界相比,相对误差范围为10%~20%。采用改进的蒙特卡洛算法生成工作空间边界与理论工作空间边界相比,相对误差小于1%。改进算法求取工作空间效率较高、“噪声小”,求得的机械臂工作空间解集可用于评估双臂井下巡检机器人机械臂操作及运动学性能。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明属于蒙特卡洛法求解机器人工作空间的优化方法技术领域,本发明基于关节空间与工作空间映射的连续性,提出了在工作空间分层后的每个层域内重新生成空间随机点,从而有效提高了工作空间边界处随机点分布的密度,避免了由于工作空间随机点分布不均造成的边界点附近精度降低。针对三维工作空间随机点分层处理误差,采用“再分层法”减少随机点层厚度从而提高双臂机器人工作空间边界点的计算精度,提高了工作空间求解的准确性。
具体步骤如下:
在关节角度范围内,利用MATLAB中的随机函数RAND对各个关节角随机选取大量的采样点进行计算,生成机器臂关节变量随机值。
qi=q
式中:
q为关节随机变量;
q
i=1,…,D,D为机器人关节节数。
将关节变量随机值逐一代入运动学方程,得到机械臂末端参考点的位置坐标P(x,y,z),同时绘制大量末端位置点即可视化机器人工作空间。
求解机器人工作空间,通过MATLAB中的三维笛卡尔坐标系将每个巡检机构末端参考点的位置坐标清晰、明确描绘出来。
将双臂机器人工作空间分100层,并搜索每层边界点
ε=(x
求解工作空间边界曲线,在求得的大量工作空间随机点中可以提取到分布在工作空间边界附近的随机点,将提取到的边界点在MATLAB中进行拟合。
将每层搜索到的边界点图层邻域内增加
计算工作空间的体积,将分层后的每个空间层按照二维图形的计算方法得到每一层的参数。
上面仅对本发明的较佳实施例作了详细说明,但是本发明并不限于上述实施例,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化,各种变化均应包含在本发明的保护范围之内。
- 一种改进蒙特卡洛法求解机械臂工作空间的优化方法
- 一种求解冗余机械臂逆运动学的有限时间神经网络优化方法