学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#studentsuccess金宝app

机器人操作,第2部分:动力学和控制

在这篇博文中,塞巴斯蒂安·卡斯特罗将用MATLAB和Simulink讨论机器人操作。这个金宝app上一部分讨论运动学(如果您尚未阅读,我们建议您阅读),而本部分讨论动力学

– –

介绍

为了激发低层次机器人机械手控制的重要性,我想介绍几个工程原型。

  • 机器人的程序员通常从具有可控关节或末端执行器位置的机器人开始。如果你是一个机器人程序员,你可能正在执行运动规划算法,并将机械手与其他软件组件集成,如感知和决策。
  • 机器人设计师有一个机器人程序员的目标。如果你是一个机器人设计师,你需要提供一个能够安全可靠地接受关节或末端执行器命令的机械手。您可能会应用本文中讨论的一些控制设计技术,并在嵌入式系统上实现这些控制器。

当然,在现实生活中,没有什么是如此严格地分开的。机器人制造商可能会提供自己的控制器,但也可能决定公开控制参数、选项,甚至可能是与致动器扭矩的直接接口。

从运动学到动力学

回顾上一部分,运动学将机器人操纵器的关节位置映射到感兴趣的坐标系(通常是末端效应器)的位置和方向。另一方面,动力学将所需的关节力和扭矩映射到它们的位置、速度和加速度。

要从运动学转到动力学,我们需要更多关于机械手力学的信息。具体来说,我们需要以下惯性特性:

  • 大量:牛顿第二定律将质量与力和线加速度相关联。
  • 惯性:这是一个3×3矩阵,通常称为惯性张量,与扭矩和角加速度相关。由于该矩阵为斜对称,可定义为6个参数:
    • 3对角线元素,或的转动惯量,它将绕轴的扭矩与绕同一轴的加速度相关联。
    • 3个非对角元素,或下载188bet金宝搏惯性产品,它将一个轴的扭矩与另两个轴的加速度联系起来。
  • 质心:如果质心不位于我们定义的身体坐标系,我们需要应用平行轴定理将围绕质心的旋转转换为围绕我们感兴趣的坐标系的旋转。

通常,您将导入机器人学.刚体Tree从现有的操作器描述—例如,URDF文件。在这种情况下,惯性特性将自动放置在每个机器人学.刚体那就是那棵树。

控制关节力和扭矩

机器人操纵器控制器可以包含以下组件。

  • 反馈:使用所需和测量的运动来计算关节输入。这通常涉及一个控制律,该控制律将期望运动和测量运动之间的误差降至最低。
  • 前馈:仅使用所需运动来计算关节输入。这通常(但不一定)涉及一个机械手力学模型来计算开环输入。

在我们的视频“控制机器人机械手关节”中,我们探索了两个不同的关节控制器的例子,具有4-DOF机器人OpenManipulator平台. 您还可以从下载示例文件MATLAB中央文件交换

(视频)MATLAB和Simu金宝applink机器人领域:控制机器人机械手关节

控制器示例1:反向运动学+关节空间控制器

第一逆运动学(反向)用于将参考末端效应器位置转换为一组参考关节角度。然后,控制器以独占方式在配置空间-也就是说,在关节位置上。

  • 这个前馈术语在我们的操纵器模型上使用逆动力学。这将计算所需的关节力/扭矩,以便操纵器跟随所需的运动,并补偿重力。
  • 这个反馈这个术语使用PID控制。每个关节(4个旋转关节+夹持器)都有独立的控制器,可以最大限度地减小期望运动和测量运动之间的误差。

对于平滑运动,我们通常需要一个闭合形式的轨迹,如曲线方程。这是因为逆动力学需要位置、速度和加速度来计算所需的关节力/扭矩。所以,有了一个可微的参考轨迹,这就容易多了。

理论上,逆动力学应该足以控制机器人手臂。然而,存在诸如关节力学(刚度、阻尼、摩擦等)、不可测量的干扰、传感器/执行器噪声甚至数字误差等因素,这些因素很容易影响全开环控制器的鲁棒性。因此,始终建议使用额外的反馈补偿器。

虽然前馈和反馈控制部分相对容易实现且计算成本较低,但该控制器结构依赖于解IK。正如我们在上一部分中讨论的机器人系统工具箱的实现使用数值解,因此可能需要大量的计算。您可以通过提供一个良好的初始猜测(通常是以前的度量)、限制最大迭代次数或切换到一个分析IK解决方案来解决这个问题。

控制器例2:任务空间控制器

第二个控制器执行任务空间–即,在末端效应器位置和方向上。此外,通过使用几何雅可比矩阵。

这个雅可比矩阵几何是机器人配置的一个功能Q(关节角度/位置),这就是为什么它通常表示为J(q). 雅可比矩阵是从关节速度到相关坐标系世界速度的映射。但是,通过一点数学知识,您可以发现它还将关节力/力矩映射到世界力/力矩。我发现这篇博文作为一个有用的参考。

  • 这个前馈这个控制器中的术语只做一件事:补偿重力。
  • 这个反馈term在末端执行器的XYZ位置上执行PID控制(我们忽略了这里的方向,但你真的不应该!)来计算末端执行器坐标系上的期望力。然后,雅可比矩阵将控制输出转换为关节力矩和力。

下面是该示例控制器的Simulink模型的屏幕截图。与上面金宝app的示意图不同,该模型包含其他真实的工件,如滤波器、速率限制器、饱和和具有基本逻辑的解耦夹持器控制器。您可以从MATLAB中央文件交换

控制设计技术综述

一旦你有了一个操纵器的模型,MATLAB和Simulink中有很多工具可以帮助你设计关节控制器金宝app

在ROBOTIS OpenManipulator模型的“肩部”关节上的PID调谐器输出

传统的控制设计依赖于线性化,或找到一个非线性模型关于一个特定的操作点的线性近似-例如,机械手的“家”,或平衡位置。当机器人的状态偏离该区域时,一个设计在近似线性区域的控制器会变得不太有效,并且可能不稳定。

非线性控制技术可以通过考虑系统的测量状态(在我们的例子中,关节或末端执行器位置)来解决这个问题.前馈技术,如逆动力学,或动态计算几何雅可比矩阵,可确保控制器考虑模型中的非线性。另一种流行技术是增益调度,可用于这两种情况传统控制器MPC控制器

另一种选择是采用无模型技术,例如:

  • 优化:您可以使用仿真优化控制参数,这是启用金宝appSimulink设计优化.虽然优化不能保证稳定性,但它可以让您自动调整各种参数,如增益、控制努力/速率限制、阈值等,这可能会带来良好的结果,特别是在高度非线性系统上。
  • 机器学习:强化学习,或自动学习的尝试和错误,是一种常见的技术被用于机器人操作。比如说这个,纸张视频显示深度强化学习-换句话说,学习参数的深度神经网络使用强化学习技术。

结论

现在你已经了解了机器人机械臂设计的运动学和动力学。我希望这是对该领域语言的有用介绍,一些在实践中使用的常见技术,以及MATLAB和Simulink可以帮助您设计和控制机器人的领域。金宝app

我们希望Simulink能金宝app够在设计阶段帮助您探索不同的体系结构、集成监控逻辑、执行权衡研究等。另外,请记住Simulink允许您自动生成独立的C/C++代码从你的控制算法,这样它们就可以被部署到硬件或中间件,例如ROS

如果你想了解更多关于机器人操作或其他机器人领域的内容,欢迎给我们留言或发邮件roboticsarena@mathworks.com.我希望你喜欢阅读!

——塞巴斯蒂安

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。