原创 机器人控制该怎么入门?

2016-1-5 13:59 1800 24 30 分类: 机器人/ AI
机器人产业大热,很多想进入机器人行业的小伙伴却不知道该从何着手,让我们来看看过来人有什么建议吧。

知乎网友@吕朝阳的回答如下:

对于工科领域来说,脱离实践的学习都是肤浅的,对于控制这种强调经验的技术更是如此。如果去问一个程序员怎么学习一块技术,他必然让你去多编程。机器人领域也是。如果想把基本功打扎实,那么实践更是必不可少了。

对于普通学生入门来说 一款合适的机器人平台+入门级的控制算法进行试验。同时深入地学习相应地理论知识。

对于一个有控制基础,需要现学现用的工作者来说,啃一本诸如《现代控制工程》的书籍,在工作者演练,下面的平台内容直接略过。

关于平台的选择和相应的学习教程,我放在最后,防止大图分散了重点。

先结合机器人来说一下控制。对于设计任何一个控制系统来说,需要了解自己的输入、输出、控制元件,和算法。在一个简易的机器人系统里,分别对应的原件是:

输入 --- 传感器 (声呐,红外,摄像头,陀螺仪,加速度计,罗盘)

控制元件 --- 电机

控制算法 --- 控制板 (小到单片机,大到微机)

输出 --- 你的控制目标 (比如机器人的路径跟踪)

对这四方面都有了解之后,才能基本对机器人的控制有一个较为感性的认识。这是入门的基础。如果你对输入和输出做一个测量,比如用电机将某个轮子的转速从10加速到100,把这个测量勾画出来,那么这一个响应曲线。如何将电机准确快速地从10加速到100,这就需要一个简易的反馈控制器。上面所说的各个传感器元件,都有廉价版可以购买学习,但随之引入的问题就是他们不精确,比如有噪声。消除这个噪声,你就需要在你的控制系统中引入更多的控制单元来消除这个噪声,比如加入滤波单元。

上面说这么多,只是想表达,理论和算法都是有应用背景的,但同时,学习一些暂时无法应用的算法也并不助于入门,甚至可能走偏门,觉得越复杂越好。所有的工程应用者都会说某某算法非常好,但是经典还是PID。倘若不亲手设计一个PID系统,恐怕真的领略不到它的魅力。我大学本科的控制课程包含了自动控制理论和现代控制理论,但是直到我设计一个四旋翼无人机的时候,才真正建立了我自己对机器人控制的理解。

@曹梦迪 推荐的那本《现代控制工程》是一本非常经典的专业书籍,需要理论知识,再进行详细的学习。我的建议是先玩,玩到需要时,认真学习这部分理论。

-----------------------------------------------------------------------------------------------------

推荐一些机器人平台。核心都涉及到运动控制。

基于arduino的机器人平台是最大众的平台了,这是一个开源社区,很多关于机器人的简易设计和控制算法实现都能在google得到。淘宝arduino机器人,包括arduino控制板和各类简易传感器,几百块之内钱都能得到。

20160105135824123.jpg

同时推荐一下Udacity上的Robotics课程,基于arduino也都能实现完成。

同时推荐一下Udacity上的Robotics课程,基于arduino也都能实现完成。国外的有些Robotics课程使用的都是Lego Mindstorm作为实验平台(略土豪版)。红外,声呐,陀螺仪这些传感器Lego都有,同时它的电机也可以实现闭环控制。淘宝依旧可以买到lego mindstorm(海外代购版,我买过)

20160105135840552.jpg

Imperial College London的Robotics课程就是以Lego为实验平台的,Andrew Davison的课件上所有的理论都可以用Lego实现Andrew Davison: Robotics Course

如果这些都玩腻了,可以试试玩一个机器人飞行控制,比如四旋翼飞机。飞行器是六自由度控制,因此比小车要更加具有挑战性,也需要更精确的控制系统。下面这是我以前的一个四旋翼DIY,基于arduino MultiWii的。依旧淘宝四旋翼飞行器 diy

20160105135851570.jpg

MultiWii是一个基于arduino的开源飞控平台,所有c代码都可得,不多于一两万行。如果把这些都研究透了,相比已经是专业水平了。


还有知乎网友@贺磊的建议也很有参考价值:

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

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

机器人控制硬件

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

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

主机:主要完成人机交互(操作员控制或者调试机器),高级运算(机器人运动规划等)。由于需要高等运算功能,这部分算法通常是基于操作系统的,硬件载体用通用计算机即可。

运动控制器:主要用于改善机器人动力学(Robot Dynamics)。机器人的机械本身并不具备跟踪轨迹的能力,需要外加控制来改善。由于需要大量的实时运算,这部分通常是基于实时操作系统,比如QNX等,硬件载体可以用ARM或其他。比如,工业界的工业机器人主要使用运动反馈(Motion Feedback),也即将驱动器配置为位置控制或者速度控制模式,此时运动控制器的主要用于补偿传动系统非线性性,例如:由于齿轮间隙、微小弹性变形导致的末端偏移。

伺服驱动器:主要用于改善电机动力学(Motor Dynamics)。由于电机本身物理特性并不具备良好的位置、速度和力矩跟踪能力,因此需要依靠控制来改善。这部分需要更高的实时性能,因为电机的响应速度快,需要us级定时,所以可以使用高性能DSP。比如,直流有刷电机中转子速度正比于反向电动势、力矩正比于电枢电流,而没有物理量能够直接控制位置,此时需要外加位置控制器。

电机:充当执行器,将电信号转化为机械运动。

机械本体:被控制的终极对象。

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

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

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

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

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

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

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

其他控制。

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

首先,把描述机器人运动学和力学搞定。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)。

再次,必要的反馈控制基础当然是不能少的。关于控制,并不推荐把下面的教材通读一遍,仅需要了解必要的控制理念即可。陷入繁杂的细节往往不得要领,并浪费时间。具体的问题需要研读论文。

首先,要建立控制理论的基本概念,如状态方程、传递函数、前馈、反馈、稳定性等等,推荐Stanford大学教授Franklin的《Feedback Control of Dynamic Systems》;

关于机器人控制的入门读物,解释的最清晰的当属MW Spong的《Robot modeling and control》,书中不仅详细讲解了基于机器人动力学的控制,也讲解了执行器动力学与控制(也即电机控制)。

关于非线性控制理论,推荐MIT教授J.J.E. Slotine的《Applied Nonlinear Control》。

最后,如果是广大的Ph.D.朋友们,硬件就不必玩了,直接上paper吧。读paper,读各种牛人的paper。发paper,最好往ICRA和IJRR里面灌水。P.S.:被paper虐的吐了一口老血:-)

文章评论6条评论)

登录后参与讨论

用户1269541 2016-4-22 15:09

牛B的不要不要的

用户1738275 2016-4-13 15:28

对于一个想要做家居机器人的新手来说,这个文章很有启示作用,不过在作者所说的文章以外,我还看了很多关于神经元算法的书

用户1869499 2016-1-24 02:27

写的真心不错

用户891284 2016-1-12 23:59

写得不错! good!

scynliaogg_864686882 2016-1-7 13:52

领教了!!!

用户1733883 2016-1-6 16:22

写得不错!

用户1406868 2014-11-11 10:41

未来的Iphone是什么样?应该是一个跟人脑通讯的一个每个人必备的个人终端,这是未来手机和便携电脑合并后的发展趋势。人体可能已经融入了生物电脑,电脑已经成了人的一个部分。或者说,人也与时俱进、升级换代了!

用户1406868 2014-11-6 11:16

能欣赏马云,给马云投资的人,应该也有着超乎常人的巨大理想与抱负,这些人都是可以改变世界的人。

相关推荐阅读
用户1777698 2016-06-12 10:57
初中文化的85后小伙自制飞机,帅过Ehang184
近日,生活在衡水景县庙镇八里屯村的85后小伙解保刚自己制造的自旋翼飞机在景县庙镇开发区西侧一条宽阔的马路上成功试飞。这已是他的第八代机型,他为飞机取名“保刚”,飞机上GPS、定速巡航飞行等功能一应俱全...
用户1777698 2016-06-03 15:03
宝马将大力研发自动驾驶技术
当地时间周三,本田展示了两款自动驾驶原型车,并表示会在2020年上市其首款自动驾驶汽车。就在本田宣布这一消息一日后,宝马也带来了一个重大的消息--将重振"i"部门并集中研发自动驾驶技术。其实早在今年4...
用户1777698 2016-05-27 15:04
机器人博士亲述在日本学习的经历:机器人都没用?!
日本可以说是机器人技术最发达的国家之一,日本在机器人方面的强大是有其深厚工业基础的,控制机器人精密动作的伺服电机主要被日本、德国、美国所垄断,其中包括了被大众熟知的松下、三菱等企业。同时,日本人对...
用户1777698 2016-05-23 11:18
美国小型无人机法规为何久久未能出台?
美国无人机行业已经开始对小型无人机法规的出台时间产生了怀疑。现在母亲节已经过去了,学生的毕业季也将来临,如此看来美国联邦航空管理局所说的“春季晚期”或许真的得等到春天的末尾。美国无人机产业对如此拖沓冗...
用户1777698 2016-05-17 10:03
你的网络是否面向未来?
在商业环境中,我们看到IP技术已经有很多的应用,比如:浏览器(www)、文件传输(FTP)、远程登录(Telnet)都是这样的应用。同样,制造商也需要做好准备,因为工业环境也会按照同样的路径来发展。这...
用户1777698 2016-05-03 15:32
机器人来了,关于机器人未来的五个预测
机器人在媒体眼中毁誉参半。一会儿说它们给我们打扫房屋和递送批萨,一会儿又说它们窃取我们的工作并威胁要接管我们的世界。经过一百多年科幻书籍和电视节目的渲染,机器人在科技界仍然是一个“好或不好”的争议性话...
我要评论
6
24
关闭 站长推荐上一条 /2 下一条