Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

System Identification

  • 又称: SysID, Sys ID, model identification, parameter identification
  • 类别: Learning & autonomy › RL & simulation
  • 标签: dynamics, modeling, sim-to-real, parameter-estimation, control, simulation

根据测得的输入和输出数据,为机器人或其他动态系统建立数学模型的过程,使其预测的行为与真实硬件相符。

定义

系统辨识(System identification)是根据实验数据估计动态系统模型的方法。工程师施加已知的输入(电机指令、力矩、电压),记录由此产生的输出(关节位置、速度、力),并拟合模型的参数,使其预测与测量结果相符。这一领域有自己的教材传统,Lennart Ljung 的 System Identification: Theory for the User 是一本标准参考书。

各种方法常按其假设了多少物理知识来区分。白箱或灰箱辨识从已知的方程(例如刚体动力学)出发,估计未知常数:连杆质量、质心、惯量、摩擦系数、电机常数和齿轮效率。黑箱辨识拟合一个通用模型,例如传递函数或神经网络,几乎不带先验结构。对于串联机械臂,刚体动力学对惯性参数是线性的,因此一旦根据测得的关节轨迹构建出回归矩阵,就可以用最小二乘法估计这些参数。

数据质量决定结果。输入必须是持续激励的,也就是说它要让系统运动得足够充分,以揭示每一个待估计的参数;只做慢速运动的机器人无法揭示其惯量,而从不反向运动的机器人则会掩盖其摩擦。因此,团队会设计激励轨迹,对含噪声的速度和加速度估计进行滤波,并在未用于拟合的数据上验证模型。

在机器人学习中,系统辨识用于标定仿真器,使在仿真中训练的策略在真实硬件上遇到更接近的情况。它与域随机化并用,后者覆盖辨识无法确定的部分;也与学习得到的残差模型并用,后者捕捉所选模型结构遗漏的效应。一些学习型控制器会在线执行某种形式的辨识,适应它们在运行中观察到的动力学。

为何重要

每个基于模型的控制器、仿真器和规划器,都只能和它背后的模型一样好。系统辨识是团队把 CAD 模型和数据手册变成能预测真实机器人的模型的方法,它直接影响跟踪精度、安全裕度,以及仿真训练向硬件迁移的效果。

主要应用

  • 在仿真到现实迁移之前,标定物理仿真器以匹配真实机器人
  • 为前馈控制和计算力矩控制估计惯性参数和摩擦参数
  • 为执行器建模,包括电机常数、延迟和力矩限制
  • 辨识负载的质量和惯量,使机械臂能够补偿所抓取的物体
  • 为参数难以从第一性原理计算的软体或柔顺系统建立模型

实际应用

启用一台新机械臂的团队,通常从 URDF 和 CAD 中的惯量出发,然后在每个关节或整条机械臂上运行激励轨迹,同时记录关节位置、电流和指令力矩。他们用最小二乘法估计摩擦(通常是库仑项加黏性项)、电机力矩常数和基本惯性参数,用一条留出的轨迹检验拟合得到的模型,并把辨识出的数值同时载入控制器的前馈项和仿真器。在仿真中训练策略时,同样的辨识值确定域随机化范围的中心,而延迟或力矩饱和等执行器效应则单独测量并显式建模。

常见误解

  • 系统辨识能得到精确的模型 — 它是在所选的模型结构和数据范围内找到最佳拟合;未建模的效应仍然存在
  • 任何记录下来的运动都是足够好的数据 — 输入必须激励每一个待估计的参数,否则有些参数根本无法观测
  • 系统辨识和域随机化是相互竞争的方法 — 它们是互补的,辨识缩小范围,随机化再覆盖这些范围

谁需要了解

  • 设计基于模型的控制器的控制工程师
  • 研究仿真到现实迁移的机器人学习研究人员
  • 为实体机器人构建数字孪生的仿真工程师
  • 对新执行器进行特性表征的硬件工程师

相关技术

  • 域随机化(Domain Randomization)
  • 仿真到现实迁移(Sim-to-Real Transfer)
  • 最小二乘估计(Least Squares Estimation)
  • 卡尔曼滤波器(Kalman Filter)
  • 自适应控制(Adaptive Control)
  • 数字孪生(Digital Twin)

相关术语

  • Sim2Real
  • Domain Randomization
  • Digital Twin
  • Differentiable Simulation

相关项目

  • GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
  • LeRobot: HuggingFace ML library for real-world robotics in PyTorch
  • PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
  • RLinf: Scalable infrastructure for post-training foundation models via RL
  • Webots: Cross-platform robot simulator with built-in models, sensors, and development environment
  • NVIDIA Isaac Sim: NVIDIA Omniverse app for AI-driven robot simulation and testing

视频

  • System Identification Methods: Brian Douglas
  • What Is System Identification? | System Identification, Part 1: MATLAB

维基百科

  • 系統識別

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。