强化学习在机器人中的应用
强化学习是机器学习中的一个子领域,其中智能体通过与环境的交互,观测交互结果以及获得相应的回报。这种学习的方式是模拟人或动物的学习过程
我们人类,与我们所处的环境有一个直接的感官接触,我们可以通过执行动作,目睹动作所产生的影响。这个观点可以理解成“causeandeffect”,毫无疑问地,这就是我们人生中建立起对环境的认知的关键。本文章将从以下几个方面介绍强化学习在机器人中的应用:
强化学习目前应用在哪些方面为什么强化学习与机器人有密切的联系机器人强化学习简介 值函数近似机器人强化学习挑战 维度灾难实际环境采样灾难模型限制和模型不确定性灾难机器人强化学习准则 有效的表征模型近似先验知识强化学习目前应用在哪些方面很多问题都已经通过强化学习得以解决,因为RL所设计的智能体不需要通过专家进行监督学习,对于那些复杂的没有明显或不容易通过流程来解决的这类问题就最适合使用强化学习得以解决,比如说:
Gameplaying–在游戏场景中做出最佳的动作往往依赖与很多因素,特别是在特定的游戏中可能的游戏状态有非常多的时候。要想通过传统的方法去覆盖如此多的状态,意味着将要设定非常多的人工定制的规则,RL将会不需要人为定制规则,智能体能通过玩游戏学到规则。对于双人对抗游戏比如“backgammon”,智能体能够通过与人类玩家或者其他RL智能体对抗游戏中得到训练。Controlproblems–比如电梯调度问题。同样的,没有一个明显的策略能够提供最好最省时的电梯服务。对于这样的控制问题,RL智能体能够在仿真环境中进行学习最终学到最佳的控制策略。RL在控制问题中的应用的一些优点是能够很容易的适应环境的变化,连续不断的训练,同时不断的提升自己的性能。一个最近的比较好的列子是DeepMind’spaperHuman-levelcontrolthroughdeepreinforcementlearning
为什么强化学习与机器人有密切的联系J.Kober,J.Andrew(Drew)Bagnell,andJ.Peters在ReinforcementLearninginRobotics:ASurvey中指出:
Reinforcementlearningofferstoroboticsaframeworkandsetoftoolsforthedesignofsophisticatedandhard-to-engineerbehaviors 强化学习提供给机器人学一个设计复杂和人为难以设定的工程的行为的工具集和框架
同时,强化学习逐渐成为现实世界中一个普遍存在的工具。一般来说,对于人类来说复杂的问题恰好机器人可能会很容易解决,同时,对于我们人类来说简单的问题,机器人可能解决起来会非常复杂。也导致很多人认为,机器人可以解决复杂但又在每次试验任务上表现简单,换句话说:
What’scomplexforahuman,robotscandoeasilyandviceversa-VíctorMayoralVilches
举个简单例子,想象我们桌上有一个三关节的操作机器人从事某项重复任务,传统来说,机器人工程师处理这样一个特定任务要么设定整个应用要么使用已有的工具(已经由制造商提供)去编程设计这个应用案例。不管这个工具和任务的复杂程度,我们都会遇到:
逆运动学(InverseKinematics)时产生的每个电机(关节)的误差设定闭环的时候模型精度设计整个控制流程经常的程序式标定(Calibration)所有的这些是为了让机器人在被控制环境下产生一个确定的动作。 但是事实是:真实环境是不可控
Problemsinroboticsareoftenbestrepresentedwithhigh-dimensional,continuousstatesandactions(notethatthe10-30dimensionalcontinuousactionscommoninrobotreinforcementlearningareconsideredlarge(Powell,2012)).Inrobotics,itisoftenunrealistictoassumethatthetruestateiscompletelyobservableandnoise-free. 机器人中问题一般都表现为:高维,连续状态,连续动作(通常10-30维的连续动作空间在机器人强化学习中都认为是巨大的),在机器人学中,假设状态空间被完全观察是不现实的,同时观测量一般都带有噪声
回到J.Kober等的文章ReinforcementLearninginRobotics:ASurvey
Reinforcementlearning(RL)enablesarobottoautonomouslydiscoveranoptimalbehaviorthroughtrial-and-errorinteractionswithitsenvironment.Insteadofexplicitlydetailingthesolutiontoaproblem,inreinforcementlearningthedesignerofacontroltaskprovidesfeedbackintermsofascalarobjectivefunctionthatmeasurestheone-stepperformanceoftherobot. 强化学习会是机器人通过与环境交互地式错学习的方式自主的发现最优行为。不需要关心解决问题的具体细节,强化学习中任务的设计器将会依据目标函数提供反馈,以度量机器人每一步的表现性能。
这样说是很有道理的。举个投篮的列子:
Igetmyselfbehindthe3pointlineandgetreadyforashotAtthispoint,myconsciousnesshasnowhatsoeverinformationabouttheexactdistancetothebasket,neitherthestrengthIshouldusetousetomaketheshotsomybrainproducesanestimatebasedonthemodelthatIhave(builtuponyearsoftrialanerrorshots)Withthisestimate,Iproduceashot.Let’sassumeImisstheshot,whichInoticethroughmyeyes(sensors).Again,theinformationperceivedthroughmyeyesisnotaccuratetherebywhatIpasstomybrainisnot:“Imissedtheshotby5.45cmtotheright”butmorelike“Theshotwasslightlytoomuchtotherightandimissed”.Thisinformationupdatesthemodelinmybrainwhichreceivesanegativereward.Wecouldgetourselvesdiscussingaboutwhydidmyestimatefailed.WasitbecausethemodeliswrongregardlessofthefactthatI’vemadehundredsof3-pointersbeforewiththatexactmodel?Wasitbecauseofthewind(playingoutdoorsgenerally)?orwasitbecauseididn’teatproperlythatmorning?.Itcouldeasilybeallofthoseornone,butthefactisthatmanyofthoseaspectscan’treallybecontrolledbeme.Soiproceediterating.Withtheupdatedmodel,imakeanothershotwhichincaseitfailsdrivesmetostep2)butifImakeit,Iproceedtostep5).Makingashotmeansthatmymodeldidagoodjobsomybrainstrengthensthoselinksthatproducedapropershotbygivingthemapositivereward. Makingashotmeansthatmymodeldidagoodjobsomybrainstrengthensthoselinksthatproducedapropershotbygivingthemapositivereward.机器人强化学习简介强化学习的目标在于:找到一个状态空间SS到动作空间XX的映射,称为策略ππ,获得在给定状态ss下的动作aa,保证最大化累积期望回报rr。q强化学习找到最优策略π∗π∗,状态空间或者观察空间到动作空间的映射,达到最大化期望回报JJ:Jπ=E[R(τ|π)]=∫(R(τ)pπ(τ)dτ)Jπ=E[R(τ|π)]=∫(R(τ)pπ(τ)dτ)其中pπ(τ)pπ(τ)代表关于轨迹τ=(x0,a0,x1,a1,...)τ=(x0,a0,x1,a1,...)的分布,同时R(τ)R(τ)是关于该轨迹的累积折扣回报:R(τ)=∑t=0∞γtr(xt,at)R(τ)=∑t=0∞γtr(xt,at)qi其中γt∈[0,1)γt∈[0,1)代表折扣因子,这样的数学描述,机器人中的很多任务都可以很自然的形式化描述成强化学习(ReinforcementLearning)问题。传统的强化学习方法,典型的是去估计在某一个策略ππ下,每个状态xx和时间步tt的长期期望回报,称为值函数(ValueFunction)Vπt(x)Vtπ(x).值函数方法有时候称为*”critic-onlymethod”*.核心思想是先观测,评估所选择的控制的性能(valuefunction),然后根据获得的知识选择策略。于此相对于的*policysearchmethod*策略搜索,直接推断最优策略π∗π∗,有时候称为*actor-onlymethods*.函数逼近函数逼近是用于表示感兴趣区域的函数的一系列数学和统计技术,它在计算上或信息理论上难以精确地或完全地表示函数。正如J.Kober等人说:Typically,inreinforcementlearningthefunctionapproximationisbasedonsampledatacollectedduringinteractionwiththeenvironment.FunctionapproximationiscriticalinnearlyeveryRLproblem,andbecomesinevitableincontinuousstateones.Inlargediscretespacesitisalsooftenimpracticaltovisitorevenrepresentallstatesandactions,andfunctionapproximationinthissettingcanbeusedasameanstogeneralizetoneighboringstatesandactions.Functionapproximationcanbeemployedtorepresentpolicies,valuefunctions,andforwardmodels. 强化学习中函数逼近是基于在智能体与环境交互过程中的样本数据的。函数逼近在几乎每个强化学习问题上都很重要,并且在连续空间中显得很有必要。在巨大的离散空间中,遍历每个状态和动作是很不现实的,而函数逼近就代表着相邻状态和动作的均值,函数逼近可以用于代表策略(policy),代表值函数(valuefunction),或前向模型(forwardmodels).
机器人强化学习挑战维度灾难Bellman在1957年提出这个词*CurseofDimensionality*,他在最优控制中发现在离散高维空间中,探索状态和动作将会面临高维灾难。随着维数的增加,在cover整个状态-动作空间的时候,将会需要更多的数据和计算。b比如,我们控制一个7自由度的机械臂的时候,机器人的状态将要代表每个自由度的关节角度和速度,同时还有末端执行器*end_effector*的笛卡尔位置和速度。NumberofStates=2×(7+3)=20NumberofActions=7NumberofStates=2×(7+3)=20NumberofActions=7假设每个状态空间化分10个levels,在我们这个机器人中就有10201020种不一样的状态。现实世界样本灾难正如J.Kober等人提出的,机器人强化学习面临这就是现实世界中的问题,比如机器人设备一般比较昂贵,机器人设备的磨损(wearandtear),需要精心的维护机器人,修复机器人需要代价,物理劳动,长期的等待周期等付出。在J.Kober的论文中有现实世界样本灾难的例子。主要体现在以下几个方面:Applyingreinforcementlearninginroboticsdemandssafeexplorationwhichbecomesakeyissueofthelearningprocess,aproblemoftenneglectedinthegeneralreinforcementlearningcommunity(duetotheuseofsimulatedenvironments).Whilelearning,thedynamicsofarobotcanchangeduetomanyexternalfactorsrangingfromtemperaturetoweartherebythelearningprocessmayneverfullyconverge(i.e.howlightconditionsaffecttheperformanceofthevisionsystemand,asaresult,thetask’sperformance).Thisproblemmakescomparingalgorithmsparticularlyhard.Reinforcementlearningalgorithmsareimplementedonadigitalcomputerwherethediscretizationoftimeisunavoidabledespitethatphysicalsystemsareinherentlycontinuoustimesystems.Timediscretizationoftheactuationcangenerateundesirableartifacts(e.g.,thedistortionofdistancebetweenstates)evenforidealizedphysicalsystems,whichcannotbeavoided.模型限制和模型不确定性灾难精确模型仿真可以用于代替现实世界的交互。比如现在的机器人的仿真通常使用Gazebo,由ROS提供的gazebo,可以与很多物理引擎兼容,给机器人研究人员提供很有用的工具。 i在完美的假设情况下,这样的方法允许我们在仿真中学习行为,随后迁移到实际机器人上。不幸的是,创建一个足够精确的机器人模型和他的环境往往是具有挑战的,同时需要许多数据样本采集,由于在模型精度下小的模型误差,将是仿真机器人与实际机器人有隔离。 从仿真转移到实际机器人上通常分为两个大的场景: 1.Taskswherethesystemisself-stabilizing(thatis,wheretherobotdoesnotrequireactivecontroltoremaininasafestateorreturntoit),transferringpoliciesoftenworkswell. 2.Unstabletaskswheresmallvariationshavedrasticconsequences.Insuchscenariostransferredpoliciesoftenperformpoorly
机器人强化学习准则考虑到前面提到的机器人强化学习面临的挑战,我们可能会觉得强化学习在机器人中的应用注定失败。实际上,为了使机器人强化学习表现出好的性能,我们需要考虑一下原则:
EffectiverepresentationsApproximatemodelsPriorknowledgeorinformation 以下将依次讨论他们,更多细节可以参考J.Kober的论文Effectiverepresentations有效的表征许多强化学习成功的案例大多巧妙的利用了近似特征表示,由于基于表格的表示不具备扩展性,近似的需求在机器人中显得尤为重要: -SmartState-Actiondiscretization:Reducingthedimensionalityofstatesoractionsbysmartstate-actiondiscretizationisarepresentationalsimplificationthatmayenhancebothpolicysearchandvaluefunction-basedmethods.(巧妙的状态动作离散化) -ValueFunctionApproximation:Avaluefunction-basedapproachrequiresanaccurateandrobustbutgeneralfunctionapproximatorthatcancapturethevaluefunctionwithsufficientprecisionwhilemaintainingstabilityduringlearning(e.g.ANNs).(值函数近似) -Pre-structuredpolicies:Policysearchmethodsrequireachoiceofpolicyrepresentationthatcontrolsthecomplexityofrepresentablepoliciestoenhancelearningspeed.(预结构化策略)
Approximatemodels模型近似现实世界中经验采集可以用于从数据中学习前向模型(ÅströmandWittenmark,1989),我们渴望大大减少从实际机器人中学习,因为在仿真中,学习将会更加快速,安全。在机器人仿真强化学习中,学习通常称之为mentalrehearsal(内心演练)
mentalrehearsal的核心问题是 1.仿真偏差 2.现实世界的复杂性 3.来着仿真环境的样本数据的有效优化 这些问题通常在IterativeLearningControl、ValueFunctionMethodswithLearnedModels、LocallyLinearQuadraticRegulators得以体现和解决
SimulationbiasesGivenhowhardistoobtainaforwardmodelthatisaccurateenoughtosimulateacomplexreal-worldrobotsystem,manyrobotRLpolicieslearnedonsimulationperformpoorlyontherealrobot.Thisisknownassimulationbias.Itisanalogoustoover-fittinginsupervisedlearning–thatis,thealgorithmisdoingitsjobwellonthemodelandthetrainingdata,respectively,butdoesnotgeneralizewelltotherealsystemornoveldata.Ithasbeenprovedthatsimulationbiasescanbeaddressedbyintroducingstochasticmodelsordistributionsovermodelsevenifthesystemisveryclosetodeterministic.
Priorknowledgeorinformation先验知识先验知识可以显著的帮助学习进程,这些方法可以有效的减少搜索空间,加快学习进度
PriorKnowledgeThroughDemonstration:Providinga(partially)successfulinitialpolicyallowsareinforcementlearningmethodtofocusonpromisingregionsinthevaluefunctionorinpolicyspace.PriorKnowledgeThroughTaskStructuring:Pre-structuringacomplextasksuchthatitcanbebrokendownintoseveralmoretractableonescansignificantlyreducethecomplexityofthelearningtask.参考文献ChrisWatkins,LearningfromDelayedRewards,Cambridge,1989AwesomeReinforcementLearningrepositoryJ.Kober,J.Andrew(Drew)Bagnell,andJ.Peters,“ReinforcementLearninginRobotics:ASurvey,”InternationalJournalofRoboticsResearch,July,2013.MarcPeterDeisenroth,GerhardNeumannandJanPeters,ASurveyonPolicySearchforRobotics--------------------- 作者:yangchao_THU 来源:CSDN 原文:https://blog.csdn.net/yangchao_emigmo/article/details/53994936 版权声明:本文为博主原创文章,转载请附上博文链接!
视觉在机器人领域的应用
视觉在机器人领域的应用它们是谁无人飞行器利用无线电遥控设备和自备的程序控制装置操纵的不载人飞行器,或者由车载计算机完全地或间歇地自主地操作。他们一般分为旋翼飞行器,固定尾翼飞行器,同时还有仿生飞行器。与有人驾驶飞机相比,无人机往往更适合那些太“愚钝,肮脏或危险”的任务。无人机按应用领域,可分为军用与民用。军用方面,无人机分为侦察机和靶机。民用方面,无人机+行业应用,是无人机真正的刚需;目前在等等领域的应用航拍、农业、植保、微型自拍、快递运输、灾难救援、观察野生动物、监控传染病、测绘、新闻报道、电力巡检、救灾、影视拍摄、制造浪漫等等。移动机器人移动机器人(Robot)是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动。移动机器人除用于宇宙探测、海洋开发和原子能等领域外,在工厂自动化、建筑、采矿、排险、军事、服务、农业等方面也有广泛的应用前景。总共分为4大应用范围、工业机器人、探索机器人、服务机器人、军事机器人类人机器人类人机器人是现代的人形机器人,不仅外观像人,有人的模样,还能像人样活动,有的类人机器人,不仅能运动,甚至自己去“想”,会思考,有智慧,属于智能机器人一类。研制出外观和功能与人一样的类人机器人是现代科技发展的结果。全新组装的类人机器人全身布满了感应器,让它可以根据感应到的声音和动作做出适当反应,也让它对于光线和触觉的、反应更加灵敏。机械臂机械臂是指高精度,多输入多输出、高度非线性、强耦合的复杂系统。在工业制造、医学治疗、娱乐服务、军事、半导体制造以及太空探索等领域都能见到它的身影。尽管它们的形态各有不同,但它们都有一个共同的特点,就是能够接受指令,精确地定位到三维(或二维)空间上的某一点进行作业。它们从哪里来
此处应该是机器人发展史,省略一万字......
它们将要到哪里去
视觉在轮式移动机器人上的应用
概念:将移动机器人自动控制技术与计算机视觉算法相结合,形成了移动机器人的视觉控制技术,该技术称为移动机器人的视觉伺服。这项技术通过视觉传感器来感知外界环境,并通过对视觉信号的分析进行自主决策。
视觉伺服方法:根据误差信号和反馈控制结构的不同,常见的视觉伺服方法可以分为基于位置的视觉伺服策略(Position-basedVisualServoing,PBVS)、基于图像的视觉伺服策略(Image-basedVisualServoing,IBVS)以及混合的视觉伺服控制(HybridVisualServoing)。
移动机器人现阶段有两个主要的任务:第一个是轨迹跟踪,就是跟踪一个特定的并且实时变化的轨迹;第二个是镇定控制,即将机器人放置到初始位姿,然后利用设计的控制算法将其驱动到指定位姿处,也叫“泊车”或“刹车”。
移动机器人视觉伺服研究难点在视觉伺服系统中,摄像机的成像模型是系统整体模型的重要组成部分,而摄像机的成像模型取决于摄像机的内参数,当摄像机内参数影响到视觉伺服的控制效果。由于移动机器人是一个典型的具有非完整约束的欠驱动系统,因此其镇定控制器设计是控制理论界的经典难题之一。单目视觉深度信息未知的情况下,如何结合非完整约束系统控制方法,嵌入相应的自适应/鲁棒环节,也比较困难