SIEMENS四川省泸州市(授权)西门子代理商——西门子西南总代理
| 更新时间 2024-11-14 07:00:00 价格 请来电询价 西门子总代理 PLC 西门子一级代 驱动 西门子代理商 伺服电机 联系电话 15903418770 联系手机 15915421161 联系人 张经理 立即询价 |
详细介绍
算法可以用于估计物体的姿态, 它的原理是根据重力场和磁力场的 测量数据来估算机器人末端的姿态, 但是只适用于机器人末端静止的或者缓慢移动的情况。为了让 FQA 算法应用于机器人高速运动的情况, 我们引进了滤波算法来补充物体的角速度信息。为了表示机器人在空间中的运动关系, 这里定义三种坐标系, 分别是机器 人末端坐标系 、IMU 传感器坐标系 以及空间坐标系 。其中 、 、 分别对应加速计三个方向上的轴线。由于 IMU 传感器牢牢地固定在机器人的末端, 因此可以认定 坐标系和 坐标系是相同的。 的定义需要满 足 NED (north-east-down) 法则, 其中 指向北方向, 指向东方向, 指向下方。机器人末端的姿态可以使用欧拉角 、、 来表示。其中 表示绕 轴的欧拉角, 表示绕 轴的欧拉角, 表示绕 轴的欧拉角。根据欧拉定理的定义, 从欧拉角到四元数的转换可以使用式(4-77): (4-77)其中, 四元数的四个分量需要满足式 (4-78): (4-78)其中, 为四元数的标量分量; 为四元数的矢量分量。由于通过惯性 测量单元可以测量机器人末端的欧拉角数据, 并且使用欧拉角计算出四元数, 因此, 将传感器坐标系 变换到空间坐标系 的方向余弦矩阵 可以写 成: (4-79)
3. 2 卡尔曼滤波位姿估计
在跟踪机器人末端位置和姿态时, 由于位姿传感器存在识别误差或者在跟踪过程中可能出现跟踪错误, 因此测量数据往往存在白噪声和呈现出非线性的 特性。为了解决机器人运动过程中白噪声和非线性问题, 这个误差测量模型中引入了滤波算法来估计真实的机器人运动数据。在非线性的系统中, 使用滤波算法可以有效地估计物体的位置和姿态。Zui终, 这些位置和姿态的预测值可以用于驱动机器人运动, 从而有效地消除由于测量误差造成的系统不jingque问题而影响参数辨识模型的效果。本节将详细介绍如何使用卡尔曼滤波算法来估计机器人末端位置和姿态。在估计机器人位姿的过程中, 我们分别使用两个卡尔曼滤波来处理位置和姿态数据, 所以它们是独立工作的、相互之间不影响。 1. 卡尔曼滤波算法
卡尔曼滤波算法可以根据前一个时刻的状态数据估计下一个时刻的状态数据, 通过反复的迭代运算, Zui终得到准确的物体运动数据。卡尔曼滤波算法 的基本原理是通过系统输入输出的观测数据, 利用线性系统的状态方程, 对系 统的状态进行Zui优估计。卡尔曼滤波算法首先假设处理噪声的先验概率和测 量噪声是符合零阶的高斯分布的, 而且刚开始时已知系统的初始状态 、测量噪声协方差矩阵 以及系统噪声的协方差矩阵 , 则计算过程 如下:(1) 预测系统状态: (4-80)(2)计算系统协方差矩阵: (4-81)(3) 更新卡尔曼增益矩阵: (4-82)(4) 估计系统协方差: (4-83)(5) 估计系统状态: (4-84)卡尔曼滤波算法的状态递归估计模型包含系统状态模型和测量模型: (4-85) 其中, 为在 时刻机器人末端的位置向量; 为机器人末端的位置状态之间转 换矩阵; 为系统的输人矩阵; 为在 时刻的输人决定矩阵; 为在 时刻的噪声向量; 为系统的噪声测量向量; 为系统的观察矩阵; 为在 时刻的测量向量。 2. 卡尔曼滤波估计姿态
机器人末端的姿态可以通过四元数来表示, 使用卡尔曼滤波算法可以估计四元数的状态。假设四元数 对时间作微分运算, 可由式(4-86)表示: (4-86)其中, 、、、 代表机器人末端的四元数分量; 、、 代表机器人末端角速度分量。因此, 定义机器人末端的状态包含四元数状态和角速度状态: (4-87)其中, 、、、 代表在 时刻四元数的状态分量; 、、 代表 在 时刻的角速度分量。因此, 可以得到系统的状态转换矩阵: (4-88)其中, 为惯性测量单元的采样频率。因此系统中没有输入操作, 是一个零矩阵, 可以忽略不计。此时, 机器人末端的四元数状态可以根据角速度来估计。因此, 定义过程噪声向量为: (4-89)其中, 、、 代表过程噪声在各个轴上的分量。由于 IMU 传感器已经被标定过, 所以观察矩阵表示为: (4-90)因为四元数分量需要满足平方之和为 1 的条件, 所以需要对 时刻的四元数 状态进行标准化操作: (4-91) 3. 卡尔曼滤波估计位置
假设 为机器人末端在空间坐标系中的坐标, 通过卡尔曼滤波可 以对机器人末端的状态进行估计, 从而可以得到机器人末端的位置状态假设从机器人末端坐标系转换到空间坐标系的方向余弦矩阵为: (4-92)其实, 式 (4-92) 和式 (4-79) 是一样的, 这里只是为了简化表达。因此, 机器人末端的加速度在空间坐标系中可以表示为: (4-93)其中, 代表重力加速度在空间坐标系中的模; 代表加速度在机器人末端坐标系中的分量。所以, 在空间坐标系中每个坐标轴的速度分量可以写成: (4-94)使用卡尔曼滤波算法进行状态估计的过程中, 定义在 时刻机器人末端的状态向量为: (4-95) 结合式(4-93)和式(4-94), 系统的转换矩阵为: 因为系统没有控制输入, 此时加速度的测量只和重力有关, 而且一般地机器人末端的坐标系 轴往往和重力方向平行, 因此, 系统输人矩阵为: (4-97)因为重力在短距离内可以认为是一个固定常数, 所以系统输人矩阵是恒定 的。因此, 过程噪声向量为: (4-98)基于上述推导, 测量矩阵可以写成: (4-99)
3. 3 基于混合滤波的位姿信息融合模型
本节主要介绍如何使用卡尔曼滤波算法和粒子滤波算法, 通过信息融合来估计机器人末端的位置和姿态。基于混合滤波的位姿信息融合估计和使用卡尔 曼滤波算法进行估计的Zui大区别就是, 通过混合滤波, 结合了位置与姿态之间存在的时空关联性,而不是独立进行位姿估计。例如在使用卡尔曼滤波估算机 器人位置和粒子滤波算法估算机器人姿态时, 位置估计需要依赖于姿态估计。关于卡尔曼滤波算法的位姿估计流程, 在上一节我们已经进行了详细的描述, 在此不再赘述。本节将着重阐述如何使用粒子滤波算法进行机器人位姿的估计。 1. 粒子滤波算法
粒子滤波算法是通过寻找在状态空间中的随机样本来近似地表示概率密度 函数的过程, 它使用样本的均值来代替积分运算, 从而获取系统状态的Zui小方 差估计。粒子滤波算法的核心思想是从后验概率中抽取的随机状态的粒子来 表示分布。因此,粒子滤波算法的状态空间模型可以表示为:
(4-100)其中, 为在 时刻的位置状态向量; 为从 时刻到 时刻的转换函数; 为系统的确定输人矩阵; 为噪声矩阵; 为测量状态; 为测量噪声矩阵; 为噪声测量函数。假设 时刻之前的输人和测量数据都已知, 因此, 估计当前系统状态 可以根据后验概率密度函数来获得。使用粒子滤波算法进行估计的工作流程为:(1) 初始化: 如果 , 计算 和 。(2) 预测 : 计算 。(3)计算 。(4) 更新: 如果 , 然后:①预测状态。②计算权重:a) 计算标准化权重 ;b) 基于 对 重采样;c) 重设权重 ;d) 。(5) 计算后验概率 : ①预测 : ②更新 : 其中, 为前验概率; 为后验概率。当后验概率密度函数计算结果不收玫时, 需要使用粒子滤波算法进行二次计算。在 时刻的后验密度的近似值可以表示为: (4-103)其中, 为狄拉克函数; 是样本的数量; 是第 个粒子的标准化权重; 是第 个粒子的状态。
相关产品