当前位置: 首页 > news >正文

遨博I20协作臂关节逆解组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、运行效果

运行效果截图:
I20某位姿的八组逆解关节角

总结

八组解可视化,可以看出对应 左/右手位 * 肘关节高/低于髋关节 * 腕关节是否翻转。想起高中时数学老师常说的一个词 数形结合 ,可视化确实方便了不少对数据的分析。

相关文章:

遨博I20协作臂关节逆解组Matlab可视化

AUBO I20协作臂关节逆解组Matlab可视化 前言1、RTB使用注意点2、代码与效果2.1、完整代码2.2、运行效果 总结 前言 注意:请预先配置好Matlab和RTB机器人工具箱环境,本文使用matlab2022b和RTB10.04版本 工作需要,使用matlab实现对六轴机械臂…...

力扣题目训练(15)

2024年2月8日力扣题目训练 2024年2月8日力扣题目训练507. 完美数520. 检测大写字母521. 最长特殊序列 Ⅰ221. 最大正方形237. 删除链表中的节点115. 不同的子序列 2024年2月8日力扣题目训练 2024年2月8日第十五天编程训练,今天主要是进行一些题训练,包括…...

PCB差模辐射是如何产生的

在电路应用中,高频时钟信号往往会采用差分线传输模式,其优点是在提高速率的同时减小功耗和提高抗扰度,因此,差模辐射就成为电路正常工作的结果,是电流流过导体形成的环路所产生,差模辐射模型可以被模拟为一个小环形天线,对于一个面积为A的小环路,载有电流Idm,在远场中…...

车载诊断协议DoIP系列 —— 协议中术语解释和定义

车载诊断协议DoIP系列 —— 协议中术语解释和定义 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,…...

【退役之重学前端】关于在控制台得到undefined的事

在浏览器控制台中,undefined 会时不时地,在我不想看到的地方出现。如果你遇到相同的问题,在这篇博客中你会得到答案。 先来看代码块 function test(){} test()//undefined再看下一个代码块 function test(){return 1; } test()//1再来看一个…...

指数和估计六大问题

1955年英国著名数学家R.A.Rankin在牛津大学出版的数学刊物Quart.J.Math.发表了论文(现 FRS D.R.Heath-Brown为主编),专门讲van der Corput方法产生的指数对理论(1933年E.Phillips提出的精彩理论,好友曲阜师范大学毕业中…...

【软件相关】基于Alist挂载云盘到本地文件资源管理器

文章目录 0 前言1 Alist挂载云盘2 RaiDrive配置3 rclone配置 0 前言 因为最近在研究各种云盘存储影视资源的方法,无意间看到一个教程是利用软件将云盘挂载到本地的资源管理器,这样就能实现类似本地文件操作的方式来操作云盘文件,还是有点意思…...

Java多线程系列——锁

0.引言 在并发编程中,锁是一种重要的同步机制,用于控制对共享资源的访问。Java 提供了多种锁的实现,每种锁都有不同的特性和适用场景。本文将深入介绍 Java 中常见的锁类型,包括内置锁、显式锁、读写锁等,并讨论它们的…...

蓝牙BLE学习-GAP

1.概述 GAP层(Generic access profile-通用访问配置文件)。GAP是对LL层payload(有效数据包)如何进行解析的两种方式的一种,而且也是最简单的一种。GAP简单的对LL payload进行一些规范和定义,因此GAP能实现的…...

算法训练营day28(补), 贪心算法2

//122. 买卖股票的最佳时机 II func maxProfit(prices []int) int { result : 0 //利润总和 for i : 1; i < len(prices); i { if prices[i]-prices[i-1] > 0 { result result (prices[i] - prices[i-1]) } } return result } //55. 跳跃游戏 func canJump(nums []…...

Vue核心基础4:绑定样式、条件渲染、列表渲染

1 绑定样式 【代码】 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>绑定样式</title><s…...

go-zero读取mysql部分字段

读取部分字段&#xff0c;使用函数 QueryRowPartialCtx 。 假设有如下一张表&#xff1a; CREATE TABLE test (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, ctime DATETIME);要读取字段 ctime 值。 定义一结构体&#xff1a; type X struct {state int db:"…...

反转一个单链表

反转一个单链表 题意&#xff1a;反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路 需要虚拟节点么&#xff1f; 答&#xff1a;不需要&#xff0c;因为没有删除节点&#xff0c;只是改变了节点的指向。 遍…...

拿捏c语言指针(中)

前言 书接上回 拿捏c语言指针&#xff08;上&#xff09; 此篇主要讲解的是指针与数组之间的爱恨情仇&#xff0c;跟着我的脚步一起来看看吧~ 创造不易&#xff0c;可以帮忙点点赞吗 如有差错&#xff0c;欢迎指出 理解数组名 数组名是首元素地址 例外 1.sizeof&#xff0…...

鸿蒙语言ArkTS(更好的生产力与性能)

ArkTS是鸿蒙生态的应用开发语言 ArkTS提供了声明式UI范式、状态管理支持等相应的能力&#xff0c;让开发者可以以更简洁、更自然的方式开发应用。 同时&#xff0c;它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风格的基础上&#xff0c;进一步通过规范强化静态检…...

VBA技术资料MF120:打印固定标题行列

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…...

MongoDB聚合运算符:$add

$add运算符将将数字相加或将数字和日期相加。如果参数之一是日期&#xff0c;则 $add会将其他参数视为毫秒&#xff0c;并添加到日期中。 语法 { $add: [ <expression1>, <expression2>, ... ] }参数可以是任何有效的表达式&#xff0c;只要能否解析为数值或日期…...

《剑指Offer》笔记题解思路技巧优化 Java版本——新版leetcode_Part_4

《剑指Offer》笔记&题解&思路&技巧&优化_Part_4 &#x1f60d;&#x1f60d;&#x1f60d; 相知&#x1f64c;&#x1f64c;&#x1f64c; 相识&#x1f622;&#x1f622;&#x1f622; 开始刷题1. LCR 148. 验证图书取出顺序——栈的压入、弹出序列2. LCR 14…...

数据库第四次实验

目录 1.建立数据表并插入数据 2 视图的创建 2.1 行列子集视图的创建 2.2 多表视图 2.3视图上建立视图 2.4分组视图 2.5带表达式的视图 3 删除视图 ​​​​​​​​​​​​​​4 查询视图 ​​​​​​​5 更新视图 5.1 修改某一个属性 5.2 删除一条数据 5.3 插入…...

基于PPNSA+扰动算子的车间调度最优化matlab仿真,可以任意调整工件数和机器数,输出甘特图

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于PPNSA扰动算子的车间调度最优化matlab仿真,可以任意调整工件数和机器数,输出甘特图和优化收敛曲线。 2.测试软件版本以及运行结果展示 MATLAB2022a版本运行…...

UnityShader——06UnityShader介绍

UnityShader介绍 UnityShader的基础ShaderLab UnityShader属性块介绍 Properties {//和public变量一样会显示在Unity的inspector面板上//_MainTex为变量名&#xff0c;在属性里的变量一般会加下划线&#xff0c;来区分参数变量和临时变量//Texture为变量命名//2D为类型&…...

人工智能学习与实训笔记(一):零基础理解神经网络

人工智能专栏文章汇总&#xff1a;人工智能学习专栏文章汇总-CSDN博客 本篇目录 一、什么是神经网络模型 二、机器学习的类型 2.1 监督学习 2.2 无监督学习 2.3 半监督学习 2.4 强化学习 三、网络模型结构基础 3.1 单层网络 ​编辑 3.2 多层网络 3.3 非线性多层网络…...

LeetCode刷题小记 一、【数组】

LeetCode刷题小记 一、【数组】 文章目录 LeetCode刷题小记 一、【数组】写在前面1. 数组1.1 理论基础1.2 二分查找1.3 移除元素1.4 有序数组的平方1.5 长度最小的子数组1.6 螺旋矩阵II Reference 写在前面 本系列笔记主要作为笔者刷题的题解&#xff0c;所用的语言为Python3&…...

iOS总体框架介绍和详尽说明

iOS是由苹果公司开发的移动操作系统&#xff0c;为iPhone、iPad、iPod Touch等设备提供支持。iOS采用了基于Unix的核心&#xff08;称为Darwin&#xff09;&#xff0c;并采用了类似于Mac OS X的图形用户界面。以下是iOS的总体框架介绍和详尽说明&#xff1a; UIKit框架&#…...

【C++】const与constexpr详解

1. constexpr&#xff1a;常量表达式 所谓常量表达式,指的就是由多个(≥1)常量组成的表达式。换句话说,如果表达式中的成员都是常量,那么该表达式就是一个常量表达式。这也意味着&#xff0c;常量表达式一旦确定&#xff0c;其值将无法修改。 实际开发中&#xff0c;我们经常会…...

蓝桥杯:日期统计讲解(C++)

日期统计 本题来自于&#xff1a;2023年十四届省赛大学B组真题 主要考察&#xff1a;暴力。 代码放在下面&#xff0c;代码中重要的细节全都写了注释&#xff0c;非常清晰明了&#xff1a; #include <bits/stdc.h> //万能头文件 using namespace std;int main() {…...

Python re.findall()中的正则表达式包含多个括号时的返回值——包含元组的列表

当re.findall()中的正则表达式包含多个括号时&#xff0c;返回值是一个列表&#xff0c;其中每个元素都是一个元组。这个元组的长度与正则表达式中括号的数量相同&#xff0c;元组中的每个元素都是与相应括号中的模式匹配的文本。 import re # 定义一个包含三个括号的正则表达…...

Python——列表

一、列表的特性介绍 列表和字符串⼀样也是序列类型的数据 列表内的元素直接⽤英⽂的逗号隔开&#xff0c;元素是可变的&#xff0c;所以列表是可变的数据类型&#xff0c;⽽字符串不是。 列表的元素可以是 Python 中的任何类型的数据对象。如&#xff1a;字符串、…...

无人机图像识别技术研究及应用,无人机AI算法技术理论,无人机飞行控制识别算法详解

在现代科技领域中&#xff0c;无人机技术是一个备受瞩目的领域。随着人们对无人机应用的需求在不断增加&#xff0c;无人机技术也在不断发展和改进。在众多的无人机技术中&#xff0c;无人机图像识别技术是其中之一。 无人机图像识别技术是利用计算机视觉技术对无人机拍摄的图像…...

清华AutoGPT:掀起AI新浪潮,与GPT4.0一较高下

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;自然语言处理&#xff08;NLP&#xff09;领域迎来了一个又一个突破。最近&#xff0c;清华大学研发的AutoGPT成为了业界的焦点。这款AI模型以其出色的性能&#xff0c;展现了中国在AI领域的强大实力。 目录 引言&…...

wordpress怎么做多级分类/seo优化推广技巧

表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分&#xff1a; 表单标签&#xff1a;这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域&#xff1a;包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上…...

什么是工具型网站/博客网站登录

因为Objective-C的 runtime 只能在 Mac OS 下才能编译&#xff0c;所以文章中的代码都是在 Mac OS&#xff0c;也就是 x86_64 架构下运行的&#xff0c;对于在 arm64 中运行的代码会特别说明。 如果你曾经对Objective-C底层的实现有一定的了解&#xff0c;你应该会知道 Objecti…...

平乡县网站建设/打开app下载

一、安装docker 1、Docker 要求 CentOS 系统的内核版本高于 3.10 &#xff0c;查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。 通过 uname -r 命令查看你当前的内核版本 $ uname -r 2、使用 root 权限登录 Centos。确保 yum 包更新到最新。 $ sudo yum upda…...

如何建设高效的政府门户网站/互联网推广怎么找客户

为什么80%的码农都做不了架构师&#xff1f;>>> 四、内置函数&#xff1a; 包括了字符串函数、数值函数、日期函数、流程控制函数、其他函数&#xff08;获取数据库信息&#xff09;... 一、字符串函数【比较常用&#xff0c;需要掌握】1、 concat(s1,s2,...,sn) …...

孝感 网站建设/湖南网站定制

🥇 版权: 本文由【墨理】原创、在CSDN首发、如需转载,请联系博主❤️ 如果文章对你有帮助、欢迎三连、欢迎订阅文章目录 📔 基础信息📕 环境搭建📗 测试数据集下载📘 训练【参考官方readMe即可】📙 测试【简记】📙 附源码分享📜 致谢📔 基础信息 Unsupervis…...

wordpress 腾讯课堂/企业培训课程有哪些内容

密级文件保密管理制度保密法规 加入时间&#xff1a;2009-4-16 12:20:34 点击&#xff1a;773一、密级文件的拟制1、密级文件的制作应在具有保密措施的地方拟制&#xff0c;拟稿人要准确标明该文件的密级和保密期限&#xff0c;依据《国家秘密及其密级具体范围的规定》和《国家…...