UR5e机器人Matlab仿真

在 MATLAB 中使用 UR5e 机器人模型进行仿真和控制,通常需要结合机器人系统工具箱(Robotics System Toolbox)

复制代码
UR5e = loadrobot("universalUR5e","DataFormat","column");
UR5e.Gravity = [0 0 -9.81];
% 保存机器人模型到 MAT 文件
save('ur5e_robot_model.mat', 'UR5e');
disp("机器人模型已保存到 ur5e_robot_model.mat");
% smimport(UR5e)   showdetails(UR5e)
q = [0, -1.2043, 2.2166, 2.1468, -1.508, 0]';
show(UR5e,q);axis([-0.2 0.8 -0.6 0.6 0 0.8]);

复制代码
% 初始化机器人模型
UR5e = loadrobot("universalUR5e", DataFormat="row", Gravity=[0 0 -9.81]);

% 初始状态
q = homeConfiguration(UR5e);             % 1x6 行向量
dq = zeros(1, numel(q));                 % 1x6
tau = zeros(1, numel(q));                % 1x6

% 外部力(列向量):设定为无外力或自定义外力
Fext = zeros(6,1);                       % 6x1,例如 [Fx; Fy; Fz; Mx; My; Mz]

% 末端执行器名
endEffector = "tool0";

% 计算外力对应的关节空间力矩(J^T * Fext)
tau_ext = (J') * Fext;                        % 6x1
tau_total = tau - tau_ext';                   % 转为行向量 1x6

%% 方法一:forwardDynamics
ddq_fd = forwardDynamics(UR5e, q, dq, tau_total);   % 1x6

%% 方法二:手动计算动力学
M = massMatrix(UR5e, q);                      % 6x6
C = velocityProduct(UR5e, q, dq);             % 1x6
G = gravityTorque(UR5e, q);                   % 1x6
J = geometricJacobian(UR5e, q, endEffector);  % 6x6

% ddq 手动计算:ddq = M⁻¹ * (tau_total - C - G)
ddq_manual = (-C - G + tau_total) / M;        % 1x6

%% 输出对比
disp('Forward Dynamics ddq:');
disp(ddq_fd);

disp('Manual Calculation ddq:');
disp(ddq_manual);

disp('Difference (manual - fd):');
disp(ddq_manual - ddq_fd);

%机器人工具箱 roblocks
% http://www.petercorke.com/Robotics_Toolbox.html
% UR5     mdl_ur5   可加载出ur5DH、qz、qr

Plan Manipulator Path for Dispensing Task Using Inverse Kinematics DesignerDesign a collision-free manipulator path for adhesive dispensing using Inverse Kinematics Designer app.https://ww2.mathworks.cn/help/releases/R2024b/robotics/ug/design-manipulator-path-for-dispensing-task-ikd.html

相关推荐
沫璃染墨9 分钟前
《从零入门Linux系统篇(五十七):线程篇·十——生产者消费者模型进阶:从环形缓冲区到POSIX信号量》
linux·运维·服务器·开发语言·c++·系统架构·信号处理
wuminyu20 分钟前
LockStack在虚拟线程Mount和Unmount拷贝过程剖析
java·linux·c语言·jvm·c++
深念Y36 分钟前
rime-雾凇拼音-配置记录
linux·junit·软件·拼音·kde
殷色玫瑰2 小时前
C++ string类详解:常用接口、字符串操作与模拟实现
java·linux·c语言·开发语言·数据结构·c++
Evand J2 小时前
【MATLAB例程】三维RRT+APF路径规划与AOA-TDOA融合定位算法。附代码的下载链接
算法·matlab·路径规划·rrt·tdoa·apf·aoa
忆挽篱笙歌2 小时前
gcc,g++
linux
l1t3 小时前
修复WSL CreateInstance/E_UNEXPECTED和 mounted read-only 错误
linux·windows·wsl
Ruiery3 小时前
Linux 6.6内核 CPU 深度解析(九):时钟与 TSC — 内核怎么从 PIT/HPET 切到 TSC
linux·运维·服务器
海盗12343 小时前
微软技术日报 2026-10-04:26H2 三个已知问题确认,Blazor 补上智能体 UI
人工智能·microsoft·ui·机器人·aigc
91刘仁德4 小时前
Linux网络编程从入门到实战:UDP/TCP协议与socket编程全解析
linux·网络·笔记·tcp/ip·udp