小企业网站建设费用一年,qq邮箱企业邮箱注册,wordpress自动采集文章,linux 网站备份AUBO I20协作臂关节逆解组Matlab可视化 前言1、RTB使用注意点2、代码与效果2.1、完整代码2.2、运行效果 总结 前言
注意#xff1a;请预先配置好Matlab和RTB机器人工具箱环境#xff0c;本文使用matlab2022b和RTB10.04版本
工作需要#xff0c;使用matlab实现对六轴机械臂… AUBO I20协作臂关节逆解组Matlab可视化 前言1、RTB使用注意点2、代码与效果2.1、完整代码2.2、运行效果 总结 前言
注意请预先配置好Matlab和RTB机器人工具箱环境本文使用matlab2022b和RTB10.04版本
工作需要使用matlab实现对六轴机械臂的逆解八组解数据可视化。本文针对遨博AUBO I20型号的协作臂进行处理。 提示以下是本篇文章正文内容下面案例可供参考
1、RTB使用注意点
当图形需要显示多个机器人或者多个不同关节角时每个plot都需要一个唯一的名称否则只会显示同名的最新一组调用plot的关节角。例如现在针对同一个DH参数的臂型有两组关节角希望显示出来那么应该这么写才正确
joints_type1 [a1 b1 c1 d1 e1 f1];
joints_type2 [a2 b2 c2 d2 e2 f2];% robot1和robot2调用SerialLink创建时使用用一组DH参数L
% name参数需要不同作为区分。
robot1.plot(joints_type1);
hold on;
robot2.plot(joints_type2);如果使用错误的写法自始至终只有一个robot变量即
joints_type1 [a1 b1 c1 d1 e1 f1];
joints_type2 [a2 b2 c2 d2 e2 f2];robot1.plot(joints_type1);
hold on;
robot1.plot(joints_type2);最终的效果可以看到两个plot都是joints_type2的数据即便是已经使用了hold on这个问题和RTB的内部plot函数实现逻辑有关联
2、代码与效果
2.1、完整代码
代码如下
clear;
clc;
warning off% 定义连杆的DH参数
% theta d a alpha sigma offset
L(1) Link([ 0 0.1855 0 0 0 pi ],modified);
L(2) Link([ 0 0.177 0 -pi/2 0 -pi/2 ],modified);
L(3) Link([ 0 0 0.803 pi 0 0 ],modified);
L(4) Link([ 0 0 0.72 pi 0 -pi/2 ],modified);
L(5) Link([ 0 0.127 0 -pi/2 0 0 ],modified);
L(6) Link([ 0 0.1063 0 pi/2 0 0 ],modified);% 限制转动角度
L(1).qlim[-359,359]/180*pi;
L(2).qlim[-174,174]/180*pi;
L(3).qlim[-174,174]/180*pi;
L(4).qlim[-174,174]/180*pi;
L(5).qlim[-174,174]/180*pi;
L(6).qlim[-359,359]/180*pi;aubo_robots struct();
aubo_robots_num 8;
robot_name_prefix I20-;% 创建机器人模型
for i 1 : aubo_robots_numaubo_robots.(sprintf(robot%d, i)) SerialLink(L, name, [robot_name_prefix, num2str(i)]);aubo_robots.(sprintf(robot%d, i)).base transl(0, 0, 0);% 可选显示D-H参数% aubo_robots.(sprintf(robot%d, i)).display();
end% 逆解组的八组关节角
joints struct();
joints.type1 [0.412302 -1.365035 -0.573020 2.362811 -1.570796 -2.729291];
joints.type2 [0.412302 -0.824124 0.573020 2.967940 -1.570796 -2.729291];
joints.type3 [0.412302 -1.581334 -1.239168 -1.228631 1.570796 0.412302];
joints.type4 [0.412302 -0.419871 1.239168 0.088243 1.570796 0.412302];
joints.type5 [-3.029190 0.419871 -1.239168 -0.088243 -1.570796 0.112402];
joints.type6 [-3.029190 1.581334 1.239168 1.228631 -1.570796 0.112402];
joints.type7 [-3.029190 0.824124 -0.573020 -2.967940 1.570796 -3.029190];
joints.type8 [-3.029190 1.365035 0.573020 -2.362811 1.570796 -3.029190];% 分为二行四列的子图显示
for i 1:aubo_robots_numrow ceil(i / 4) - 1;col mod(i - 1, 4) 1;subplot(2, 4, row * 4 col);aubo_robots.(sprintf(robot%d, i)).plot(joints.(sprintf(type%d, i)), view, [51, 38]);hold on;
end
hold off;
grid on;2.2、运行效果
运行效果截图
总结
八组解可视化可以看出对应 左/右手位 * 肘关节高/低于髋关节 * 腕关节是否翻转。想起高中时数学老师常说的一个词 数形结合 可视化确实方便了不少对数据的分析。