现代控制理论(机器人方向)习题与实践补充资料和复习说明(2019版)
机器人/控制/学习/人工智能(OpenAI)现代控制理论正确打开方式是怎样的?
课程已经接近尾声(2学分-32学时),现代控制系统理论内容分为:
其中,部分内容为自主学习部分,如最优控制和卡尔曼滤波(状态估计)。
现代控制系统实践内容分为:
其中,Matlab为必修并设置考核,Python和ROS为扩展讲解;
补充OpenAI、Python Control Systems Library和Modern Robotics。
课程实践内容以倒立摆为核心,进行讲解。
理论:
系统的矩阵描述,{A, B, C, D}所代表的具体含义,A系统自身,B输入(控制),C输出(感知),D直接;
状态轨迹(解),如下图,在输入-左右轮运动-系统模型-输出-轨迹曲线;
运动轨迹?
地面机器人和空中机器人, {A, B, C, D}特性,控制的维度,感知的维度,系统的维度与矩阵线性不相关等的关联性。
思考并理解:维度、空间、相关性、秩与系统能控性{A, B}和能观性{C, A},能量平衡与稳定性(李雅普诺夫)。
已知控制输入u,求解系统状态x,为正解;预期系统状态x,反求系统控制输入u,为逆解(系统状态x的传感器感知输出为y)。
不稳定-稳定-控制-行为-任务-规划,对自动驾驶汽车进行分析,理解其状态方程及其解,能控能观稳定性。
巧妙性与严谨性:李雅普诺夫稳定性的充分不必要?系统状态的平方近似理解为系统的能量,是假设还是事实?
能量大于零,并且不断衰减与稳定性之间的联系?局限性在哪里?
动能:。
零点、极点与能控性能观性稳定性之间的联系?
何为极点配置?
自动车的稳定?
如果没有支点,自行车能否保持直立放置并稳定?这个支点的作用?自行车状态的平衡如何实现?
上图为静止状态,思考骑车时候是否需要支点?(能量的平衡<---->状态的稳定)
动态稳定性和静态稳定性如何分析?系统可控性与系统自由度的冲突在哪里?什么样的极点配置最佳?
公式需要理解,不要死记硬背,切记,切记,切记!!!
如果上述都能掌握,可以进一步思考:
系统的状态、时间、空间、自由、稳定、控制、观测、反馈、估计、解耦、调节、优化等属性,是如何有机统一。
实践:
新贵Python、永恒C/C++和不朽Matlab,都是必须掌握的。
倒立摆和平衡车的梗讲了太多遍了,已经厌倦了,倒立摆对于控制而言非常重要并且十分经典。
先来一段火箭发射和回收的示例吧:
发射 回收很酷炫,有木有。
Matlab:
倒立摆演示
ROS:
Gazebo 倒立摆小车演示
以上这些控制,依据规律设计控制律,不能自我学习并改进。
OpenAI:
仿真 数值OpenAI + Gazebo + ROS
import gym
env = gym.make('CartPole-v0')
for i_episode in range(20):
observation = env.reset()
for t in range(100):
env.render()
print(observation)
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
if done:
print("Episode finished after {} timesteps".format(t+1))
break
env.close()
怎么突然画风变了呢???OpenAI是什么???
人工智能再度碾压人类!《DOTA2》世界冠军OG战队0比2不敌OpenAI-http://news.17173.com/content/04142019/141909581.shtml-
关键一击
阻塞走位
如上为单一英雄控制(可看做单输入单输出系统),课堂会补充现代控制理论之多输入多输出;
同时多英雄之间如何协作协同?团队合作?并联、串联和反馈系统;
了解智能控制与现代控制的差异。
分类详情参考链接:http://gym.openai.com/
规则控制--->深度学习智能控制
现代控制理论课程专栏:https://zhangrelay.blog.csdn.net/article/category/6161998
本教程为第三方个人分享,不严谨,不客观,如有问题欢迎留言指正交流。
更多内容,课堂详细讲解,敬请期待。
现代控制理论与人工智能的联系与区别?(待整理完善,此处为草稿)
控制理论本质上是应用于微分方程的理论。在控制理论中,通过一个微分方程系统(通常)描述像机器人或飞机这样的物理系统,并且能够将某些项添加到将改变其行为的微分方程中。从物理上讲,这些术语将描述作为工程师可以插入到感兴趣的系统中的输入; 这些通常是在诸如机器人的刚性车身控制系统的情况下的力和扭矩,或者在化学控制系统的情况下添加不同化学试剂的量和速率。任务是设计这些,使微分方程作为一个整体表现出想要的方式(机器人沿着正确的轨迹移动;飞机不坠落; 化学反应不会加速失控和爆炸)。受到执行器功能的限制以及系统状态的不确定性(例如,不知道机器人的确切位置)以及描述系统的物理参数(例如,不知道如何机器人的关节中存在很大的摩擦力。
在大多数情况下,控制理论被视为应用数学的一个分支,并且具有非常严格的基础理论(将其与AI区分开来!)可以(并且通常会)使用数学工具来设计控制算法,并且可以也(并且通常会)严格证明设计将按预期执行。
对于线性微分方程,该理论既完整又具有建设性,这意味着它可以应用于几乎任何一组线性微分方程,并且可以放心,提出的设计将与知识的局限性一样好。并且执行器允许,可以以相当直接的方式执行此操作。
许多物理系统近似是线性的,或者当它们保持接近期望的操作点时可以被视为近似线性的(例如,只要飞机直线和水平飞行,描述飞机的微分方程接近线性)。但是很少有真正的物理系统是线性的,如果不能将它们近似为线性,必须使用非线性技术。非线性微分方程的理论远不那么完整,通常也没有建设性,因此在确定如何使用可用的数学工具来提出可以解决非线性控制问题的控制算法方面有很多艺术。
相比之下,AI经常处理微分方程没有很好描述的系统,而试图摆脱AI系统的行为类型不一定特别具有数学性质。控制理论并不特别适合机器视觉或认知推理。AI技术并不特别适合于机器人手臂或步行机器人算法的低级运动控制。基本上,如果可以使用微分方程来描述的系统,并且您可以将系统的输出表征为与所需输出的数值偏差(例如,机器人手臂离您想要的距离多远),可能应该是使用控制理论,因为这些技术工作得很好,为提供性能保证,并且通常不是计算密集型的。
根据经验,AI从业者有时会忽视控制工程师的思维极其狭隘,因为坚持使用数学上严格的设计技术。控制工程师有时会把AI从业者视为非常草率,因为他们很少关注这种严谨性。恕我直言,这两个特征都有一个真实的核心,但由于每个领域所面临的问题的性质非常不同,两者都是不公平的。
控制理论基本上是关于获得系统稳定性。虽然人工智能基本上是关于决策的。因此,在控制理论中,该主题涵盖了微分方程,状态空间(数学模型)和一些数学方法方法,以识别动态系统特性(通常关于力和扭矩)。应该采用数学方法来获得其稳定性条件或者可能只是渐近稳定。然后,将其传递给系统控制器。大多数真实系统都是非线性的,许多研究人员在一些假设或方法下努力使其在适当的条件下线性化。然而,并非所有非线性系统都可以容易地线性化,或者在某些情况下其动态参数可能不太可能不确定。
因此,许多研究人员试图通过AI解决方案来处理这种系统复杂性。虽然人工智能以前曾被用作高层控制系统的解决方案,例如机器人技术的引导和导航,它通过这种决策算法为控制系统提供智能/独立运动的命令,但他们认为AI可以与经典相结合控制方法,以获得一个强大而灵活的控制系统。为什么?因为大多数AI方法(例如机器学习,神经网络,模糊逻辑)不需要基于动态模型的经典控制需求。因此,他们可以通过这种AI方法体现“更容易”的解决方案。
总而言之,或许我们可以说,在某些情况下,控制理论和人工智能正在分离,在某些情况下,人们会选择将其组合起来,为复杂的系统构建一个强大而灵活的控制器。例如,这是一个实验室,其目标是结合这两个主题,以获得最佳的控制系统解决方案
AI在其范围内更为通用。这是因为它试图通过在非人类设备上复制它来自动化决策过程。控制理论是关于选择使系统稳定或渐近稳定的正确控制。鉴于必须“选择”正确的控制,它可以被视为AI问题。这是在斯坦福大学的自动直升机试验台上完成的,但是在将所有东西交给某些人工智能技术之前,通过使用控制科学家的技术可以使其变得更容易。注意AI选择数字,而控制科学家经常选择函数,所以不会说控制问题只是AI问题的一个子集。
可以认为控制理论是动力系统数学分析的严格领域,并且控制系统中AI的最佳用途是学习建模过程中包含的各种未知参数。也就是说,AI不会以封闭形式设计控制法,并证明它很快就可以运行。不过,它已经被用来很好地控制某些系统。
控制理论是一种寻找具有可证明属性的控制器的正式方法。对于复杂的系统,这通常需要对系统的行为方式进行非常强烈的假设。例如,扩展卡尔曼滤波器需要系统方程的线性化,这可能与工厂的实际情况不对应。优点是控制器可以使用相对简单的方程或甚至非常简单的电路(例如OpAmps)来实现,例如用于实现PID控制器。随着计算能力的增加,这些优点变得越来越过时,这允许实现数值“AI”方法,例如粒子滤波器(与卡尔曼滤波器相反)或强化学习(与系统识别和自适应控制相反)。
对于Sebastian Thrun和Peter Norvig的AI课程,我在一个办公时间内问了这个问题[1]。他们回答说,一般的区别在于控制理论倾向于坚持连续的空间,而人工智能通常更多地处理离散空间。另一个主要区别是控制理论家更关注他们工作背后的数学理论。例如,与那些使用AI的人相比,他们会更关心稳定性和最优性等问题。
智能控制必须来自人工智能的运用,以及来自传感器的数据的推理,以便它可以决定订购执行器的动作。推理(以及其他)具有非常有趣的特点:它可以检测出矛盾。如果传感器数据与另一个传感器数据相反或与另一个传感器推理相反,它将报告:其中一个传感器已关闭或者给予AI的知识是错误的。
控制理论和某些概率AI方法是相互关联的。控制理论通常对基础系统(线性动力系统)的行为做出许多假设,而AI方法则没有。考虑例如卡尔曼滤波器(控制理论)和粒子滤波器(AI)。两者都希望估计基础系统的状态。
如需进一步阅读,请参阅:
http://en.wikipedia.org/wiki/Kal ...
http://en.wikipedia.org/wiki/Par ...
控制理论和人工智能领域之间存在着巨大的重叠。更高级别的控制算法通常看起来很像,并且大量借用AI领域。这个多学科交叉点实际上有一个名字; 它被称为智能控制。(随意阅读维基百科的文章,开始了解已有的内容。)
请注意,经典控制理论不能像现代控制理论那样容易地采用基于AI的方法。经典控制理论与线性系统集相关,我们希望通过智能控制检查的绝大多数现实世界系统都是非线性的。现代控制理论以其状态空间表示及其以紧凑的,基于矢量的方式封装非线性关系的能力,更有利于应用AI和机器学习中使用的技术。
截至目前,大多数机器人的控制系统仍然具有分层结构。在较低的层次上,控制理论主宰并照顾机器人的运动学和动力学。控制器由更高级别的规划人员提供,并尽可能快速准确地遵循计划。人工智能可以在更高层次上做更好的工作,做出决策,制定计划。正如你所说,两者都非常重要。
我假设你的问题更多的是关于哪个领域更适合研究生院。这真的取决于你的个人兴趣。只是谈论机器人,很多人都能理解对多种机器人的控制。例子可以是常见的UAV,UGV。当然,这些机器人的潜在控制仍然存在问题,但更多的兴趣被放在更高层次的规划和决策上。例如,现有的控制器已经能够控制四旋翼飞行器以令人满意的水平跟随敏捷轨迹。但是,自主地进行良好的规划仍然非常具有挑战性,只有部分了解环境并且潜在的环境才有可避免的动态障碍。(很多关于四旋翼飞行器的很酷视频在现实世界中都不实用。Vicon系统可以大大简化四旋翼飞行器的控制和规划。你很难从一个未知的世界获得这样的信息。在这种情况下,我们会对人工智能进行更多的研究,以找出如何制定一个好的规划师,如何整合机器人本身和世界等的不确定性。
另一方面,您仍然可以找到许多更多关于控制的机器人问题,例如,如果环境真的有风,如何稳定四旋翼飞行器,如何建模和控制软机器人(就像Selim Ozel在他们的实验室)。还有一些其他问题需要将传统PID控制与最佳控制方法相结合。对于Atlat人形机器人,它使用PID控制进行关节,许多团队使用基于优化的算法来生成全身运动,使机器人保持平衡并使其能够执行操作任务。
也许将来的某一天,两种方法之间不会有明显的界限。我想,两者都会前进并逐渐相互融合。目前我个人的感觉是人工智能方法在“机器人领域”更加活跃,从这个角度出版了更多的论文。但这只是我个人的观察,可能不是100%准确。看看ICRA和IROS等顶级机器人大会的论文。
如果您更喜欢AI相关方法,可能您会去CS部门,否则您可能会去ECE或ME。评估您的个人兴趣和背景知识,然后做出决定。实际上,在你进入研究生院后,你可能会发现来自不同部门的教授可能会遇到同样的问题,这在机器人学等学科中尤为常见。
被视为“AI对象”的几个系统用作控制器。一个明显的例子是人工神经网络(ANN):https://web.stanford.edu/class/e ...概述了可追溯到25年前的事情(从1990年开始); 在Matlab中实现的页面是神经网络控制系统。一个被广泛引用的文章是HTTP://ieeecss.org/CSM/library/1 ...。
控制器可以被认为是发射模拟控制信号的分类器(通常,ANN的输出被成形为在0和1之间变化,因此具有概率的含义)。因此,通常可以使用分类器实现控制器 - 回想一下ANN是分类器。
另一种流行的分类器是支持向量机(SVM),实际上它也用作控制器。引用的一个例子是http:// ftp://ftp.esat.kuleuven.be/sista/ida/reports/98-86.pdf。你会发现更多的搜索网络。
Fin