大话如何从一个电机发展成机器人本体加机器人控制器
最近学了如何用EtherCAT IGH 控制一个电机之后,就在想如何现在距离拥有一个机器人本体和机器人控制器还有多远呢?
下面的内容比较的自己的粗浅的看法,在此抛转引玉。机器人本体的设计和控制器两个随便一个单独拎出来讲,都能讲上是十天十夜都不止,每一个都是一个极其复杂的系统,都需要各位有志之士深耕多年才能做好做稳定。
我在这里也只会随手一写,写出来和大家一起讨论讨论、交流交流。
1 机器人本体
1.1 简单的机器人本体
机器人本体往简单了说就是一堆的电机,所以我现在已经有了一个步进电机,所以是不是也可以说我有一个非常简单的机器人本体呢?
但是这个机器人本体是在是过于简单了,连个刹车、编码器、外壳都没有。
1.2 能用的机器人本体
一般我们要根据自己的应用场景去设计自己的机器人。
- 1、 轴数
- 4 轴、5 轴、6 轴、7 轴、双臂。
- 2、结构
- 串联、并联、串并联。
- 3、功能和应用场景
- 工业臂、协作臂
- 搬运、码垛、喷涂、焊接、餐饮、医疗、服务
- 4、前面三个确定之后,机器人的外形基本就有一个大概的雏形了
- 然后就要确定外壳的使用材质
- 5、机器人负载和工作范围选择
- 在前面1、2、3 基本确定之后,那么我们就可以去确定机器人的负载、工作范围了
- 6、电机和减速器选择
- 前面的基本确定之后,然后就是要去确定电机和减速器了
- 7、装配
1.3 更好更强的机器人本体
在做完上面这个功能之后,那么就恭喜你已经有了一个基本能用的机器人本体了,而且这个现在网上也有挺多这种开源资料。
那么我们为了能有一个更好更强的机器人本体,还需要哪些工作呢?
- 1、更好的装配精度(感觉像是没说一样)
- 2、一致性、稳定性更好的电机和减速器
- 3、…
- 4、…
对于机器人的本体设计并不熟悉,这是随口一说,更详细的一些机器人本体设计经验,可以参照这个知乎上的博主吴上伟 小型工业机器人设计
2 机器人控制器
2.1 简单的控制器
机器人控制器往简单了说就是控制一堆的电机运动,那么我现在已经可以使用 EtherCAT 控制一个步进电机了,那么是不是也可以说我有一个非常简单的机器人控制器呢?
2.2 能用的控制器
那么为了往我们的控制器显得不那么 Low, 功能丰富一点我们还需要加入那些功能呢?
-
1、外壳
- 当控制器的电机多了之后,那么一堆的驱动器和开关电源任意的堆在一起,视觉上总是不好看的,那么就需要给它设计一个好看的外壳把这些驱动器和开关电源放在一起。
-
2、散热风扇
- 当驱动器和开关电源都放进一个箱子中之后,上电工作的时候肯定是会散发出热量的,那么是不是需要考虑添加一个散热功能,比如说加一个风扇呢?或者其它散热形式呢?
-
3、IO板
- 机器人最简单的外设接口就是IO板,在使用机器人的时候,总是难免想让机器人来干些事情,不能总是让机器人在哪里漫无目的的甩来甩去的是吧。比如说装一个手爪、一个吸盘什么的。我们就需要给机器人配一个简单的IO板卡,用来控制这种外设的。这里就会开始引入总线协议了。EtherCAT、DeviceNet、ProfiBus等等。
- 4、运动学
- 为了能控制机器人到达空间中指定的位置,那么就需要引入运动学。需要计算机器人的正逆运动学。
- 5、动力学
- 重力补偿
- 为了更好的控制机器人进行运动,需要进行机器人的正逆动力学解算。
- 6、驱动器同步
- 用EtherCAT控制一个电机基本上可以不用考虑电机同步的事情,那么当你用了多个电机之后,那么就需要考虑多个电机如何进行同步的事情了,而且就需要在控制器上做很多增加实时同步性的功能了,比如说安装实时补丁,或者采用硬实时系统等等。
- 7、通信协议
- EtherCAT 协议用以和驱动器通信
- EtherCAT、DeviceNet、ProfiBus 用以和外部IO设备通信
- 8、主控制器形式
- x86 PC平台
- Arm 嵌入式
- 9、操作系统形式
- VXWorks
- Windows CE
- VXWorks + Windows(比如说KUKA用的是Acontis的VxWin系统,VxWorks+Windows7(C4系统),在Windows7上跑了个VxWorks,一个负责实时解算,一个负责人机界面(示教器采用远程显示的方式))
2.3 更好用的控制器
添加了上面的一些功能之后,那么我们已经有了一个比较初步能用的控制器了,但是还是需要具有很强的开发能力的人才能用,而且也不安全,毕竟没有急停按键。为了让这个控制器在使用上更加安全、简单、高效,那么我们还需要添加一些什么功能呢?
机器人的控制器、伺服电机、减速器三者不仅是机器人最核心的三大零部件,同时也是工业机器人的核心技术壁垒所在。
-
1、急停安全电路
- 在实际使用机器人过程中,所谓急停在手,安全我有,可见急停在机器人的重要性。但是现在很多的协作机器人开始不在示教器上提供实体的急停按键了,急停按键放置在示教器上的触摸屏上的一个软件按键了(JAKA、DOBOT 越疆)。这个主要是因为现在的协作机器人已经做了很多的碰撞检测的功能,能够最大限度的避免机器人在运行过程中对人造成伤害。这种协作臂的示教器基本上就是一个平板电脑,然后实体的物理急停按键是一个单独的手持模块,也就是这个不再像之前的工业臂示教器上面就有急停按键了。
-
2、示教器
- 平板
- 传统的手持示教器
-
3、编程方式
- 提供编程指令
- 文本式编辑
- 图形化、拖拽式编辑
- 编程指令规范制定
- 词法、语法、语义分析
- 不提供编程指令,只提供SDK和外部通信接口形式,现在越来越多的机器人提供这种形式,使得机器人更加的易用。(ABB PCSDK/RWS, FANUC RMI, JAKA、DOBOT 都是这种基于TCPIP通信的接口形式)
- 提供编程指令
-
4、工业通信
- EtherCAT 协议用以和驱动器通信,可用于扩展外部轴
- EtherNet 用于和外部 PC 进行数据交互
- ProfiNet 用于和外部 PLC 进行数据交互
- …
-
5、外设接口
- 网口(和各种工业设备通过总线通信交互数据)
- Com 口
- USB 口(插U盘拷贝程序、备份控制器系统或者程序)
- 等等
-
6、运动控制
- 机器人中最重要功能应该还是运动控制
- 如何执行匀速轨迹,匀速轨迹的性能如何,匀速段的时间是否有波动
- 能否提供指定时间的点到点的运动的功能(类似ABB的运动指令中的 \T 时间参数)
- 能否提供速度又快精度又高的运动控制功能(ABB的QuickMove、TrueMove 功能)
- 自主规划,给定环境模型自主规划出符合要求的无碰撞路径
- 拖动示教
- …
-
7、行业工艺包
- 码垛
- 搬运
- 喷涂
- 焊接
-
8、其他的一些辅助功能
- 设定工具
- 设定负载
- 设定安装方式
- 设定作业区间
- 设定IP地址
- 运动参数设置
- 工具标定
- 运动学标定
- IO监控
- 用户管理
- …
网上一些将机器人控制讲的比较好的文章: