如何搭建一个机器人控制系统

  • 前言

这里着重从科研的角度来讲一下机器人系统该如何搭建,适合机器人专业、机器人爱好者参考。

机器人种类繁多,这里的机器人系统着重针对足式机器人、仿生机器人、外骨骼机器人、关节型机器人等伺服机构偏多、控制精度要求较高、市面上又无现成商品化控制系统硬件的机器人系统。无人机、无人车领域建议去专业论坛求索,本文仅供参考。

机器人控制系统更新迭代较快,这里给出2019年世界主流控制系统设计理念,具体参考了ICRA2019,世界著名实验室等资料。

本文不具体给出技术细节,只给出设计理念、产品型号选择范畴等,因为具体的设计是要根据具体的机器人来定的。传感器、手控器等外设本文也不涉及。

本文着重设计理念理解,帮助工程实用,大白话讲述,不甚严谨,批判家手下留情。

  • 系统设计

整个机器人控制系统涉及三个方面:控制系统硬件、控制系统软件、控制系统通信

控制系统硬件即控制算法的实现平台,例如单片机、PC机、工控机等。

控制系统软件就是控制算法在哪个IDE(集成开发环境)下编写,编写的程序在哪个操作系统(单片机可以没有操作系统)下运行。

控制系统通信是控制板卡和其他各个部件的信息传输,如传感器的数据需要传给控制器,控制器的指令需要传给执行器等。

上述三个方面的关系是,算法程序在软件里写,写完之后在硬件里跑,跑的过程中算法需要的数据由通信来给,指令也由通信下达给执行器。

2.1 控制系统硬件

控制系统硬件包括两大类:嵌入式微处理器、嵌入式计算机。

嵌入式微处理器包括单片机、ARM、DSP、FPGA等;嵌入式计算机包括微型电脑、工控机、PC104小板机等。需要注意的是,这里二者的界限并不是那么明显,比如工控机所用的CPU也可能是ARM构架的,但目前市面上更多的是intel和AMD公司生产的x86构架的CPU(我们的个人电脑,笔记本里的什么酷睿i5、i7CPU都是基于x86构架的)。

嵌入式微处理器硬件很好买,而且也便宜,如果自己不会画板子的话,直接买现成的开发板应该能够满足需求。

微型电脑其实和我们的个人电脑差不多,只不过尺寸更小,便于安装到机器人上,像intel的nuc就比较火。淘宝上可以很方便的采购微型电脑(微型主机/迷你主机)。

工控机就是工业控制计算机,其实和我们的个人电脑也差不多,只不过用在工业上需要抗摔、防尘、以年为单位连轴转尽量不关机、可靠性更高。国外的工控机如倍福,好但贵。国内的工控机研华的也不错。

PC104小板机可以当作是一个工控机,它采用的是PC/104总线结构,芯片一般也是x86的芯片。优点是需要扩展的话直接叠罗汉式插板就行。

其实控制系统硬件很好理解,只要具备计算能力就可以。也就是说,如果是拖线式控制机器人的话,用自己的电脑也可以胜任,但个人电脑主要用来看剧玩游戏,毕竟不是很对口,而且还得把win10系统换掉才行(坚持用win10的话需要一些额外操作)。

目前主流都是用嵌入式计算机(Embeded Computer)中的微型电脑+嵌入式微处理器(Embedded MicroController),微型电脑负责主控,嵌入式微处理器负责底下的小模块。如果机器人系统比较小,直接用嵌入式微处理器也可以。如果有视觉处理需求,可以额外再加一个微型电脑,如英伟达的TX2.

2.2 控制系统软件

       2.2.1 控制系统实时操作系统(RTOS,Real Time Operation System

实时操作系统能够保证控制系统严格按周期进行运行,前言中所涉及的机器人需要有较高的实时性要求,主控制程序1kHz起步,所以这里讲述的RTOS的实时性也是毫秒级别的。我们用的win7,win10,linux都不是RTOS(淘宝上很多工控机预装的是win7的系统,那个的实时性满足不了上述机器人的要求,它们主要是用来做过程控制、监控设备、人机交互用的,比如可以用在取款机上,取款机的响应速度体验起来感觉是秒级的,还有的用在KTV点歌机上,点歌不会要求毫秒级的响应速度的)。

一般嵌入式微处理器可以不用安装操作系统,直接裸机跑。如果要装的话可以用ucos、freertos等。

微型电脑上可安装的RTOS有WinCE、VxWorks、QNX、嵌入式Linux等,不建议装winxp、win7、win10系统,如果实在想在这些系统下控制机器人,我所知道的有两个方法,但没去考证可行性:一是CPU如果是多核的话,锁住一个核专门用作实时控制;二是通过接口再拓展如FPGA等板子,专门用作实时控制。随着现在ROS的流行,越来越多的团队直接装的是非实时的Ubuntu Linux系统,外加硬实时补丁CONFIG_PREEMPT_RT patch,这样也可以,而且看样子是趋势。

一些工控机、小板机的RTOS大体和微型电脑上的类似,不再赘述。

       2.2.2 控制系统集成开发环境IDE(Integrated Development Environment

一般IDE是安装到我们的工作计算机/笔记本上的,写好程序,编译好,然后再下载到控制硬件(嵌入式微处理器、嵌入式电脑)里,这样用着方便。也有的直接在RTOS下的IDE中直接编写程序。

嵌入式微处理器的IDE有Keil、IAR等,选择自己顺手的即可。

嵌入式电脑的IDE就多了,如windows下的(这里的windows系统是个人工作电脑上的系统,不是控制硬件上的RTOS)VS、QT、QNX之类,Linux下ROS亦可。

  • 通信:现场总线和工业实时以太网

主控器有了,机器人系统中还有各种传感器、执行器、监控器等,它们的信息需要相互传输,而且一些实时运行的实验数据也需要保存下来。

现在主流的通信方式有两种,一种是基于CAN总线(可选用CANOpen协议),另一种是基于工业实时以太网的Ether CAT协议,二者的物理接口不一样,CAN总线的接口有的是两根线(凤尾插头那种),有的用DB9接口。Ether CAT接口就是我们常用的RJ45网口,注意Ether CAT的主站,也就是主控器的接口和我们平时用的网口一样,它们是兼容的,但是从站,即传感器、执行器这边,接口也是一样的网口,但是从站接口硬件需要支持Ether CAT协议(需要多加一个芯片)。

  • 一个概要图

如何搭建一个机器人控制系统_第1张图片

  • 建议

建议追踪世界大牛实验室:MIT Biomimetic Robotics Lab、苏黎世联邦理工Autonomous Systems Lab、意大利理工Dynamic Legged Systems lab等。

你可能感兴趣的:(硬件)