全球旧事资料 分类
clearclcL1Li
kd0a0alphapi2Li
k类函数L2Li
kd0a05alpha0offsetpi2L3Li
kd0a0alphapi2offsetpi4L4Li
kd1a0alphapi2L5Li
kd0a0alphapi2L6Li
kd1a0alpha0bisrevoluteL1Li
k类函数robotSerialLi
kL1L2L3L4L5L6SerialLi
k类函数robot
ame带球形腕的拟人臂SerialLi
k属性值robotma
uf飘零过客SerialLi
k属性值robotdisplayLi
k类函数theta000000robotplotthetaSerialLi
k类函数
theta1pi4pi3pi6pi4pi3pi6p0robotfki
ethetap1robotfki
etheta1srobotA456thetacchai
robottrchai
qrobotgetposq2robotiki
ep1逆运动学j0robotjacob0q2雅可比矩阵p007071000000707100000007071141421000000000000000000007071191420010000
p10987400544014840ss0156700206100980459308866187580874304621004670010000
f1000
0100
0010
0021
cchai
Rzq1Rx90Rzq2Tx05Rzq3Rx90Rzq4Tz1Rx90Rzq5Rx90Rzq6Tz1
q0q210e0400003001800039911370000020053600000
j0011000832900000000000000010000007070044807623053540844600000035770011402267062240395601410053540337408446021390000009168050920181308413001780975102209000086050127504933
作者:flyqq链接:httpswwwzhihucomquestio
41673569a
swer129670927来源:知乎著作权归作者所有,转载请联系作者获得授权。matlab机器人工具箱求串联机器人运动学逆解一般是采用iki
e函数,所以刚打开matlab看了一下源码。(貌似新版本还加了其他求解算法,这边先不说,先解决题主的问题。)我把它的主要步骤和贴出:初始化定义目标T,迭代次数,误差等;
f初始化当前误差ewhiletrue计算误差Tqrobotfki
eqe13tra
slTTqRqt2rTqth
tr2a
gvecRqt2rTe46th
Jjacob0robotq计算雅克比根据末端误差求取关节变化ifoptpi
v雅克比伪逆法dqoptalphapi
vJmemelse雅克比转置法dqJmemdqoptalphadqe
d更新关节值qqdq判断误差是否小于容许误差tolera
ce
m
ormemif
mopttolbreake
de
d所以,很简单,Matlab工具箱就是采用雅克比矩阵伪逆(或转置)来确定迭代方向,并通过迭代的方法使关节值收敛至目标位置。这应该是串联机器人运动学逆解数值解的最常用方法。

再回答为什么这么简单就可以求解逆解?
首先,只要给了DH参数,雅克比矩阵很容易就可以推导出来(如果不会请参考各种机器人学教材,推荐Joh
Craig的I
troductio
torobr
好听全球资料 返回顶部