type
status
date
slug
summary
tags
category
icon
password
Whole-Body Control(WBC)翻译过来可以叫全身控制或者整体控制,可以把WBC理解为多任务控制。在早期,WBC是指利用了机器人所有自由度进行运动规划控制,而到了最近10多年,WBC特指至少利用了逆动力学(包含equation of motion),并且用到了机器人所有关节自由度的控制。任务在WBC中代表着运动和力,而任务之间存在着潜在的优先级关系。
优先级可以从直观经验角度理解。以人开门为例,开门和保持身体直立可以看做是两个任务,在人完成直立开门这个行为时,如果门太重,我们会通过倾斜身体来增大开门的力,人的意识潜在的认为开门的优先级比身体直立优先级更高,所以为了保证开门任务的完成,我们需要适当牺牲身体直立这个任务。我们把这个例子推广,一个机器人在同时执行多个任务的时候,应该对任务进行合理的优先级分配,来应对多个任务无法同时执行的情况。
WBC可以分为基于速度(velocity based)基于力矩(torque based) 的方法,基于速度的WBC方法输出关节速度,基于力矩的WBC方法输出关节力矩,这两种方法的区别在于任务的反馈控制策略和计算反馈控制律的位置。这两种方法的求解可以分成两种形式,分别是封闭形式方法(Closed-form methods)和基于优化的方法(Optimizaiton Methods),封闭形式方法系统的输出(速度/扭矩)是在一系列代数运算之后导出的,例如投影、反演、伪反演。基于优化的方法将问题定义为优化问题,并且通过求解进行求解。代数WBC可以表示为优化问题,但让它们保持封闭形式以便通过代数操作来计算往往比优化更快。由于基于优化的计算方法在足式机器人中应用更多,虽然求解时间更长,但是可以包含等式约束和不等式约束,而且封闭形式方法也可以表示为优化方法,此处仅对基于优化的WBC进行介绍,封闭式方法参见这个论文
在优化中,基于速度和力矩的全身控制器都被表示为级联优化问题,并以类似的方式处理。给定一组具有递减优先级i的k个速度任务和/或约束,并定义,优化问题可以用线性等式或线性不等式(或两者都用)来描述:
其中表示期望坐标系中的任务和约束,其中也可以是速度水平反馈控制器,旨在将任务坐标稳定到平衡点。
上述一组任务和约束可以使用优化问题来解决:
其中是松弛变量的向量,用于计算求解不等式约束,即
对应于对前一个优化问题的解集。请注意,如果我们考虑任务和约束可以被指定为一组超定或欠定的方程组,那么解就不是唯一的。为了解决优先任务和约束优化问题,从开始递归求解方程(14)。为了求解方程(14)的集合的最优解,必须选择期望的范数,例如
总体而言,用于执行该具有优先级的优化过程的算法是:
notion image
在基于扭矩的WBC的情况下,需要考虑关节加速度、关节扭矩和接触力。这允许在以下任何级别定义任务:
每个优先级的优化问题设置类似于基于速度的WBC的情况,是雅可比的转置,是在任务空间Fi中表示的力任务,其中。注意,在这种情况下,必须添加一个约束,以保证系统的全身动力学得到尊重(见等式(17))。
其中分别是机器人的惯性矩阵、科里奥利项和重力矢量。是施加到机器人的外部力,是施加力点的雅可比矩阵。是一个选择矩阵,其中是单位矩阵,是机器人活动关节的数量,是浮动机身的关节数量。是关节力矩的矢量。

WBC求解软件
  1. Drake
Drake(中古英语中的“龙”)是由麻省理工学院计算机科学与人工智能实验室(CSAIL)的机器人运动小组维护的工具箱。它是一个工具的集合,用于分析我们的机器人的动力学,并在MATLAB和C++中为它们构建控制系统,重点是基于优化的设计/分析。Drake旨在模拟机器人非常复杂的动力学(例如,包括摩擦、接触、空气动力学等。),但总是强调揭示控制方程中的结构(稀疏性、分析梯度、多项式结构、不确定性量化等)。)并使这些信息可用于高级规划、控制和分析算法。Drake提供高级语言(MATLAB、Python等)的接口。)来实现新算法的快速原型,并且还旨在为许多最先进的算法提供可靠的开源实现。
  1. ControlIt!
ControlIt!是一个中间件,用于实例化人形机器人的全身操作空间控制器,由奥斯汀德克萨斯大学以人为中心的机器人实验室开发。它为应用程序提供任务、约束和基于模型的传感器抽象,连接到机器人硬件的接口,以及将内部参数绑定到外部源的机制。ControlIt!在LGPLv2.1许可下开源可用。控制它!用于控制例如Meka Robotics制造的上半身人形机器人Dreamer和NASA人形机器人Valkyrie的上半身。
  1. IHMC Whole Body Controller
IHMC全身控制器是IHCM开源计划的关键组成部分,它使用二次规划求解器为行走和操纵提供控制算法。它在波士顿动力公司的人形机器人阿特拉斯和美国宇航局的人形机器人瓦尔基里上成功实现。
CLion ROS开发配置机器人仿真软件和计算引擎介绍和对比