使用Simulink和Simscape构建人形机器人头部的数字孪生

描述

作者: Mattia Fussi、Mattia Salvi、Michele Gesino、Ugo Pattacini 和 Marco Maggiali,意大利技术研究所 (IIT)

我们的团队隶属于意大利技术研究所 (IIT) 下设的 iCub Tech 机构,负责设计、开发和构建 iCub 开源机器人平台。目前,iCub 人形机器人广泛应用于全球 50 多个研究中心和研究所。它身高 1 米,具有 53 个自由度,其中头部有 6 个自由度,颈部有 3 个自由度,眼部有 3 个自由度。这款机器人还配备有 50 多个电机,以及力扭矩传感器和惯性测量单元。我们主要研究机电设计和低级控制固件,而我们在其他研究领域的同事负责开发更高级别的先进控制软件以支持各种应用,包括人与机器人接口和分身机器人系统。

iCub 平台十分复杂,这使得设计理念很难在硬件中真正实现之前得到验证。例如,过去,我们在 CAD 工具中完成设计,并在三维机器人仿真器(如 Gazebo)中运行高级仿真,但这需要编写自定义代码,以对复杂的动力学进行建模。我们也只有在完成了新设计,用控制固件运行了测试,并手动调节了控制器增益后,才能了解新设计的效果如何。我们面临的许多挑战都源于无法使用机器人机械设计的逼真模型进行精确的动态仿真。

为了应对这些挑战,我们的团队最近验证了一种新方法,即使用 Simulink 和 Simscape 创建 iCub 机器人头部和颈部的数字孪生。此模型使我们能够自动调节控制增益,并显著改进轨迹跟踪性能。此外,它还让我们可以精准放置质点,轻松引入真实的非线性效应,并精确仿真作动系统,而这些功能对于设计可以安全应用于机器人的可靠控制算法至关重要。

CAD 装配体的导入和模型的线性化

首先,我们使用 Simscape Multibody Link 插件将颈部装配体从 PTC Creo CAD 软件导出到 Simscape Multibody(图 2)。该插件让我们可以很轻松地从 CAD 中导出模型。导出模型时会生成一组几何形状文件(每个刚性部件对应一个文件),以及一个唯一的 XML 文件(包含有关如何装配每个部件的信息)。此 XML 文件由 smimport 函数解析,该函数会自动创建一个定义所有模型参数的数据结构体,以及一个将此数据结构体加载到其模型工作区中的 Simscape Multibody 模块图。以这个导入的基线装配体作为起点,我们用 Simscape Multibody 创建了机器人颈部的电缆差动系统的精确模型,并用 Simscape Driveline 创建了其传动系统模型(图 3)。

传感器

图 2. iCub 颈部机制模型,左图渲染自 CAD 软件,右图渲染自 Simscape。

传感器

图 3. 电缆差动系统模型(左)和外部传动系统模型(右)。

接下来,我们使用 Simulink Control Design 中的模型线性化器,以交互方式对头部垂直放置的 Simscape 模型进行了线性化。在线性化后,该模型包含 38 个状态。我们随后使用 Control System Toolbox 中的模型降阶器将其减至 18 个状态。

虽然我们能为此模型创建一个稳定的控制器,但我们觉得它仍过于复杂。线性化过程中产生了带有许多状态的大型矩阵。这未能很好地反映实际设计。部分原因在于我们构建 CAD 模型的方式。该模型中的某些刚性元素并未显式定义为此类元素,这使得导出表示具有额外的自由度。为了纠正这一错误,我们在 PTC Creo 中更新了装配体,从而在降低了复杂度的同时,保持系统的主要动力学特性不变。然后,我们将更新的模型重新导入 Simscape,并再次运行线性化过程。我们最终得到了一个更小型、更简单也更易于追溯的模型,便于我们理解频率响应和传递函数。例如,我们使用 Robust Control Toolbox 分别为俯仰和滚动关节创建了不确定的线性化状态空间模型。这些模型包含不确定的参数(我们为这些参数定义了各种可能的值),使我们能够识别一组分离的传递函数(图 4)。对于每个关节,我们都在下面三个不同的工况点处运行了线性化过程:头部处于垂直状态、头部完全倾斜至最小角度,以及头部完全倾斜至最大角度。

传感器

图 4. 具有不确定参数的系统的频率响应,这些参数表示分离的俯仰角。

提高控制器的跟踪性能

有了更精确的 iCub 头颈模型,我们就可以开始调节俯仰和滚动离散比例-积分-微分 (PID) 控制器的增益了。我们为调节过程定义了软目标和硬目标,并使用 Control System Toolbox 中的 systune 函数来调节控制器增益。

此前,我们已经凭经验基于对实际头颈装配体的多次试验确定了一组增益值。Simulink 中的调节过程表明,我们需要显著提高这些根据经验确定的值的增益。特别是,我们需要将积分增益提高近 30 倍,因为这对于补偿作用于头部的重力至关重要(表 1)。

传感器

表 1. PID 增益的原始值和调节后的值。

我们在 Simulink 中使用 Simscape 被控对象模型测试了基本控制器模型的新增益。在这些测试中,我们让头部移过 minimum-jerk 多项式轨迹上的一系列路径点,该轨迹是我们用 Robotics System Toolbox 生成的(图 5)。

图 5. 在 Simscape 中仿真的俯仰和滚动角动力学动画,同时显示跟踪 minimum-jerk 轨迹。

仿真结果表明,轨迹跟踪性能有了显著提高。例如,对于俯仰跟踪,均方根误差 (RMSE) 减少了 80% 以上,而对于滚动跟踪,均方根误差则减少了 75% 以上。然后,我们在 iCub 机器人上测试了新的增益值,结果证实了我们在仿真中观测到的跟踪误差和仿真时间有了显著改进(表 2)。

传感器

表 2. 俯仰和滚动跟踪的仿真与测量 RMSE 以及默认增益值与调节后的增益值。

验证我们的模型和方法

通过简单的目测就能清楚地看出,我们的 Simscape 模型能够准确表示真实机器人的运动(图 6)。

图 6. 颈部装配体的真实移动和仿真移动。

然而,为了进一步验证该模型,我们对仿真和测量的俯仰角和滚动角进行了直接比较。我们发现,仿真结果和真实测试结果之间几乎没有差别(图 7)。

传感器

图 7. 仿真测试(蓝色)与真实机器人测试(红色)期间俯仰角和滚动角随时间变化的图。

在物理硬件上测试之前,我们可以采用仿真流程。通过该流程,我们成功地提高了控制器性能,这也验证了我们的整体方法。我们相信,这种方法可应用于其他 iCub 肢体和组件,从而帮助构建机器人的完整数字孪生。我们已将这种方法运用到了另一个关于 ergoCub 机器人的项目,旨在确保物理机器人可供测试之前,控制器的所有性能要求都得到了满足。

展望未来,我们计划在模型中添加复杂的非线性效应,如皮带松弛、皮带轮压扁和摩擦等,并继续在生产之前尽早仿真新硬件功能的动态特性。凭借精确建模和仿真物理现象的功能,我们还可以在将来开始对我们的机器人平台执行预测性维护。

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分