1. 前言

柔性臂是当前机器人领域一个比较热的研究方向,国内外高校如MIT、Stanford、JHU和我校、上交、中科大、北航等等都有做研究。大致可以分为三类:气驱/绳驱,超弹性材料,智能材料(DE/EAP/SMA)。大多也集中在仿生方面的研究,比如象鼻型、章鱼臂型等等,属于机械/生物/计算机/电子/控制(强行加上我们控制)的交叉领域。
这周主要学习了Clemson University早年研究的一种气驱型柔性臂的论文1。基本上白天看论文,晚上动手自己做硅胶构件,俨然和控制越来越远。。。。。。

2. 模型分类

建立这类气驱型柔性臂的模型具有一定复杂性,因为要完整精确地描述横向/纵向肌肉的运动和相互影响的机理,不过这论文都是十多年前的了,现在嘛。。。。。。

2.1 Complex, fully soft model

完整地描述肌纤维的运动及对其他肌纤维的影响,理想。。理想。。。一种oft model是把章鱼臂看作一系列定容圆柱,每个圆柱能变直径变长度;另一种是看作一系列的腔管,能在两个方向上弯曲。
虽然这类模型在解释运动机理上很好,但是soft model的主要问题:是难以用于控制柔性臂到达期待位姿,以及难以再现完全柔软而定容的执行器。

2.2 Cylindrical extension model

把整个柔性臂分解成一系列变直径的部分首尾连接起来。这种模型描述运动机理效果比较好。具体地说,也是看作一系列定容圆柱,通过对生物肌肉实际测量得到一些参数,能够很好地预测章鱼臂在一次捕食行为中肌肉的动作,但是这种模型,按照原文说,主要描述了单关节臂杆的行为,而不是整个完整机械臂的功能。(有一点点懵逼,论文也没细讲)

2.3 Circular curvature model

在一定的假设条件下,能更好地阐述章鱼臂的运动机理,也是实际应用最多的一种。假设机械臂以恒定曲率弯曲且不能扭转(这假设下当然更容易分析了。。)当然好处也很明显,可以化简为一系列旋转关节和位移关节,直接用DH参数法,经典的机器人控制理论和算法也可以套用。Clemson University的Elephant Trunk manipulator和Air-Octor single manipulator的分析都是基于这种模型。


接下来分析这个Air-Octor single manipulator的正运动学模型。

3. 正运动学模型

3.1 整体分析

这个柔性臂由中间的软管和外部保护软管以及三个驱动的绳索组成。然后三个弯曲自由度,一个收缩自由度,也就是四自由度的柔性臂。


正运动学模型就是已知三个绳索的长度l1l_1l1​ 和 l2l_2l2​ 和 l3l_3l3​,求解弯曲的角度 ϕ\phiϕ 和曲率 kϕk_{\phi}kϕ​ 以及弯曲部分长度 sss。论文提供的算法分两部分,先求解定义的一个长度 rir_iri​,再求出 ϕ\phiϕ 和 kϕk_{\phi}kϕ​ 以及 sss。

3.2 求解 rir_iri​


考虑上图这一段柔性臂,通过绳索1的这一点给出一个垂直于绳索2和绳索3的平面。由这个平面就得到三个用于求解 rir_iri​ 的中间变量:
h1=0h_1 = 0h1​=0 (平面在绳索1那个点定义的,所以是0)
h2=l2−l12nh_2 = \cfrac{l_2 - l_1}{2n}h2​=2nl2​−l1​​
h3=l3−l12nh_3 = \cfrac{l_3 - l_1}{2n}h3​=2nl3​−l1​​
n是把整个柔性臂等分的段数。

得到了h1h_1h1​、h2h_2h2​、h3h_3h3​后,接下来求 hch_chc​,也就是柔性臂截面的三个绳索构成的等边三角形中点距离设定平面的距离。由上图可以看出, hch_chc​ 是h2mh_{2m}h2m​ 和 h3mh_{3m}h3m​ 的平均值。那么 h2mh_{2m}h2m​ 和 h3mh_{3m}h3m​ 怎么求解呢?

参考上图,根据相似三角形的几何关系就可以求出
h2m=l2−l13nh_{2m} = \cfrac{l_2 - l_1}{3n}h2m​=3nl2​−l1​​
h3m=l3−l13nh_{3m} = \cfrac{l_3 - l_1}{3n}h3m​=3nl3​−l1​​
相应地就可以求出hch_chc​:
hc=l3+l2−2l16nh_{c} = \cfrac{l_3 +l_2 - 2l_1}{6n}hc​=6nl3​+l2​−2l1​​
接下来我们再看下图

上图完整地描述了这一段弯曲的柔性臂的情况,根据描红的一部分,我们可以得到如下等腰三角形

dhc=r1hc+l12n\cfrac{d}{h_c} = \cfrac{r_1}{h_c + \cfrac{l_1}{2n}}hc​d​=hc​+2nl1​​r1​​

这样就可以推出r1:

r1=d(l1+l2+l3)l3+l2−2l1r_1 = \cfrac{d(l_1 + l_2 + l_3)}{l_3 + l_2 - 2l_1}r1​=l3​+l2​−2l1​d(l1​+l2​+l3​)​

那么r2r_2r2​ 和 r3r_3r3​ 呢?论文直接给出结果了,不过还是希望大家自己能推导一下。
这是我自己推导画的图,手残轻喷。要注意的是三根绳索长度不同,这个斜的截面它不是设定平面直接绕绳索1那个点所在的横直线直接旋转可以得到的,是一个。。有点别扭的状态,可以想象一下。

由上图易得。。真的是容易得到,如果你认真分析了的话(滑稽):

dr2=hc−h2l12n+hc\cfrac{d}{r_2} = \cfrac{h_c - h_2}{\cfrac{l_1}{2n} + h_c}r2​d​=2nl1​​+hc​hc​−h2​​

dr3=h3−hcl12n+hc\cfrac{d}{r_3} = \cfrac{h_3 - h_c}{\cfrac{l_1}{2n} + h_c}r3​d​=2nl1​​+hc​h3​−hc​​

整理后可得

r2=d(l1+l2+l3)l3+l1−2l2r_2 = \cfrac{d(l_1 + l_2 + l_3)}{l_3 + l_1 - 2l_2}r2​=l3​+l1​−2l2​d(l1​+l2​+l3​)​

r3=d(l1+l2+l3)l1+l2−2l3r_3 = \cfrac{d(l_1 + l_2 + l_3)}{l_1 + l_2 - 2l_3}r3​=l1​+l2​−2l3​d(l1​+l2​+l3​)​

3.3 求解 ϕ\phiϕ 和 kϕk_{\phi}kϕ​

r1r_1r1​、r2r_2r2​、r3r_3r3​看作向量形式的话:
r1=r1∠90ο\mathrm{r_1} = r_1\angle{90^\omicron}r1​=r1​∠90ο
r2=r2∠210ο\mathrm{r_2} = r_2\angle{210^\omicron}r2​=r2​∠210ο
r3=r3∠−30ο\mathrm{r_3} = r_3\angle{-30^\omicron}r3​=r3​∠−30ο
具体如下图

我们用一个基变换矩阵 BBB 来求得正交基 ryr_yry​ 和 ryr_yry​:

B=[cos⁡(210ο)sin⁡(210ο)cos⁡(−30ο)sin⁡(−30ο)]B = \begin{bmatrix} \cos{(210^\omicron)} & \sin{(210^\omicron)} \\ \cos{({-30}^\omicron)} & \sin{({-30}^\omicron)} \\ \end{bmatrix}B=[cos(210ο)cos(−30ο)​sin(210ο)sin(−30ο)​]

rx=r3−r23r_x = \cfrac{r_3 - r_2}{\sqrt{3}}rx​=3​r3​−r2​​

ry=−r2−r3r_y = -r_2 -r_3ry​=−r2​−r3​

然后我们就可以得到 (其实这部分不明白为什么这样就得到了 ϕ\phiϕ,希望有看到的朋友能帮忙解释一下)

ϕ=tan⁡−1(ryrx)\phi = \tan^{-1}\left(\cfrac{r_y}{r_x}\right)ϕ=tan−1(rx​ry​​)

rϕ=rx2+ry2r_\phi = \sqrt{{r_x}^2 + {r_y}^2}rϕ​=rx​2+ry​2​ (注意曲率 kϕ=1rϕk_\phi = \cfrac{1}{r_\phi}kϕ​=rϕ​1​)

最后整理消除中间变量得到

kϕ=2l12+l22+l32−l1l2−l2l3−l1l1d(l1+l2+l3)k_\phi = 2\cfrac{\sqrt{{l_1}^2 + {l_2}^2 + {l_3}^2 -l_1l_2 - l_2l_3 -l_1l_1}}{d\left(l_1 + l_2 + l_3\right)}kϕ​=2d(l1​+l2​+l3​)l1​2+l2​2+l3​2−l1​l2​−l2​l3​−l1​l1​​​

ϕ=tan⁡−1(33l3+l2−2l1l2−l3)\phi = \tan^{-1}\left(\cfrac{\sqrt3}{3}\cfrac{l_3 + l_2 - 2l_1}{l_2 - l_3}\right)ϕ=tan−1(33​​l2​−l3​l3​+l2​−2l1​​)

3.4 求解 sss

最后我们再求出柔性臂的长度,因为前面我们是分成了n份来分析的。
根据前面的分析我们可以得到

lc=l1+l2+l33l_c = \cfrac{l_1 + l_2 + l_3}{3}lc​=3l1​+l2​+l3​​

再根据上图可以得到关系式如下:

sin⁡β2=lc2n1kϕ\sin\cfrac{\beta}{2} = \cfrac{\cfrac{l_c}{2n}}{\cfrac{1}{k_\phi}}sin2β​=kϕ​1​2nlc​​​

解得

s=2nkϕsin⁡−1(lckϕ2n)s = \cfrac{2n}{k_\phi}\sin^{-1}\left(\cfrac{l_ck_\phi}{2n}\right)s=kϕ​2n​sin−1(2nlc​kϕ​​)

最后整理消除中间变量得

s=nd(l1+l2+l3)l12+l22+l32−l1l2−l2l3−l1l3⋅sin⁡−1(l12+l22+l32−l1l2−l2l3−l1l33nd)s = \cfrac{nd(l_1 + l_2 + l_3)}{\sqrt{{l_1}^2 +{l_2}^2 + {l_3}^2 - l_1l_2 - l_2l_3 - l_1l_3}} \cdot \sin^{-1}\left( \cfrac{\sqrt{{l_1}^2 +{l_2}^2 + {l_3}^2 - l_1l_2 - l_2l_3 - l_1l_3}}{3nd}\right)s=l1​2+l2​2+l3​2−l1​l2​−l2​l3​−l1​l3​​nd(l1​+l2​+l3​)​⋅sin−1(3ndl1​2+l2​2+l3​2−l1​l2​−l2​l3​−l1​l3​​​)

3.5 归纳整理

定义 g:=l12+l22+l32−l1l2−l2l3−l1l3g := {l_1}^2 +{l_2}^2 + {l_3}^2 - l_1l_2 - l_2l_3 - l_1l_3g:=l1​2+l2​2+l3​2−l1​l2​−l2​l3​−l1​l3​,则z正运动学模型可归纳为

kϕ=2gd(l1+l2+l3)k_\phi = 2\cfrac{\sqrt g}{d(l_1 + l_2 + l_3)}kϕ​=2d(l1​+l2​+l3​)g​​

ϕ=tan⁡−1(33l3+l2−2l1l2−l3)\phi = \tan^{-1}\left(\cfrac{\sqrt3}{3}\cfrac{l_3 + l_2 - 2l_1}{l_2 - l_3}\right)ϕ=tan−1(33​​l2​−l3​l3​+l2​−2l1​​)

s=nd(l1+l2+l3)g⋅sin⁡−1(g3nd)s = \cfrac{nd(l_1 + l_2 + l_3)}{\sqrt g} \cdot \sin^{-1}\left( \cfrac{\sqrt g}{3nd}\right)s=g​nd(l1​+l2​+l3​)​⋅sin−1(3ndg​​)

注意上式中lim⁡g→0s=l1+l2+l33\lim\limits_{g \to 0}s = \cfrac{l_1 + l_2 + l_3}{3}g→0lim​s=3l1​+l2​+l3​​

4. 总结

以上就是一种气驱型柔性臂的正运动学推导,其实可以看到所运用到的数学工具除了基变换矩阵那里以外,其他的基本上就是高中几何代数就可以解决的……所以说有些东西乍一看上去仿佛很艰深晦涩,可是钻研进去就会发现其实也并不很难,甚至还有点意思。另外一点收获就是看论文的时候很容易看人家推导顺着思路就觉得,哦,对,就这么推,很简单,就好比做题的时候看着参考答案自然觉得很简单,但是合上答案自己做题就发现不是那么一回事,所以看论文想要消化作者的精髓,自己推导公式是必不可少的,再一点就是要反复读啦。


  1. B. Jones, W. McMahan, and I.D. Walker, “Design and Analysis of a Novel Pneumatic Manipulator”, to appear, 3rd IFAC Symposium on Mechatronic Systems, Sydney, Australia, September 2004. ↩︎

中正平和的机器人学笔记——6. 一种气驱型柔性臂的正运动学模型相关推荐

  1. 中正平和的机器人学笔记——7. 一种气驱型柔性臂的逆运动学模型

    1. 前言 上一篇分析了Air-Octor的正运动学模型,这一篇是学习另一篇论文1的笔记,着重分析这种柔性臂的逆运动学模型,也就是通过kϕk_\phikϕ​ 和 ϕ\phiϕ 以及 sss 来求 l1 ...

  2. 中正平和的机器人学笔记——0. 前言

    中正平和的机器人学笔记--0.前言 一点唠叨的话 没有想到最后还是入了机器人学的坑,心情复杂. 借鉴某同学课设时写csdn blog整理自己所学知识的方法,我也将这周学习到的机器人学的知识记录整理下来 ...

  3. 中正平和的机器人学笔记——1. 机械臂正运动学(附MATLAB代码)

    中正平和的机器人学笔记--1.正运动学 0. 何为运动学?何为正运动学? 运动学主要研究的就是机械臂的运动特性(位置.速度.加速度等),但是不考虑使机械臂产生运动时施加的力和力矩(这部分是动力学).而 ...

  4. 柔性matlab机械臂运动空间代码,中正平和的机器人学笔记——2. 机械臂逆运动学(附MATAB代码)...

    0. 预备知识(别跳过呀) 上一篇我们讲了正运动学,也就是通过齐次变换矩阵,知晓关节角后求得机械臂末端的位姿,并表示在基座标系下.这一篇我们就来讲一讲逆运动学问题--已知工具坐标系{T}相对于固定坐标 ...

  5. 机器人学matlab建模实例,中正平和的机器人学笔记——3.几个MATLAB实例

    0. 轨迹 学机器人学前最想知道的,就是如何把机器人末端执行器平滑地从A点移动到B点,也许不太准确,应当说从位姿A移动到位姿B. 0.1 关节空间运动 考虑末端执行器在以下两个笛卡尔位姿之间移动 下面 ...

  6. 中正平和的机器人学笔记——5. 机械臂动力学

    0. 基础知识 0.1 线加速度 上一篇中我们讲到了在坐标系{A}和坐标系{B}原点重合时,BQ^BQBQ的速度矢量的表示方式: AVQ^AV_QAVQ​ = BARBVQ^A_BR^BV_QBA​R ...

  7. 中正平和的机器人学笔记——4. 雅可比矩阵(附MTALB代码)

    1. 基础知识 基础知识主要是希望大家回顾一下大学物理里讲的速度矢量和角速度矢量部分的知识,用矢量形式去表示,还有叉乘的相关知识,这些我就不赘述了. 想象存在坐标系{A}和{B},把{B}固连在某一刚 ...

  8. 机器人学回炉重造(1-2):各种典型机械臂的正运动学建模(标准D-H法)

    文章目录 写在前面 三连杆平面机械臂 平行四边形操作臂 闭链结构 例:平行四边形操作臂 球形臂 拟人臂 球腕 斯坦福机械臂 带球形手腕的拟人化机械臂 DLR机械臂 参考文献 写在前面 本文所有机械臂均 ...

  9. CoppeliaSim(原Vrep)中实现多关节机械臂的正运动学仿真【CoppeliaSim内嵌脚本lua语言实现】

    lua实现 文章目录 lua实现 `本章在动力学建模完成的前提下进行` 1)创建脚本 2)代码实现 3)以上代码的运行结果 4)代码中用到函数的help文档 本章在动力学建模完成的前提下进行 传送门: ...

最新文章

  1. Castle ActiveRecord 泛型应用
  2. java 报表导出_Java Excel报表导出Demo
  3. 零基础学python爬虫-零基础学习python_爬虫(53课)
  4. Vue使用vue-cli基于脚手架编写项目_自己编写一个vue基本项目_认识项目结构---vue工作笔记0019
  5. Filecoin网络目前总质押量约为3314万枚FIL
  6. 递归装饰器正则运算模块
  7. MyBatis官方文档——入门部分
  8. smarq v7 智器 v7 新手使用
  9. 【深入理解JS核心技术】3. 调用、应用和绑定有什么区别
  10. 防火墙端口大全(转)
  11. mysql数据加表头导出_mysql导出数据到表格讲解大全(导出数据带表头,导出数据中文乱码问题解决)...
  12. 如何剪裁证件照大小?2寸证件照片怎么制作?
  13. 关于nginx日志的HTTP 499状态码
  14. windowsXPsp3恢复桌面IE图标
  15. 【GoCN酷Go推荐】ip2location 解析 IP 地址库
  16. 案例 | 巴别鸟为弘睿构建企业知识库
  17. Android 13 Camera ITS 环境搭建(从Python安装到环境配置详解)
  18. android源码分析
  19. Google学术的使用指南
  20. C语言求n的阶乘的方法总结

热门文章

  1. 阿城的三王(棋王 树王 孩子王)
  2. Camunda工作流引擎简记
  3. ROS机器人系统学习笔记(一)--------ROS安装与配置
  4. 让我们来做一个属于自己的浏览器主页吧!
  5. 老牌激活工具– Microsoft Toolkit 2.4.3 + 详细图文教程【转】
  6. 2020年8月2日摄影作品-园博园
  7. 【唤醒屏幕总结】java.lang.RuntimeException: WakeLock under-locked target
  8. php jsp js,jsp和javascript的区别是什么
  9. java开发者工具IDEA自定义设置主题/字体/字号大小
  10. mysql 16g 内存服务器_服务器物理内存16G mysql数据库my.cnf配置及参数说明