【机器人】基于指数积的机械臂正运动学算法
基于指数积的机械臂正运动学算法
- 1.前言
- 2.指数积公式建立过程
- 3.PoE实例
- 4.PoE与DH对比
1.前言
在学习了刚体运动的指数坐标表示和运动旋量后,我又对使用指数积法(PoE)对机械臂进行正运动学建模,相比于DH参数法,感觉PoE还是非常简单直接的,在此对我的学习进行总结,如有错误欢迎指出。
2.指数积公式建立过程
在使用PoE建立正运动学模型时,我们需要获得以下参数:
- 建立基坐标系(惯性系)和末端坐标系
- 写出初始时刻的末端坐标系相对于惯性系的位姿MMM
- 写出各个关节的运动旋量,即SSS,内含单位角速度和原点线速度,可以参考上一篇博客刚体运动旋量讲解
- 获得关节角度,即正运动学算法的输入参数
- 对位姿MMM不断进行左乘运动旋量的矩阵指数,即可获得运动学表达式
T(θ)=e[S1]θ1...e[Sn−1]θn−1e[Sn]θnMT(\theta)=e^{[S_1]\theta_1}...e^{[S_{n-1}]\theta_{n-1}}e^{[S_n]\theta_n}M T(θ)=e[S1]θ1...e[Sn−1]θn−1e[Sn]θnM
可见,使用PoE算法可以不用为每个关节建立关节坐标系,省去了坐标系的繁琐,且通用性更高,针对不同的机械臂,只需修改运动旋量即可,而无需重新建立坐标系。
3.PoE实例
这里的实例采用《现代机器人学》这本书中的例子,选择了一个3DoF的例子进行讲解,其余自由度以及平移关节推导过程类似。
首先,写出初始状态下的末端执行器位姿为
M=[001L10100−100−L20001]M= \left[ \begin{matrix} 0 & 0 & 1 & L_1 \\ 0 & 1 & 0 & 0 \\ -1 & 0 & 0 & -L_2\\ 0 & 0 & 0 & 1 \end{matrix} \right] M=⎣⎢⎢⎡00−1001001000L10−L21⎦⎥⎥⎤
然后,写出每个关节的运动旋量。首先是角速度部分,因为采用的是单位角速度∣∣ω∣∣=1\left|| \omega \right||=1∣∣ω∣∣=1,故角速度部分也就是旋转轴相对于惯性系的表达,注:只取方向表达,不用考虑旋转轴位移
ω1=(0,0,1)ω2=(0,−1,0)ω3=(1,0,0)\omega_1=(0,0,1) \\\omega_2=(0,-1,0) \\\omega_3=(1,0,0) ω1=(0,0,1)ω2=(0,−1,0)ω3=(1,0,0)
接着,写出线速度部分,该线速度指的是刚体绕关节轴旋转时,惯性系的原点在该旋转中的线速度,故需要选择一条从旋转轴到原点的矢径,该矢径在惯性系中的表达为qqq,但当其代入线速度计算时,需要反向,因为是从旋转轴指向原点,即
v=−ω×qv=-\omega\times q v=−ω×q
根据旋转轴是条直线,可以无限延长来合适的选择旋转轴上的点,可以简化该计算,本例中选择qqq为
q1=(0,0,0)q2=(L1,0,0)q3=(0,0,−L2)q_1=(0,0,0) \\q_2=(L_1,0,0) \\q_3=(0,0,-L_2) q1=(0,0,0)q2=(L1,0,0)q3=(0,0,−L2)
因此计算得到原点因各个关节旋转而获得的线速度为
v1=(0,0,0)v2=(0,0,−L1)v3=(0,−L2,0)v_1=(0,0,0) \\v_2=(0,0,-L_1) \\v_3=(0,-L_2,0) v1=(0,0,0)v2=(0,0,−L1)v3=(0,−L2,0)
从而获得了运动旋量,将其写为李代数形式,代入上述正运动学公式即可获得正运动学表达式,不再赘述,可参考前面的文章。
4.PoE与DH对比
在参数个数上,DH占有优势,仅用4n个参数即可描述机械臂,而PoE则需要6n个参数来表达运动旋量,还有n个关节角参数,共计7n个。
但是PoE在建模时更加方便直观,对于旋转和移动关节都能够很好的进行表达。
DH参数坐标系的建立还依赖于两个关节轴的公法线,当相邻的两关节轴平行的时候,建立了一个理论上的坐标系,但是因为制造等误差,让一组关节轴偏离了精确平行或相交于一点的位置时,所建立的坐标系即为错误的,这将对进行DH参数的精确测量和辨识增加困难。而PoE则因没有关节坐标系而可以更加方便的进行参数辨识等。
【机器人】基于指数积的机械臂正运动学算法相关推荐
- 【现代机器人学】基于指数积的机械臂正运动学
前言:对于一个开链机器人而言,末端执行器的位置和姿态可以通过关节角唯一确定出来.正运动学的问题就是当给定各关节位置,求出附着在末端执行器上的物体坐标系的位姿. 描述正运动学的方法主要是DH参数法,它是 ...
- 【现代机器人学】基于指数积的机械臂逆运动学
0 引言 基于指数积的正运动学 现代机器人学名词概念 有了以上的基础,我们现在利用指数积来对机器人的逆运动学进行求解,有一点需要注意,需要先对机器人进行指数积的正运动学建模,然后才能利 ...
- 【机器人】基于指数积的机械臂运动学标定
基于局部POE的机器人运动学标定 导语:定位精度作为影响机器人性能的重要因素,需要对机器人进行标定来提高机器人的定位精度从而满足工业上的需要. Question: 什么是机器人标定?为什么机器人需要标 ...
- 【机器人1】基于POE公式的UR5机械臂正运动学建模求解与matlab仿真
基于PoE公式的UR5机械臂正运动学建模求解与matlab仿真 基于PoE公式的UR5机械臂正运动学分析 1.1 运动旋量的螺旋释义(理论基础) 1.2 基于PoE公式的UR5机械臂正运动学模型 1. ...
- python 机械臂控制_机械臂正运动学-DH参数-Python快速实现
机械臂正运动学-DH参数-Python快速实现 前言: 最近在玩一个非常弱智的机械臂,好多功能都没有,连个配套的仿真环境都没, 虚拟边界和碰撞检测的功能都非常难用. 没办法,我只能自己实现一个简陋的虚 ...
- Python知道cos值求角度_机械臂正运动学-DH参数-Python快速实现
# 机械臂正运动学-DH参数-Python快速实现 @[toc] 前言: 最近在玩一个非常弱智的机械臂,好多功能都没有,连个配套的仿真环境都没, 虚拟边界和碰撞检测的功能都非常难用. 没办法,我只能 ...
- 机械臂正运动学-DH参数-Python快速实现
机械臂正运动学-DH参数-Python快速实现 文章目录 机械臂正运动学-DH参数-Python快速实现 前言: 更新:是我自己憨批了,说明书上有现成的计算方式,我没细看... 整体思路流程: 学习资 ...
- 中正平和的机器人学笔记——1. 机械臂正运动学(附MATLAB代码)
中正平和的机器人学笔记--1.正运动学 0. 何为运动学?何为正运动学? 运动学主要研究的就是机械臂的运动特性(位置.速度.加速度等),但是不考虑使机械臂产生运动时施加的力和力矩(这部分是动力学).而 ...
- 机械臂正运动学(1)——MDH下的正解(自编)
%% 该函数执行 MDH参数下正运动学求解功能 function [result] = myfkine_MDH(q,a,alpha,d,offset) % q为输入的关节转角,a为杆件长度,alpha ...
最新文章
- 编译原理扫描程序,判断当前输入的程序中程序调用的函数是那个函数原型
- Spring 4 MVC+Hibernate 4+MySQL+Maven使用注解集成实例
- 教您怎么从spring 官网下载参考文档
- Linux——文件打包与压缩
- 机器学习系列之手把手教你实现一个决策树
- 讲oracle个阶段书籍6,经典图书推荐系列-之六
- 被新款iPad和AirPods拯救的苹果 夺回全球市值最高公司宝座
- 解决linux中xorg占用gpu问题
- POJ1741 点分治模板
- jquery文档就绪的三种书写方式
- ISE14.7从程序设计到下载
- 马哥 python培训
- 解决Windows Server 2008 System进程占用80端口问题
- 互联网赚钱要有自己的核心思想,我为自己的分秒挣赚软件网创事业代言
- 悟道-看山是山,看水是水
- 分布式文件系统(Distributed File System,DFS)
- kotterKnife+dagger2+otto+okhttp+picasso+retrofit+rxjava示例项目,使用kotlin编写。
- Master-MatPyon:学习历程
- RabbitMq 虚拟主机 virtual-host ,Springboot 中使用 RabbitMq 虚拟主机 virtual-host
- linux切换网口,linux多网口绑定
热门文章
- Bayesian facerevisited : a joint formulation 学习笔记
- Java 微信公众号每日自动给女朋友推送问候
- 2021上半年全国计算机二级报名江苏,江苏2021年3月全国计算机等级考试报名公告...
- php solr,PHP: Solr - Manual
- 爱克发胶片_AGFA一次性胶片相机——记录第一次拍胶片的“扑街”现场
- openlayer5 半径不准 画圆_openlayers绘制圆形时设置半径以米为单位
- 智能时代 算力赋能 | 有孚云·智算上线-聚智云算,向新而生!
- PTA L1-057 PTA使我精神焕发 C++实现
- Machine Learning Basics(1)
- 元宇宙路在何方?觅伊以视频社交切入迎接新机遇