Matlab机器人仿真(六):利用位置描述解算位姿矩阵

利用空间描述得出位姿矩阵p,
一、函数讲解
rpy2tr :对SE(3)齐次变换的滚-俯仰-偏航角
T = rpy2tr(ROLL, PITCH, YAW, OPTIONS) (Roll:滚角;Pitch:俯仰角;Yaw:摆角)分别绕Z, Y, X轴旋转
以角度计算角度(默认弧度)
options:‘xyz’:绕X, Y, Z轴旋转(用于机器人抓手);
‘ZYX’:绕Z, Y, X轴旋转(对于移动机器人,默认);
‘yxz’:绕Y, X, Z轴旋转(用于相机);
‘arm’:绕X, Y, Z轴旋转(用于机器人手臂);
‘yxz’:绕Z, Y, X轴旋转(用于移动机器人);
‘camera’:关于Y, X, Z轴的旋转(对于相机);
例子:p = transl(30,0,-25)*rpy2tr(0,-pi,-pi);%得出位姿矩阵
(transl:‘30’ x轴数值;‘0’y轴数值;‘-25’z轴数值。rpy2tr:后三轴滚角、俯仰角、摆角。默认最后三轴在同一坐标原点)

二、matlab仿真

%%利用标准D-H法建立多轴机器人
clear;
close all;
clc;
L1 = Link('d', 5, 'a', 5, 'alpha', -pi/2,'offset',0);    %Link 类函数;offset建立初始的偏转角
L2 = Link('d', 0, 'a', 20, 'alpha', 0,'offset',0);
L3 = Link('d', 0, 'a', 5, 'alpha', -pi/2,'offset',0);
L4 = Link('d', 20, 'a', 0, 'alpha', pi/2,'offset',0);
L5 = Link('d', 0, 'a', 0, 'alpha', -pi/2,'offset',0);
L6 = Link('d', 10, 'a', 0, 'alpha', 0,   'offset',0);

L1.qlim = [-pi,pi];%利用qlim设置每个关节的旋转角度范围
robot=SerialLink([L1,L2,L3,L4,L5,L6],'name','S725');   %SerialLink 类函数
% 2、位置描述得出位姿矩阵p
p = transl(30,0,-25)*rpy2tr(0,-pi,-pi);%得出位姿矩阵
q = robot.ikine(p);%得出关节角theta
robot.plot(q);
disp(q);

仿真结果:
在这里插入图片描述
注意:机器人是有可达空间的,故坐标系的选取是必须到可达空间的。

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MATLAB中,可以使用位姿矩阵来计机器人姿态。可以通过以下步骤来计姿矩阵: 1. 首先,需要定义机器人的链接参数,包括关节的长度、偏移角度和旋转角度等。可以使用Link类来定义每个关节的参数。 2. 创建机器人模型,使用SerialLink类来创建机器人模型,将之前定义的链接参数传入。这样就可以得到一个机器人对象。 3. 定义目标位姿矩阵,使用transl函数定义机器人的目标位置,并使用rpy2tr函数定义机器人的目标姿态。 4. 使用ikine函数计关节角度,将目标位姿矩阵作为输入参数传入ikine函数,该函数可以根据机器人模型和目标位姿矩阵出相应的关节角度。 5. 使用plot函数绘制机器人的关节角度,可以直观地显示机器人姿态。 综上所述,以上是在MATLAB中计姿矩阵的一般步骤。具体的计过程和代码示例可以参考引用中提供的MATLAB仿真代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [机器人 齐次变换矩阵姿变换矩阵(RT矩阵Matlab参数公式计](https://blog.csdn.net/rocachilles/article/details/88089702)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [MATLAB数组矩阵示例.md](https://download.csdn.net/download/qq_42431718/88226765)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Matlab机器人仿真(六):利用位置描述姿矩阵](https://blog.csdn.net/qq_40969179/article/details/116276562)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值