机器人控制该怎么入门?

从机器人控制硬件、软件算法以及运动控制理论三个方面分析机器人控制该如何入门。
文章内部-已修-ok 

首先,应当了解到:机器人控制(Robot Control)的目的是通过人工引入控制改善原有系统的特性,使新的系统:
     1)跟踪性能(Tracking Performance)更好;
     2)抗扰动性(Diturbance Rejection)更强;
     3)稳健性(Robustness)更优等

机器人控制大致可以分为硬件和算法两个大方向:

机器人控制硬件 

基本控制结构当年,N. Wiener对神经科学很感兴趣,发现其实机器的反馈控制和人的运动控制机理是相似的。控制工程中的:传感器(各种位置、速度、力传感器等)、控制器(各种处理器以及控制算法)和驱动器(电机、液压、气动、记忆合金等)三部分,分别对应于人的感受器(receptor(例如:视觉、听觉、味觉、嗅觉、触觉等外感受器)、神经系统(中枢和周围神经系统)和效应器(effector(肌肉、骨骼),只不过人的结构更加复杂。 

层次控制体系了解了控制的基本结构,剩下的事情就是设计控制系统。如今,大家设计控制系统的方法还是比较统一的,基本都可以归结为5层的层次体系:(1) 主机(Host),(2)运动控制器(Motion Controller),(3) 伺服驱动器(Servo Driver),(4) 电机(Motor),(5)机构(Mechanism )。

(1)主机:主要完成人机交互(操作员控制或者调试机器),高级运算(机器人运动规划等)。由于需要高等运算功能,这部分算法通常是基于操作系统的,硬件载体用通用计算机即可。
(2)运动控制器:主要用于改善机器人动力学(Robot Dynamics。机器人的机械本身并不具备跟踪轨迹的能力,需要外加控制来改善。由于需要大量的实时运算,这部分通常是基于实时操作系统,比如QNX等,硬件载体可以用ARM或其他。比如,工业界的工业机器人主要使用运动反馈(Motion Feedback,也即将驱动器配置为位置控制或者速度控制模式,此时运动控制器的主要用于补偿传动系统非线性性,例如:由于齿轮间隙、微小弹性变形导致的末端偏移。
(3)伺服驱动器:主要用于改善电机动力学(Motor Dynamics。由于电机本身物理特性并不具备良好的位置、速度和力矩跟踪能力,因此需要依靠控制来改善。这部分需要更高的实时性能,因为电机的响应速度快,需要us级定时,所以可以使用高性能DSP。比如,直流有刷电机中转子速度正比于反向电动势、力矩正比于电枢电流,而没有物理量能够直接控制位置,此时需要外加位置控制器。
(4)电机:充当执行器,将电信号转化为机械运动。
(5)机械本体:被控制的终极对象。

 算法的编写

鉴于如今几乎没人再用Op-Amp搭建模拟计算机的事实,可以说算法就是个编程问题。基本的编程语言能力,比如MATLAB、C、C++是必须的。设计好算法之后,还需面对另外几个问题:

 1)   离散化问题(Discretization):连续算法的离散化是必要的,因为如今计算机都是数字系统。对于线性系统,比如电机控制,方法当然就是从s域(传递函数)到z域(Z变换)再到t域(差分方程)的变换,非线性的就得研究微分方程的各种数值方法了。 

 2)   混合控制问题(Hybrid Control):几乎当前所有的机器人控制系统都不仅有一个控制模式,比如:回初始位置、运动控制模式、人工示教模式等等,每个模式需要特殊的控制算法。单个系统存在多个控制器时被称为混合控制系统,混合控制系统常常使用有限状态机(Finite State Machine, FSM建模,状态机的切换需注意一些问题,比如芝诺问题。 

3)   通信问题(Communication):通常机器人系统都包含几十个,甚至上百个传感器以及几个到十几个驱动器,通信时常是个头疼的问题。问题的复杂性源于:通信对象多(并发问题),顺序需要协调(时序问题),通信的速率需要兼顾(阻塞问题)。个人倾向于使用基于“事件驱动模型”+“有限状态机模型”的混合模型来处理此类问题。

机器人控制理论

控制方法千奇百怪,这里仅举机器人臂的两个比较经典而常用的方法:混合力位控制和阻抗控制。

1)    混合力/位控制(Hybrid Force/Position Control是Mark Raibert(现今Boston Dynamics老板)和John Craig于70s末在JPL的工作成果,当时他们是在Stanford臂上做的实验,研究例如装配等任务时的力和位置同时控制的情况。

2)    阻抗控制(Impedance Control是N.Hogan的工作成果。维纳晚年,对人控制机器臂很感兴趣。后来,他组织了MIT的Robert Mann,Stephen Jacobsen等一伙人开发了基于肌肉电信号控制的假肢臂,叫Boston Elbow。后来,Hogan继续Mann的工作,他觉得假肢是给人用的,不应当和工业机器人一样具有高的刚度,而应该具有柔性,所以后来引入了阻抗。 

3)    其他控制。 

建议:自己也在钻研,共同学习吧。 

首先,把描述机器人运动学和力学搞定。J.J. Craig出版于80s的《Introduction to Robotics: Mechanics and Control 》,或者R. Murray出版于90s的《A Mathematical Introduction to Robotic Manipulation》都行。对于机器人的数学基础,最新的成就是基于Differentiable Manifold(微分流形)、Lie group(李群)和Screw Theory(旋量理论)的。在这方面,个人认为以下研究团队奠定了机器人的数学基础理论:(1)Harvard的Roger Brokett教授及其学生Frank Chongwoo Park等;
(2)UC Berkeley的Shankar Sastry教授及其学生Richard Murray,Zexiang Li等。
(3)uPenn的Vijay Kumar教授,他和他的学生Milos Zefran以及Calin Belta在90年代研究了基于Differentiable Manifold的单刚体运动学和动力学。
(4)上述2)中Richard Murray的学生Andrew Lewis和Francesco Bullo等研究了基于differentiable manifold和Lagrange Mechanics的机器人动力学以及几何控制理论(Geometric Control Theory)。 

再次,必要的反馈控制基础当然是不能少的。关于控制,并不推荐把下面的教材通读一遍,仅需要了解必要的控制理念即可。陷入繁杂的细节往往不得要领,并浪费时间。具体的问题需要研读论文。(1)首先,要建立控制理论的基本概念,如状态方程、传递函数、前馈、反馈、稳定性等等,推荐Stanford大学教授Franklin的《Feedback Control of Dynamic Systems》;
(2)关于机器人控制的入门读物,解释的最清晰的当属MW Spong的《Robot modeling and control》,书中不仅详细讲解了基于机器人动力学的控制,也讲解了执行器动力学与控制(也即电机控制)。(3)关于非线性控制理论,推荐MIT教授J.J.E. Slotine的《Applied Nonlinear Control》。
最后,如果是广大的Ph.D.朋友们,硬件就不必玩了,直接上paper吧。读paper,读各种牛人的paper。发paper,最好往ICRA和IJRR里面灌水。P.S.:被paper虐的吐了一口老血:-)

相关标签:
  • 运动控制
  • 力/力矩控制

参与评论

贺磊

华中科技大学机械学院博士,研究方向:外骨骼机器人。研究具体内容:上肢康复外骨骼机器人、力控制、阻抗控制、机械电子设计等。擅长领域 :机器人动力学、基于模型的动力控制,机械电子设计(包括机械电子系统建模、伺服驱动、运动控制、力控制策略)等。

推荐文章

为什么我们在机器人运动控制中一直在强调力控? 机械设计(课程)——丝杆传动系统结构设计 浅谈阻抗 经典SEA线性动力学模型及其简化与力矩求导 外骨骼机器人入门学习小结