学生休息室

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

机器人操纵,第2部分:动力学与控制

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

- - - - - - - - - - - -

简介

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

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

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

从运动学到动力学

回顾前面的部分,运动学将机器人机械手的关节位置映射到感兴趣的坐标框架的位置和方向-通常是末端执行器。另一方面,动力学将所需的关节力和扭矩映射到它们的位置、速度和加速度。

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

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

通常,您将导入一个机器人技术。RigidBodyTree来自现有的操作符描述—例如,URDF文件。在这种情况下,惯性属性将自动放置在每个机器人技术。RigidBody这构成了树。

控制联合力和力矩

机械手控制器可以包含以下组件。

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

在我们的视频“控制机器人机械手关节”中,我们探索了关节控制器的两个不同的例子,以4-DOF为特色ROBOTIS open机械手平台.您也可以从MATLAB中央文件交换

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

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

首先,逆运动学(IK)用于将参考末端执行器位置转换为一组参考关节角度。控制器然后独占地在配置空间——也就是在联合位置上。

  • 前馈Term在我们的机械手模型上使用了逆动力学。这计算所需的关节力/扭矩,以便机械手遵循所需的运动,以及补偿重力。
  • 反馈术语采用PID控制。每个关节(4个转动关节+夹持器)都有独立的控制器,最大限度地减少了期望和测量运动之间的误差。

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

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

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

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

的控制器中执行控制任务空间——即末端执行器的位置和方位。此外,它还避免了对逆运动学的需要几何雅可比矩阵。

雅可比矩阵几何是机器人构型的函数吗(关节角度/位置),这就是为什么它经常被表示为J (q).雅可比矩阵是一种从关节速度到目标坐标系中世界速度的映射。然而,通过一些数学计算,你可以发现它还将联合力/扭矩映射到世界力/扭矩。我发现这篇博文成为有用的参考。

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

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

控制设计技术概论“,

一旦你有了机械手的模型,MATLAB和Simulink中有很多工具可以帮助你设计关节控制器。金宝app这些包括

PID调谐器输出在ROBOTIS open机械手模型的“肩”关节上

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

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

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

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

结论

现在你已经看到了机械手设计的运动学和动力学的概述。我希望这篇文章对这个领域的语言、实践中使用的一些常见技术以及MATLAB和Simulink可以帮助你设计和控制机器人的领域是有用的介绍。金宝app

我们希望Simulink可金宝app以帮助您在设计阶段探索不同的架构、集成监管逻辑、执行权衡研究等。另外,还记得Simulink让您金宝app自动生成独立的C/ c++代码从你的控制算法,所以他们可以部署到硬件或者中间件,比如ROS

如果你想看更多关于机器人操作的材料,或机器人技术的其他主题,请给我们留言或发邮件给我们roboticsarena@mathworks.com.我希望你喜欢阅读!

——塞巴斯蒂安

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。