机器人算法怎么入门控制该怎么入门

机器人控制该怎么入门? - CSDN博客
机器人控制该怎么入门?
感谢以下大牛回答及授权转载!
吕朝阳,Robotics PhD @ Gatech
贺磊,Ph.D. candidate @ hust
----------------------------------------------------------------------------------------------
对于工科领域来说,脱离实践的学习都是肤浅的,对于控制这种强调经验的技术更是如此。如果去问一个程序员怎么学习一块技术,他必然让你去多编程。机器人领域也是。如果想把基本功打扎实,那么实践更是必不可少了。
对于普通学生入门来说 一款合适的机器人平台 + 入门级的控制算法进行试验。同时深入地学习相应地理论知识。
对于一个有控制基础,需要现学现用的工作者来说,啃一本诸如《现代控制工程》的书籍,在工作者演练,下面的平台内容直接略过。
关于平台的选择和相应的学习教程,我放在最后,防止大图分散了重点。
先结合机器人来说一下控制。对于设计任何一个控制系统来说,需要了解自己的输入、输出、控制元件,和算法。在一个简易的机器人系统里,分别对应的原件是:
输入 --- 传感器 (声呐,红外,摄像头,陀螺仪,加速度计,罗盘)
控制元件 --- 电机
控制算法 --- 控制板 (小到单片机,大到微机)
输出 --- 你的控制目标 (比如机器人的路径跟踪)
对这四方面都有了解之后,才能基本对机器人的控制有一个较为感性的认识。这是入门的基础。如果你对输入和输出做一个测量,比如用电机将某个轮子的转速从10加速到100,把这个测量勾画出来,那么这一个响应曲线。如何将电机准确快速地从10加速到100,这就需要一个简易的反馈控制器。
上面所说的各个传感器元件,都有廉价版可以购买学习,但随之引入的问题就是他们不精确,比如有噪声。消除这个噪声,你就需要在你的控制系统中引入更多的控制单元来消除这个噪声,比如加入滤波单元。
上面说这么多,只是想表达,理论和算法都是有应用背景的,但同时,学习一些暂时无法应用的算法也并不助于入门,甚至可能走偏门,觉得越复杂越好。所有的工程应用者都会说某某算法非常好,但是经典还是PID。倘若不亲手设计一个PID系统,恐怕真的领略不到它的魅力。我大学本科的控制课程包含了自动控制理论和现代控制理论,但是直到我设计一个四旋翼无人机的时候,才真正建立了我自己对机器人控制的理解。
推荐的那本《现代控制工程》是一本非常经典的专业书籍,需要理论知识,再进行详细的学习。我的建议是先玩,玩到需要时,认真学习这部分理论。
-----------------------------------------------------------------------------------------------------
推荐一些机器人平台。核心都涉及到运动控制。
基于arduino的机器人平台是最大众的平台了,这是一个开源社区,很多关于机器人的简易设计和控制算法实现都能在google得到。淘宝,包括arduino控制板和各类简易传感器,几百块之内钱都能得到。
同时推荐一下Udacity上的Robotics课程,基于arduino也都能实现完成。
国外的有些Robotics课程使用的都是Lego Mindstorm作为实验平台(略土豪版)。红外,声呐,陀螺仪这些传感器Lego都有,同时它的电机也可以实现闭环控制。淘宝依旧可以买到(海外代购版,我买过)
Imperial College London的Robotics课程就是以Lego为实验平台的,Andrew Davison的课件上所有的理论都可以用Lego实现
如果这些都玩腻了,可以试试玩一个机器人飞行控制,比如四旋翼飞机。飞行器是六自由度控制,因此比小车要更加具有挑战性,也需要更精确的控制系统。下面这是我以前的一个四旋翼DIY,基于arduino MultiWii的。依旧淘宝
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 )。
主机:主要完成人机交互(操作员控制或者调试机器),高级运算(机器人运动规划等)。由于需要高等运算功能,这部分算法通常是基于操作系统的,硬件载体用通用PC即可。运动控制器:主要用于改善机器人动力学(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和John Craig于70s末在JPL的工作成果,当时他们是在Stanford臂上做的实验,研究例如装配等任务时的力和位置同时控制的情况。阻抗控制(Impedance Control)是 N.Hogan的工作成果。维纳晚年,对人控制机器臂很感兴趣。后来,他组织了MIT的Robert Mann,Stephen Jacobsen等一伙人开发了基于肌肉电信号控制的假肢臂,叫Boston Elbow。后来,Hogan继续Mann的工作,他觉得假肢是给人用的,不应当和工业机器人一样具有高的刚度,而应该具有柔性,所以后来引入了阻抗。其他控制。各类机器人都有其特殊的控制问题,对于公共的机器人数学基础,个人认为有两个派比较厉害:一派是Harvard的Roger Brokett及其学生Frank Chongwoo Park等;另一派是UC Berkeley的Shankar Sastry及其学生Richard Murray,Zexiang Li,JJE Slotine,Stephen Boyd等,两派人马基本奠定了当今机器人数学基础框架(由于学识短浅,可能漏掉了其他重要贡献者)。
建议:自己也在钻研,共同学习吧。
首先,当然是把描述机器人运动的力学搞定。J.J. Craig出版于80s的《Introduction to Robotics: Mechanics and Control 》,或者R. Murray出版于90s的《A Mathematical Introduction to Robotic Manipulation》都行。当然,更加推荐后者,因为顶级学术论文很多都采用Lie group的描述方法了。再次,必要的反馈控制基础当然是不能少的,推荐Franklin的《Feedback Control of Dynamic Systems》。最后,如果是广大的Ph.D.朋友们,硬件就不必玩了,直接上paper吧。读paper,读各种牛人的paper。发paper,最好往ICRA和IJRR里面灌水。P.S.:被paper虐的吐了一口老血:-)-----------------------------------&---------------------------------------------------------
曾经在coursera上过一门机器学习基石的课程,老师利用几周的时间以一个很简单的、甚至是不常用的PLA算法为例,讲解了有关机器学习所需要的知识,后来老师说这种算法应用性不强,但通过它可以讲到机器学习所涉及到的知识。在学过这些知识以后,再去学习一些复杂的算法,而流程都与设计PLA算法类似。
自动控制和机器学习是相似的,它涉及到了很多的算法,线性控制、非线性控制,一个自动化专业的学生一学就是2个学期,效果也不见得好。我的想法是,首先从一种经典的算法入手,(比如PID),围绕其展开学习,目的就是成功应用PID算法解决一些问题,(比如机器人的运动控制),之后再学习复杂的算法。目标确定了,但在学习之前先问自己3个问题(
的《暗时间》曾提到 ):
控制的本质是什么;控制的原则是什么;控制这一专业的知识构架是什么;
以机器人运动控制举例。
机器人控制有三个元素:控制器(算法),执行器(电机),传感器;
控制的本质就是将规划系统的指令作为输入信息,将传感器探测得到的状态信息和导航系统的定位信息作为反馈,计算得到执行器的控制信号,完成运动控制的闭环。控制的原则就是稳定、准确、快速。知识构架分为两部分:理论环节、实践环节。
理论环节即PID控制的原理,如何作用于被控物,这里包括自动控制原理中结构图、传递函数、数学模型、求解微分方程等知识的学习;实践部分则包括相关软硬件的知识,软件即编程,也涉及到操作系统的相关知识。硬件如工控板的使用等。
围绕知识构架,无须事无巨细的学习,但要把PID了解透彻并成功应用。在这基础上再学习复杂的算法就会好一些。
================================update==================================
知识构架:
理论:掌握在相应环境下机器人的动力学模型、运动控制原理和方法、使用的控制策略以及运动控制器的设计。相应展开可以进行深入系统学习。仿真调试:相关工具如matlab或自己编程,将自己的算法、模型进行实现,是对理论知识的反馈,可以看自己的设计是否合理,对理论知识有更直观的了解。实物试验:涉及软硬件的部分,体会理论实际差距,进一步完善理论。关于这部分的掌握程度还是要看自己的目标是什么,围绕重心进行。如硬件部分,可以购买一些模块,以最少的经历实现目标。
另外,光从整体到局部是不够的,有时不理解复杂系统的一些组成部分,就没法从整体上去把握。所以在遇到瓶颈时,可以对其展开学习。整体与局部并不矛盾,是可以一起进行的。
想学习一门专业,不该先入为主地受 XXX 该怎么样的观念制约,应该充分利用身边的资源工具进行学习。有项目就针对项目,没项目可以如吕朝阳老师所说购买机器人平台,再者可以通过仿真对理论进行验证。思考、总结和交流很重要。
本文已收录于以下专栏:
相关文章推荐
本文是对 机器人控制入门的一些想法 的补充,以及一些新的感悟。
说一下自己的看法和感悟,抛砖引玉。不一定正确,欢迎讨论。
曾经在coursera上过一门机器学习基石的课程,老师利用几周的时间以一个很简单的、甚至是不常用的PLA算法为例,讲解了有关机器学习所需...
解决了大于360°时机器人无限调整角度的问题;
axis([0,200,0,200]);
[X,Y] = ginput(1...
一、工业机器人控制系统所要达到的功能
  机器人控制系统是机器人的重要组成部分,用于对操作机的控制,以完成特定的工作任务,其基本功能如下:
  1、记忆功能:存储作业顺序、运动...
他的最新文章
讲师:何宇健
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)如何入门工业机器人?这里告诉你答案~
如何入门工业机器人?这里告诉你答案~
备注:欲了解工业机器人工程师课程详情欢迎关注育路教育机器人培训工业机器人工程师岗位需求量大,面临用工荒的窘境。很多想要学习工程师课程的朋友不知道该如何入手,哪里有工业机器人工程师的培训课呢?下面听小编给您的介绍吧~中科罗伯特工业机器人培训机构中科罗伯特三大核心优势,一流设备、一线师资、一体化教学;强强联合,就业空间广阔;首都高校资源,交通便利,环境优美。班型及课程简介,工业机器人高级操作师、工业机器中级人工程师、工业机器人高级工程师,每门课程都有标准课程。专业能力培训及理论课程体系,有就业保证.主要培训工业机器人高级操作工、工业机器人中级工程师、工业机器人高级工程师三类,学校为了减轻学员的经济负担,免去学员的住宿费,餐费10元左右/餐。另外,可以签订就业保障协议,推荐就业。金石兴工业机器人自动化卓越工程师培训工业机器人是先进的机电一体化数字化装备,集机械、电子、控制、计算机、传感器、人工智能等多学科高新技术于一体。为了迎接机器人时代的到来,帮助未来的工程师,为机器人行业储备人才,本公司成立华中首家工业机器人应用技术人才培养基地,ABB机器人技术(华中)师资认证培训中心。主要培训工业机器人助理工程师、工业机器人初级工程师、工业机器人菁英工程师三类,毕业后颁发金石兴结业证书,会颁发教育部信息中心ITTA工业机器人工程师(中级)证书以及考核颁发ABB工程师课程认证级证书。同样能够签订就业协议,保证学员就业。我们提出人才需求的企业有:ABB各大机器人集成商、苏泊尔集团、美利信汽车、长城汽车、奇瑞汽车、瑞明工业等等。指南车工业机器人培训指南车机器人学院就是一个非常优秀的机构才,它有着优秀的师资力量、良好的学习环境、毕业后高达99.5%的就业率..........主要培训的工程师类型为调试维修工程师、电气设计工程师、机械设计工程师、技术营销工程师四类,开设的课程非常有针对性没能够让学生学到专业真本事。指南车培养的是集成应用工程师,在集成层面不限定品牌,意味着指南车学员就业时不管什么品牌机器人都能上手工作。郑鼎PLC自动化机器人培训郑州郑鼎自动化培训中心专业从事PLC培训,自动化设备设计制造,自动化工程设计,楼宇智能控制系统,变频调速;本中心拥有先进的试验设备。主要培训ABB工业机器人编程与调试,西门子S7-200,S7-300系列,400系列的编程及设计,三菱FX系列的编程及设计,触摸屏编程及设计,变频器传动控制,步进,伺服精确定位控制,组态软件设计,工业通信网络设计。有志于进入工业机器人行业的朋友,可以通过机器人工程师的培训,学习机器人编程、设计、维护、故障排查的真本事,学成之后不用担心就业问题,能够推荐就业,快速走上职业道路。如果还有不明白的地方欢迎填写文章下方表单,咨询专业老师。
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
百家号 最近更新:
简介: 热爱数字,热爱生活,关注科学技术的发展。
作者最新文章君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
第5章 机器人的基本控制方法
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 机器人控制入门 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信