matlab中分水岭算法_MATLAB中的机械臂算法——动力学

目录 1. 为什么研究机械臂的动力学 2. Robotics System Toolbox(RST)中的动力学算法 3. Simulink示例

2c19a03ef0849078f1d3e128eeb8c699.png

01 为什么研究机械臂的动力学

前面,我们讲了机械臂的运动学(kinematics):正向运动学和反向运动学。正向运动学指的是在已知机械臂各个关节角度的情况下,推算end-effector(机械臂终端)的位置和方向(合称pose)。反向运动学指的是在已知end-effector的位置和方向,推算各个机械臂的关节角度。我们主要研究反向运动学。

让我们看一下基于反向运动学的控制逻辑图:

ddf6a21e7e009e310c7d40ad8708c8b4.png

在给出机械臂的end-effector的pose后,反运动学模块计算出各个关节所需要的角度,然后通过电机产生力矩(torque)去执行。在此期间,通过反馈(feedback)去消除一些控制误差。

但是,事实上会有很多的干扰因素存在。例如:
  • 地球引力(gravity)

  • 惯量(inertia)

  • 摩擦力(friction)

  • 科里奥利力和离心力(Coriolis and centrifugal)

  • 由于连杆之间是通过关节(joint)耦合在一起,连杆之间会有反作用力和反向惯量

以及一些人为的要求,例如:
  • 我们想要机械臂运动的速度,按照我们预先的设定运行(velocity and acceleration)
  • 我们想要求机械臂在触碰外物时候做出安全保护(external force)

这些我们暂且称之为disturbance(干扰),当然有些“干扰”是我们故意要求的,比如说需要按照预设轨迹的速度运行。加入“干扰”后的示意图如下

449db9b015b8efea22d2fdcf03f7a6a6.png

如果我们能提前计算出来这些“disturbance”,然后在控制环路中将它“抵消”(有时候也叫前馈控制)。这样,就能使得机械臂“完美”运行了。让我们再改一下控制逻辑图:

velocity

acceleration

ce844b7c2bb470f2feacadc14b920150.png

为了计算这些“disturbance”。我们需要考虑几个因素

  • 机械臂各个关节角度,即q

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值