基于Matlab Robotics Toolbox的Dobot机械臂运动规划(3)
【基于Matlab Robotics Toolbox的Dobot机械臂运动规划】系列文章是我在学习robotics toolbox中所做工作的记录,方便自己后面复习、改进
软件环境 :
Matlab R2018b 9.5;
Robotics Toolbox 10.4;
Autodesk Inventor Professional 2019.
(3)主要介绍了用Autodesk Inventor做运动可视化。
从这篇文章开始,我开始使用10.4版本的Robotics Toolbox for Matlab。我没有将本文中用到的代码在低版本中测试,10.4具体的更新说明我没有仔细研究过。遇到问题请留言,我们一起讨论解决。
0.Autodesk Inventor简介
Inventor是著名软件AutoCAD的开发公司Autodesk发行的一款用于三维机械设计、仿真、分析等的计算机辅助设计软件,与达索的Solidworks类似。
拟实现的功能是,在前面两篇文章的基础上,仿真时显示三维模型。
Robotics Toolbox for Matlab本身是有SerialLink.plot3d()函数可以显示三维模型的,同时也有人在Simulink中使用一些工具实现同样的功能。
但本人对于Inventor更熟练,以及Inventor的渲染相比Matlab会更好,所以先研究在Inventor中实现仿真。
1.在Inventor中做正运动学驱动
首先,我在Dobot官方论坛上找到了有人分享的三维模型,然后将其稍微简化后装配。
拟通过iLogic功能做正运动学驱动,我在装配需要驱动关节角时使用的是“约束”命令。装配完成后,在参数浏览器中找到各关节角,重命名并设置为关节参数。最后经过一番调试,找到这个装配体中各关节角的运动范围。
在工具栏中找到 管理-iLogic-添加表单。在表单编辑器中将左边参数列表中的t1、t2、t3拖到右边的编辑区,然后分别在他们的 行为-编辑控件类型 中设置为滑块,并在 滑块特性 中设置最值。软件会自动生成一个对话框。这个过程与Visual Basic等可视化编程软件的操作类似。
效果如下:
2.在Inventor中做逆运动学驱动
拟通过运动仿真功能做逆运动学驱动,我在装配需要驱动关节角时使用的是“联接”命令。因为如果使用前面提到的“约束”命令,运动仿真环境会认为这个关节的角度用户给定的定值常量,这个自由度就被限制了。而使用“联接”命令,在运动仿真环境中会被认为是自由的,并且会自动创建运动类型。
如图,运动类型创建完成后,分别在其 右键-特性-自由度-编辑初始条件 中找到各关节角度范围。
于是,在两个软件中,各关节分别在极限位置1和极限位置2的角度如下表:
关节 | 位置1 | 位置2 |
---|---|---|
Matlab L1 | -90 | 90 |
Inventor L1 | -180 | 0 |
Matlab L2 | -90 | -5 |
Inventor L2 | 155 | 70 |
Matlab L3 | 45 | 145 |
Inventor L3 | 46 | 146 |
我们可以构造一个基于映射关系的数据处理方法,使Matlab中得到的逆解适用于Inventor。
设Matlab中第i个关节的角度为m(i),Inventor中第i个关节的角度为i(i),于是有:
- i(1) = m(1) - 90
- i(2) = -m(2) + 64
- i(3) = m(3) + 1
从构建机器人,到输出逆解,代码如下:
%机器人初始化%%定义连杆%% theta d a alphaL1 = Link([0 143 0 -pi/2]);L2 = Link([0 0 135 0]);L3 = Link([0 0 147 0]);%定义关节角范围%% 右 中 左 %%Matlab -90 0 90 %%Inventor-180 -90 0 %L1.qlim = [deg2rad(-90) deg2rad(90)];% 抬起到竖直 L3定位位置 下降到最低 %%Matlab -90 -55 -5 %%Inventor 155 120 70 %L2.qlim = [deg2rad(-90) deg2rad(-5)];% 上升到最高 下降到竖直 %%Matlab 45 145 %%Inventor 46 146 %L3.qlim = [deg2rad(45) deg2rad(145)];L = [L1 L2 L3];%连接连杆,构建机器人%dobot = SerialLink(L,'name','Dobot');%滑块驱动,用于找关节角范围%%dobot.teach;%view(135,35);%运动规划%% Demo:画直线%T1 = transl(200,120,100); %起点transformation matrixT2 = transl(220,-150,100); %终点transformation matrixT = ctraj(T1,T2,50); %ctraj利用匀加速匀减速规划轨迹Tj = transl(T);%plot3(Tj(:,1),Tj(:,2),Tj(:,3)); %输出末端轨迹%当反解的机器人对象的自由度少于6时,要用mask vector进行忽略某个关节自由度%q = dobot.ikine(T,'mask',[1 1 1 0 0 0]);%显示机器人%dobot.plot(q,'trail',{'r','LineWidth',2});%逆解后处理%%Matlab to Inventor%q1 = rad2deg(q);q1(:,1) = q1(:,1) - 90;q1(:,2) =-q1(:,2) + 64;q1(:,3) = q1(:,3) + 0;
将q1中各列分别整理成如下格式的txt文件,用于导入Inventor。
分别在各关节运动 右键-特性-自由度-编辑驱动条件 中勾选 启动驱动条件,并选择用位置进行驱动,然后在右边的输入图示器中,依次点击样条曲线、替换当前法则、加载样条曲线,会发现驱动曲线已经变成了我们从Matlab得到的逆解。
可以在机械臂末端创建跟踪轨迹,最后播放运动仿真。
以下是运动仿真视频演示(视频中的demo不是画直线)
基于Matlab Robotics Toolbox的Dobot机械臂运动规划(3)相关推荐
- 基于Matlab Robotics Toolbox的Dobot机械臂运动规划(4)
[基于Matlab Robotics Toolbox的Dobot机械臂运动规划]系列文章是我在学习robotics toolbox中所做工作的记录,方便自己后面复习.改进 软件环境 : Matlab ...
- 基于Matlab Robotics Toolbox的Dobot机械臂运动规划(1)
[基于Matlab Robotics Toolbox的Dobot机械臂运动规划] 系列文章是我在学习robotics toolbox中所做工作的记录,方便自己后面复习.改进. 基于Matlab R20 ...
- 基于Matlab Robotics Toolbox的Dobot机械臂运动规划(2)
[基于Matlab Robotics Toolbox的Dobot机械臂运动规划]系列文章是我在学习robotics toolbox中所做工作的记录,方便自己后面复习.改进. 基于Matlab R201 ...
- 基于matlab的mk2三自由度机械臂轨迹规划及控制器仿真设计
基于matlab的mk2三自由度机械臂轨迹规划及控制器仿真设计(报告+ppt) 摘 要:本文的研究对象为EEZYbotARM MK2三自由度机械臂,分析了其机械结构,建立D-H参数表,同时在MATLA ...
- 实例介绍机械臂运动规划及前沿研究方向
origin: https://www.leiphone.com/news/201703/0JJyEB2eqdRe9XS8.html 雷锋网新智造按:运动规划 (Motion Planning) ,有 ...
- MATLAB算法实战应用案例精讲-【人工智能】基于机器视觉的机器人及机械臂运动规划
目录 前言 几个高频面试题目 移动机器人的移动和机械臂的路径规划之间的异同
- MATLAB算法实战应用案例精讲-【人工智能】基于机器视觉的机器人及机械臂运动规划(补充篇)
目录 前言 几个高频面试题目 机器人抓取时怎么定位的?用什么传感器来检测? 相机标定
- 机械臂运动空间的计算_机械臂运动规划(Motion Planning)
写作说明: 本文主要介绍一下机械臂的运动规划(Motion Planning on Manipulators).之所以写这篇文章,是因为受到人邀请回答相应问题,而刚好最近在学<Modern Ro ...
- 使用MoveIt配置机械臂运动规划-1.导入URDF文件
以gluon6L3机械臂为模型来进行操作,已经默认导出urdf文件,存在gluon_6l3_description文件夹下. 一.配置rviz 1.将gluon_6l3_description文件夹移 ...
最新文章
- 越心虚越藏着掖着,越藏越掖越脱节
- Linux管道用法示例
- 程序2:word count
- onresize事件会被多次触发_如何修复移动浏览器上 touchend 事件不触发的bug
- 《计算机应用基础实训教程》,《计算机应用基础实训教程》修改稿(文).doc
- java序列化与反序列化总结
- apache+tomcat+jk配置负载均衡
- rds基于什么开发_玩物得志: 基于DataWorks+MaxCompute+MC-Hologres 构建大数据平台
- 普洛斯库列科夫 线性代数习题集_转载)科大学长对数学系学弟学妹的忠告
- VS2015编译eXosip2-4.1.0 osip2-4.1.0
- 小米路由器3无线网连接到服务器,小米路由器3无线中继(桥接)怎么设置?
- 主机电源供电端口-24PIN
- 锁定计算机后等于睡眠吗,详细教你电脑休眠和睡眠的区别
- 为什么程序员怕改需求?
- java随机生成26个字母_js随机生成26个大小写字母
- Vue项目引入animated
- 数学之美-读书笔记6-10章
- 企业分公司与总部之间的网络连通高效方案
- 【AI视野·今日CV 计算机视觉论文速览 第182期】Fri, 10 Apr 2020
- 整理Eclipse常用快捷键
热门文章
- A 0.18um CMOS SOC for a 100-m-Range 10-Frame/s 200x96 pixel time-of-flight Depth Sensor翻译
- 使用DOM4J解析XML文档,输出所有学员信息和添加学生信息
- 用户登录 JWT TOKEN
- leaflet-自定义底图
- C语言学习基础(day06)(达内)
- Android Studio打包APK安装失败:应用是非正式版本,当前设备不支持安装
- 在Git上如何强推代码规范
- Winform发布wss
- 【TSP问题】基于蜜蜂算法求解旅行商问题附matlab代码
- Jetpack:Lifecycle 和 LiveData