基于欧拉-拉格朗日方程的机器人动力学模型

发布时间:2021-10-22 04:28:00

机器人动力学方程

机器人动力学方程是描述机器人力和运动之间的关系的方程。只描述力和运动的关系,不考虑产生运动的力和扭矩。


欧拉 - 拉格朗日方程

欧拉-拉格朗日方程(OL)描述了处于完整约束下,并且约束力满足虚功原理的机械系统的力和运动随时间的变化


有两种推导方法,先介绍使用牛顿第二定律的推导方法。


根据牛顿第二定律,某质点的运动方程是:





m



y


¨



=


f


?


m


g



mddot y = f-mg


my¨?=f?mg
先对时间求导,再对





y


?




dot y


y??求偏导,方程左侧可以写为:





m



y


¨



=



d



d


t




(


m



y


?



)


=



d



d


t





?



?



y


?





(



1


2



m




y


?



2



)


=



d



d


t






?


K




?



y


?






m ddot y = {d over dt}(m dot y)={d over dt}{partial over partial dot y}({1 over 2}m dot y^2)={d over dt}{partial K over partial dot y}


my¨?=dtd?(my??)=dtd??y????(21?my??2)=dtd??y???K?
其中




K


=



1


2



m




y


?



2




K = {1 over 2}m dot y^2


K=21?my??2,是动能。


接着将重力表示为:





m


g


=



?



?


y




(


m


g


y


)


=




?


P




?


y





mg = {partial over partial y}(mgy) = {partial P over partial y}


mg=?y??(mgy)=?y?P?
其中




P


=


m


g


y



P = mgy


P=mgy表示重力势能。


定义拉格朗日算子




L



L


L,表示系统动能与势能之差:





L


=


K


?


P


=



1


2



m




y


?



2



?


m


g


y



L = K-P ={1 over 2}m dot y^2-mgy


L=K?P=21?my??2?mgy
并且有:







?


L




?



y


?





=




?


K




?



y


?





,




?


L




?


y




=


?




?


P




?


y





{partial Lover partial dot y} = {partial K over partial dot y},{partial L over partial y} =-{partial P over partial y}


?y???L?=?y???K?,?y?L?=??y?P?


则初始的质点运动方程可化为:






d



d


t






?


K




?



y


?





=


f


?




?


P




?


y





{d over dt}{partial K over partial dot y} = f-{partial P over partial y}


dtd??y???K?=f??y?P?
即:






d



d


t






?


L




?



y


?





?




?


L




?


y




=


f



{d over dt}{partial L over partial dot y}-{partial L over partial y} = f


dtd??y???L???y?L?=f
此方程被称为欧拉-拉格朗日方程。


推广到n自由度的系统,得到:






d



d


t






?


L




?




q


?



k





?




?


L




?



q


k





=



τ


k




{d over dt}{partial L over partial dot q_k}-{partial L over partial q_k} = au_k


dtd??q??k??L???qk??L?=τk?
其中





τ


k




au_k


τk?是与广义坐标





q


k




q_k


qk?相关的力。


动能与势能

欧拉-拉格朗日方程可以直接用来推导动力学方程,前提是我们能够以一组广义坐标来表示该系统的动能和势能。如果要让这能够得到实际应用,那么我们就必须能够针对一个n连杆机器人计算出他的动能和势能。接下来将推到刚性连杆机器人动能和势能的表达式。


动能表示

刚体的动能可表示为*移动能和关于质心的旋转动能之和:





K


=



1


2



m



v


T



v


+



1


2




ω


T



Z


ω



K = {1 over 2}mv^Tv+{1over 2}omega^T Zomega


K=21?mvTv+21?ωTZω





Z



Z


Z表示物体的惯性张量,是一个3*3的对称矩阵。







Z


=


R


I



R


T




Z = RIR^T


Z=RIRT,R是附体坐标系与惯性坐标系之间的姿态变换。







I



I


I是附体坐标系中的惯性张量,仅取决于物体的形状和质量分布,与物体运动无关。


速度




v



v


v和角速度




ω



omega


ω需要转置,因为要考虑多个维度的方向。连杆上任意一点的现速度和角速度可通过雅可比矩阵和关节速度(关节变量的导数)来表示:






v


i



=



J



v


i




q



q


?





ω


i



=



J



ω


i




q



q


?




v_i = J_{v_i}qdot q \ omega_i = J_{omega_i}qdot q


vi?=Jvi??qq??ωi?=Jωi??qq??


机器人总动能可表示为:





K


=



1


2





q


?



T








i


=


1



n



[



m


i



?




(



J



v


i




(


q


)


)



T



?



J



v


i




(


q


)


?


+


?


(



J



ω


i




(


q


)



)


T



?



R


i



(


q


)


?



I


i



?


(



R


i



(


q


)



)


T



?



J



ω


i




(


q


)


]



q


?




K = {1 over 2}dot q^T sum_{i=1}^n[m_i {(J_{v_i}(q))}^T J_{v_i}(q) + (J_{omega_i}(q))^T R_{i}(q) I_i (R_i(q))^T J_{omega_i}(q)]dot q


K=21?q??Ti=1∑n?[mi??(Jvi??(q))T?Jvi??(q)?+?(Jωi??(q))T?Ri?(q)?Ii??(Ri?(q))T?Jωi??(q)]q??





D


(


q


)



D(q)


D(q)来表示机器人的惯性矩阵:





D


(


q


)


?


=


?







i


=


1



n



[



m


i



?




(



J



v


i




(


q


)


)



T



?



J



v


i




(


q


)


?


+


?


(



J



ω


i




(


q


)



)


T



?



R


i



(


q


)


?



I


i



?


(



R


i



(


q


)



)


T



?



J



ω


i




(


q


)


]



K


=



1


2





q


?



T



D


(


q


)



q


?




D(q) = sum_{i=1}^n[m_i {(J_{v_i}(q))}^T J_{v_i}(q) + (J_{omega_i}(q))^T R_{i}(q) I_i (R_i(q))^T J_{omega_i}(q)] \ K = {1 over 2}dot q^T D(q)dot q


D(q)?=?i=1∑n?[mi??(Jvi??(q))T?Jvi??(q)?+?(Jωi??(q))T?Ri?(q)?Ii??(Ri?(q))T?Jωi??(q)]K=21?q??TD(q)q??
机器人惯性矩阵




D


(


q


)



D(q)


D(q)有如下特点:


    只与机器人构型有关对称且正定动能总是非负的

势能表示

在刚体动力学情形下,势能总是来源于重力。假设物体质量集中在质心,计算第




i



i


i个连杆的势能:






P


i



=



m


i




g


T




r



c


i





P_i = m_ig^Tr_{ci}


Pi?=mi?gTrci?





g



g


g是惯性坐标系中的重力向量,





r



c


i





r_{ci}


rci?是连杆




i



i


i的质心坐标。机器人总势能为:





P


=







i


=


1



n




P


i



=







i


=


1



n




m


i




g


T




r



c


i





P = sum_{i=1}^n P_i = sum_{i=1}^n m_ig^Tr_{ci}


P=i=1∑n?Pi?=i=1∑n?mi?gTrci?
在m、g保持不变的情况下,机器人势能只与广义坐标





r



c


i





r_{ci}


rci?有关。


运动方程

上面我们得到了如下结果:


系统动能是关于广义速度(坐标微分)的二次函数:





K


=



1


2





q


?



T



D


(


q


)



q


?



=



1


2








i


,


j



n




d



i


,


j




(


q


)




q


?



i





q


?



j




K = {1 over 2}dot q^T D(q)dot q = {1 over 2}sum_{i,j}^n d_{i,j}(q) dot q_i dot q_j


K=21?q??TD(q)q??=21?i,j∑n?di,j?(q)q??i?q??j?
系统势能是关于广义坐标的函数,且与广义速度无关:





P


=







i


=


1



n




m


i




g


T




r



c


i





P = sum_{i=1}^n m_ig^Tr_{ci}


P=i=1∑n?mi?gTrci?
欧拉-拉格朗日算子为:





L


=


K


?


P


=



1


2








i


,


j



n




d



i


,


j




(


q


)




q


?



i





q


?



j



?


P


(


q


)



L = K-P ={1 over 2}sum_{i,j}^n d_{i,j}(q) dot q_i dot q_j-P(q)


L=K?P=21?i,j∑n?di,j?(q)q??i?q??j??P(q)
欧拉-拉格朗日方程为:






d



d


t






?


L




?




q


?



k





?




?


L




?



q


k





=



τ


k




{d over dt}{partial L over partial dot q_k}-{partial L over partial q_k} = au_k


dtd??q??k??L???qk??L?=τk?
其中:







?


L




?




q


?



k





=






j




d



k


j






q


?



j





d



d


t






?


L




?




q


?



k





=






j




d



k


j






q


¨



j



+






j




d



d


t





d



k


j






q


?



j




???????????????


=






j




d



k


j






q


¨



j



+







i


,


j






?



d



k


j






?



q


i







q


?



i





q


?



j






?


L




?



q


k





=



1


2








i


,


j






?



d



i


,


j






?



q


k







q


?



i





q


?



j



?




?


P




?



q


k






{partial L over partial dot q_k}= sum_jd_{kj}dot q_j\ {d over dt}{partial L over partial dot q_k} = sum_jd_{kj}ddot q_j+sum_{j}{d over dt}d_{kj}dot q_j \ = sum_jd_{kj}ddot q_j+sum_{i,j}{partial d_{kj}over partial q_i}dot q_idot q_j \ {partial L over partial q_k} = {1 over 2}sum_{i,j} {partial d_{i,j} over partial q_k} dot q_i dot q_j - {partial P over partial q_k}


?q??k??L?=j∑?dkj?q??j?dtd??q??k??L?=j∑?dkj?q¨?j?+j∑?dtd?dkj?q??j????????????????=j∑?dkj?q¨?j?+i,j∑??qi??dkj??q??i?q??j??qk??L?=21?i,j∑??qk??di,j??q??i?q??j???qk??P?
因此对于每个




k


=


1


,


2


,


.


.


.


n



k=1,2,...n


k=1,2,...n,欧拉-拉格朗日方程可以写成:









j




d



k


j






q


¨



j



+







i


,


j




{




?



d



k


j






?



q


i





?



1


2





?



d



i


,


j






?



q


k





}




q


?



i





q


?



j



?




?


P




?



q


k





=



τ


k




sum_jd_{kj}ddot q_j+sum_{i,j}{ {partial d_{kj}over partial q_i} -{1over 2}{partial d_{i,j} over partial q_k}} dot q_idot q_j - {partial P over partial q_k}= au_k


j∑?dkj?q¨?j?+i,j∑?{?qi??dkj???21??qk??di,j??}q??i?q??j???qk??P?=τk?
即:









j




d



k


j






q


¨



j



+







i


,


j





1


2



{




?



d



k


j






?



q


i





+




?



d



k


j






?



q


i





?




?



d



i


,


j






?



q


k





}




q


?



i





q


?



j



?




?


P




?



q


k





=



τ


k




sum_jd_{kj}ddot q_j+sum_{i,j} {1over 2}{ {partial d_{kj}over partial q_i} + {partial d_{kj}over partial q_i} -{partial d_{i,j} over partial q_k}} dot q_idot q_j - {partial P over partial q_k}= au_k


j∑?dkj?q¨?j?+i,j∑?21?{?qi??dkj??+?qi??dkj????qk??di,j??}q??i?q??j???qk??P?=τk?
定义Christoffel symbol:






c



i


j


k




=



c



j


i


k




=



1


2



{




?



d



k


j






?



q


i





+




?



d



k


j






?



q


i





?




?



d



i


,


j






?



q


k





}



c_{ijk} = c_{jik} ={1over 2}{ {partial d_{kj}over partial q_i} + {partial d_{kj}over partial q_i} -{partial d_{i,j} over partial q_k} }


cijk?=cjik?=21?{?qi??dkj??+?qi??dkj????qk??di,j??}
定义广义重力:






g


k



=




?


P




?



q


k






g_k = {partial P over partial q_k}


gk?=?qk??P?
最终得到欧拉-拉格朗日方程:









j




d



k


j




(


q


)




q


¨



j



+







i


,


j





c



i


j


k




(


q


)




q


?



i





q


?



j



?



g


k



(


q


)


=



τ


k




sum_jd_{kj}(q)ddot q_j+sum_{i,j} c_{ijk}(q) dot q_idot q_j - g_k(q)= au_k


j∑?dkj?(q)q¨?j?+i,j∑?cijk?(q)q??i?q??j??gk?(q)=τk?
方程左侧三项分别为:


    广义坐标的二阶导数:惯性项广义坐标一阶导数的二次型:离心力项+哥氏力项广义位置(0阶导数)重力项

方程可简写为:





D


(


q


)



q


¨



+


C


(


q


,



q


?



)



q


?



+


g


(


q


)


=


τ



D(q)ddot q+C(q,dot q)dot q+g(q) = au


D(q)q¨?+C(q,q??)q??+g(q)=τ


推导*面2关节机器人的动力学模型

现在考虑下图中带有两个转动关节的*面机械臂。



要使用刚刚得到的欧拉-拉格朗日方程,就要与关节位置和关节速度相关的三个量:




D


(


q


)


,


C


(


q


,



q


?



)


,


g


(


q


)



D(q),C(q,dot q),g(q)


D(q),C(q,q??),g(q)。


首先使用雅可比矩阵来计算动能,计算*移速度:






v



c


1




=



J



v



c


1






q


?





v



c


2




=



J



v



c


2






q


?





J



v



c


1





=



[







?



l


c



s


i


n


(



q


1



)







0










l



c


1




c


o


s


(



q


1



)







0








0






0






]





J



v



c


2





=



[







?



l


1



s


i


n


(



q


1



)


?



l



c


2




s


i


n


(



q


1



+



q


2



)








?



l



c


2




s


i


n


(



q


1



+



q


2



)











l


1



c


o


s


(



q


1



)


+



l



c


2




c


o


s


(



q


1



+



q


2



)









l



c


2




c


o


s


(



q


1



+



q


2



)









0






0






]




v_{c1} = J_{v_{c1}}dot q \ v_{c2} = J_{v_{c2}}dot q \ J_{v_{c1}} = egin{bmatrix}-l_c sin(q_1) & 0 \ l_{c1}cos(q_1) & 0\ 0 & 0 \end{bmatrix} \ J_{v_{c2}} = egin{bmatrix}-l_1sin(q_1)-l_{c2}sin(q_1+q_2) & -l_{c2}sin(q_1+q_2) \ l_1cos(q_1)+l_{c2}cos(q_1+q_2) & l_{c2}cos(q_1+q_2)\ 0 & 0 \end{bmatrix}


vc1?=Jvc1??q??vc2?=Jvc2??q??Jvc1??=????lc?sin(q1?)lc1?cos(q1?)0?000????Jvc2??=????l1?sin(q1?)?lc2?sin(q1?+q2?)l1?cos(q1?)+lc2?cos(q1?+q2?)0??lc2?sin(q1?+q2?)lc2?cos(q1?+q2?)0????
*移部分对应的动能为:






1


2




m


1




v



c


1



T




v



c


1




+



1


2




m


2




v



c


2



T




v



c


2




=



1


2




q


?



{



m


1




J



v



c


1




T




J



v



c


1





+



m


2




J



v



c


2




T




J



v



c


2





}



q


?




{1over 2}m_1 v^T_{c1}v_{c1}+{1over2}m_2v^T_{c2}v_{c2} = {1over 2}dot q{ m_1J^T_{v_{c1}}J_{v_{c1}} +m_2J^T_{v_{c2}}J_{v_{c2}} }dot q


21?m1?vc1T?vc1?+21?m2?vc2T?vc2?=21?q??{m1?Jvc1?T?Jvc1??+m2?Jvc2?T?Jvc2??}q??
接下来考虑角速度项:






ω


1



=




q


?



1



k




ω


2



=


(




q


?



1



+




q


?



2



)


k



omega_1 = dot q_1k \ omega_2 = (dot q_1+ dot q_2)k


ω1?=q??1?kω2?=(q??1?+q??2?)k
由于





ω


i




omega_i


ωi?与每个关节坐标系的z轴对齐,旋转动能可以简单表示为





1


2




I


i




ω


i


2




{1over 2}I_iomega_i^2


21?Ii?ωi2?,其中





I


i




I_i


Ii?是转动惯量,它的轴线穿过连杆i的质心且*行于





z


i




z_i


zi?轴。因此,就广义坐标而言,整个系统的旋转动能为:






1


2





q


?



T



{



I


1




[






1






0








0






0






]



+



I


2




[






1






1








1






1






]



}



q


?




{1over 2}dot q^T { I_1 egin{bmatrix}1 &0 \ 0&0 end{bmatrix} + I_2 egin{bmatrix} 1&1\1&1 end{bmatrix}}dot q


21?q??T{I1?[10?00?]+I2?[11?11?]}q??
惯性矩阵:





D


(


q


)


=



m


1




J



v



c


1




T




J



v



c


1





+



m


2




J



v



c


2




T




J



v



c


2





+



[








I


1



+



I


2









I


2










I


2








I


2







]



=



[







d


11








d


12










d


21








d


22







]





D(q) = m_1J^T_{v_{c1}}J_{v_{c1}} +m_2J^T_{v_{c2}}J_{v_{c2}} + egin{bmatrix} I_1+I_2&I_2 \ I_2&I_2 end{bmatrix} = egin{bmatrix} d_{11}&d_{12} \ d_{21}&d_{22} end{bmatrix} \


D(q)=m1?Jvc1?T?Jvc1??+m2?Jvc2?T?Jvc2??+[I1?+I2?I2??I2?I2??]=[d11?d21??d12?d22??]
计算得:






d


11



=



m


1




l



c


1



2



+



m


2

相关文档

  • hadoop 不能本地打开网页
  • 喜糖是一人一份还是一家一份 喜糖是一人一份吗
  • 测试方法-边界值/因果图设计
  • css样式--将大小不固定的图片或文字段 垂直居中
  • 大卫上学去的文字版-大卫上学去作文400字
  • 关于优秀毕业生的毕业感言
  • 微信突然显示登录过期
  • 外语系毕业生自荐信精选多篇
  • 服装销售工作自我总结
  • 好看的餐饮空间设计效果图片
  • 开发想象力的书
  • 这样的西瓜最好别吃!
  • 吴文俊与上海交大的一世情缘
  • Web项目的url配置问题??路径错误的原因,什么是构建,如何正确填写路径,404的解决方法
  • Android Studio升级之后Gradle版本太高加载失败
  • 关于垃圾分类收获心得700字
  • 质量效应3队员都有哪些
  • 电脑不系统坏了怎么办啊
  • 军训记700字作文
  • 开卷有益(6)
  • 飞蛾扑火的成语典故是什么
  • 扁桃体炎有什么症状,治疗扁桃体炎的偏方
  • SWD、JTAG调试接口
  • 陈涉世家完整全文及翻译
  • 对大学生评语
  • 2018山西职业技术学院 山西信息职业技术学院2018年6月英语六级报名:
  • 关于FPGA内部资源的一些了解
  • 关于小学生励志的短篇故事
  • 冬天雪景诗歌
  • Android中的事件侦听器 学习笔记
  • 猜你喜欢

  • 孝敬父母歌词 孝敬父母的句子
  • 关于旅游管理应用型本科加强实践教学环节的思考
  • 2012届高三数学一轮复*:数列练*题1
  • 鸟哥的Linux私房菜第十章
  • 安全伴我行演讲稿范文3篇
  • 智能变电站自动化系统的设计及优化精品资料
  • 人教版七年级下册第2章第2节消化和吸收 课件(27张ppt)
  • 2021年扬州大学化学化工学院826物理化学(工)考研仿真模拟五套题
  • 淘宝520活动策划
  • 关于浏览器指纹
  • 关于工程合伙投资协议书范文
  • 西方国家公共部门流程再造的实践及其启示
  • 军训总结主题班会的演讲稿_策划书.doc
  • 幻想_初二作文
  • 最新红蓝简约清爽英伦风商务通用模板【ppt精美模板】
  • 新课标2009年高中数学高考冲刺专题训练 立体几何测试题(理)
  • 薏米红豆粥的功效作用及食用禁忌
  • 东莞市塘厦零距离网吧(普通合伙)企业信用报告-天眼查
  • 2020年下半年上海初级商务英语报名时间及报名费用9月10日-15日
  • 关于描写桂花的散文精选
  • 糖尿病人运动容易得足病吗
  • 中小学教师培训工作计划
  • 快速记忆的十大法则
  • 古诗得道者多助,失道者寡助翻译赏析
  • 海绵城市理论及其在城市规划中的应用
  • 【含5套生物高考卷】新人教版选修2:1.3《人体的器官移植》学案
  • 贴片电阻代码对应表
  • 小白菜素馅煎饺的做法【美味养生食谱】
  • 同济大学微积分课件*题课
  • 趣味教学法在低年级小学语文拼音教学中的应用
  • Mac 没有显示「将文字转换为简体中文/繁体中文」的选项怎么办?
  • 2018-2019学年七年级历史下学期期末考试试题
  • 瑞丽市亨达商号企业信用报告-天眼查
  • 经典电影集
  • 20寸线绕滤芯-广州华膜
  • 对于Web开发最棒的22个Visual Studio Code插件
  • 大数据环境下统计信息化存在的问题浅析
  • 第一章第一节建筑识图-PPT精选文档
  • 全国中学生安全知识竞赛试题6
  • 新苏科版初中物理八年级上册5.1《长度和时间的测量》教学设计7(精品).doc
  • 体验式教学在大学生心理健康课程中的应用与反思——以“交通堵塞
  • 2020年最新医院肿瘤科护士工作总结
  • 电脑版