机器人标准DH(SDH)与改进DH(MDH)

机器人标准DH(SDH)与改进DH(MDH)
首先说一下为什么要写这一篇博客,就是为了提醒大家要明确区分标准DH和改进DH。很多机器人初学者只知道用DH法建立串联机器人连杆坐标系,然后在看书或者使用DH的时候很糊涂的就模糊了这标准DH和改进DH的区别,最大的坑就是:一些比较老的机器人学教科书用的是标准DH,而现在比较新的机器人书或者说我们大部分用的都是改进DH,这就导致老的教科书里面的一些公式推导和新的网上找的代码不一致,就会比较麻烦。

一:改进DH法

建立连杆坐标系:

使用改进D-H参数,将

坐标系定义在i

连杆的前端关节:

二:标准DH与改进DH法的区别

我们知道一个连杆有两端,一端离基座近,一端离基座远。简单的来说,标准DH将坐标系i建立在连杆i离基座近的一端,改进DH建立在离基座远的一端。

2.1 机器人连杆与关节的标号

先标号,再建系。

连杆编号:基座为杆0,从基座往后依次定义为杆1,杆2,…,杆i;

关节编号:杆i离基座近的一端(近端)的关节为关节i,远的一端(远端)为关节i+1。

为便于理解,这里我把连杆的近端用绿色表示,远端用橙色表示,且远端驱动近端转动。大家只要记住一句话,连杆近端关节的标号和连杆标号是一致的

图1连杆和关节标号

2.2 两种建系方法的区别

区别一:连杆坐标系建立的位置不同。SDH方法将连杆i的坐标系固定在连杆的远端,MDH方法把连杆i的坐标系固定在连杆的近端。

(a)SDH                                (b)MDH

图2 建系方法的不同

区别二:执行变换的的顺序不同。按照SDH方法变换时四个参数相乘的顺序依次为d—>θ—>a—>α,而MDH方法则按照α—>a—>θ—>d(正好与SDH相反)。

三:为什么要用改进DH法,而不选标准DH法

对于树形结构或者闭链机构的机器人来说,按照SDH方法建立的连杆坐标系会产生歧义,因为SDH的建系原则是把连杆i的坐标系建立在连杆的远端,如图3(a)所示,这就导致连杆0上同时出现了两个坐标系。而MDH把连杆坐标系建立在每个连杆的近端,则不会坐标系重合的情况,如图3(b)所示,这就克服了SDH方法建系的缺点。

(a)SDH                                               (b)MDH

图3 坐标系分配的不同

四.总结

1.SDH适合应用于开链结构的机器人

2.当使用SDH表示树状或闭链结构的机器人时,会产生歧义;

3.MDH法对开链、树状、闭链结构的机器人都适用,推荐使用。

五.我遇到的坑

在下面这本教材里面

显然用的是DH参数法,因此在后面推导几何雅可比矩阵的时候

提到

z_{i-1}

p_{i-1}

分别由

R^0_{i-1}

T^0_{i-1}

得到:

但是如果你用的是改进DH参数法进行建模,核心公式(3.30)应该是:

原因是原本的标准DH的坐标系

i-1

对应的z轴

z_{i-1}

就是改进的DH的的坐标系

i

的z轴

z_i

下面是基于改进DH计算几何雅可比的代码
 

function J_geo = geometric_jacobian_from_q_corrected(q) % 根据关节角度计算几何雅可比矩阵,匹配MATLAB工具箱的顺序 % 输入: q - 7×1关节角向量 (弧度) % 输出: J_geo - 6×7几何雅可比矩阵 % Franka Panda的DH参数 (Modified DH) % 格式: [alpha, a, d, theta] MDH = [0, 0, 0.333, q(1); -pi/2, 0, 0, q(2); pi/2, 0, 0.316, q(3); pi/2, 0.0825, 0, q(4); -pi/2, -0.0825,0.384, q(5); pi/2, 0, 0, q(6); pi/2, 0.088, 0.107, q(7)]; % 计算每个关节的变换矩阵和位置 n = 7; T = eye(4); T_all = cell(n, 1); p_all = zeros(3, n); z_all = zeros(3, n); for i = 1:n alpha = MDH(i, 1); a = MDH(i, 2); d = MDH(i, 3); theta = MDH(i, 4); % 改进DH变换矩阵 Ti = [cos(theta), -sin(theta), 0, a; sin(theta)*cos(alpha), cos(theta)*cos(alpha), -sin(alpha), -d*sin(alpha); sin(theta)*sin(alpha), cos(theta)*sin(alpha), cos(alpha), d*cos(alpha); 0, 0, 0, 1]; T = T * Ti; T_all{i} = T; p_all(:, i) = T(1:3, 4); z_all(:, i) = T(1:3, 3); end % 末端执行器位置 p_ee = p_all(:, end); % 计算几何雅可比 - 修正关节编号对应关系 J_geo = zeros(6, n); for i = 1:n if i == 1 % 关节1:使用基坐标系 p_i = [0; 0; 0]; z_i = [0; 0; 1]; else % 关节i:使用连杆i-1的坐标系 p_i = p_all(:, i); % 改进DH:使用i z_i = z_all(:, i); % 改进DH:使用i end % MATLAB顺序:线速度在前,角速度在后 J_geo(4:6, i) = z_i; J_geo(1:3, i) = cross(z_i, p_ee - p_i); end end function T = forward_kinematics_mdh(q) % 改进DH正运动学 MDH = [0, 0, 0.333, q(1); -pi/2, 0, 0, q(2); pi/2, 0, 0.316, q(3); pi/2, 0.0825, 0, q(4); -pi/2, -0.0825,0.384, q(5); pi/2, 0, 0, q(6); pi/2, 0.088, 0.107, q(7)]; T = eye(4); for i = 1:7 alpha = MDH(i, 1); a = MDH(i, 2); d = MDH(i, 3); theta = MDH(i, 4); Ti = [cos(theta), -sin(theta), 0, a; sin(theta)*cos(alpha), cos(theta)*cos(alpha), -sin(alpha), -d*sin(alpha); sin(theta)*sin(alpha), cos(theta)*sin(alpha), cos(alpha), d*cos(alpha); 0, 0, 0, 1]; T = T * Ti; end end % 

Read more

2026实测|深扒国内7款热门AI PPT神器:谁在裸泳,谁是真香?

2026实测|深扒国内7款热门AI PPT神器:谁在裸泳,谁是真香?

文章目录 * 一、咔片 PPT * 二、笔格 PPT * 三、 7 牛 AI PPT * 四、百度文库 PPT * 五、Kimi PPT * 六、讯飞智文 * 七、让 AI PPT 效率翻倍的实用技巧 * 八、结语 大家好,我是小岛。 还在为做 PPT 熬夜掉发?现在的 AI 工具已经卷到“秒出大纲、自动配图、动态交互”了!但工具越多,坑也越多——有的逻辑混乱,有的排版辣眼,有的收费还死贵。 本期,我耗时两周,深度实测国内 7 款热门 AI

为什么你的AIGC系统延迟居高不下?C++层级优化才是根本解法

第一章:AIGC系统延迟问题的根源剖析 在当前AIGC(AI Generated Content)系统广泛应用于文本、图像和音频生成的背景下,延迟问题已成为影响用户体验的核心瓶颈。系统延迟不仅体现在响应时间上,还涉及模型推理、数据传输与资源调度等多个环节。 模型推理复杂度高 现代生成式AI模型通常包含数十亿参数,导致单次前向传播耗时较长。以Transformer架构为例,自注意力机制的时间复杂度为 $O(n^2)$,输入序列越长,计算开销呈平方级增长。 # 示例:简化版自注意力计算(仅供说明) import torch def scaled_dot_product_attention(q, k, v): d_k = q.size(-1) scores = torch.matmul(q, k.transpose(-2, -1)) / torch.sqrt(

WhisperX语音识别工具:为什么它比传统方案更值得选择?

WhisperX语音识别工具:为什么它比传统方案更值得选择? 【免费下载链接】whisperXm-bain/whisperX: 是一个用于实现语音识别和语音合成的 JavaScript 库。适合在需要进行语音识别和语音合成的网页中使用。特点是提供了一种简单、易用的 API,支持多种语音识别和语音合成引擎,并且能够自定义语音识别和语音合成的行为。 项目地址: https://gitcode.com/gh_mirrors/wh/whisperX 在当今数字化时代,语音识别技术正迅速改变着我们处理信息的方式。WhisperX作为基于OpenAI Whisper的增强版本,不仅在识别准确率上有所突破,更在处理效率上实现了质的飞跃。本文将深入探讨这款工具的核心价值及其在实际应用中的独特优势。 为什么需要更智能的语音识别? 传统的语音识别系统往往面临多个挑战:处理速度慢、时间戳精度不足、多说话人识别困难等。WhisperX通过创新的技术架构,有效解决了这些问题,为用户提供了前所未有的语音转写体验。 WhisperX语音识别完整流程:从音频输入到精准时间戳输出 核心功能深度解析 批

圣女司幼幽-造相Z-Turbo实战案例:10分钟搭建个人向牧神记AI画师工作流

圣女司幼幽-造相Z-Turbo实战案例:10分钟搭建个人向牧神记AI画师工作流 1. 快速了解圣女司幼幽-造相Z-Turbo 圣女司幼幽-造相Z-Turbo是一个专门用于生成《牧神记》中圣女司幼幽角色图像的AI模型。这个模型基于Z-Image-Turbo的LoRA版本进行训练,能够根据文字描述快速生成符合角色设定的高质量图片。 对于喜欢《牧神记》的读者和创作者来说,这个工具可以帮助你: * 快速生成心目中的圣女司幼幽形象 * 为同人创作提供视觉素材 * 探索不同场景下的角色表现 * 节省寻找合适插图的时间 整个部署和使用过程非常简单,即使没有技术背景也能在10分钟内完成搭建并开始生成图片。 2. 环境准备与快速部署 2.1 获取镜像并启动服务 首先需要获取圣女司幼幽-造相Z-Turbo的镜像文件。这个镜像已经预装了所有必要的组件,包括Xinference推理框架和Gradio可视化界面。 启动服务后,系统会自动加载模型文件。由于模型文件较大,初次加载可能需要一些时间,请耐心等待。 2.2 检查服务状态 服务启动后,可以通过以下命令检查是否正常运行: