前言

互联网时代,技术的进步,文化的传播,自由的表达,让每一个个体都有了闪光的机会。形形色色的极客,各种 DIY,关注技术时尚,展示自己创意,也是新时代的赏心乐事。

工业机器人,高自由度的机械手臂,明晃晃的高科技啊。拥有一台灵活控制的机械手,应该是极客们的幸福事情。

现在机会来了,Dobot 团队开发了一款桌面型机械手,可以摆在书桌上,小巧玲珑,控制简单灵活。能做什么,就等你开发了。

开箱

不多说,拆箱!看看全家福吧。

不得不提是包装格外有创意,让人想起来千层饼。看到上图那厚厚的一摞泡沫塑料了吗?看看拆箱时的情景吧。

给未出壳的机械手来个特写吧!机械手金属表面的处理很有质感。

抓手设计的很巧妙,抓紧状态->电机旋转->松开状态->电机旋转->抓紧状态,这期间电机不需要反向旋转。

很用心的设计,连接线上用标签扎线,既可以提示,又可以扎线。

装配

Dobot 配件有机械臂主体、电源线、控制器、USB 线、爪子和激光头等配件,机械臂由三个电机控制。

控制器的每个接线都有标签,其中1号电机接 Stepper_R 电机,2号电机接 Stepper_L 电机,3号电机接 Stepper_rot 电机。

Dobot 主体有三个臂可以运动,分别为图2-2中的1、2、3表示。其中1号臂由1号电机控制,2号臂由2号电机控制,3号臂由3号电机控制。

为了获得当前机械臂的姿态,需要安装传感器,1号臂安装标签为 rear arm 的传感器,2号臂安装标签为 Forearm 的传感器(注意:由于2号臂较窄,需要拆卸2号臂才可以装入)

控制器有两个接口,分别为 USB 接口和电源接口,插入电源和 USB 接口,则带有气泵功能的机械手臂安装完成。插好 Dobot 机械手上的电机、传感器连接控制器,然后通过 USB 与电脑相连。

使用

装配完成,接下来可以通电操作啦。没上电之前,机械手软软的,先让机械手摆放一个Pose,打开电源开关。控制器立刻接管机械手的控制权,机械手硬了。小伙伴千万要留意,通电后就不要强行转动机械手。

下面让我们先在电脑上测试一下。去Dobot官网下载并安装驱动。驱动是Arduino驱动,Arduino可是非常流行的开源硬件,简单易上手,用过的都知道。安装件dobottools,拨动开关切换控制器为USB控制。

运行DobotClient软件,Dobot服务器会自动运行。点击右上角的菜单,可以对Dobot进行配置,比如设置机械手末端是抓手、激光笔或者气泵。

DobotClient示教功能提供两种控制模式:单关节点动和坐标轴点动。单关节点动模式直接控制机械手的关节转动,挖掘机就是这么开的。坐标轴点动模式控制机械手末端移动,由程序计算关节运动,这种模式更直观。接下来就可以控制机械手摆Pose了。

使用再现功能可以重复你先前的操作,不过需要你记录下每一个关键动作。然后点击启动按钮就可以回放动作了。

手机移动端提供了iOS和Android客户端控制软件,本次使用iOS端测试。下载安装Dobot App,运行之前要做好准备工作。把控制器切换至蓝牙控制,手机打开蓝牙开关,可以运行App了。

Dobot App同样提供了两种控制模式:通过J1、J2、J3控制关节转动,或通过直接滑动机械手臂进行控制。

通过设置再现点,可以重复执行先前动作。

准备工作完成,先用气泵抓物体试试。抓硬币自然不再话下,拿游标卡尺来,没问题。找个茶叶盒,装上重物,再试试,重量291.8克。能力很强啊,继续测试,3.5寸硬盘有596克,真的抓不起来了。

视频:气泵吸取重物-卡尺

视频:气泵吸重物-茶叶盒

卸下气泵,换上抓手。看看效果, 今年是猴年,让我们看个抓猴子的视频吧。

抓手-合图

视频:抓手-猴子

结构与控制

机械手结构

Dobot机械手结构简单,设计巧妙。通过大臂小臂上的连杆机构可以保证不论大臂小臂的角度如何变化,末端吸盘始终垂直于水平面。

机械结构

机械手控制模型

对Dobot机械手的控制就是控制大臂、小臂和底盘的角度,转换为坐标系,以此实现对吸盘的定位。AO 、CD永远垂直于水平面。XYZ坐标系原点位于机械手固定底盘。

机械臂简图

看起来这个机械手的控制还是非常简单的吗,只要有中学数学基础就可以理解了。

编程控制

API接口

简单程序流程

控制Dobot机械臂运动的简单流程。

1)调用ConnectDobot连接机械手

2)创建一个线程以固定间隔调用PeriodicTask函数

3)设置大小臂的初始位置、超时时间、末端类型、示教/再现的静/动态参数。

4)指令机械手移动到指定坐标(x,y,z)

5)获取机械手姿态,检测是否移动到(x,y,z),未到达目标位置则跳转4

6)读取下一个机械手要到达的坐标(x,y,z),跳转4

简单的编程测试

Dobot API动态链接库采用C++编码,支持C、C++、C#、java等语言的开发,需要使用DobotDll.dll动态链接库、DobotDll.h接口声明文件、DobotType.h数据结构定义文件,这些文件可以通过Dobot官网下载。

生成lib文件

在控制Dobot时还需要使用Dobot静态库,由于没有提到静态库,则需要通过DobotDll.h动态库生产静态库,需要以下几步:

1)使用VS自带工具DUMPBIN将DLL中的导出函数表导出到(.DEF)文件。

DEF转化

2)将导出的(.DEF)文件整理为符合(.DEF)个数的函数导出文件。

DEF修改

3)使用VS自带的LIB工具将(.DEF)文件输出为VS格式的LIB文件。

LIB生成

编写代码

使用VS 建立VC++控制台工程,编写C++代码。代码有点长,贴在这里有凑字数的嫌疑。哈哈,只贴个轮廓了,有需要代码的小伙伴请留言。

程序测试

我们编写的程序能够控制机械手按照输入的坐标连续运动。接下来让我们测试一下书法笔画图。书法笔笔头较软,即使Z轴方向有误差,也能顺利写字画图。卸下吸盘,拆开包装,装上书法笔。

编程控制书法笔

开机测试

重复定位精度

作为一款机械手,一个非常重要的指标就是末端位置重复定位精度(重复定位精度)。当机械手重复同一动作时,末端位置的偏差与这一指标有密切关系。Dobot给出的是0.2毫米。也就是说控制机械手反复执行同一个动作,位置偏差不超过0.2毫米。

让我们看看重复性真的如此好吗?把机械手末端装上水笔,编程控制末端的坐标,反复画直线,画线过程是“中à右à中à左à中”,重复3次。

视频:重复定位精度测试

使用游标卡尺测量测量一下图中蓝色标记的位置宽度。

直线测量位置示意图

左中、右中位置是笔不断往返的点,笔不会停顿,因此是测量重复精度的最好位置;(而中点是起点也是定位点,左、右点是停顿折返点,不适合)。考虑到水笔头部直径3mm以及墨水扩散的因素,可以推断重复精度小于0.4mm。

哈哈,这个精度足够极客们在实验室High了。

笔头直径0.3mm线长42.20mm

线宽(中)2.08mm

线宽(左端)0.71mm线宽(右端)0.70 mm

线宽(左中)0.40mm线宽(右中)0.44mm

伸展范围

让我们再测量一下机械手触及范围。以底座前缘为起点,测量机械手末端吸盘能触及最远与最近距离。

伸展范围测量示意图

当触及水平面时,吸盘能控制的最远距离278毫米,最近距离31.8mm。

机械手控制范围测试(动画 最远距离)

最近距离测试1(吸盘)

最近距离测试2(吸盘)

若允许吸盘高于水平面(高23.5mm),则距底座前缘最近距离为40.1mm。

最近距离测试3(吸盘)

最近距离测试4(吸盘)

改装可行性

极客总是不甘于墨守成规的,改造才是最有乐趣的事情。接下来让我们看看Dobot机械手的可改造性。

机械改装

Dobot机械手机械部分最方便改装的部分是末端。Dobot随箱送来许多末端配件,让我们先浏览下。配件主要包括抓手、激光笔、触摸笔、可转动的吸盘。当然也可以装配其它的东西,比如挂个布娃娃,带个面具之类的。

机械手末端(空)

末端用零配件

电气改装

Dobot控制器内部也有改造的余地。气泵、继电器都是可拆卸的。主控板上激光笔接口、抓手接口、控制吸盘转动电机接口、吸盘用气泵接口都可以改插其它模块,只要能搞清楚接口引脚定义、电气特性等。

电气改造配图

编程接口

Dobot官网提供的开发文档包含DobotAPI文档、通讯协议、DobotDemo、DobotTools源码。

开发文档内容图

编程接口Dobot API包括DobotAPI.DLL动态连接库及C/C++头文件。

l  提供Java、Python、WPF、JS等示例代码

l  支持Windows操作系统

l  支持C、C++、C#、Python、Java、JS等语言开发

会C、C++、C#、Python、Java、JS等其中任何一门语言的小朋友,都可以编写代码随心所欲的控制机械手了。

二次开发难度

作为极客,自己打造的程序才有成就感。那么编程控制机械手,上手程度有多难?我花了半天时间,包括阅读文档、编程、调试等,能顺利控制机械手画矩形了。

《插入视频:水笔画矩形.mp4》

程序使用C语言编写,共137行代码。编程中用到了多线程,这个稍有难度。难度中等偏下,有一定编程经验且能独立编写100行以上程序的同学,努力一下都可以做到的。

如果熟悉串口通信编程,还可以绕过DobotAPI,参考Dobot通信协议文档,直接编程操作串口,自由度更高,但难度有些偏高。Github网站有Dobot的开源代码,有兴趣的小伙伴可以到Github阅读(https://github.com/maxosprojects/open-dobot)。

脑洞大开(有了机械手可以做什么?)

装上激光器,结合人脸识别技术,控制机械手自动瞄准目标,配上声音“举起手来”,可以拍电影了。

或者找个四轮移动平台,装上机械手,是吊车还是挖掘机还是什么东东,就看你的改装水平了。

四轮移动机械手

给机械手装上抓手,控制机械手甩动手臂,抛球,可以投篮了。给机械手带个面具,然后配上摄像头,装上音箱,给小朋友讲故事。或者两个机械手玩击剑,就看脑洞开的有多大了。

体验总结

Dobot这款桌面型机械手,的确是为桌面设计,体积小,不占空间。执行动作时非常安静,步进电机噪声小;唯独气泵电机的声音稍大,室内环境完全可以接受。Dobot机械手结构简单,控制参数少,容易上手。

控制器的硬件接口也十分便捷,可以根据需要,增加相应的物理器材。外围连接方便。可以通过电脑使用USB进行控制,也可以通过蓝牙无线控制。不论是Android还是IOS都有可用App。

Dobot提供了电脑及手机上的控制软件。特别值得一提的是,手机App操作最方便。GitHub上有Dobot开源代码,适合有意深入研究的同学。

Dobot API支持多种语言开发,包括C、C++、C#、JAVA、Python。API接口函数少,学习简单,二次开发难度小。

总的来说,连接方便、协议公开、快速开发、重复精度高,适用极客。

最后提两点建议

(1)控制器和机械手之间的连线有些凌乱,希望更清爽些了;

(2)加强文档。我在编程时走了很多弯路,如果文档清晰,并适度讲解控制器内部结构,会更有利于二次开发。

python代码控制机械臂_Dobot 机械臂相关推荐

  1. 第六天:通过python代码控制越疆机械臂完成抓取投递整个过程

    文章目录 一.前言 二.机械臂的运动逻辑(直接上代码讲解,具体请看注释) 三.总结 一.前言 有很多小伙伴问我怎么样控制机械臂完成整个过程,其实经过上一篇博文的探究,这个问题其实很容易就可以解决.把他 ...

  2. 越疆dobot机械臂_Dobot机械臂魔术师系类

    Dobot机械臂魔术师系类 简介 资料下载:http://cn.dobot.cc/download-center/dobot-magician.html DoBot 机械臂家族的新成员已经来临!小巧的 ...

  3. python机器人编程——四轴UARM机械臂的运动控制(逆解)原理及python实现(下)

    目录 1 概要 2 uarm机械臂运动控制程序的python实现 2.1机械结构的python表达 2.2 逆解算法的python表达 2.2.1 俯视图根据目标点(x,y)计算J1,L 2.2.2 ...

  4. python机器人编程——四轴UARM机械臂的运动控制(逆解)原理及python实现(上)

    目录 1 概要 2 uarm机械臂的结构分析及逆解算式推导 2.1 uarm机械臂的结构分析 (1)俯视--水平面的运动投影 (2)侧视--垂直平面的运动投影 2.2 uarm机械臂逆解公式推导 1 ...

  5. 【华为云技术分享】40多元成本制作基于Arduin的随动四轴机械臂,机械臂实现步骤记录、复现等功能

    [摘要] Arduin随动四轴机械臂,机械臂实现步骤记录.复现等功能:主要原材料元器件有:电位器 * 4.9g舵机 * 4.轻触开关 * 1.Arduin UNO * 1.热熔胶.杜邦线多根(建议用质 ...

  6. python代码控制机械臂_ros平台下python脚本控制机械臂运动

    在使用moveit_setup_assistant生成机械臂的配置文件后可以使用roslaunch demo.launch启动demo,在rviz中可以通过拖动机械臂进行运动学正逆解/轨迹规划等仿真运 ...

  7. python代码控制机械臂_选用什么样的系统或平台开发机器人/机器臂?

    公众号已经更新好了,比下面的内容增加了视频.动图.具体更多解释,欢迎阅读机器人操作系统ROS.下面内容就不用看了,直接点赞就好啦~ ======== 谢邀,一直没时间回答. 开发机器人,这句话本身就是 ...

  8. matlab机械臂工作空间代码_轻型协作机械臂运动学及工作空间分析

    0 引言 OUR机械臂有别于传统工业机械臂,其特点是体积小.重量轻.有很快的运动速度和较大的活动范围,机械臂的最大运动速度可以达到180°/s,能够处理更复杂.更危险的工作,具有极强的灵活度.精确度和 ...

  9. 实际的机械臂控制(7)USB相机与小强机械臂Lobot机械臂的标定方法

    引言 本文是针对一个实际的机械臂来控制的,而且这个机械臂很便宜,即使是平民玩家也玩得起. 在前面两章,我们介绍了对机械手臂的开环控制,主要是让初学者明白一些简单的东西. 第一章,根据小强给的少的可怜的 ...

  10. 【机械臂】机械臂快速入门

    1.处理器 (确定每个关节应该动多少,多远)==>控制器(发信号使得驱动器到某个关节的指定角度) 2.六自由度解释 除了空间内的三个坐标数据(确定位置xyz),还需要确定所选点的姿态,所以需要六 ...

最新文章

  1. 遭遇错误:ORA-01031
  2. 2019/1/14,15 Python今日收获
  3. poj 1654 Area
  4. 【django】全局上下文
  5. mp4格式文件转码后处理(qt-faststart工具介绍)
  6. 20170907wdVBA_GetCellsContentToExcel
  7. 15. 3Sum-数组
  8. (转)版本管理工具介绍——SVN篇(一)
  9. HP数组转JSON函数json_encode和JSON转数组json_decode函数的使用方法
  10. 刀片存储助力发挥融合基础架构优势
  11. 2015 2020 r4烧录卡 区别_2020版药典,药用辅料被重视了!
  12. python如何截长图_python 截长图、H5页面截长图
  13. mysql 1236错误_mysql报1236错误代码该如何解决
  14. 全世界明星都在穿白T?永不发黄,显瘦十斤,两件才99元!
  15. python从图片提取文字_Python实现从图片提取文字
  16. 温州大学X袋鼠云:高等人才教育建设,如何做到“心中有数”
  17. 苹果手机备忘录内容怎么发送给好友
  18. Android逆向学习(二):游戏开发物语反编译
  19. python设置变量age和tall的值、编写一个_Python变量学习
  20. 数据分析师有发展前景吗?

热门文章

  1. wap2app轮播guide.html,wap2app引导页的简单制作
  2. TCP 报文段之首部格式
  3. git教程——安装和环境配置(1)
  4. 20220418 如何下载网页pdf(没有下载按钮的情况,不是打印网页)
  5. win10连Android机,Windows10电脑可以和安卓手机无缝连接使用了,实用性干翻Mac-win10手机...
  6. springboot基于web的游泳馆信息管理系统毕业设计源码281444
  7. 利用python爬取飞猪信息_飞猪爬虫项目
  8. 基于FlexRay总线的汽车冗余线控转向系统的可靠性(FEMA)分析
  9. DS18B20 引脚 定义 单总线 多点温度检测 STM32 单片机
  10. CAD文件如何转JPG图片?分享两种转换方法