毕设(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 ...
随机推荐
- 彻底理解synchronized
1. synchronized简介 在学习知识前,我们先来看一个现象: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public ...
- echarts中饼图的legend自定义icon图片(扇形为例)
效果图: 代码: 问题:// icon: "pin", // 这个字段控制形状 类型包括 circle,rect ,roundRect,triangle,diamond,pin,a ...
- vue单文件组件形成父子(子父)组件之间通信(vue父组件传递数据给子组件,子组件传递数据给父组件)
看了很多文章,官网文档也有看,对父子组件通信说的不是很明白:决定自己总结一下: vue一般都使用构建工具构建项目:这样每个组件都是单文件组件:而网上很多文章都是script标签方式映入vue,组件通信 ...
- vuejs兄弟组件之间的通信
var Event = new Vue();//准备一个空的实例对象 //A组件 var A = { template: ` <div> <span>我是A组件的数据-> ...
- BlockingCollection实现生产者消费者
很简单的代码,看注释 class Program { private static ManualResetEvent _manualResetEvent = new ManualResetEvent( ...
- Mybatis多表查询出现null字段
写在前面 今天使用mybatis实现多表查询,记录一下其中遇到的坑 mybatis多表查询简介 mybatis多表查询主要有两个方式,通俗易懂的来说就是一个是查询少量属性(association),一 ...
- [ Shell ] 通过 Shell 脚本导出 GDSII/OASIS 文件
https://www.cnblogs.com/yeungchie/ 常见的集成电路版图数据库文件格式有 GDSII 和 OASIS,virtuoso 提供了下面两个工具用来在 Shell 中导出版图 ...
- Python学习笔记.md
Python学习笔记 1.变量类型 x=5 int x="ss" string x='a' string x=True bool #查看变量类型 type(x) 2.字符串常用操作 ...
- Go xmas2020 学习笔记 07、Formatted & File I/O
07-Formatted & File I/O. I/O steams. formatted I/O. fmt functions. file I/O. Practice ① I/O. Alw ...
- 【Azure API 管理】解决API Management添加AAD Group时遇见的 Failed to query Azure Active Directory graph due to error 错误
问题描述 为APIM添加AAD Group时候,等待很长很长的时间,结果添加失败.错误消息为: Write Groups ValidationError :Failed to query Azure ...
Dobot 机械臂
IRB660 机械臂