机器人学:DH参数总结(传统DH方法和改进DH方法)

news2024/11/24 22:32:31

1. 传统DH参数方法

1.1 确定坐标系的方法

定义: i i i的近端是关节 i i i,远端是关节 i + 1 i+1 i+1.

在这里插入图片描述

【下面的规则参考上面的图看得更清楚】

对于 n n n自由度机器人,可用以下步骤建立与各杆件 i ( i = 0 , 1 , … , n ) i(i=0,1,…,n) i(i=0,1,,n)固连的坐标系 O i X i Y i Z i O_iX_iY_iZ_i OiXiYiZi,并简称其为系 i i i(注意:其中每一步都从 i = 0 i=0 i=0 i = n i=n i=n进行完后再执行下一步骤)。

  • 第1步:确定各坐标系的 Z Z Z基本原则是:选取 Z i Z_i Zi轴沿关节 i + 1 i+1 i+1的轴向(指向可任选,但通常都将各平行的 Z Z Z轴均取为相同的指向)。这里需要说明的是:
  1. 当关节 i + 1 i+1 i+1是移动关节(即 σ i + 1 = 1 σ_{i+1}=1 σi+1=1)时,其轴线指向已知但位置不确定,这时选取 Z i Z_i Zi轴与 Z i + 1 Z_{i+1} Zi+1轴相交(若还有 σ i + 2 = 1 σ_{i+2}=1 σi+2=1,则取 Z i Z_i Zi轴和 Z i + 1 Z_{i+1} Zi+1轴都与 Z i + 2 Z_{i+2} Zi+2轴相交)

  2. 机器人杆 n n n的远端没有关节 n + 1 n+1 n+1,这时可选取 Z n Z_n Zn轴与 Z n − 1 Z_{n-1} Zn1轴重合

  • 第2步:确定各坐标系的原点 O O O基本原则是:选取原点 O i O_i Oi在过 Z i − 1 Z_{i-1} Zi1轴和 Z i Z_i Zi轴的公法线上(即 O i O_i Oi为此公法线与 Z i Z_i Zi轴的交点)。这里要说明的是:
  1. Z i − 1 Z_{i-1} Zi1轴与 Z i Z_i Zi轴平行时,经过两轴的公法线不唯一,确定 O i O_i Oi的方法是:若 Z i − 1 Z_{i-1} Zi1轴与 Z i Z_i Zi轴重合,取 O i = O i − 1 O_i=O_{i-1} Oi=Oi1·若 Z i − 1 Z_{i-1} Zi1轴与 Z i Z_i Zi轴平行且不重合,过 O i − 1 O_{i-1} Oi1点作 Z i − 1 Z_{i-1} Zi1轴和 Z i Z_i Zi轴的公法线,取此公法线与 Z i Z_i Zi轴的交点为 O i O_i Oi.

  2. 由于没有 Z − 1 Z_{-1} Z1轴,故无法按上述基本原则选取 O 0 O_0 O0。这时确定 O 0 O_0 O0的方法是:若 Z 0 Z_0 Z0 Z 1 Z_1 Z1相交时,取 O 0 = O 1 O_0=O_1 O0=O1;若 Z 0 Z_0 Z0 Z 1 Z_1 Z1不相交时,取 O 0 O_0 O0 Z 0 Z_0 Z0 Z 1 Z_1 Z1的公法线上。

  • 第3步:确定各坐标系的 X X X基本原则是:选取 X i X_i Xi轴沿过 Z i − 1 Z_{i-1} Zi1轴和 Z i Z_i Zi轴的公法线,方向从 Z i − 1 Z_{i-1} Zi1指向 Z i Z_i Zi.这里要说明的是:
  1. Z i − 1 Z_{i-1} Zi1轴与 Z i Z_i Zi轴重合时(这时 O i O_i Oi= O i − 1 O_{i-1} Oi1),选取 X i X_i Xi轴满足在初始位置时 X i X_i Xi轴与 X i − 1 X_{i-1} Xi1轴重合

  2. Z i − 1 Z_{i-1} Zi1轴与 Z i Z_i Zi轴相交且不重合时,选择 X i = ± ( Z i − 1 × Z i ) X_i=±(Z_{i-1}×Z_{i}) Xi=±(Zi1×Zi),通常使所有平行的 X X X轴均有相同的指向。

  3. i = 0 i=0 i=0时,由上所述知,这时 O 0 = O 1 O_0=O_1 O0=O1,或 O 0 O_0 O0 Z 0 Z_0 Z0轴和 Z 1 Z_1 Z1轴的公法线上,选取在初始位置时 X 0 X_0 X0轴与 X 1 X_1 X1轴重合。

  • 第4步:确定各坐标系的 Y Y Y基本原则是使 Y i = Z i × X i Y_i=Z_i×X_i Yi=Zi×Xi,即构成右手坐标系。

1.2 DH参数的定义

当用 DH 方法建立起各杆件坐标系后, 系 i − 1 i-1 i1 和系 i i i 间的相对位置和指向可用以下4 个参数表示:

(1)杆件长度 a i a_i ai , 定义为从 Z i − 1 Z_{i-1} Zi1 轴到 Z i Z_i Zi 轴的距离, 沿 X i X_i Xi轴的指向为正.

(2)杆件扭角 α i \alpha_i αi, 定义为从 Z i − 1 Z_{i-1} Zi1轴到 Z i Z_{i} Zi轴的转角, 绕 X i X_{i} Xi轴正向转动为正, 且规定 α i ∈ ( − π , π ] \alpha_{i}\in(-\pi, \pi] αi(π,π] .

(3)关节距离 d i d_i di , 定义为从 X i − 1 X_{i-1} Xi1 轴到 X i X_i Xi 轴的距离, 沿 Z i − 1 Z_{i-1} Zi1 轴的指向为正。

(4)关节转角 θ i \theta_i θi,定义为从 X i − 1 X_{i-1} Xi1 轴到 X i X_i Xi 轴的转角, 沿 Z i − 1 Z_{i-1} Zi1 轴的指向为正,且规定 θ i ∈ ( − π , π ] \theta_i\in(-\pi, \pi] θi(π,π] .

在这里插入图片描述

  1. a i a_i ai α i \alpha_i αi由杆 i i i的结构确定,是常数;而 d i d_i di θ i \theta_i θi与关节 i i i的类型有关,其中一个是常数,另一个是变量.当关节 i i i是转动关节(即 σ i = 0 σ_i=0 σi=0)时, d i d_i di是常数, θ i \theta_i θi是变量;当关节 i i i是移动关节(即 σ i = 1 σ_i=1 σi=1)时, d i d_i di是变量, θ i \theta_i θi是常数.通常称 q i = ( 1 − σ i ) θ i + σ i d i q_i=(1-σ_i)\theta_{i}+σ_id_i qi=(1σi)θi+σidi为关节变量, q i q_i qi刻画了系 i i i相对系 i − 1 i-1 i1的运动

  2. 利用D-H参数的概念可看出,在用D-H方法建立杆坐标系时,如果某一步不能按基本原则唯一确定时,总是在设置时力图使更多的D-H参数为零(在后面的章节中可看出,这样做可以极大地简化机器人运动学与动力学模型及计算的复杂性).可不失一般性地认为一些D-H参数为零。可不失一般性地认为修改的D-H参数满足

a 1 = σ 1 θ 1 十 ( 1 − σ 1 ) d 1 = 0   a n = α n = σ n θ n 十 ( 1 − σ n ) d n = 0 a_1=\sigma_1\theta_1十(1-\sigma_1)d_1=0\\\ a_n=\alpha_n=\sigma_n\theta_n十(1-\sigma_n)d_n=0 a1=σ1θ1(1σ1)d1=0 an=αn=σnθn(1σn)dn=0

  1. 有时为应用方便,也可不像前面所述那样设置系,而是将系 n n n设置在机器人末端夹持器的端点,或在其所夹持工具的端点

在这里插入图片描述

1.3 DH参数齐次变换矩阵

最终效果:

在这里插入图片描述

  • 第1步:沿 Z i − 1 Z_{i-1} Zi1轴移动 d i d_i di

  • 第2步:绕 Z i − 1 Z_{i-1} Zi1轴转动 θ i \theta_i θi

  • 第3步:沿 X i X_i Xi轴移动 a i a_i ai

  • 第4步:绕 X i X_i Xi轴转动 α i \alpha_i αi

列写DH参数表时描述其连接的 i − 1 i-1 i1坐标系和 i i i坐标系之间的关系。(i从1开始)

i − 1   A i = Trans ⁡ z ( d i ) Rot ⁡ z ( θ i ) Trans ⁡ x ( a i ) Rot ⁡ x ( α i ) = [ cos ⁡ ( θ i ) − sin ⁡ ( θ i ) cos ⁡ ( α i ) sin ⁡ ( θ i ) sin ⁡ ( α i ) a i cos ⁡ ( θ i ) sin ⁡ ( θ i ) cos ⁡ ( θ i ) cos ⁡ ( α i ) − cos ⁡ ( θ i ) sin ⁡ ( α i ) a i sin ⁡ ( θ i ) 0 sin ⁡ ( α i ) cos ⁡ ( α i ) d i 0 0 0 1 ] \begin{aligned} { }^{{i}-1} {~A}_{{i}} & =\operatorname{Trans}_{{z}}\left({d}_{{i}}\right) \operatorname{Rot}_{{z}}\left(\theta_{{i}}\right) \operatorname{Trans}_{{x}}\left({a}_{{i}}\right) \operatorname{Rot}_{{x}}\left(\alpha_{{i}}\right) \\ & =\left[\begin{array}{cccc} \cos (\theta_i) & -\sin (\theta_i) \cos (\alpha_i) & \sin (\theta_i) \sin (\alpha_i) & a_i\cos (\theta_i) & \\ \sin (\theta_i) & \cos (\theta_i) \cos (\alpha_i) & -\cos (\theta_i) \sin (\alpha_i) & a_i\sin (\theta_i) \\ 0 & \sin (\alpha_i) & \cos (\alpha_i) & d_i \\ 0 & 0 & 0 & 1 \end{array}\right] \end{aligned} i1 Ai=Transz(di)Rotz(θi)Transx(ai)Rotx(αi)= cos(θi)sin(θi)00sin(θi)cos(αi)cos(θi)cos(αi)sin(αi)0sin(θi)sin(αi)cos(θi)sin(αi)cos(αi)0aicos(θi)aisin(θi)di1
用Maple简单计算了一下:
在这里插入图片描述

1.4 检验

可以试着做一下这个题目,加深一下理解:

在这里插入图片描述

i i i a i a_i ai α i \alpha_i αi d i d_i di θ i \theta_i θi
10 − π / 2 -\pi/2 π/2 d 1 d_1 d1 θ 1 \theta_1 θ1(变量)
20 π / 2 \pi/2 π/2 d 2 d_2 d2 θ 2 \theta_2 θ2(变量)
300 d 3 d_3 d3(变量)0
40 − π / 2 -\pi/2 π/20 θ 4 \theta_4 θ4(变量)
50 π / 2 \pi/2 π/20 θ 5 \theta_5 θ5(变量)
600 d 6 d_6 d6 θ 6 \theta_6 θ6(变量)

2. 改进DH参数方法

i i i的近端是关节 i i i,远端是关节 i + 1 i+1 i+1.驱动杆 i i i的力(或力矩)是经由关节 i i i的轴线施加到杆 i i i上的,故关节 i i i的轴称为杆 i i i驱动轴(Driving Axis).对杆 i i i来说,关节 i + 1 i+1 i+1的作用是将杆i的运动和力传到杆 i + 1 i+1 i+1上,故关节 i + 1 i+1 i+1的轴称为杆 i i i传动轴(Transmitting Axis),在用D-H方法建立杆坐标系时,和杆 i i i固连的坐标系 i i i Z Z Z轴沿杆 i i i的传动轴轴向,

于是很自然想到传统建立DH参数坐标系方法的一个明显缺点是:对于树形结构或含闭链的机器人,有的杆上会存在多于一个传动轴,这时用D一H方法建立杆坐标系时会产生歧义

2.1 确定坐标系的方法

  • 第1步:确定 Z i Z_i Zi。基本原则是: Z i Z_i Zi轴沿关节 i i i的轴向

  • 第2步:确定原点 O i O_i Oi.基本原则是: O i O_i Oi在过 Z i Z_i Zi Z i + 1 Z_{i+1} Zi+1轴的公法线上。

  • 第3步:确定 X i X_i Xi。基本原则是: X X X轴沿过 Z i Z_i Zi Z i + 1 Z_{i+1} Zi+1轴的公法线方向,从 Z i Z_i Zi指向 Z i + 1 Z_{i+1} Zi+1·

  • 第4步:确定 Y i Y_i Yi。基本原则是: Y i = Z i × X i Y_i=Z_i\times X_i Yi=Zi×Xi,使坐标系为右手坐标系

2.2 DH参数的定义

杆件长度 a i a_i ai,定义为从 Z i − 1 Z_{i-1} Zi1 Z i Z_i Zi的距离,沿 X i − 1 X_{i-1} Xi1轴指向为正。

杆件扭角 α i \alpha_i αi,定义为从 Z i − 1 Z_{i-1} Zi1 Z i Z_i Zi的转角。绕 X i − 1 X_{i-1} Xi1轴正向转动为正。

关节距离 d i d_i di,定义为从 X i − 1 X_{i-1} Xi1 X i X_i Xi的距离,沿 Z i Z_i Zi轴指向为正。

关节转角 θ i \theta_i θi定义为从 X i − 1 X_{i-1} Xi1 X i X_i Xi的转角,绕 Z i Z_i Zi轴正向转动为正。

在这里插入图片描述

关于①和②也有《现代机器人学》的书这样描述(可能是现在主流的方法)*
①杆件长度 a i a_i ai,定义为从 Z i Z_{i} Zi Z i + 1 Z_{i+1} Zi+1的距离,沿 X i X_{i} Xi轴指向为正。
②杆件扭角 α i \alpha_i αi,定义为从 Z i Z_{i} Zi Z i + 1 Z_{i+1} Zi+1的转角。绕 X i X_{i} Xi轴正向转动为正。

需要注意的有以下几点:

①在建立驱动轴坐标系遇到不可应用基本原则的特殊情况时,也总是要使修改的D-H参数尽可能为零.特别是,当 i = 1 i=1 i=1 i = n i=n i=n时,可不失一般性地认为修改的D-H参数满足

a 1 = α 1 = σ 1 θ 1 十 ( 1 − σ 1 ) d 1 = σ n θ n 十 ( 1 − σ n ) d n = 0 a_1=\alpha_1=\sigma_1\theta_1十(1-\sigma_1)d_1=\sigma_n\theta_n十(1-\sigma_n)d_n=0 a1=α1=σ1θ1(1σ1)d1=σnθn(1σn)dn=0

2.3 改进DH参数齐次变换矩阵

最终效果:

在这里插入图片描述

列写DH参数表时描述其连接的 i − 1 i-1 i1坐标系和 i i i坐标系之间的关系。(i从1开始)

i − 1   A i = Trans ⁡ x ( a i ) Rot ⁡ x ( α i ) Trans ⁡ z ( d i ) Rot ⁡ z ( θ i ) = [ cos ⁡ ( θ i ) − sin ⁡ ( θ i ) 0 a i sin ⁡ ( θ i ) cos ⁡ ( α i ) cos ⁡ ( θ i ) cos ⁡ ( α i ) − sin ⁡ ( α i ) − d i sin ⁡ ( α i ) sin ⁡ ( θ i ) sin ⁡ ( α i ) cos ⁡ ( θ i ) sin ⁡ ( α i ) cos ⁡ ( α i ) d i cos ⁡ ( α i ) 0 0 0 1 ] \begin{aligned} { }^{{i}-1} {~A}_{{i}} & =\operatorname{Trans}_{{x}}\left({a}_{{i}}\right) \operatorname{Rot}_{{x}}\left(\alpha_{{i}}\right) \operatorname{Trans}_{{z}}\left({d}_{{i}}\right) \operatorname{Rot}_{{z}}\left(\theta_{{i}}\right) \\ & =\left[\begin{array}{cccc} \cos (\theta_i) & -\sin (\theta_i)& 0 & a_i \\ \sin (\theta_i)\cos(\alpha_i) & \cos (\theta_i) \cos (\alpha_i) & -\sin(\alpha_i) & -d_i\sin (\alpha_i) \\ \sin(\theta_i)\sin(\alpha_i) & \cos(\theta_i)\sin (\alpha_i) & \cos (\alpha_i) & d_i\cos(\alpha_i) \\ 0 & 0 & 0 & 1 \end{array}\right] \end{aligned} i1 Ai=Transx(ai)Rotx(αi)Transz(di)Rotz(θi)= cos(θi)sin(θi)cos(αi)sin(θi)sin(αi)0sin(θi)cos(θi)cos(αi)cos(θi)sin(αi)00sin(αi)cos(αi)0aidisin(αi)dicos(αi)1

如果按照《现代机器人学》的书对于 α \alpha α a a a的描述,齐次变换矩阵公式写作:
i − 1   A i = Trans ⁡ x ( a i − 1 ) Rot ⁡ x ( α i − 1 ) Trans ⁡ z ( d i ) Rot ⁡ z ( θ i ) = [ cos ⁡ ( θ i ) − sin ⁡ ( θ i ) 0 a i − 1 sin ⁡ ( θ i ) cos ⁡ ( α i − 1 ) cos ⁡ ( θ i ) cos ⁡ ( α i − 1 ) − sin ⁡ ( α i − 1 ) − d i sin ⁡ ( α i − 1 ) sin ⁡ ( θ i ) sin ⁡ ( α i − 1 ) cos ⁡ ( θ i ) sin ⁡ ( α i − 1 ) cos ⁡ ( α i − 1 ) d i cos ⁡ ( α i − 1 ) 0 0 0 1 ] \begin{aligned} { }^{{i}-1} {~A}_{{i}} & =\operatorname{Trans}_{{x}}\left({a}_{{i-1}}\right) \operatorname{Rot}_{{x}}\left(\alpha_{{i-1}}\right) \operatorname{Trans}_{{z}}\left({d}_{{i}}\right) \operatorname{Rot}_{{z}}\left(\theta_{{i}}\right) \\ & =\left[\begin{array}{cccc} \cos (\theta_i) & -\sin (\theta_i)& 0 & a_{i-1} \\ \sin (\theta_i)\cos(\alpha_{i-1}) & \cos (\theta_i) \cos (\alpha_{i-1}) & -\sin(\alpha_{i-1}) & -d_i\sin (\alpha_{i-1}) \\ \sin(\theta_i)\sin(\alpha_{i-1}) & \cos(\theta_i)\sin (\alpha_{i-1}) & \cos (\alpha_{i-1}) & d_i\cos(\alpha_{i-1}) \\ 0 & 0 & 0 & 1 \end{array}\right] \end{aligned} i1 Ai=Transx(ai1)Rotx(αi1)Transz(di)Rotz(θi)= cos(θi)sin(θi)cos(αi1)sin(θi)sin(αi1)0sin(θi)cos(θi)cos(αi1)cos(θi)sin(αi1)00sin(αi1)cos(αi1)0ai1disin(αi1)dicos(αi1)1

在这里插入图片描述

2.4 检验

可以试着做一下传统DH方法那个题目,加深一下理解,自己重新建一下坐标系,写一下改进的DH参数

在这里插入图片描述

i i i a i a_i ai α i \alpha_i αi d i d_i di θ i \theta_i θi
1000 θ 1 \theta_1 θ1(变量)
20 − π / 2 -\pi/2 π/2 d 2 d_2 d2 θ 2 \theta_2 θ2(变量)
30 − π / 2 -\pi/2 π/2 d 3 d_3 d3(变量) π \pi π
4000 θ 4 \theta_4 θ4(变量)
50 − π / 2 -\pi/2 π/20 θ 5 \theta_5 θ5(变量)
60 π / 2 \pi/2 π/20 θ 6 \theta_6 θ6(变量)
700 d 6 d_6 d60

另外关于改进的DH方法可以看我的这篇博客

机器人学DH参数及利用matlab符号运算推导

写点自己的理解,如果有错误请大家指出,参考的是《机器人动力学与控制》这本书。

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

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

相关文章

【iOS底层探索- Block原理分析-循环引用】

文章目录 前言准备工作1. Block的分类2. Block的内存分析捕获外部变量引用计数的变化堆栈释放的差异总结 3. Block的循环引用3.1 什么是循环引用?案例引入 循环引用解决方法1. 强弱共舞2. 手动中断循环引用3. 参数形式解决循环引用(block传参&#xff09…

汇编指令执行过程及CS与IP和DS寄存器关系与变化

内存指令及寄存器初始值: CS:2000H IP:0 DS:1000H AX:0 BX:0 上面在内存中的汇编指令是如何执行的? 验证: 在debug下用a指令先向内存写入下面指令,然后用u指令查看 mov ax,2000 mov ds,ax mov ax,[0008] mov ax,[0002] 在debug下用a指令先向内存写入下面指令,然后用u指…

Computer之Compilation:Cmake的简介、安装、案例应用之详细攻略

Computer之Compilation:Cmake的简介、安装、案例应用之详细攻略 目录 Cmake的简介 Cmake的安装 1、官方下载 2、执行安装程序,并按照提示进行安装 3、验证测试 Cmake的案例应用 Cmake的简介 CMake(Cross-platform Make)是一…

【嵌入式烧录/刷写文件】-1.7-将一个文本文件转换为Motorola S-record(S19/SREC/mot/SX)文件

案例背景(共5页精讲): 有如下两个文本文件(*.txt,*.ini,*.asc…)转换成Motorola S-record(S19/SREC/mot/SX)文件。常用于Key密钥,signature签名…的导入,或对一段数据计算出hex记录的最后一个字…

服务器性能优化方法

文章目录 服务器性能优化方法什么是服务器并发处理能力?什么方法衡量服务器的并发能力?怎么提高服务器的并发处理能力?**1,提高CPU并发计算能力**(1)多进程&多线程(2)减少进程切…

spring cloud搭建(eureka)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习新东西是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习…

力扣高频SQL50题(基础版)——第二天

力扣高频SQL50题(基础版)——第二天 1 文章浏览Ⅰ 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # Write your MySQL query statement below SELECT distinct author_id id FROM Views WHERE author_idviewer_id ORDER BY id asc1.3 运行截图 2 无…

基于MSP430送药小车 ----- 基础篇【2021年全国电赛(F题)】

文章目录 一、赛题1. 任务2. 要求3. 说明 二、构思 分析1. 引脚利用2. PID算法3. 灰度循迹及标志位4. 视觉模块5. 直角转弯、原地转向 三、硬件清单四、逻辑设计1. 近端送药2. 中端送药3. 远端送药 五、程序设计1. OpenMV2. 灰度循迹3. 装药卸药 总结 一、赛题 1. 任务 设计并…

Linux Socket 分包 和 粘包 问题 - 解决方案

分包和粘包在TCP网络编程中是非常常见的,分包会造成 接收端 接收的数据不全的问题,粘包会造成接收多余的数据的文件。 这里做一个举例,例如客户端A要发送字符串“helloworld”给服务器B,A是一次性发送,但TCP有可能会将…

A Unified Conditional Framework for Diffusion-based Image Restoration

A Unified Conditional Framework for Diffusion-based Image Restoration (Paper reading) Yi Zhang, CUHK, CN, arXiv2023, Cited:0, Code, Paper 1. 前言 最近,扩散概率模型(Diffusion Probabilistic Models,DPMs)在图像生成…

Android 自定义View 之 饼状进度条

饼状进度条 前言正文一、XML样式二、构造方法三、测量四、绘制① 绘制描边① 绘制进度 五、API方法六、使用七、源码 前言 前面写了圆环进度条,这次我们来写一个饼状进度条,首先看一下效果图: 正文 效果图感觉怎么样呢?下面我们…

GLTF/GLB模型轻量化简明教程

GLB 文件格式很方便,因为它包含渲染所需的所有文件,包括纹理。 但是,根据用途,你可能希望简化文件,因为它有时非常详细。 在本文中,我将使用 gltf-transform 来执行简化,并且假设你使用的是 Wi…

0x23 Read Version Information Service

0x23 Read Version Information Service ReadMemoryByAddress服务允许客户端通过提供的起始地址和要读取的内存大小向服务器请求内存数据。 ReadMemoryByAddress请求消息用于请求由参数memoryAddress和memorySize标识的服务器的内存数据。 用于memoryAddress和memorySize参数的…

SAP-MM-原始接受订单

业务场景: 供应商是强势供应商,产品紧缺,订购货物需要自提,运损也归我们公司,而且立刻付款,那么就不能按以往操作,等供应商送货,再开票 我们在付款,那么SAP如何快速实现…

JS 排序算法

在前端工作中算法不常用,但是排序可能会经常会用,下面学习几种常用算法。 引用借鉴:js的五种排序方法_js排序_木可生森的博客-CSDN博客 JS 常见的排序算法_js排序算法_东风过境F的博客-CSDN博客 1.冒泡排序: 思路:逐次…

儿童节快乐,基于CSS3绘制一个游乐场动效界面

0️⃣写在前面 让代码创造童话,共建快乐世界。六一儿童节——这是属于孩子们的节日,也是属于我们大人的节日。让我们一起「致童真」,用代码(HTMLCSSJS)创造出一个游乐场,让这个世界多一份快乐和惊喜&#x…

如何把vue项目部署服务器(宝塔面板)上

一,vue项目打包 首先我们把准备好的vue项目进行打包: 输入命令:npm run build 生成dist文件 二、进入宝塔管理界面,点击网站,然后点击添加站点 三。按下面输入 点设置 四。 输入好点添加,注意&#x…

【Python开发】FastAPI 04:响应模型

响应模型是指在接口调用之后,服务器返回给客户端的数据模型。这个数据模型可以是一个简单的字符串,也可以是一个复杂的数据结构,如 JSON 或 XML 格式的数据。本篇文章将详细介绍 FastAPI 中的响应模型。 目录 1 响应模型 1.1 response_mode…

HTML--Java EE

目录 一、认识 HTML 标签 二、HTML 文件基本结构 三、开发者工具 四、HTML常见标签 1.注释标签 2.标题标签(h1-h6) 3.段落标签(p) 4.换行标签 5.格式化标签 6.图片标签(img) 6.1网络路径 6.2绝…

Mysql索引慢解决

索引慢解决 explain关键字 explainSQL id执行顺序,id相同从上到下;id不同,如果是子查询id序号会递增,id值越大优先级越高;id相同和不同都存在时,id相同理解为一组,从上往下顺序执行&#xff0…