毕设(1)——机械臂DH建模
毕设中用到了很多代码,其中一部分我通过看书和看论文学习并实现的代码,会通过Gitee仓库分享出来,这些代码仅用于学习使用,祝各位毕业生顺利完成毕设!
毕设系列内容:毕业设计——四自由度机械臂轨迹规划
毕设(1)——机械臂DH建模
毕设中使用到的机械臂是越疆出品的DObot魔术师机械臂,它的机械结构类似于IRB 660的码垛机械臂,用两个步进电机控制大臂和小臂的关节转动,并通过平行连杆机构保证末端的水平状态。
Dobot魔术师机械臂:官方网站
Dobot 机械臂 |
IRB660 机械臂 |
改进DH参数表
在官方论坛中下载模型后,根据模型尺寸和角度范围根据改进版DH法获得DH参数
改进DH法的参数定义如下图(摘自B站上的 机器人运动学—林沛群 课程PPT)

根据定义得到DH参数表如下
| i | \(\alpha_{i-1}\) | \(a_{i-1}\) | \(d_i\) | \(\theta_i\) | \(\theta\)范围 |
|---|---|---|---|---|---|
| 1 | 0° | 0 | 0 | \(\theta_1\) | (-90°~90°) |
| 2 | -90° | 0 | 0 | \(\theta_2\) | (-85°~0°) |
| 3 | 0° | 135 | 0 | \(\theta_3\) | (-10°~95°) |
| 4 | 0° | 147 | 0 | \(\theta_4\) | \(-(\theta_2+\theta_3)\) |
| 5 | -90° | 61 | 131 | \(\theta_5\) | (-90°~90°) |
Matlab代码验证
在Matlab中仿真机械臂可以用到机器人工具箱,它的官方网址为Robotics Toolbox,可以在上面下载到最新版,但是经常连接不上。
我自己使用的工具箱版本为10.3.1,有需要的可以在我分享的链接中下载
RTB10.3.1下载地址:传送门(蓝奏云)
下载后的安装教程网上一大堆,找一找就行了
构建运动学模型用到的函数有Link和SerialLink两个函数,你可以在matlab中Link函数与SeriaLink函数学习笔记中看到两个函数的介绍和调用函数格式
调用格式如下
% 关节角 关节偏距 连杆长度 连杆转角 旋转关节 偏差
% theta d a alpha sigma offset
L = Link([0 0 0 0 0 0], 'modified');
其中,sigma代表关节类型,0代表旋转关节,1代表移动关节
定义关节的关节角度范围用到的是qlim参数
L.qlim = [-90, 90] * pi / 180;
连接连杆得到运动学模型用的是SerialLink函数
robot = SerialLink(L, 'name', 'Dobot');
有了这三个就可以在Matlab上构建运动学模型啦
test1.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');
%定义关节限制角度
L(1).qlim = [-90, 90] * pi / 180;
L(2).qlim = [-85, 0] * pi / 180;
L(3).qlim = [-10, 95] * pi / 180;
L(4).qlim = [-95, 95] * pi / 180;
L(5).qlim = [-90, 90] * pi / 180;
%连接连杆
robot = SerialLink(L, 'name', 'Dobot');
robot.plot([0,-pi/4,pi/2,-pi/4,0]);%输出机器人模型,后面的参数为输出时的theta姿态
%robot.display;%打印出DH表
%robot.teach;%展示机器人模型
运行效果如下图

本文到此结束,后续会继续更新的~
毕设(1)——机械臂DH建模的更多相关文章
- 基于 Mathematica 的机器人仿真环境(机械臂篇)[转]
完美的教程,没有之一,收藏学习. 目的 本文手把手教你在 Mathematica 软件中搭建机器人的仿真环境,具体包括以下内容(所使用的版本是 Mathematica 11.1,更早的版本可能缺少某些 ...
- UR机械臂运动学正逆解方法
最近几个月因为工作接触到了机械臂的项目,突然对机械臂运动方法产生了兴趣,也就是如何控制机械臂的位置和姿态.借用一张网上的图片,应该是ur5的尺寸.我用到的是ur3机械臂,除了尺寸不一样,各关节结构和初 ...
- MapleSim助力长臂挖掘机建模问题解决
1.问题描述 一家机械零部件设计公司需要一个挖掘机模型,验证他们的零部件是否匹配完整的挖掘机系统.由于他们是一个零部件供应商,公司没有足够的资源和研发人员使用传统的工具创建一个完整系统的详细模型.然而 ...
- 机械臂运动学逆解(Analytical solution)
计算机器人运动学逆解首先要考虑可解性(solvability),即考虑无解.多解等情况.在机器人工作空间外的目标点显然是无解的.对于多解的情况从下面的例子可以看出平面二杆机械臂(两个关节可以360°旋 ...
- 【BZOJ3506】排序机械臂(Splay)
[BZOJ3506]排序机械臂(Splay) 题面 神TMBZOJ没有题面,感谢SYC的题面 洛谷的题面也不错 题解 对于每次旋转的物体 显然可以预处理出来 现在只要模拟旋转操作就行了 至于在哪里放标 ...
- ROS连接ABB机械臂调试详细教程-ROS(indigo)和ABB RobotStudio 6.03.02-
在ROS industrial介绍中,给出了ROS和常用机械臂的连接方式.具体信息可以参考:http://wiki.ros.org/Industrial ROS连接ABB机械臂调试详细教程-ROS(i ...
- 机械臂——arduino、marlin固件、printrun软件【转】
最近了解到,在市面上大多数机械臂控制都采用的arduino这个开源硬件来控制的,而我发现既然会单片机,就没有必要采用arduino来控制了,arduino只是一种为了简化编程而开发一种软硬件控制平台, ...
- 使用VTK与Python实现机械臂三维模型可视化
三维可视化系统的建立依赖于三维图形平台, 如 OpenGL.VTK.OGRE.OSG等, 传统的方法多采用OpenGL进行底层编程,即对其特有的函数进行定量操作, 需要开发人员熟悉相关函数, 从而造成 ...
- P3165 [CQOI2014]排序机械臂
题目描述 为了把工厂中高低不等的物品按从低到高排好序,工程师发明了一种排序机械臂.它遵循一个简单的排序规则,第一次操作找到高度最低的物品的位置 P1P_1P1 ,并把左起第一个物品至 P1P_1P1 ...
随机推荐
- js读取cookie 根据cookie名称获取值的方法
//方法1 //存在问题:如果cookie中存在 aaaname=aa;name=bb 获取name的值就会出现错误function getCookie(c_name){ if (document.c ...
- python---if、while、for
if语句 当出现选择情况的时候,就需要用到if语句. # 第一种语法 if 条件: # 冒号将条件和结果分开,不可缺少 结果1 结果2 # 条件为真执行结果1,然后结果2:否则直接结果2 # 第二种语 ...
- Mybatis-Dao层实现(通过代理方式)
1.代理方式开发是主流 2.Mapper接口开发方法只需要编写Mapper接口(相当于Dao接口),然后由Mybatis根据接口创建动态代理对象 Mapper接口开发需要遵循以下规范 一一对应 Use ...
- oracle 11g rac集群 asm磁盘组增加硬盘
创建asm磁盘的几种方式 创建asm磁盘方式很多主要有以下几种 1.Faking方式 2.裸设备方式 3.udev方式(它下面有两种方式) 3.1 uuid方式 3.2 raw方式(裸设备方式) 4. ...
- 那些年uniapp踩过的坑之-------搜索框插件uni-search-bar字体和图标居中的问题
用uniapp必不可少的就是搜索框 但是公司要求的是这样滴 但是 uni-search-bar这个插件给我的偏偏是这样子滴 这个时候我以为是简简单单的样式问题,但是多方调试无果之后才发现,这两个根本不 ...
- Java语言学习day33--8月8日
今日内容介绍1.基本类型包装类2.System类3.Math类4.Arrays类5.大数据运算 ###01基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实 ...
- Android C/C++层hook和java层hook原理以及比较
作者:Denny Qiao(乔喜铭),云智慧/架构师. 云智慧集团成立于2009年,是全栈智能业务运维解决方案服务商.经过多年自主研发,公司形成了从IT运维.电力运维到IoT运维的产业布局,覆盖ITO ...
- JavaScript一行代码获取公网IP及城市信息
废话不多说,直接上代码! <script type="text/javascript" src="http://pv.sohu.com/cityjson?ie=ut ...
- 【阿里巴巴Java开发手册1.7.0(嵩山版)】编程规约&MySQL 数据库规约
阿里巴巴Java开发手册1.7.0(嵩山版) 一.编程规约 (一)命名风格 所有命名不得以下划线和$开始和结束. 所有命名不得以拼音或拼音英文混合. 类名使用UpperCamelCase风格. 方法名 ...
- vue2响应式原理与vue3响应式原理对比
VUE2.0 核心 对象:通过Object.defineProtytype()对对象的已有属性值的读取和修改进行劫持 数组:通过重写数组更新数组一系列更新元素的方法来实现元素的修改的劫持 Object ...
Dobot 机械臂
IRB660 机械臂