基于Matlab机器人工具箱对Dobot机械臂的研究

文章目录

文章目录

前言

一、Dobot Mangician 分析

二、Matlab 机器人工具箱

1. 建立模型

2.  DoBot 正向运动学

3. Dobot 逆运动学

4. Dobot workpace

5. Dobot轨迹规划

三、Dobot studio

1. DoBot teaching

2. DoBot Python 程序

总结


前言

在本实验中,以 Dobot Mangician 四自由度机械臂为例。实验研究了机器人的运动学和轨迹规划问题。为了实现对 Dobot 机械臂的运动学控制,采用了 Denavit-Hartenberg (D-H)建模方法来建立 Dobot 机械臂的运动学模型。其运动学正解和逆解是利用机械臂的奇偶变换矩阵获得的矩阵得到运动学正解和反解;并使用机器人工具箱对 Dobot 机械臂进行轨迹规划仿真。使用机器人工具箱对 Dobot 机械臂进行轨迹规划仿真。在本实验中,将使用 Matlab 和Dobot Mangician功能。

一、Dobot Mangician 分析

Dobot Magicician 由底座、大臂、小臂和末端执行器组成。如果 Dobot Magicician 没有安装末端工具,则包含三个关节: J1、J2 和 J3 都是旋转接头。如果 Dobot 魔术师安装了末端工具,如抓取器或吸盘工具,则包含四个关节: J1、J2、J3 和 J4 也都是旋转接头。第一自由度的角度范围为-90至90度,第二自由度的角度范围为0至85度,第三自由度的角度范围为-10至95度,第四自由度的角度范围为-90至90度。   如图 (1) 和 (2) 所示(图片来自 dobot 网站:https://dobot.cn/products/education /magician.html)

二、Matlab 机器人工具箱

1. 建立模型

DobotMagician 机械臂有四个旋转关节,其中末端执行器是受机械约束的被动关节。 机器人机械臂的坐标系是根据 D-H 参数和建立坐标系的规则建立的,因为机器人的第一自由度是距底座最低点 138 毫米,所以 d1 是 138。为了便于数据计算,对单位进行了统一定义,D-H 参数列于表中:

theta

d

a

alpha

L1 = Link([0

1.38

0

pi/2]);

L2 = Link([0

0

1.35

0]);

L3 = Link([0

0

1.47

pi/2]);

L4 = Link([0

0

0

0]);

使用 Matlab 环境下机器人工具箱中的 "Link "和 "robot "函数确定机器人在零位的姿态。然后根据 D-H 参数对机械臂进行建模,并使用 "qlim "函数设置每个关节的角度范围。然后使用 "SerialLink "函数依次连接三个关节。最后调用 "teach "函数控制 Dobot 模型,调整四个关节变量,实时控制机械臂的位置运动。Dobot 三维模型如图所示:

2.  DoBot 正向运动学

前向运动学求解基于 Dobot 机械臂各关节的已知值,然后使用同质变换矩阵方程求解末端在空间中的位置。采用两种方法求解前向运动学:通过同质变换矩阵和使用机器人工具箱函数。


第一种方法是通过同质变换矩阵求解。首先给定每个关节的角度,然后利用坐标系 {i} 的关节相对于坐标系 {i-1} 的同质变换矩阵的一般方程,可以得到 Dobot 机器人手臂关节的变换矩阵如下: 以 T1 为例:(详细代码参见附录)

最后将每个链路的同质变换矩阵相乘,得到末端位置矩阵。


第二种方法是使用机器人工具箱来求解,这需要在建立模型后使用 fkine 函数,从而求出末端位置矩阵。找到末端位置矩阵。代码为 "dobot.fkine([0 , pi/7.554 ,-pi/4, 0])"。

3. Dobot 逆运动学

逆运动学的求解采用了同样的两种方法。逆运动学求解涉及根据机械臂末端的位置和姿态找到机械臂的关节角度,已知机械臂末端的位置会发生变化,但姿态始终垂直向下。位置矩阵是利用正解函数导出的位置矩阵来选择的。

第一种方法是在给出末端位置后,使用 "atan2() "函数求出 x 轴正方向与 xy 平面上的点 (x,y) 之间的夹角 "θ"。然后使用函数 "sqrt() "计算 Dobot 两节之间的夹角正弦。然后计算末端执行器的位置值,最后使用 "athan2() "函数计算第二自由度角。

第二种方法是使用机器人工具箱的函数进行求解。代码为 "q0=dobot.ikine(T0,'mask',[1 1 1 0 0 1])*180/pi",代码末尾添加 180/pi 是为了使计算结果更加精确。


通过比较求解结果可以看出,正向运动学的结果与逆向运动学中定义的参数相同,而逆向运动学的结果与正向运动学中定义的角度相同。如图所示。

4. Dobot workpace

机械臂工作空间是机器人末端执行器可到达的所有位置空间点的集合。它可以用来衡量机器人的工作能力,也是存在正向运动学解决方案的区域。为确保 Dobot 机械臂工作时末端执行器始终处于工作空间内,应将 Dobot 的工作空间作为参考进行分析。根据蒙特卡洛法的 Dobot 工作空间求解思路,在关节角度变量范围内随机生成若干组每个关节角度。然后对每组角度分别进行正运动学求解,最终求解集即为工作空间。在本实验中,共生成了 3000 组随机数据,并将其输入正向运动学求解函数以找到工作空间。如图所示:

5. Dobot轨迹规划

轨迹规划可以避免实验过程中机械臂的损坏,为后续实验研究工作提供支持。 在定义了多臂机器人的模型和参数后,使用 "flat "函数定义了五个点,这五个点分别是(2,0,2.38);(2.5, 1, 1. 13);(2,- 1.5,2.38);(2,-1.5, 1. 13);(2.6,0, 1.38)。然后使用 "ctraj "函数相互连接。然后使用 "transl "函数查找变换矩阵中的位置值,并使用 "mstraj "函数合并所有轨迹。然后使用 "axis "函数定义三维空间的大小。最后,使用逆运动学函数将轨迹点转换为多臂机关节角度,以便多臂机根据关节角度移动。根据关节角度移动。如图所示:

在代码中,还包括求解速度、加速度和位置的函数,当轨迹规划完成后,将在另一张图中显示,结果显示多臂机器人可以在这五个点之间移动。

三、Dobot studio

1. DoBot teaching

Dobot 教学模式可实现点对点运动。Dobot Magicician 的教学模式包括 MOVJ、MOVL 和 JUMP。 不同的运动模式在教学后会有不同的运动轨迹。

MOVJ:关节运动,从 A 点到 B 点。每个关节从 A 点对应的关节角度运动到 B 点对应的关节角度,同时到达终点。

MOVL:直线运动,A 点到 B 点的直线运动。
JUMP :门轨迹,A 点到 B 点以 MOVJ 运动模式运动,在 MOVJ 运动模式下上升到一定高度,在 MOVJ 运动模式下平移到 B 点上方的高度,然后下降到 B 点的位置。
在 MOVJ 运动模式下下降到 B 点的位置。如图所示。

将 matlab 实验模拟中的五个点设置为演示器模式。如图所示

2. DoBot Python 程序

Dobot 机械臂还支持用 Python 进行二次编程,以实现各种功能。同样,利用 matlab 实验中的五个点进行轨迹规划,并在 studio 中使用 Python 编程。    为了严谨起见,我添加了初始化功能。将在初始化完成后执行。代码如图(9)所示

总结

实验首先使用 D-H 方法对四自由度 Dobot 进行建模,并使用两种方法求解正运动学方程和逆运动学方程,最后使用机器人工具箱工具箱分析工作空间并仿真 Dobot 的轨迹规划,得到了 Dobot 各关节的角度、速度和加速度数据曲线。 对仿真结果的分析证明了轨迹规划的合理性和可行性。
Matlab 和机器人工具箱可以对机器人进行运动学仿真,在计算机上验证机器人是否能准确地按照所需的轨迹运行。这样就可以找到运动空间,评估机械臂是否可以安全移动。

Matlab完整代码:

matlab完整代码链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/825795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能边缘计算采集网关助您远程调试SINAMICS S200伺服-天拓四方

您还在为每次调试都要去现场而烦恼吗?智能边缘计算采集网关助您远程调试SINAMICS S200伺服,让您足不出户,就能“运筹帷幄之中,决胜千里之外”。 新品介绍 SINAMICS S200 PN是西门子推出的新一代伺服驱动系统,采用Mot…

upload-labs第十一十二关

第十一关 $is_upload false; $msg null; if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_ext substr($_FILES[upload_file][name],strrpos($_FILES[upload_file][name],".")1);if(in_array($file_ext,$ext_arr)){$temp_file $_FILES[upload_fil…

博客文章:AWS re:Invent 2023 新产品深度解析 - 第四部分

TOC 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长! 写在最前面 去年发布文章的一部分,由于内…

【5】DongshanPI-Seven 应用开发_网络编程TCPUDP

目录 1、网络编程概念2、网络编程的API2.1 网络通信交互示意图2.2 主要API 3、编程测试3.1 TCP 测试3.1.1 server 程序3.1.2 Client 程序3.1.3 测试结果 3.2 UDP 测试3.2.1 udp server3.2.2 udp client3.2.3 测试结果 1、网络编程概念 1.数据传输三要素:源、目的、…

网络的坚实与灵活:工业与常规以太网交换机的差异解析

🌐🌐在当今互联网和物联网迅速发展的背景下,以太网交换机作为网络通信的核心设备,其性能和稳定性对于整个网络系统的运行至关重要。工业以太网交换机和常规以太网交换机乍一看似乎很相似,但两者之间存在着一些关键区别…

深入探索:Zookeeper+消息队列(kafka)集群

目录 前言 一、Zookeeper概述 1、Zookeeper概念 2、Zookeeper 特点 3、Zookeeper工作机制 4、Zookeeper 选举机制 4.1 第一次启动选举机制 4.2 非第一次启动选举机制 5、Zookeeper 数据结构 6、Zookeeper 应用场景 二、部署 Zookeeper 集群 1、环境部署 2、安装 z…

OpenHarmony音频和音乐编码格式—vorbis

简介 一种通用音频和音乐编码格式。 Vorbis编解码器规范属于公共领域。所有技术细节都已发布并记录,任何软件实体都可以充分利用该格式,而无需支付许可费、版税或专利问题。 下载安装 直接在OpenHarmony-SIG仓中搜索vorbis并下载。 使用说明 以OpenHa…

测试JAVA 测开

测试、java测开 1、测试用例要素(4个重要要素)2、测试用例的好处3、测试用例的设计方法3.1 基于需求设计测试用例3.2 等价类3.3 边界值3.4 判定表 1、测试用例要素(4个重要要素) 测试环境操作步骤测试数据预期结果 2、测试用例的…

企业数字化与数智化的区别是什么?

一、引言 随着信息技术的迅猛发展和应用普及,企业面临着数字化与数智化两大转型趋势。数字化主要关注数据的收集、整合和流程优化,而数智化则在此基础上进一步引入智能技术,实现业务的自动化、智能化和决策的科学化。探讨企业数字化与数智化…

初级C语言:6 结构体

6.1 结构体的声明 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 内置类型:char;short;int;long;long long;float;double 复杂对象的描述就会使…

通过拖拽动态调整div的大小

最近遇到一个需求,页面展示两块内容,需要通过拖拽可以动态改变大小,如下图: 实现思路:其实就是改变div样式的width,本质上就是Dom操作。 完整代码:(基于vue2项目实践) …

第 7 章 导航实现(自学二刷笔记)

重要参考: 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 准备工作 请先安装相关的ROS功能包: 安装 gmapping 包(用于构建地图): sudo apt inst…

爬虫机试题-爬取新闻网站

之前投简历时遇到了这样的一个笔试。本以为会是数据结构算法之类的没想到直接发了一个word直接提需求,感觉挺有意思就写了这篇文章,感兴趣的朋友可以看看。 拿到urllist 通过分析页面结构我们得以知道,这个页面本身没有新闻信息,是…

比特币叙事大转向

作者:David Lawant 编译:秦晋 要理比特币解减半动态,最关键的图表是下面这张,而不是价格图表。它显示了自 2012 年以来,矿业总收入与比特币现货交易量的比例,并标注了三个减半日期。 虽然矿工仍然是比特币生…

OpenHarmony图像解码库—stb-image [GN编译]

简介 stb_image主要是C/C实现的图像解码库。 下载安装 直接在OpenHarmony-SIG仓中搜索stb-image并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 库代码存放路径:./third_party/stb-image 修改添加依赖的编译脚本,路径:/devel…

编程入门(五)【Visual Studio Code安装与C/C++语言运行】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 前言VScode安装与环境配置编写第一个C语言程序总结 前言 经过了前面对计算机…

mars3d实现禁止地图移动,禁止地图左右平移,但是鼠标可以移动的效果。

new mars3d.layer.GeoJsonLayer({渲染后实现鼠标左键按住不释放拖动时,地图不跟着拖动效果 当前问题: 1.在map初始化,或者是加载效果的时候,整个地球的场景都是一样的。 如果鼠标左键按住不释放,在屏幕上拖动的时候…

还在 MySQL 中使用枚举?小心有坑~

为什么使用枚举 限定值的取值范围,比如性别(男,女,未知)等。 枚举类型使用陷阱 1.超级不推荐在mysql中设置某一字段类型为enum,但是存的值为数字,比如‘0’,‘1’,‘2…

软考135-上午题-【软件工程】-软件配置管理

备注: 该部分考题内容在教材中找不到。直接背题目 一、配置数据库 配置数据库可以分为以下三类: (1) 开发库 专供开发人员使用,其中的信息可能做频繁修改,对其控制相当宽松 (2) 受控库 在生存期某一阶段工作结束时发布的阶段产…

【算法】深度优先遍历(DFS)算法详解与实现

文章目录 1.算法原理2. 常见的深度优先遍历方式3. 代码实现总结 深度优先遍历(DFS)是一种常用的树或图的遍历算法,它通过尽可能深地搜索树或图的分支,直到路径上的所有节点都被访问完毕,然后再回溯到上一层&#xff0c…