准备工作
在Rhino中创建样条曲线,并将其导入Grasshopper。将曲线划分为多个平面,其中X轴沿切线,Y轴指向曲率中心,Z轴与前两个垂直,也称为双法线向量。提取点和切向量,并沿着曲线创建法线平面序列(*可能的方法是更简单的方法)。在“机器人运动任务”中,传递平面列表和初始姿势配置,如上图所示。使用先前教程中介绍的其余运动显示设备。
逆运动学路径
有两条反向运动路径,都需要解决(n)个平面,并且选择了一组可用的解(想象一个n x 8矩阵)。姿势选项选择特定的解决方案行,这些解决方案保留相同的基础,肘部和腕部对称性。平面路径和线性路径之间的区别在于临时目标之间的插值。在**种情况下,它发生在关节空间中,然后在笛卡尔空间中发生。在这两种情况下,所使用的数学机制都是线性插值,但由于在不同的空间中进行操作,结果差异很大。
在上图中,可以观察到以下内容:
两种路径类型都与目标平面相交(在原点处),并且两种路径通常在过渡位置都偏离原始样条曲线。
右侧的平面路径的迹线是平滑的曲线,类似于分段弧形曲线,而左侧的目标之间的迹线是线性段,就像多段线一样。
当路径在上方看到的第二个平面和第三个平面之间翻转90度时,机器人法兰会发生某些特殊情况。除非仔细观察,否则这种轴突然旋转并不总是很容易追踪。
关于分割/逼近的观察结果对于所有CNC设备都是通用的,实际上在所有计算中都是如此。我们需要将概念上平滑的对象(曲线)量化为有限的元素(坐标系),直到达到近似的公差。样本数量越多,近似值越好。但是,选择容忍度并不是更好的选择。它与应用相关,例如在铣削情况下只有几毫米,或者对于拾取和放置应用几乎不相关。疯狂地使用精细细分会达到机器的机械极限,因为它无法加速,保持速度和正确减速。使用非常粗糙的踩踏可能会导致关节突然扭曲和其他与身体相关的意外情况。
提供平面路径是为了与本机支持此运动模式的其他机器人兼容。在后面的文章中将看到ABB机器人和代码生成过程通过控制器中的逆运动学解决方案和**关节运动指令来模拟此模式。毋庸置疑,两全其美的方式(联合+矩阵)会更频繁地导致不愉快的情况。
因此,一般建议是使用完整的前向关节运动路径或完整的逆运动学线性运动路径。
*后但并非*不重要的一点是,我们遇到了与旋转插值有关的机器人运动计划的**个主要概念性噩梦。实际上,在非直线位置上,可以通过多种方式来插值旋转或单位球面上的点,包括通过矩阵元素,欧拉角和四元数。Jeneratiff使用四元数的球面线性插值,这可能不是您的机器人执行此操作的方式,因为这通常不太好或根本没有记录。
长话短说,不仅要注意法兰上Z轴指向的位置,还要注意Y轴等其他轴。平面轴之间的过渡必须是一致的,较小的,是平滑的。这样可以确保电动机不会突然加速以适应较大的角度变化或感到困惑,例如,有两种方法可以使180度旋转。直接从样条曲线使用平面不是一个好方法,因为曲率通常会迅速改变拐点附近的方向,从而导致突然的关节翻转。
更多信息请点击:ABB机器人