学生休息室

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

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

在这篇博文中,塞巴斯蒂安·卡斯特罗将讨论用MATLAB和Simulink进行机器人操作。金宝app的上一部分讨论了运动学(如果你还没有读过,我们建议你读一下),而这一部分将讨论动力学。

– –

介绍

为了激励低级机器人操纵器控制的重要性,我想介绍几个工程原型。

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

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

从运动学到动态

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

要从运动学移动到动态,我们需要更多有关操纵器的机制的信息。具体而言,我们需要以下惯性属性:

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

通常,您将导入机器人.RigidBodytree.从现有的操纵器描述 - 例如,URDF文件。在这种情况下,惯性属性将自动放置在每个位置机器人技术。RigidBody这就构成了树。

控制联合力量和扭矩

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

  • 反馈:使用所需的和测量的运动来计算关节输入。这通常涉及一个控制律,使期望的运动和测量的运动之间的误差最小化。
  • 前馈:仅在计算关节输入时使用所需的运动。这通常(但不一定)涉及到一个机械臂模型来计算开环输入。

在我们的视频“控制机器人操纵器”中,我们探讨了两个不同的联合控制器示例,包括4-DOFROBOTIS OpenManipulator平台.您也可以从MATLAB中央档案交换

[视频]MATLAB和Simu金宝applink Robotics Arena:控制机器人机械臂关节

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

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

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

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

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

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

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

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

几何雅加诺斯是机器人配置的一个功能(关节角度/位置),这就是为什么它通常表示为J(q).雅可比矩阵是从关节速度映射到坐标系中的世界速度。然而,通过一些数学计算,你可以发现它也将联合力/力矩映射到世界力/力矩。我发现这篇博文作为一个有用的参考。

  • 馈线这个控制器中的项只做一件事:补偿重力。
  • 反馈术语在末端执行器的XYZ位置执行PID控制(我们在此忽略方向,但您真的不应该!)在末端执行器坐标框架处计算所需的力。然后,雅可碧展将控制输出转换为联合扭矩和力。

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

控制设计技术综述

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

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

传统的控制设计依赖于线性化或者或找到关于特定操作点的非线性模型的线性近似 - 例如,“家庭”或操纵器的平衡。当机器人状态偏离该区域时,围绕近似线性区域设计的控制器可能变得更加有效,并且可能不稳定。

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

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

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

结论

现在,您已经看到了机器人操纵器设计的运动学和动力学概述。我希望这是对该域中语言的一种有用的介绍,一些在实践中使用的常用技术,以及Matlab和Simulink可以帮助您设计和控制机器人的区域。金宝app

我们希望Simulink能金宝app在您的设计阶段帮助您探索不同的架构、集成管理逻辑、执行权衡研究等等。同样,回想一下Simulink让你金宝app自动生成独立的C/C++代码从您的控制算法,所以它们可以部署到硬件或中间件,例如罗斯

如果您希望在机器人操作或机器人中的其他主题上查看更多材料,请随时向我们发表评论或发送电子邮件roboticsarena@mathworks.com.我希望你喜欢阅读!

- 塞巴斯蒂安

|

注释

要发表评论,请点击在这里登录您的MathWorks帐户或创建新的。