我经常看到机器人公司的职位分为计划和控制工程师。

但是运动计划和控制似乎有很多重叠。

我在运动计划中了解到规划者产生轨迹。但是,要确保轨迹可行,计划人员还必须考虑系统动力学的信息,并且还可以输出控制。次与控件。实际上,在拥有模型或模拟器的任何控制范式中,您都可以根据控制输入和初始条件生成状态轨迹。

因此,我有4个问题:


运动计划与控件有什么不同?
对于机器人团队来说,计划团队要解决什么问题?一旦解决,他们将向控制模块提供什么信息?
在机器人团队中,控制团队要解决的问题是什么?他们如何使用计划模块中的信息?
计划团队中的人员有什么样的经验/课程?我的大学里有很多控制班,但我从未见过关于规划的任何课程。我本学期参加了机器人课程,它没有涵盖深入的计划,其他机器人课程的大纲也没有涉及到超过一次演讲的计划。

请注意,我在这里假设该计划团队进行运动计划而不是路径计划。如果他们从事路径规划工作,那么我会理解2和3。

#1 楼

在软件工程中有一句话说,您的公司结构反映在您的软件体系结构中(我不记得确切的说法)。机器人控制软件堆栈也是如此。


控制是闭环的,计划(运动,轨迹或任何其他计划)不是(开环)。在闭环解决方案中(我假设在所有情况下都可能是大多数情况),将根据设定值信号和测量信号生成误差信号。控制器尝试最小化此错误。在计划问题中,计划者可以接收输入(例如,当前位置),但是输出是如何到达下一个点的“计划”(问题不在于如何最小化到下一个点的距离,而是如何建立一个可以平滑连接点的多项式)。这是开环的,因为计划器的输出与其输入没有直接关系。它不想最小化误差,所有控制器(同样假设所有控制器,可能会有例外)都试图将误差信号最小化,该误差信号是设定值和当前测量值之间的差异。您绝对可以构建一个闭环控制器,该控制器可以最大程度地减少到下一个点的距离,从而隐式地生成轨迹,但是轨迹规划器的目标是通过规划控制器无法遵守的几何约束(或仅通过更复杂的方法)然后接近计划者/控制器)。为了得到一个非常简单的总结,轨迹规划器在考虑几何(和运动学)约束的同时在路点之间进行插值,而控制器遵循一系列插值点(而不是遥远的路点)给出的轨迹。
在工业机器人(操纵器)的应用程序中,定义了运动的航路点并指定了运动的类型。例如从当前姿势到姿势(x,y,z,a,b,c)的线性运动。而且,通常运动是由其他运动命令来流动的。线性运动,圆周运动,线性运动,样条运动,每个都有各自的航点(可选的目标速度和加速度)。轨迹规划采用这些运动类型和航路点,并定义(希望)平滑的样条曲线(如果需要/允许,包括圆形边缘),并添加速度和加速度分量。基本上从基于矢量的路径描述(航点,目标速度和加速度),您将获得时间相关(平滑)的曲线,该曲线符合机器人的动态极限。运动计划有时被用作轨迹计划的代名词,有时它包括路径计划和轨迹计划。路径规划将找到那些航路点,我假设这些航路点在应用程序中已给出。规划者可能会从控制团队那里获取机器人的动态极限作为参数(但通常会有一个规范,两个团队都以此为依据)
控制团队主要关注按顺序设计,实现和调整控制回路以获得最佳的硬件性能。他们需要准备好获取任何轨迹并执行它(或以错误停止)。在控制模块完成后,机器人组的动态极限(但是,有一个目标动态性能的设计规范,控制团队正在努力完成)。控制软件模块从轨迹规划器获取曲线。
CNC控制器类似于机器人控制器,对CNC控制器的深入了解可以很好地了解机器人控制器。否则,SE无法评论您的大学开设了哪些课程以及他们的技术深度。也许看一下轨迹规划主题,路径生成,机器人控制系统,运动控制。否则,微分方程,微分几何,曲线(多项式,akima,b样条,贝塞尔曲线,直线,圆,多段线),插值,数值优化,运动物理,运动学,高阶运动学,微分运动学都是其中的一些。轨迹规划所需的主题。此外,软件工程(大多数与C / C ++相关)主题对于实现非常重要。想到这本书《数值食谱》,其中一章涉及插值,一章涉及常微分方程。


评论


$ \ begingroup $
“控制不是闭环的,计划(运动,轨迹或任何其他计划)不是(开环的)”例如自动驾驶汽车中的计划者是否不会根据新的传感器测量结果频繁地重新计划?您能否再多解释一下规划是如何开环的?
$ \ endgroup $
–润滑Sl
19/12/17在5:04

$ \ begingroup $
我编辑了答案
$ \ endgroup $
– 50k4
19/12/17在10:04

$ \ begingroup $
我看到您将闭环定义为使用参考信号和设备输出信号之间的误差。我只是用它来表示任何时候信息从输出信号流回去,但这也许不太正确。感谢您的澄清
$ \ endgroup $
–润滑Sl
19年12月30日在19:01

#2 楼

我可以和太空机器人,军用机器人以及一些商用机器人对话,但是还没有真正的“典型”机器人。
运动计划与控制有何不同?
醉酒的人可以规划一条路径或一系列动作,但不能很好地遵循它。醉酒的人有运动和路径计划,但控制不佳(特别是反应时间差,这会导致很难控制的延时系统)。 Google地图为您提供了一个计划,但您的大脑决定了运动(改变车道!),而您的手掌则提供了控制。 ),流动站驾驶员通常会确定运动(沿着该曲线行驶),但流动站驾驶员通常会确定控制(车轮速度)。有时流动站驱动器甚至可以决定车轮的速度/转弯。
对于机器人团队,规划团队要解决的问题是什么?一旦解决,他们将向控制模块提供什么信息?
规划团队通常会确定首先要采取的措施(例如,现在我应该修剪草坪),然后确定动作(修剪草坪应意味着打开割草机,然后输出一系列的航路点,如果以直线导航到这些航路点,将覆盖所有未割的草。)然后,输出到一个控制模块的是航路点之间的直线,该模块的输出是车轮速度。 br />在机器人团队中,控制团队要解决的问题是什么?他们如何使用计划模块中的信息?
通常看起来像这样:
1:目标(割草)-> 2.操作(打开刀片,驶过所有草地)-> 3。离散路径(覆盖草丛的多个路点)-> 4.连续路径(机器人实际可以遵循的弯曲路径)-> 5.遵循该路径的车轮速度。请注意,有时在阶段3会引入静态障碍物,而在阶段4-5会考虑移动障碍物。这只是我的经验。
请注意,经常根据机器人的位置重新计算4和5,如果有的话,很少重新计算3,有时甚至从不重新计算1或2(它们可能是硬编码的)。 3-4有时称为运动计划,而5有时称为控件。最好为每个用例画出一条流水线,并尽快具体化。
规划团队的人员有什么样的经验/课程?
通常,他们可能听说过RRT,MPC ,PID回路,LQR,可见性图/路线图方法,速度障碍,人工势场等。如果您想在上述第1/2阶段工作,则应了解有关传统AI和活动计划的更多信息,这可以更好地描述为计划和安排。决策树,博弈树,经典依存图和作业车间类型问题,甚至车辆路径文献也适用于此。