基于局部POE的机器人运动学标定

导语:定位精度作为影响机器人性能的重要因素,需要对机器人进行标定来提高机器人的定位精度从而满足工业上的需要。
Question: 什么是机器人标定?为什么机器人需要标定?
Answer机器人标定是指机器人运动学标定,为了使机器人本体达到与理论设计模型一致,提高机器人的点精度和轨迹精度或者能够完全以编程设定的动作运动,机器人在装配后需要进行标定工作。标定的方法主要有激光跟踪仪、拉线法、20点法等方法。

一. 标定过程

基于误差模型的标定方法可以提高机器人在整个空间里的精度。误差模型法通常分为四步:
1.建模:根据机器人的结构建立机器人运动学模型。
2.测量:利用外部设备测量末端执行器在某一坐标系下的实际位姿。
3.参数辨识:将机器人末端执行器的位姿误差代入误差模型得到机器人的几何参数误差。
4.参数补偿:将机器人的参数修改成计算出来的实际运动学参数。

1.1 建模

  建模方法使用指数积建立机器人的运动学模型。基于指数积的机械臂正运动学 。这种建模方法是全局POE运动学建模,之所以使用指数积建模是因为使用DH法建模时不满足完整性连续性,而POE建模可以满足其标定模型的要求。

1.2 测量

  视觉捕捉Nokov红外测量或者使用激光传感器测量末端执行器在测量原坐标系下的位姿信息。

1.3 参数辨识

   机器人运动学参数辨识,采用的方法使用递归最小二乘法

1.4 参数补偿

  几何参数补偿:这里采用局部POE方法标定,局部POE标定并不是还原实际的机器人几何参数,而是为了得到一台绝对精度更加准确的机器人,我们可以在标定完成之后更改机器人输入关节角使机器人走到理想的位置。

二. 基于局部POE的机器人正向运动学建模

旋量理论数学基础
全局POE运动学公式:(考虑末端执行器)
T(θ)=e[S1]θ1⋯e[Sn−1]θn−1e[Sn]θnMTn,n+1T\left( \theta \right) =e^{\left[ S_1 \right] \theta _1}\cdots e^{\left[ S_{n-1} \right] \theta _{n-1}}e^{\left[ S_n \right] \theta _n}M\,\,T_{n,n+1} T(θ)=e[S1​]θ1​⋯e[Sn−1​]θn−1​e[Sn​]θn​MTn,n+1​其中 Tn,n+1T_{n,n+1}Tn,n+1​ 为末端执行器到第六关节法兰盘中心的变换矩阵。
局部POE运动学公式:将初始矩阵MMM改写成 M=T0,1(0)T1,2(0)T2,3(0)T3,4(0)T4,5(0)T5,6(0)M=T_{0,1}\left( 0 \right) T_{1,2}\left( 0 \right) T_{2,3}\left( 0 \right) T_{3,4}\left( 0 \right) T_{4,5}\left( 0 \right) T_{5,6}\left( 0 \right) M=T0,1​(0)T1,2​(0)T2,3​(0)T3,4​(0)T4,5​(0)T5,6​(0) T0,1(0)T_{0,1}\left( 0 \right)T0,1​(0) 代表第一关节到第二关节的初始位姿变换矩阵。以此类推,有局部POE公式
T(θ)=T0,1(0)e[S1]θ1⋯⋯Tn−1,n(0)e[Sn]θnTn,n+1(0)T\left( \theta \right) =T_{0,1}\left( 0 \right) e^{\left[ S_1 \right] \theta _1}\cdots \cdots T_{n-1,n}\left( 0 \right) e^{\left[ S_n \right] \theta _n}\,T_{n,n+1}\left( 0 \right) T(θ)=T0,1​(0)e[S1​]θ1​⋯⋯Tn−1,n​(0)e[Sn​]θn​Tn,n+1​(0)   由此可知,局部POE需要再每个关节上建立坐标系,并在此坐标系下设置关节旋量。坐标系的建立只需得到关节坐标系变换关系即可。

三. 基于局部POE的误差建立方法

3.1 采用位姿测量的误差模型

定理:对于一个给定的转换矩阵 T∈SE(3)T\in SE\left( 3 \right)T∈SE(3) ,至少存在一个旋量 p∧∈se(3)\overset{\land}{p}\in se\left( 3 \right)p∧​∈se(3) 使得 ep∧i=Te^{\overset{\land}{p}_i}=Tep∧​i​=T,因此可以令 ep∧i=Ti−1,i(0)e^{\overset{\land}{p}_i}=T_{i-1,i}\left( 0 \right)ep∧​i​=Ti−1,i​(0) ,那么局部POE公式可以改写为T(θ)=T0,n+1=ep1∧e[S1]θ1⋯⋯epn∧e[Sn]θnepn+1∧T\left( \theta \right) =T_{0,n+1}=e^{\overset{\land}{p_1}}e^{\left[ S_1 \right] \theta _1}\cdots \cdots e^{\overset{\land}{p_n}}e^{\left[ S_n \right] \theta _n}e^{\overset{\land}{p_{n+1}}} T(θ)=T0,n+1​=ep1​∧​e[S1​]θ1​⋯⋯epn​∧​e[Sn​]θn​epn+1​∧​

   对上式求导并经过处理,将 旋量SSS 和 角度θ\thetaθ 看作是初始矩阵 T(0)T\left( 0 \right)T(0) 的一个误差源。有局部POE的误差模型:
y=Jxy=Jx y=Jx 其中
y=log⁡(T0,n+1a,T0,n+1−1)∨∈R6×1x=[δp1,δp2,δp3,δp4,δp5,δp6]T∈R6(n+1)×6J=[Ad(T0,1(0),),Ad(T0,1)Ad(T1,2(0),),...Ad(T0,n(0),)Ad(Tn,n+1(0),)]∈R6(n+1)×6y=\log \left( T_{0,n+1}^{a},T_{0,n+1}^{-1} \right) ^{\lor}\in R^{6\times 1} \\ x=\left[ \delta p_1,\delta p_2,\delta p_3,\delta p_4,\delta p_5,\delta p_6 \right] ^T\in R^{6\left( n+1 \right) \times 6} \\ J=\left[ Ad\left( T_{0,1}\left( 0 \right) , \right) , Ad\left( T_{0,1} \right) Ad\left( T_{1,2}\left( 0 \right) , \right) , ... Ad\left( T_{0,n}\left( 0 \right) , \right) Ad\left( T_{n,n+1}\left( 0 \right) , \right) \right] \in R^{6\left( n+1 \right) \times 6}y=log(T0,n+1a​,T0,n+1−1​)∨∈R6×1x=[δp1​,δp2​,δp3​,δp4​,δp5​,δp6​]T∈R6(n+1)×6J=[Ad(T0,1​(0),),Ad(T0,1​)Ad(T1,2​(0),),...Ad(T0,n​(0),)Ad(Tn,n+1​(0),)]∈R6(n+1)×6

T0,n+1−1T_{0,n+1}^{-1}T0,n+1−1​ 和 JJJ 可以用机器人名义运动学模型得到,而 T0,n+1aT_{0,n+1}^{a}T0,n+1a​ 可以通过实际测量数据得到,因此位姿误差 yyy 可以通过计算可得,xxx 就是需要辨识的运动学参数误差。
辨识方程:x=J−1yx=J^{-1}y x=J−1y

基于局部POE法参数更新方法为Ti−1,inew(0)=Ti−1,iold(0)eδp∧iT_{i-1,i}^{new}\left( 0 \right) =T_{i-1,i}^{old}\left( 0 \right) e^{\delta \overset{\land}{p}_i} Ti−1,inew​(0)=Ti−1,iold​(0)eδp∧​i​按照以上方法对参数误差进行辨识处理,当误差满足要求时迭代结束。

:此种方法是让理论坐标靠近实际坐标,此初始矩阵包含了位姿误差信息。标定点数至少测量14组点数,20点最好。
   对于一个点 y=Jxy=Jxy=Jx 矩阵维数是 6 * 1 = 6 * 42 * 42 * 1;
   多个点时 y=Jxy=Jxy=Jx 矩阵维数是 6 * n = 6 * 42 * 42 * n;
   通过基于局部 POE 辨识出来的参数,虽然也不是真实参数,但是却是一组与真实参数效果相同的参数,即对于同一组关节角度,无论是采用真实参数还是采用基于局部 POE 辨识出来的参数,都将到达同一位姿。

四. 参数补偿

4.1 基于局部 POE 的关节角数值解法

  在得到标定后的初始矩阵 Ti−1,i(0)T_{i-1,i}\left( 0 \right)Ti−1,i​(0) 后,将机器人的控制器中的关节角作为初始值代入迭代算出每个关节角应该补偿的值,再输入到机器人控制器中改变实际关节角值,使实际坐标值靠近理论坐标值。
y=Jxy=Jx y=Jx 其中
y=log⁡(T0,n+1a,T0,n+1−1)∨∈R6×1x=[δq1,δq2,δq3,δq4,δq5,δq6]T∈R6(n+1)×6J=[Ad(T0,1(0))ξ1,Ad(T0,1)Ad(T1,2(0))ξ2,...Ad(T0,n−1(0))Ad(Tn−1,n(0))ξn]∈R6n×6y=\log \left( T_{0,n+1}^{a},T_{0,n+1}^{-1} \right) ^{\lor}\in R^{6\times 1} \\ x=\left[ \delta q_1,\delta q_2,\delta q_3,\delta q_4,\delta q_5,\delta q_6 \right] ^T\in R^{6\left( n+1 \right) \times 6} \\ J=\left[ Ad\left( T_{0,1}\left( 0 \right) \right) \xi _1,Ad\left( T_{0,1} \right) Ad\left( T_{1,2}\left( 0 \right) \right) \xi _2,...Ad\left( T_{0,n-1}\left( 0 \right) \right) Ad\left( T_{n-1,n}\left( 0 \right) \right) \xi _n \right] \in R^{6n\times 6}y=log(T0,n+1a​,T0,n+1−1​)∨∈R6×1x=[δq1​,δq2​,δq3​,δq4​,δq5​,δq6​]T∈R6(n+1)×6J=[Ad(T0,1​(0))ξ1​,Ad(T0,1​)Ad(T1,2​(0))ξ2​,...Ad(T0,n−1​(0))Ad(Tn−1,n​(0))ξn​]∈R6n×6
   辨识方程: x=J−1yx=J^{-1}yx=J−1y 。将计算的关节误差值加到初始关节值上再输入给控制器,此时机械臂实际位置 T0,n+1aT_{0,n+1}^{a}T0,n+1a​ 改变,方程的更新值为 yyy,不断迭代,满足误差时停止,即达到实际坐坐标值与理论值吻合,实现标定。此种方法需要控制器配合使用。

算例:6R型开链机器人

设理论位置为关节角为[0.1;0.1;0.1;0.1;0.1;0.1]的位姿

参数设置:设置位姿误差 δy\delta yδy 小于1e-8时停止迭代,循环100次,迭代不出来视为求解失败。
运算结果:

在迭代26次后,停止了迭代,此时位姿成功迭代到实际位姿,再继续求逆解得到实际的关节角为[0.11;0.11;0.11;0.11;0.11;0.11],再将这组关节角输入给控制器,控制器根据这组关节角算出来的名义位置更加逼近于真实位姿,即使理论靠近实际,此时标定完成,显著地提高了机器人的绝对精度。

注:标定成功的最直接的验证方法是在机器人基坐标系下得到的测量位置与名义位置是否相同。在标定完成后,可以给机器人输入关节角观察机器人的名义位置和实际位置是否足够接近来观察标定是否成功。

【机器人】基于指数积的机械臂运动学标定相关推荐

  1. 【机器人】基于指数积的机械臂正运动学算法

    基于指数积的机械臂正运动学算法 1.前言 2.指数积公式建立过程 3.PoE实例 4.PoE与DH对比 1.前言 在学习了刚体运动的指数坐标表示和运动旋量后,我又对使用指数积法(PoE)对机械臂进行正 ...

  2. 【现代机器人学】基于指数积的机械臂逆运动学

    0 引言    基于指数积的正运动学    现代机器人学名词概念   有了以上的基础,我们现在利用指数积来对机器人的逆运动学进行求解,有一点需要注意,需要先对机器人进行指数积的正运动学建模,然后才能利 ...

  3. 机器人运动学标定:基于指数积的串联机构运动学标定

    文章目录 写在前面 建模 三个实用的误差模型 分析完毕,辨识步骤如下 实现效果 参考文献 写在前面 (建议阅读本文前,了解并熟悉旋量物理意义及旋量建模原理) 由Chasles定理可知,任一刚体运动作为 ...

  4. 【现代机器人学】基于指数积的机械臂正运动学

    前言:对于一个开链机器人而言,末端执行器的位置和姿态可以通过关节角唯一确定出来.正运动学的问题就是当给定各关节位置,求出附着在末端执行器上的物体坐标系的位姿. 描述正运动学的方法主要是DH参数法,它是 ...

  5. 机器人动起来1:机械臂手眼标定、像素-世界坐标系转换

    机械臂要想到达期望的位置,必须将其感知系统和机械臂运动产生联系,这关键的两步就是手眼标定和坐标系转换.按我所讲的步骤进行调试一定可以成功. 1.手眼标定 机械臂手眼标定目的是为了求得三个参数:机械臂末 ...

  6. 基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法

    原文地址: https://blog.csdn.net/yaked/article/details/73030668 以实验室的KUKA youBot五自由度机械臂为切入点,记得当时和实验室的同学在这 ...

  7. 【机器人学习】四自由度机械臂运动学轨迹规划分析+运动空间分析+动力学分析(三维模型+matlab代码)

    模型与matlab代码下载 https://download.csdn.net/download/yjw0911/85865464) clear; clc close all% theta d a a ...

  8. MATLAB机器人机械臂运动学正逆解、动力学建模仿真与轨迹规划

    MATLAB机器人机械臂运动学正逆解.动力学建模仿真与轨迹规划,雅克比矩阵求解.蒙特卡洛采样画出末端执行器工作空间 基于时间最优的改进粒子群优化算法机械臂轨迹规划设计 ID:4610679190520 ...

  9. 机器人抓矸石_基于机器视觉的多机械臂煤矸石分拣机器人系统研究

    工矿自动化 Industryand MineAutomation Vol. 45 No. 9 Sep.2019 第 45 卷第 9 期 2019 年 9 月 文章编号 : 1671 - 251X(20 ...

最新文章

  1. [转] 前后端分离之JWT用户认证
  2. Flutter开发Flutter与原生OC、Java的交互通信-2(48)
  3. 利用commons-fileupload 上传图片(包含表单数据)
  4. luci L大_油耗最低1.4L!开这四款车一个月都不用进加油站
  5. java学习(157):线程的引入
  6. Docker 安装 ES 7.7.0 及 Head、Kibana、IK分词器、Logstash、Filebeat 插件
  7. webpack安装报错(Unexpected end of JSON input while parsing near '...e6139ad7957,tarball')
  8. Mac : PS1变量不生效了
  9. mysql5.6数据库执行mysqldump备份,报1862密码过期的处理方法。
  10. html5透明图片格式,半透明图片制作
  11. 上海大学计算机考证时间表
  12. java开发面试自我介绍模板_java开发工程师面试自我介绍_应聘Java工作自我介绍...
  13. length php,length与size()使用对比
  14. 5分钟了解英文SEO做外链的正确姿势
  15. 【Spark】Graphx用例(Java)
  16. 高手速成android开源项目【View篇】(转)
  17. NPOI操作Excel 让单元格的内容换行
  18. 计算机运行异常怎么办,电脑启动异常怎么办
  19. Mems电容式加速度计的种类(一)
  20. 【计算机网络】5层因特网协议栈 概述

热门文章

  1. OpenCV中矩阵的归一化
  2. 使用ASP.NET MVC3+EF+Jquery制作文字直播系统(四)——完成篇
  3. WP7 App性能优化(12):检测应用程序性能(Ⅴ)
  4. Q128:PBRT-V3,“体渲染”积分器的“传播方程”(15.1章节)
  5. 应用Python绘制雷达图时遇到的坑
  6. 数据分析的五个阶段及价值
  7. 大数据存在的安全隐患该如何防患
  8. 如何从服务器上取pdf文件,如何从服务器响应创建pdf文件?
  9. java 路径不存在则创建_java中判断目录是否存在,若不存在则创建
  10. 计算机硬件课题,计算机硬件技术基础免试课题.pptx