matlab 机器人工具箱4-机械臂逆运动学

本文主要参考清华大学出版社的《机器人仿真与编程技术》一书

本文参考 《机器人仿真与编程技术》
机器人逆运动学就是即在已知末端的工具坐标系相对于基坐标系的位姿。计算所有能够到达指定位姿的关节角。求解可能出现:
  • 不存在相应解
  • 存在唯一解
  • 存在多解
我们把机械臂的全部求解方法分为两大类:封闭解和数值解法。数值解由于是通过迭代求解,所以它的速度会比封闭解求法慢。封闭解又可以分为代数法和几何法。
 

封闭解

封闭解存在的两个充分条件:
  1. 三个相邻的关节轴交于一点
  2. 三个相邻的关节轴互相平行

几何法

 
 
 
总结就是根据现在的状态,通过几何学建立各个角度之间的关系,进行求解

代数法

 
 
 
我们看到代数法就是对各坐标系的旋转齐次矩阵进行平移,每次平移一个,之后通过矩阵乘法的对应关系,得到末端的其次矩阵元素(已知)和各齐次变换矩阵参数(未知)的关系。
 
《机器人仿真与编程技术》这本书呢,给了一个 matlab 工具箱中的封装的方法:
在封闭解的方法中,使用 ikine6s() 求解逆运动学的问题,只适用于关节数为6,且腕部三旋转关节的轴交于一点的情况。相关配置参数:
 
左旋‘l’
右旋 ‘r’
肘部向上 ‘u’
肘部向下 ‘d’
腕部翻转 ‘f’
腕部不翻转 ‘n’
之后使用KUKA KR5的机器人
 mdl_KR5
会发现加载了模型:
 
查看具体的参数可以直接点击或者用命令行输入参数名进行查看
 
>> KR5
KR5 =
Kuka KR5:: 6 axis, RRRRRR, stdDH, slowRNE                        
+---+-----------+-----------+-----------+-----------+-----------+
| j |     theta |         d |         a |     alpha |    offset |
+---+-----------+-----------+-----------+-----------+-----------+
|  1|         q1|        0.4|       0.18|     1.5708|          0|
|  2|         q2|      0.135|        0.6|    3.14159|          0|
|  3|         q3|      0.135|       0.12|    -1.5708|          0|
|  4|         q4|       0.62|          0|     1.5708|          0|
|  5|         q5|          0|          0|    -1.5708|          0|
|  6|         q6|          0|          0|          0|          0|
+---+-----------+-----------+-----------+-----------+-----------+
tool:    t = (0, 0, 0.115), RPY/xyz = (0, 0, 0) deg              
之后
>> qn=[0 0 pi/4 0 pi/6 pi/3]


qn =


         0         0    0.7854         0    0.5236    1.0472


>> T=KR5.fkine(qn)


T =
    0.1294   -0.2241   -0.9659    0.3154
   -0.8660   -0.5000         0         0
   -0.4830    0.8365   -0.2588    -0.153
         0         0         0         1
>> KR5.plot(pn)
 
 
我们使用
>> KR5.ikine6s(T)


ans =


    3.1416   -3.3226    3.1775    3.1416    1.5259    1.0472
发现结果和输入的qn不一样,这就是逆解的不唯一性,效果一样但是个关节数值不一样,这个时候我们就通过指定参数来限制末端的解
>> KR5.ikine6s(T,'run')


ans =


   -0.0000         0    0.7854   -0.0000    0.5236    1.0472
这时候就得到了输入的角度值。
 
 

数值解

主要就是 牛顿-拉普森方法,我们参考: https://blog.csdn.net/libing403/article/details/89035960
并且我们解读KDL的代码的时候,也是使用 牛顿-拉普森相关的算法
matlab工具箱提供了ikine()函数求解逆运动学的问题,它适用于各种关节数目的机械臂,通过设定初始的关节角坐标对机械臂运动学配置进行隐式的控制。
正是因为用到 牛顿-拉普森的一些理念,所有参数的话不同于封闭解,需要输入猜测的解(参考值)。这个就是让使结果由猜测的解开始迭代,也就是找到离猜测值最近的逆解。这个的好处就是,我们在做轨迹规划的时候,可以使上一点作为参考值,使机械臂各关节的运动最小
mdl_puma560
qn=[0 0 pi/4 0 pi/6 pi/3]
T=p560.fkine(qn)
q1=p560.ikine(T)
q2=p560.ikine(T,[0 0 3 0 0 0])
输出的结果
q1 =
   -0.0000   -0.0000    0.7854    0.0000    0.5236    1.0472
q2 =
   -0.0000   -0.0000    0.7854    0.0000    0.5236    1.0472
可以看出q1接近0 0 0 0 0 0,q2接近0 0 3 0 0 0。
   
 
 
 
 
MATLAB机器人工具箱中,可以使用ikine()函数来求解机械逆运动学问题。逆运动学是指在已知末端工具坐标系相对于基坐标系的位姿时,计算出能够达到该位姿的机械关节角度。通过设置初始关节角坐标,可以隐式地控制机械的运动学配置。同时,MATLAB机器人工具箱还提供了直线轨迹和圆弧轨迹规划的功能,可以实现机械的路径规划。因此,MATLAB机器人工具箱提供了全面的解决方案,可以用于机械的正逆运动学解决。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [matlab机器人工具箱实现机械直线轨迹&圆弧轨迹规划(带sw模型+matlab程序+报告)](https://download.csdn.net/download/yjw0911/85243870)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [matlab 机器人工具箱4-机械逆运动学](https://blog.csdn.net/weixin_34032649/article/details/115881871)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值