Stewart平台及其数学运算
Stewart平台及其数学运算
- Stewart平台
- Stewart平台的数学运算
- 使用RC舵机控制Stewart平台
本文用于记录自己学习Stewart平台的过程,并分享自己的学习经验。我在做本科毕业设计(毕设是要做一个可以实现颠球和接球的乒乓球机器人)的时候才深入了解到Stewart平台,发现它的设计很巧妙,与一般的机械臂不同,Stewart平台的逆运动学比正运动学更简单。我也看过许多有关Stewart平台的论文和资料,但其介绍的并没那么详细。下面,我就先分享一篇英文版参考资料:The Mathematics of the Stewart Platform。我主要参照上述英文资料(前一部分翻译有参考其它博主的文章Stewart 平台的数学运动解析)和其他一些资料对其内容进行了整理和总结。(第一次写博客,如有不足的地方还望多多指正)
Stewart平台
1965年, Stewart提出并建造了第一个六自由度并联平台模型,但是并没有引起学术界与工程界的足够重视,直到20世纪80年代,由于串联机器人的刚度差、承载能力低, Stewart平台才逐渐被重视,成为新的热点。目前其主要应用在运动模拟器、六自由度数控加工机床与误差补偿器等方面。
从结构上看,Stewart平台是用6根支杆将上下平台连接而形成, 6根支杆都可以独立地自由伸缩,它分别用球铰与虎克铰与上下平台进行连接,这样上平台就可以相对于下平台进行6个独立运动,即拥有6个自由度。该机构具有高精度、高刚度、承载能力强的优点,而且其反解比串联机构的反解容易许多,但其价格高昂,机构较为复杂。
Stewart平台的数学运算
Stewart平台由2个刚性框架组成,由6条变长支臂连接。以基座为参考框架,以x,y,z为正交轴,顶部平台(以下简称平台)有自己的正交坐标x’,y’,z’,且相对于底板有6个自由度。
平台坐标的原点可由3个相对基座的平移位移定义,沿每个轴各一个,之后三个角位移定义了平台相对于基座的方向,按照以下顺序使用一组欧拉角(定义每个轴的转角):
- 绕z轴旋转ψ(偏航)角
- 绕y轴旋转θ(俯仰)角
- 绕x轴旋转φ(横滚)角
如果我们首先考虑绕z轴的旋转角ψ(偏航):
P = i’x’ + j’y’ + k’z’ = ix + jy + kz x = OA – BC = x’cos ψ – y’sin ψ y = AB + PC = x’sin ψ + y’cos ψ z = z’
我们定义旋转矩阵Rz(ψ)使
同理,如果我们考虑第2个绕y轴的旋转角θ(俯仰),可以得到
以及第3个绕x轴的旋转角φ(横滚):
于是平台相对于底座的整体旋转矩阵为
现在考虑以下形式的Stewart平台
Stewart平台机构简图
Stewart平台坐标系简图
对于第i条支臂
给出锚点Pi相对于基座坐标系的坐标qi的方程
其中,T为平移向量,给出平台框架原点相对于基准框架的位置线性位移,pi为定义锚点相对于平台框架的坐标的向量。
同样,第i条支臂的长度公式为
其中bi是向量,定义了下锚点Bi的坐标。这6个方程给出了实现平台所需位置和姿态的6条支臂的长度。
考虑正解运动学时,该表达式表示6个未知数中18个同时存在的非线性方程,表示平台的位置和姿态。在寻找这些方程的解方面已经做了大量的工作;在一般情况下,有40种可能的解决方案,尽管在实践中这些解决方案中的许多并不实用。
如果支臂的长度可通过旋转舵机(而非线性舵机)得到,进一步计算就可以决定各伺服舵机对应的旋转角度。每个舵机/支腿的结合如下所示:
其中,a=舵机摆臂的长度
Ai是舵机摆臂/支腿结点,支腿在基座框架里的坐标
Bi为舵机/舵机摆臂连接点,每个连接点相对于基座的坐标
原文的这个位置有错误,本文已更改
Pi为操作杆与平台的连接点,各连接点在基座框架中的坐标
s=操作腿(支腿)的长度
li=第i条支臂的长度,由以下式子计算
α=舵机摆臂与水平面的夹角
β=舵机摆臂平面相对于x轴的转角
注意:转轴位于x-y平面上,其中z=0
A点限制在舵机摆臂上,但舵机的排列意味着奇偶舵机臂相互映射。因此对于偶数腿,有:
对于奇数腿,有
因为
将这些值代入奇数腿的表达式,我们可以得到与偶数腿等式(4)(5)(6)相同的等式。
根据毕达哥拉斯定理(勾股定理),有
由等式(7)和(8)
整理(移项)可得
将等式(4)(5)(6)中xa,ya,za替换到上式得
合并多项式:
得到一个如下形式的等式
利用正弦波的三角恒等式
因此,我们得到了另一个相移δ为α的正弦函数
现在我们有足够的信息计算有效腿的长度和与其相关的舵机摆臂夹角,实现平台的逆运动。但为了设计和补充六脚平台,我们需要定义一些新的常量,来限制运动范围。
1) 我们需要定义平台home位置。按照定义,该位置为基座上方h0高度处,并且没有别的平移和旋转运动。即:
类似地,我们定义home位置为舵机摆臂和连杆彼此成直角。即:
因为平台是围绕z轴对称建造的,所以等式对任何一条腿都成立。
2) 我们也可以计算home位置时的舵机摆臂角度 ,用等式
根据平台的对称结构,home位置的腿长可给出
home位置时舵机摆臂的角度可由等式(9)给出,既然有对称性,我们可只分析第二条腿,此处
舵机安装时,应该使它们的中点接近home位置,并且我们将限制摆臂在±45°摆动。舵机由脉冲控制,脉冲的持续时间决定舵机摆臂的。
所用的舵机有如下规格参数:
- 中间位置(home位置)名义上是1500µs
- 顺时针旋转以增加脉冲宽度
- 45度的脉冲宽度变化是400µs,给出舵机速率
从上述来看,每个舵机的脉冲宽度Wi可用以下式子计算:
其中,Wi0是将第i个舵机保持在home位置所需的实际脉冲宽度,名义上是1500µs,但可以调整以补偿实际装配中的差异。
使用RC舵机控制Stewart平台
舵机控制Stewart平台的Arduino代码正在调试中……
所创建的平台关于z轴对称,但奇偶舵机安装在相反的位置。
控制平台的电路是基于附加的数学协处理器(浮点)的PICAXE微控制器和伺服电机控制器。
控制事件的顺序如下:
要控制Stewart平台的运动必须基于上述的数学运算分析,将上下平台的相对运动关系搞清楚,以便于后续编程算法的实现,也可利用MATLAB软件对平台进行建模与仿真分析。
内容更新中,待续……
Stewart平台及其数学运算相关推荐
- Stewart 平台的数学运动解析
中文译本,原文:https://web.archive.org/web/20130506134518/http://www.wokinghamu3a.org.uk/Maths%20of%20the%2 ...
- 只会高中数学运算就能发现算法?Google开源的AutoML-Zero有多厉害
译者 | 刘畅 出品 | AI科技大本营(ID:rgznai100) 机器学习研究,已经在多个方面都取得了进步,包括模型结构和优化方法等.而使此类研究自动化的工作(称为AutoML)也有重大进展.这一 ...
- Python练习:同符号数学运算
练习:同符号数学运算 平台:Python123.io 教师:嵩天 描述 读入一个整数N,分别计算如下内容: 1. N的绝对值: 2. N与10进行同符号加法.减法和乘法运算,同符号运算指使用N的绝对值 ...
- m与n的数字运算python_M与N的数学运算
描述 用户输入两个数M和N,其中N是整数,计算M和N的5种数学运算结果,并依次输出,结果间用空格分隔. ...
- Stewart平台六自由度运动平台位置逆解实现与仿真研究
1.内容简介 首先,应用D-H法对六自由度运动平台的运动学进行分析,并在Matlab/Simulink仿真集成环境中建立其位置逆解模型:然后利用Simulink下的SimMechanics工具集搭建好 ...
- smali to java_Smali —— 数学运算,条件判断,循环
通过上一篇 Smali 语法解析--Hello World 的学习,了解了 Smali 文件的基本格式.这一篇从最基本的数学运算,条件判断,循环等开始,更加详细的了解 Smali 语法. 数学运算 加 ...
- 谷歌AutoML新进展,进化算法加持,仅用数学运算自动找出ML算法
机器之心报道 参与:魔王.杜伟.小舟 授权转载自公众号机器之心 仅使用基础数学运算就能自动搜索机器学习算法?谷歌 Quoc V. Le 等人提出了 AutoML-Zero 方法. AutoML-Zer ...
- 最后的分的计算机公式,省考最后10天!掌握这些数学运算公式,提分!
2019年山东公务员考试4月20日笔试,目前的复习时间已经不多了.为帮助大家冲刺复习,突破数学运算这一难关,山东公务员考试网(www.sdgwy.org)总结了数学运算必背公式,大家可学习记忆. 1. ...
- P2759 奇怪的函数(二分答案,数学运算)
P2759 奇怪的函数 范围2e92e92e9,直接枚举肯定超时,正着直接求答案求不出来,那么运用逆向思维,直接二分答案判断即可.这道题涉及简单的数学运算. 要xx>=nx^x>=nxx& ...
最新文章
- macappstore登不上去_荣耀亲选一度登机箱----一个安静得想放进大侄子的magic box
- 启明云端1.54寸串口屏使用经验分享
- JSP自定义标签开发入门
- ubuntu sun-java-jdk(zhuan)
- C#连接SQL Server数据库
- ensp vlan 划分
- Android热修复学习之旅开篇——热修复概述
- 【Codex】Evaluating Large Language Models Trained on Code
- MATLAB | solve函数求解析解时不支持分段函数的解决方案
- 计算机组成原理课后答案(唐朔飞第二版)
- 使用checkstyle对android代码进行格式检查和格式化(google格式)
- 用谷歌还是火狐?手机端还是另外选择其他浏览器吧
- 技术面试要做哪些准备?
- 读计算机必看:美国顶尖IT公司从哪些大学招人最多?
- Python学习-操作列表
- ORACLE使用中的常见、实用的问题
- 球栅尺光栅尺磁栅尺编码器脉冲计数器数据采集模块
- EMC-降低传导辐射干扰的方法
- java beetl模板引擎_Spring Boot集成beetl模板引擎 个人总结
- Linux 中如何使用 Aria2 下载文件
热门文章
- 注册表html右键默认浏览器,如何锁定默认浏览器?用注册表设置默认浏览器方法...
- 教你用C计算2的n次方
- [luogu p1786] 帮贡排序
- CLIP:Contrastive Language-Image Pre-Training
- 钢绞线弹性模量怎么计算_预应力钢绞线参数及计算公式汇总
- 【中创AI】斯坦福人工智能年度报告:AI论文发表量中国世界第一!
- 2022年省考各省报名考试时间
- Vivado中的TCL脚本语言
- 上海商业发展研究院刘斌:变革下的供应链发展趋势
- go 基于gin编写encode、decode、base64加密接口