matlab机器人工具箱的使用(4)

学习目标:

matlab机器人工具箱的使用(4)

学习内容:

1、工作空间可视化

学习记录:

思路:
随机生成一个关节变量-----fkine------>变换矩阵------transl--------->三维坐标

  • rand函数

rand是在(0,1)内生成一个随机数
在[m,n]内随机生成一个数字:m+rand*(m-n)
随机关节空间变量:q=qmin+rand*(qmax-qmin)

  • Link.qlim

限制关节角度的

本案例使用的《机器人控制技术》书中的机械臂模型,前面已经说明了它的DH参数。
在这里插入图片描述

%采用弧度制
L(1).qlim=[-180,180]/180*pi;
L(2).qlim=[-145,65]/180*pi;
L(3).qlim=[-65,220]/180*pi;
L(4).qlim=[-180,180]/180*pi;
L(5).qlim=[-135,135]/180*pi;
L(6).qlim=[-360,360]/180*pi;

可以验证一下设置的是否正确:

>> L(1).qlim

ans =

   -3.1416    3.1416

绘制工作空间:
首先定义一个30000为迭代次数,P是一个[30000,3]的矩阵,事先声明一个这也的0矩阵可以加快运行速度。L(1).qlim(2)是最大限制,L(1).qlim(1)是最小限制,这就生成了关节随机变量,再组合成完整的关节随机变量,通过正运动学函数得到变换矩阵,在提取它的变换矩阵,赋值给P得到30000×3的位置矩阵。最后用plot函数绘制出点来。

num=30000;
P=zeros(num,3);
for i =1:num
    q1=L(1).qlim(1)+rand*(  L(1).qlim(2) - L(1).qlim(1)  );
    q2
  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是基于主从异构机器人三维空间的运动工作空间分析的Matlab代码示例: ```matlab syms l1 l2 l3 l4 l5 l6 theta1 theta2 theta3 theta4 theta5 theta6 % 主臂和从臂的DH参数 DH_params1 = [0, 0, l1, theta1; l2, pi/2, 0, theta2; l3, 0, 0, theta3]; DH_params2 = [0, pi/2, l4, theta4; 0, -pi/2, l5, theta5; 0, pi/2, l6, theta6]; % 转换矩阵 T1 = eye(4); for i = 1:size(DH_params1, 1) a = DH_params1(i, 1); alpha = DH_params1(i, 2); d = DH_params1(i, 3); q = DH_params1(i, 4); T1 = T1 * [cos(q), -sin(q)*cos(alpha), sin(q)*sin(alpha), a*cos(q); sin(q), cos(q)*cos(alpha), -cos(q)*sin(alpha), a*sin(q); 0, sin(alpha), cos(alpha), d; 0, 0, 0, 1]; end T2 = eye(4); for i = 1:size(DH_params2, 1) a = DH_params2(i, 1); alpha = DH_params2(i, 2); d = DH_params2(i, 3); q = DH_params2(i, 4); T2 = T2 * [cos(q), -sin(q)*cos(alpha), sin(q)*sin(alpha), a*cos(q); sin(q), cos(q)*cos(alpha), -cos(q)*sin(alpha), a*sin(q); 0, sin(alpha), cos(alpha), d; 0, 0, 0, 1]; end % 主臂末端执行器位置 p1 = T1(1:3, 4); % 从臂末端执行器位置 p2 = T1(1:3, 4) + T1(1:3, 1:3)*T2(1:3, 4); % 输出结果 disp(['主臂末端执行器位置:(', num2str(double(p1(1))), ', ', num2str(double(p1(2))), ', ', num2str(double(p1(3))), ')']); disp(['从臂末端执行器位置:(', num2str(double(p2(1))), ', ', num2str(double(p2(2))), ', ', num2str(double(p2(3))), ')']); ``` 该示例代码使用了syms函数来定义符号变量,然后根据主从异构机器人的DH参数计算出转换矩阵T1和T2,再根据T1和T2求出主臂和从臂末端执行器的位置。最后,将主臂和从臂的位置输出,方便查看。 需要注意的是,这里的示例代码只考虑了主从异构机器人的位置分析,如果需要进行姿态分析,还需要计算出主臂和从臂的姿态矩阵,并根据矩阵之间的关系求出末端执行器的姿态。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值