【Matlab 六自由度机器人】机器人动力学之推导拉格朗日方程(附MATLAB机器人动力学拉格朗日方程推导代码)

news2024/7/6 20:45:09

【Matlab 六自由度机器人】机器人动力学概述

  • 近期更新
  • 前言
  • 正文
    • 一、拉格朗日方程的推导
      • 1. 单自由度系统
      • 2. 单连杆机械臂系统
      • 3. 双连杆机械臂系统
    • 二、MATLAB实例推导
      • 1. 机器人模型的建立
      • 2. 动力学代码
  • 总结
  • 参考文献

近期更新

【汇总】

【Matlab 六自由度机器人】系列文章汇总  \fcolorbox{green}{aqua}{【Matlab 六自由度机器人】系列文章汇总 } Matlab 六自由度机器人】系列文章汇总 

【主线】

运动学 \color{red}运动学 运动学

  1. 定义标准型及改进型D-H参数,建立机器人模型。
  2. 运动学正解
  3. 基于蒙特卡罗方法(Monte Carlo Method)构建机器人工作空间

动力学 \color{red}动力学 动力学
(待补充)

【补充说明】

  1. 关于灵活工作空间与可达工作空间的理解
  2. 关于改进型D-H参数(modified Denavit-Hartenberg)的详细建立步骤
  3. 关于旋转的参数化(欧拉角、姿态角、四元数)的相关问题
  4. 关于双变量函数atan2(x,y)的解释
  5. 关于机器人运动学反解的有关问题

前言

本篇对机器人动力学进行一个概述。
之前谈到的运动学方程仅描述了机器人的运动过程,没有考虑到产生运动的力和扭矩,而动力学方程能描述力和运动之间的关系,因此我们在此引入动力学的概念。

本人在读研期间仅在机器人运动学的基础上完成论文的撰写,有些遗憾未能将机器人动力学应用到文章之中,在此写下机器人动力学的概述以及学习过程中遇到的问题和解决思路。


以下是本篇文章正文内容

分析机器人操作的动态数学模型,主要采用下列两种理论

  1. 动力学基本理论,包括牛顿欧拉方程。
  2. 拉格朗日力学,特别是二阶拉格朗日方程。

第一个方法:牛顿—欧拉方程即力的动态平衡法。当用此法时,需从运动学出发求得加速度,并消去各内作用力。对于较复杂的系统,此种分析方法十分复杂与麻烦。
第二个方法:拉格朗日方程即拉格朗日功能平衡法,也称为欧拉—拉格朗日方程,它只需要速度而不必求内作用力。因此,这是一种直截了当和简便的方法。

在本篇文章中主要采用拉格朗日方程来分析和求解机械手的动力学问题。

正文

一、拉格朗日方程的推导

1. 单自由度系统

我们以图中所示的单自由度系统为例,来说明如何从牛顿第二定律推导出拉格朗日方程。图中的圆点为带有质量的一个粒子,下面称为质点。该质点受到重力 g g g的效果和拉力 f f f的效果。
Alt

质量为 m m m的粒子受到限制,只能在垂直方向移动,这就构成了一个单自由度系统。 重力 m g mg mg向下作用, 外力 f f f则向上作用。

根据牛顿第二定律,这个系统中的质点的运动方程为:
m a = f − m g    ⟹    m y ¨ = f − m g ma=f-mg\implies m\ddot{y}_{}^{}=f-mg ma=fmgmy¨=fmg
左侧的 m y ¨ m\ddot{y}_{}^{} my¨也可以用以下方程推出
m y ¨ = d d t ( m y ˙ ) = d d t ∂ ∂ y ˙ ( 1 2 m y ˙ 2 ) = d d t ( ∂ K ∂ y ˙ ) m\ddot{y}_{}^{}= \frac{\mathrm{d}}{\mathrm{d} t} \left(m\dot{y}\right) = \frac{\mathrm{d}}{\mathrm{d} t} \frac{\partial {}}{\partial \dot{y}} \left(\frac{1}{2}m\dot{y}^2\right)= \frac{\mathrm{d}}{\mathrm{d} t} \left(\frac{\partial \mathcal{K}}{\partial \dot{y}}\right) my¨=dtd(my˙)=dtdy˙(21my˙2)=dtd(y˙K)
注: m y ˙ 可以写作 ∂ ∂ y ˙ ( 1 2 m y ˙ 2 ) m\dot{y}可以写作\frac{\partial {}}{\partial \dot{y}} \left(\frac{1}{2}m\dot{y}^2\right) my˙可以写作y˙(21my˙2),即 1 2 m y ˙ 2 \frac{1}{2}m\dot{y}^2 21my˙2 y y y进行求偏导。

其中,动能 K = 1 2 m y ˙ 2 \mathcal{K}= \frac{1}{2} m\dot{y}^2 K=21my˙2

类似上面的方程,我们可以将重力表达为:
m g = ∂ ∂ y ( m g y ) = ∂ P ∂ y mg=\frac{\partial }{\partial {y}}\left(mgy\right)= \frac{\partial \mathcal{P}}{\partial {y}} mg=y(mgy)=yP
其中,重力势能 P = m g y \mathcal{P}= mgy P=mgy

定义函数 L \mathcal{L} L,它是系统的动能和势能之差,也称为系统的拉格朗日算子
L = K − P = 1 2 m y ˙ 2 − m g y \mathcal{L}= \mathcal{K}- \mathcal{P}=\frac{1}{2}m\dot{y}^2-mgy L=KP=21my˙2mgy
① L 对 y ˙ 求偏导,可得到 ∂ L ∂ y ˙ = ∂ K ∂ y ˙ ① \mathcal{L}对\dot{y}求偏导,可得到\frac{\partial { \mathcal{L}}}{\partial \dot{y}}=\frac{\partial { \mathcal{K}}}{\partial \dot{y}} Ly˙求偏导,可得到y˙L=y˙K

② L 对 y ˙ 求偏导,可得到 ∂ L ∂ y = − ∂ P ∂ y    ⟹    ∂ P ∂ y = − ∂ L ∂ y ② \mathcal{L}对\dot{y}求偏导,可得到\frac{\partial { \mathcal{L}}}{\partial {y}}=-\frac{\partial { \mathcal{P}}}{\partial {y}} \implies \frac{\partial { \mathcal{P}}}{\partial {y}}=-\frac{\partial { \mathcal{L}}}{\partial {y}} Ly˙求偏导,可得到yL=yPyP=yL

那么对上式的 m y ¨ = f − m g m\ddot{y}_{}^{}=f-mg my¨=fmg可以写作如下公式
d d t ∂ L ∂ y ˙ = f − ( − ∂ L ∂ y )    ⟹    f = d d t ∂ L ∂ y ˙ − ∂ L ∂ y \frac{\mathrm{d}}{\mathrm{d} t} \frac{\partial { \mathcal{L}}}{\partial \dot{y}}=f- \left(-\frac{\partial \mathcal{L}}{\partial {y}}\right) \implies f=\frac{\mathrm{d}}{\mathrm{d} t} \frac{\partial { \mathcal{L}}}{\partial \dot{y}}-\frac{\partial \mathcal{L}}{\partial {y}} dtdy˙L=f(yL)f=dtdy˙LyL
至此,单自由度系统的拉格朗日方程就推导出来了,方程如下:
f = d d t ∂ L ∂ y ˙ − ∂ L ∂ y f=\frac{\mathrm{d}}{\mathrm{d} t} \frac{\partial { \mathcal{L}}}{\partial \dot{y}}-\frac{\partial \mathcal{L}}{\partial {y}} f=dtdy˙LyL

下面是建立拉格朗日函数的一般步骤
首先写出系统的动能和势能,并以广义坐标 ( q 1 , ⋯   , q n ) \left(q_{1}, \cdots, q_{n}\right) (q1,,qn) 的形式来表示,其中 n n n 是系统的自由度数目;然后,根据下述公式来计算 n − n^{-} n自由度系统的运动方程
d d t ∂ L ∂ q ˙ k − ∂ L ∂ q k = τ k , k = 1 , ⋯   , n \frac{\mathrm{d}}{\mathrm{d} t} \frac{\partial \mathcal{L}}{\partial \dot{q}_{k}}-\frac{\partial \mathcal{L}}{\partial q_{k}}=\tau_{k}, \quad k=1, \cdots, n dtdq˙kLqkL=τk,k=1,,n
其中, τ k \tau_{k} τk 是与广义坐标 q k q_{k} qk 相关的广义力。
在上述单自由度系统的例子中,变量 y y y 作为广义坐标。欧拉-拉格朗日方程不仅可以导出一组耦合的二阶常微分方程,它还提供了一种 等同于通过牛顿第二定律得到动力学方程的构造方法。然而,正如我们将要看到的那样,对于诸如多连杆机器人等复杂系统,使用拉格朗日方法更为有利。

下面介绍单连杆机械臂系统双连杆机械臂系统的拉格朗日方程

2. 单连杆机械臂系统

如下图中所示的单连杆机器人,它包括一个刚性连杆,该连杆通过齿轮系连接到直流电机。令 θ l \theta_l θl θ m \theta_m θm分别表示连杆和电机轴的转动角度。那么 θ m = r θ l \theta_m=r\theta_l θm=rθl,其中 r : 1 r: 1 r:1为齿轮变速比。如果连杆一端直接接在电机的旋转轴上,那么 r = 1 r=1 r=1。连杆转角和电机轴转角之间的代数关系表明该系统只有一个自由度,因此我们可以将 θ l \theta_l θl θ m \theta_m θm作为广义坐标。
请添加图片描述

单连杆机器人:电机输出轴通过齿轮系耦连到连杆的转动轴,齿轮系放大了电机扭矩并降低了电机转速。

在此选用 θ ℓ \theta_\ell θ作为广义坐标
系统的动能可以表示为 θ ℓ \theta_\ell θ的函数,其表示如下所示
K = 1 2 J m θ ˙ m 2 + 1 2 J ℓ θ ˙ ℓ 2 = 1 2 J m r 2 θ ˙ ℓ 2 + 1 2 J ℓ θ ˙ ℓ 2 = 1 2 ( r 2 J m + J ℓ ) θ ˙ ℓ 2 \mathcal{K} =\frac{1}{2}J_{m} \dot{\theta}_{m}^{2}+\frac{1}{2} J_{\ell} \dot{\theta}_{\ell}^{2} =\frac{1}{2}J_{m}r^2 \dot{\theta}_{\ell}^{2}+\frac{1}{2} J_{\ell} \dot{\theta}_{\ell}^{2} =\frac{1}{2}\left(r^{2} J_{m}+J_{\ell}\right) \dot{\theta}_{\ell}^{2} K=21Jmθ˙m2+21Jθ˙2=21Jmr2θ˙2+21Jθ˙2=21(r2Jm+J)θ˙2
其中, J m , J ℓ J_m,J_\ell Jm,J分别为电机和连杆的转动惯量。系统的势能如下所示
P = M g ℓ ( 1 − cos ⁡ θ ℓ ) \mathcal{P}=Mg\ell\left(1-\cos \theta_{\ell}\right) P=Mg(1cosθ)
其中, M M M 是连杆的总体质量, ℓ \ell 是关节轴线与连杆质心之间的距离。定义 J = r 2 J m + J ℓ J=r^{2} J_{m}+J_{\ell} J=r2Jm+J,拉格朗日算子 L \mathcal{L} L如下
L = 1 2 J θ ˙ ℓ 2 − M g ℓ ( 1 − cos ⁡ θ ℓ ) \mathcal{L}=\frac{1}{2} J \dot{\theta}_{\ell}^{2}-M g \ell\left(1-\cos \theta_{\ell}\right) L=21Jθ˙2Mg(1cosθ)
将上述表达式代人到公式 d d t ∂ L ∂ q ˙ k − ∂ L ∂ q k = τ k , \frac{\mathrm{d}}{\mathrm{d} t} \frac{\partial \mathcal{L}}{\partial \dot{q}_{k}}-\frac{\partial \mathcal{L}}{\partial q_{k}}=\tau_{k}, dtdq˙kLqkL=τk,中,其中 n = 1 n=1 n=1,广义坐标为 θ ℓ \theta_{\ell} θ,得到下列运动方程
J θ ¨ ℓ + M g ℓ sin ⁡ θ ℓ = τ ℓ J \ddot{\theta}{ }_{\ell}+M g \ell \sin \theta_{\ell}=\tau_{\ell} Jθ¨+Mgsinθ=τ
广义力 τ ℓ \tau_{\ell} τ 表示那些无法从势函数推导出的外力和外力矩。对于这个例子, τ ℓ \tau_{\ell} τ 包括反映 到连杆上的电机输入力矩 u = r τ m u=r \tau_{m} u=rτm,以及 (非保守) 阻尼力矩 B m θ ˙ m B_{m} \dot{\theta}_{m} Bmθ˙m B ℓ θ ˙ 1 B_{\ell} \dot{\theta}_{1} Bθ˙1 。将电机阻尼反映到连杆上,得出
τ ℓ = u − B θ ˙ ℓ    ⟹    u = τ ℓ + B θ ˙ ℓ \tau_{\ell}=u-B \dot{\theta}_{\ell} \implies u=\tau_{\ell}+B \dot{\theta}_{\ell} τ=uBθ˙u=τ+Bθ˙
其中, B = r B m + B ℓ B=r B_{m}+B_{\ell} B=rBm+B 。因此,该系统完整的动力学表达式为
u = J θ ¨ ℓ + B θ ˙ ℓ + M g ℓ sin ⁡ θ ℓ u=J \ddot{\theta}_{\ell}+B \dot{\theta}_{\ell}+M g \ell \sin \theta_{\ell} u=Jθ¨+Bθ˙+Mgsinθ

3. 双连杆机械臂系统

下面推导双连杆机械臂系统的动能和位能,如下图。这种运动机构具有开式运动链,与复摆运动有许多相似之处。

请添加图片描述

图中
T 1 T_{1} T1 T 2 T_{2} T2 为转矩;

m 1 m_{1} m1 m 2 m_{2} m2为连杆1和连杆2的质量,该连杆的质量以连杆末端的质点来进行表示;
d 1 d_{1} d1 d 2 d_{2} d2分别为两连杆的长度;
θ 1 \theta_{1} θ1 θ 2 \theta_{2} θ2为广义坐标;
g g g为重力加速度。

先计算连杆1的动能 K 1 {K_1} K1和动能 P 1 {P_1} P1

K 1 = 1 2 m 1 v 1 2 v 1 = d 1 θ ˙ 1 P 1 = m 1 g h h 1 = − d 1 cos ⁡ θ 1 \begin{aligned} {K_1}&=\frac{1}{2} m_{1} v_{1}^{2} \\ v_{1}&=d_{1} \dot{\theta}_{1} \\ {P_1}&=m_1gh \\ h_1&=-d_{1} \cos \theta_{1} \end{aligned} K1v1P1h1=21m1v12=d1θ˙1=m1gh=d1cosθ1
推导得
K 1 = 1 2 m 1 d 1 2 θ ˙ 1 2 P 1 = − m 1 g d 1 cos ⁡ θ 1 \begin{aligned} K_{1}&=\frac{1}{2} m_{1} d_{1}^{2} \dot{\theta}_{1}^{2} \\ P_{1}&=-m_{1} g d_{1} \cos \theta_{1} \end{aligned} K1P1=21m1d12θ˙12=m1gd1cosθ1
再求连杆 2 的动能 K 2 K_{2} K2 和位能 P 2 P_{2} P2
K 2 = 1 2 m 2 v 2 2 P 2 = m g y 2 \begin{aligned} K_{2}&=\frac{1}{2} m_{2} v_{2}^{2}\\ P_{2}&=m g y_{2} \end{aligned} K2P2=21m2v22=mgy2式中
v 2 2 = x ˙ 2 2 + y ˙ 2 2 x 2 = d 1 sin ⁡ θ 1 + d 2 sin ⁡ ( θ 1 + θ 2 ) y 2 = − d 1 cos ⁡ θ 1 − d 2 cos ⁡ ( θ 1 + θ 2 ) x ˙ 2 = d 1 cos ⁡ θ 1 θ ˙ 1 + d 2 cos ⁡ ( θ 1 + θ 2 ) ( θ ˙ 1 + θ ˙ 2 ) y ˙ 2 = d 1 sin ⁡ θ 1 θ ˙ 1 + d 2 sin ⁡ ( θ 1 + θ 2 ) ( θ ˙ 1 + θ ˙ 2 ) \begin{aligned} v_{2}^{2}&=\dot{x}_{2}^{2}+\dot{y}_{2}^{2} \\ x_{2}&=d_{1} \sin \theta_{1}+d_{2} \sin \left(\theta_{1}+\theta_{2}\right) \\ y_{2}&=-d_{1} \cos \theta_{1}-d_{2} \cos \left(\theta_{1}+\theta_{2}\right) \\ \dot{x}_{2}&=d_{1} \cos \theta_{1} \dot{\theta}_{1}+d_{2} \cos \left(\theta_{1}+\theta_{2}\right)\left(\dot{\theta}_{1}+\dot{\theta}_{2}\right) \\ \dot{y}_{2}&=d_{1} \sin \theta_{1} \dot{\theta}_{1}+d_{2} \sin \left(\theta_{1}+\theta_{2}\right)\left(\dot{\theta}_{1}+\dot{\theta}_{2}\right) \end{aligned} v22x2y2x˙2y˙2=x˙22+y˙22=d1sinθ1+d2sin(θ1+θ2)=d1cosθ1d2cos(θ1+θ2)=d1cosθ1θ˙1+d2cos(θ1+θ2)(θ˙1+θ˙2)=d1sinθ1θ˙1+d2sin(θ1+θ2)(θ˙1+θ˙2)
于是可求得
v 2 2 = d 1 2 θ ˙ 1 2 + d 2 2 ( θ ˙ 1 2 + 2 θ ˙ 1 θ ˙ 2 + θ ˙ 2 2 ) + 2 d 1 d 2 cos ⁡ θ 2 ( θ ˙ 1 2 + θ ˙ 1 θ ˙ 2 ) \boldsymbol{v}_{2}^{2}=d_{1}^{2} \dot{\theta}_{1}^{2}+d_{2}^{2}\left(\dot{\theta}_{1}^{2}+2 \dot{\theta}_{1} \dot{\theta}_{2}+\dot{\theta}_{2}^{2}\right)+2 d_{1} d_{2} \cos \theta_{2}\left(\dot{\theta}_{1}^{2}+\dot{\theta}_{1} \dot{\theta}_{2}\right) v22=d12θ˙12+d22(θ˙12+2θ˙1θ˙2+θ˙22)+2d1d2cosθ2(θ˙12+θ˙1θ˙2)
以及
K 2 = 1 2 m 2 d 1 2 θ ˙ 1 2 + 1 2 m 2 d 2 2 ( θ ˙ 1 + θ ˙ 2 ) 2 + m 2 d 1 d 2 cos ⁡ θ 2 ( θ ˙ 1 2 + θ ˙ 1 θ ˙ 2 ) P 2 = − m 2 g d 1 cos ⁡ θ 1 − m 2 g d 2 cos ⁡ ( θ 1 + θ 2 ) \begin{gathered} K_{2}&=\frac{1}{2} m_{2} d_{1}^{2} \dot{\theta}_{1}^{2}+\frac{1}{2} m_{2} d_{2}^{2}\left(\dot{\theta}_{1}+\dot{\theta}_{2}\right)^{2}+m_{2} d_{1} d_{2} \cos \theta_{2}\left(\dot{\theta}_{1}^{2}+\dot{\theta}_{1} \dot{\theta}_{2}\right) \\ P_{2}&=-m_{2} g d_{1} \cos \theta_{1}-m_{2} g d_{2} \cos \left(\theta_{1}+\theta_{2}\right) \end{gathered} K2P2=21m2d12θ˙12+21m2d22(θ˙1+θ˙2)2+m2d1d2cosθ2(θ˙12+θ˙1θ˙2)=m2gd1cosθ1m2gd2cos(θ1+θ2)
这样, 二连杆机械手系统的总动能和总位能分别为
K = K 1 + K 2 = 1 2 ( m 1 + m 2 ) d 1 2 θ ˙ 1 2 + 1 2 m 2 d 2 2 ( θ ˙ 1 + θ ˙ 2 ) 2 + m 2 d 1 d 2 cos ⁡ θ 2 ( θ ˙ 1 2 + θ ˙ 1 θ ˙ 2 ) P = P 1 + P 2 = − ( m 1 + m 2 ) g d 1 cos ⁡ θ 1 − m 2 g d 2 cos ⁡ ( θ 1 + θ 2 ) \begin{aligned} K &=K_{1}+K_{2} \\ &=\frac{1}{2}\left(m_{1}+m_{2}\right) d_{1}^{2} \dot{\theta}_{1}^{2}+\frac{1}{2} m_{2} d_{2}^{2}\left(\dot{\theta}_{1}+\dot{\theta}_{2}\right)^{2}+m_{2} d_{1} d_{2} \cos \theta_{2}\left(\dot{\theta}_{1}^{2}+\dot{\theta}_{1} \dot{\theta}_{2}\right) \\ P &=P_{1}+P_{2} \\ &=-\left(m_{1}+m_{2}\right) g d_{1} \cos \theta_{1}-m_{2} g d_{2} \cos \left(\theta_{1}+\theta_{2}\right) \end{aligned} KP=K1+K2=21(m1+m2)d12θ˙12+21m2d22(θ˙1+θ˙2)2+m2d1d2cosθ2(θ˙12+θ˙1θ˙2)=P1+P2=(m1+m2)gd1cosθ1m2gd2cos(θ1+θ2)

二、MATLAB实例推导

1. 机器人模型的建立

  1. 根据文章上述的双连杆机械臂对其进行建模,具体建模方法可参阅以下文章:
  • 定义标准型及改进型D-H参数建立机器人模型(附MATLAB建模代码)
  • 【Matlab 六自由度机器人】关于改进型D-H参数(modified Denavit-Hartenberg)的详细建立步骤

单杆机械臂系统代码如下:

%% 单杆机械臂系统
clc
clear
close all
warning off

%% MOD-DH参数
d1 = 0;
d2 = 100;
a1 = 0;
a2 = 0;
alpha1 = pi/2;
alpha2 = 0;
%       theta  d    a    alpha  offset(关节变量偏移量)
L(1)=Link([0   d1   a1   alpha1   0   ],'modified');
L(2)=Link([0   d2   a2   alpha2   0   ],'modified');
Single_Robot = SerialLink(L,'name','SingleRobot');
Single_Robot.teach()
%限制机器人的关节空间
theta1min = -180;        theta1max = 180;
theta2min = -180;        theta2max = 180;
L(1).qlim = [theta1min theta1max]*pi/180;
L(2).qlim = [theta2min theta2max]*pi/180;

双连杆机械臂系统代码如下:

%% 双连杆机械臂系统
clc
clear
close all
warning off

%% MOD-DH参数
d1 = 0;
d2 = 0;
d3 = 0;
a1 = 0;
a2 = 100;
a3 = 100;
alpha1 = pi/2;
alpha2 = 0;
alpha3 = 0;
%       theta  d    a    alpha  offset(关节变量偏移量)
L(1)=Link([0   d1   a1   alpha1   0   ],'modified');
L(1).offset = -pi/2;
L(2)=Link([0   d2   a2   alpha2   0   ],'modified');
L(3)=Link([0   d3   a3   alpha3   0   ],'modified');
Double_Robot = SerialLink(L,'name','SingleRobot');
Double_Robot.display()
Double_Robot.teach()
%限制机器人的关节空间
theta1min = -180;        theta1max = 180;
theta2min = -180;        theta2max = 180;
theta3min = -180;        theta3max = 180;
L(1).qlim = [theta1min theta1max]*pi/180;
L(2).qlim = [theta2min theta2max]*pi/180;
L(3).qlim = [theta3min theta3max]*pi/180;

接下来对其进行运动学上的轨迹规划:

  1. 对于单杆系统,其轨迹规划如下:
n = 1:100;
q0 = [0 0];
q1 = [30 30];

% 由q0移动到q1
[q,qd,qdd] = jtraj(q0,q1,n);

figure(2)
subplot(3,1,1)
plot(n,q)
subplot(3,1,2)
plot(n,qd)
subplot(3,1,3)
plot(n,qdd)

其效果如下图:
请添加图片描述

  1. 对于双连杆系统
n = 1:100;
q0 = [0 0 0];
q1 = [30 60 90];

[q,qd,qdd] = jtraj(q0,q1,n);

figure(2)
subplot(3,1,1)
plot(n,q)
subplot(3,1,2)
plot(n,qd)
subplot(3,1,3)
plot(n,qdd)

其效果如下图:
请添加图片描述

往后会对关节空间轨迹规划 j t r a j ( ) 函数 jtraj()函数 jtraj()函数笛卡尔空间轨迹规划 c t r a j ( ) 函数 ctraj()函数 ctraj()函数 进行单独篇章的撰写和探讨。

至此,运动学的前期准备已经完毕,下面进行机器人动力学 拉格朗日方程的推导。

2. 动力学代码

使用robot.dyn()函数查看建立的机器人的动力学参数

代码如下:

% 查看robot机器人所有的连杆的动力学参数
robot.dyn;
% 查看robot机器人第n根连杆的动力学参数
robot.dyn(n);

% 对Single_Robot进行动力学参数的设置


总结

本篇对机器人动力学进行一个概述。
之前谈到的运动学方程仅描述了机器人的运动过程,没有考虑到产生运动的力和扭矩,而动力学方程能描述力和运动之间的关系,因此我们在此引入动力学的概念。
第一章是机器人动力学之推导拉格朗日方程的内容,本文详细介绍了如何理解拉格朗日方程以及如何进行推导,介绍了如何求出机构的动能及位能。
第二章是拉格朗日方程代码的实现。

参考文献

  1. 机器人学、机器视觉与控制:MATLAB算法基础
  2. 机器人学
  3. 机器人建模和控制
  4. MATLAB机器人工具箱(四)动力学
  5. MATLAB机器人工具箱【3】—— 动力学相关函数及用法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1874462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

原码、反码、补码、移码的计算转换

文章目录 正数负数原码 & 反码反码 -> 补码原码 <-> 补码移码 <- Other 方法总结练习 正数 原码 和 反码 和 补码 都是一样的不会发生变化 因此&#xff0c;计算的时候先看第一位 符号位 &#xff0c;只要能发现是正数&#xff0c;三者都不变 移码 在补码基础…

DataV大屏组件库

DataV官方文档 DataV组件库基于Vue &#xff08;React版 (opens new window)&#xff09; &#xff0c;主要用于构建大屏&#xff08;全屏&#xff09;数据展示页面即数据可视化&#xff0c;具有多种类型组件可供使用&#xff1a; 源码下载

Web渗透-逻辑漏洞

一、概述 逻辑漏洞是指由于程序逻辑不严或逻辑太复杂&#xff0c;导致一些逻辑分支不能够正常处理或处理错误&#xff0c;一般出现任意密码修改&#xff08;没有旧密码验证&#xff09;,越权访问&#xff0c;密码找回&#xff0c;交易支付金额等。对常见的漏洞进行过统计&…

蒙特卡洛法求定积分方

对于连续函数密度函数&#xff0c;求某一个区间的概率时&#xff0c;理论上通过积分获取&#xff0c; 以求曲线围成的面积为例 当我们在[a,b]之间随机取一点x时&#xff0c;它对应的函数值就是f(x)。接下来我们就可以用f(x)*(b-a)来粗略估计曲线下方的面积&#xff0c;也就是我…

探索区块链:颠覆性技术的崛起

目录 一、引言 二、区块链技术概述 三、区块链应用场景 四、区块链面临的挑战 五、区块链的未来展望 六、结语 一、引言 在数字化浪潮的推动下&#xff0c;区块链技术以其独特的去中心化、透明性和不可篡改性等特性&#xff0c;正在逐步改变我们的生活。从金融领域到供应…

最新Node.js安装及配置详细教程

文章目录 下载Node.js安装Node.js配置Node.js1、修改npm包的全局安装路径和缓存路径2、环境变量设置3、镜像源配置4、安装其他包管理工具 下载Node.js 下载&#xff1a;https://nodejs.org/en/download/prebuilt-installer&#xff0c;下载LTS版本的&#xff0c;LTS(Long Time…

最小生成树拓展应用

文章目录 最小生成树拓展应用理论基础 题单1. [新的开始](https://www.acwing.com/problem/content/1148/)2. [北极通讯网络](https://www.acwing.com/problem/content/1147/)3. [走廊泼水节](https://www.acwing.com/problem/content/348/)4. [秘密的牛奶运输](https://www.ac…

001 SpringMVC介绍

文章目录 基础概念介绍BS和CS开发架构应用系统三层架构MVC设计模式 SpringMVC介绍SpringMVC是什么SpringMVC与Spring的联系为什么要学习SpringMVC 六大组件介绍六大组件(MVC组件其他三大组件)说明 基础概念介绍 BS和CS开发架构 一种是C/S架构&#xff0c;也就是客户端/服务器…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【15】异步_线程池

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【15】异步_线程池 初始化线程的 4 种方式开发中为什么使用线程池线程池七大参数线程池工作原理常见的 4 种线程池生产中如何使用线程池&#xff1f;CompletableFuture 异步编排—简介业务…

dataX同步SQLserver到MySQL数据

引用datax官方描述&#xff1a; DataX 是阿里云 DataWorks数据集成 的开源版本&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS…

如何利用“AI交互数字人+展厅”拓展文娱消费空间?

打造新生代潮玩聚集地&#xff0c;打造演艺新空间&#xff0c;促进虚拟现实体验等文娱业态场景创新&#xff0c;成为了当下发展文旅消费新场景的一大重要手段。数字人汇集了虚拟现实、增强现实、全息投影、人工智能、实时传输语音合成等数字技术&#xff0c;可以利用数字人重构…

在等保2.0的合规性审查中,常见的难点和误区有哪些?

在等保2.0&#xff08;即《信息安全技术 网络安全等级保护基本要求》GB/T 22239-2019&#xff09;的合规性审查中&#xff0c;企业和机构经常会遇到一些难点和误区&#xff0c;主要包括以下几个方面&#xff1a; 常见误区 1. “三同步”不同步&#xff1a;等保2.0强调“同步规…

golang生成RSA公钥和密钥

目录 场景 场景一&#xff1a;加密、解密 场景二&#xff1a;微信退款 场景三&#xff1a;SSL证书 为什么是.key和.pem格式的文件 生成密钥、公钥 密钥、公钥保存到文件中 第一个&#xff1a;保存密钥到文件里 第二个&#xff1a;保存公钥到文件里 场景 场景一&#…

AI产品活跃用户排名出炉!文心一言APP国内第一,Kimi疯狂掉队

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 6月28日&#xff0c;极光大数据旗下月狐数据发布2024年5月中国生成式AI行业市场热点月度分析报告&#xff0c;披露了国内移动端主流生成式AI应用…

一个AI图片生成工具导航网站

上周末上线了一个AI图片生成工具导航网站&#xff0c;主要是面向AI图片工具这个垂直领域。 https://chatgpt-image-generator.com/ 目标是通过收集当下的一些工具&#xff0c;然后进行分类管理&#xff0c;一方面方便大家发现新的工具&#xff0c;另一方面能够更加有针对性、…

操作系统期末复习(对抽象概念的简单形象化)

操作系统 引论 定义与基本概念&#xff1a;操作系统是计算机硬件与用户之间的桥梁&#xff0c;类似于家中的管家&#xff0c;它管理硬件资源&#xff08;如CPU、内存、硬盘&#xff09;&#xff0c;并为用户提供方便的服务&#xff08;应用程序执行、文件管理等&#xff09;。…

Typora 2024 安装教程

本章教程&#xff0c;介绍一下如何使用Typora 最新版本1.9.4&#xff0c;仅供学习交流&#xff0c;切勿滥用。 一、下载安装包 下载地址&#xff1a;https://www.alipan.com/s/8pvKf5ns6GH 当然&#xff0c;你也可以去官网下载&#xff0c;但是官网有可能随时更新&#xff0c;该…

探索CSS布局:创建一个居中的内嵌方块示例

在网页设计中&#xff0c;布局是至关重要的部分。CSS提供了多种方式来实现元素的布局&#xff0c;包括居中对齐、外边距、内边距等。本文将通过一个简单的示例&#xff0c;介绍如何使用CSS来创建一个居中的内嵌方块&#xff0c;并探讨其背后的布局原理。 HTML 结构 首先&…

【Matlab】-- 飞蛾扑火优化算法

文章目录 文章目录 01 飞蛾扑火算法介绍02 飞蛾扑火算法伪代码03 基于Matlab的部分飞蛾扑火MFO算法04 参考文献 01 飞蛾扑火算法介绍 飞蛾扑火算法&#xff08;Moth-Flame Optimization&#xff0c;MFO&#xff09;是一种基于自然界飞蛾行为的群体智能优化算法。该算法由 Sey…

上市公司绿色投资者原始数据+计算代码(2008-2022年)

数据简介&#xff1a;“绿色”信号&#xff0c;意味着潜在环境风险更低&#xff0c;从而绿色投资者降低了对绿色债券的风险补偿要求&#xff0c;推动了信用利差的收窄。因此&#xff0c;绿色投资者会通过投资者风险意识影响债券信用风险。绿色投资者在推动企业绿色可持续发展方…