[matlab]毕业设计四自由度机械臂的轨迹规划研究源码及其实现过程

本科毕设,内容是一个四自由度机械臂的轨迹规划研究,要实现的功能是通过上位机实现轨迹规划功能。 系统环境为Windows 10 软件环境为Matlab、Qt5

内容介绍

  • 通过改进版DH法建立机械臂运动学模型
  • 对模型进行正逆运动学分析
  • 分析模型的工作空间
  • 关节空间中的三次多项式和五次多项式轨迹规划
  • 笛卡尔空间中的直线轨迹规划和圆弧轨迹规划

直线和圆弧轨迹规划函数和test4.m

function [theta] = myikine2(pointT, q5, step)
a2 = 135; a3 = 147; a4 = 61; d5 = 131;
theta = zeros(step, 5);
for i = 1:step
    px = pointT(i, 1);
    py = pointT(i, 2);
    pz = pointT(i, 3);
    %theta1
    theta1 = atan2(py, px);
    %theta3
    temp1 = px^2 + py^2 + pz^2 - 2 * a4 * (cos(theta1) * px + sin(theta1) * py) + 2 * pz * d5 + a4^2 + d5^2 - a2^2 - a3^2;
    temp2 = 2 * a2 * a3;
    theta3 = acos(temp1 / temp2);
    %theta2
    temp1 =- (pz + d5);
    temp2 = ((cos(theta3) * a3 + a2)^2 + (sin(theta3) * a3)^2)^0.5;
    temp3 = sin(theta3) * a3;
    temp4 = cos(theta3) * a3 + a2;
    theta2 = asin(temp1 / temp2) - atan2(temp3, temp4);
    %theta4
    theta4 = -theta2 - theta3;
    theta(i, (1:4)) = [theta1, theta2, theta3, theta4];
end
theta(:, 5) = reshape(linspace(q5(1), q5(2), step), step, 1);

正逆运动学函数和test2.m

% Modified DH 建模dobot
clear, clc, close all;

%建立机器人模型
%           关节角   关节偏距  连杆长度   连杆转角   旋转关节   偏差
%           theta    d        a         alpha     sigma      offset
L(1) = Link([0       0        0         0         0          0], 'modified');
L(2) = Link([0       0        0         -pi / 2   0          0], 'modified');
L(3) = Link([0       0        135       0         0          0], 'modified');
L(4) = Link([0       0        147       0         0          0], 'modified');
L(5) = Link([0       131      61        -pi / 2   0          0], 'modified');

%连接连杆
robot = SerialLink(L, 'name', 'Dobot');

angle1 = [-pi / 6, -pi / 6, pi / 3, -pi / 6, pi / 4];
angle2 = [pi / 3, -pi / 60, pi / 30, -pi / 60, -pi / 4];

%运动学正解
fk1 = myfkine(angle1); %正解函数
fk2 = robot.fkine(angle1);%工具箱正解函数
%fk1 = myfkine(angle2); %正解函数
%fk2 = robot.fkine(angle2);%工具箱正解函数

%运动学逆解
ik1 = myikine(fk1);%逆解函数
%实际上robot.ikine函数并不可用
%ik2 = robot.ikine(fk1);%工具箱逆解函数
degik1 = rad2deg(ik1);

%再次运动学正解
ik1_fk = myfkine(ik1(1, :));

关节空间轨迹规划代码和test3.m

function [q, qd, qdd, t] = cubic_traj(theta, V, T, step)
%ζʽ
q = zeros(step, 5); %Ƕ
qd = zeros(step, 5); %ٶ
qdd = zeros(step, 5); %Ǽٶ
t = reshape(linspace(T(1), T(2), step), step, 1);
tf = T(2) - T(1);
a0 = theta(1, :);
a1 = V(1, :);
a2 = (-3 * theta(1, :) + 3 * theta(2, :) - 2 * V(1, :) * tf - V(2, :) * tf) / tf^2;
a3 = (2 * theta(1, :) - 2 * theta(2, :) + V(1, :) * tf + V(2, :) * tf) / tf^3;
for i = 1:5
    if i == 4
        q(:, i) =- (q(:, 3) + q(:, 2));
    else
        q(:, i) = a0(i) + a1(i) * (t - t(1)) + a2(i) * ((t - t(1)).^2) + a3(i) * ((t - t(1)).^3);
    end
    qd(:, i) = a1(i) + 2 * a2(i) * (t - t(1)) + 3 * a3(i) * ((t - t(1)).^2);
    qdd(:, i) = 2 * a2(i) + 6 * a3(i) * (t - t(1));
end

 

 完整源码下载:

https://download.csdn.net/download/FL1768317420/89224956

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1768317420

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值