Matlab 使用 DH table 建立的 robot 和实际不符

机器人仿真

想借助 matlab robotics toolbox 来仿真机器人,但是直接输入自己的 DH table 显示出来的 robot 和实际不情况不符。

DH table 建立 robot

Build Manipulator Robot Using Kinematic DH Parameters

主要使用 setFixedTransform,DH table 中都是数值,不带变量

robot = rigidBodyTree;

bodies = cell(6,1);
joints = cell(6,1);
for i = 1:6
    bodies{i} = rigidBody(['body' num2str(i)]);
    joints{i} = rigidBodyJoint(['jnt' num2str(i)],"revolute");
    setFixedTransform(joints{i},dhparams(i,:),"dh");
    bodies{i}.Joint = joints{i};
    if i == 1 % Add first body to base
        addBody(robot,bodies{i},"base")
    else % Add current body to previous body by name
        addBody(robot,bodies{i},bodies{i-1}.Name)
    end
end

原因一 theta 角度中的 固定偏置 默认被忽略

setFixedTransform 会默认忽略 旋转关节 theta 角度中的固定偏置,看帮助文档
The theta input is ignored when specifying the fixed transformation between joints because that angle is dependent on the joint configuration.

感谢 matlab 论坛 的资源

由于固定忽略偏置,需要手动设置 home position,并在后续计算中,对 theta 角度手动加上这个偏置

robot.Bodies{2}.Joint.HomePosition=-pi/2;
robot.Bodies{4}.Joint.HomePosition=pi/2;

原因二 参数错了

检查 DH table 中的 角度 与 长度 是不是错了,尤其是长度部分的数值。

原因二 DH table 建立方式不符合matlab标准

检查 DH table 建立方法,常见有两种,参考下面两个作者的书

  • John J. Craig ----- Introduction to Robotics Mechanics and Control
  • Bruno Siciliano ----- Robotics, Modeling, Planning and Control

Matlab setFixedTransform 采用 Siciliano方法,帮助手册有写

  • A — Length of the common normal line between the two z-axes, which is perpendicular to both axes
  • α — Angle of rotation for the common normal
  • d — Offset along the z-axis in the normal direction, from parent to child
  • θ — Angle of rotation for the x-axis along the previous z-axis

Craig

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Siciliano

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智云谷再获资本市场青睐,完成数千万元A+轮融资

近日,深圳前海智云谷科技有限公司(以下简称“智云谷”)完成数千万元A轮融资,本轮融资由青松基金独家投资,多维资本担任独家融资财务顾问。本轮融资资金将用于扩大新技术研发投入、智能工厂扩产、加速产品交付&#xff…

K8S----YAML

kubernetes中资源可以使用YAML描述(如果您对YAML格式不了解,可以参考YAML语法),也可以使用JSON。其内容可以分为如下四个部分: typeMeta:对象类型的元信息,声明对象使用哪个API版本&#xff0c…

Vue-20、Vue监测数组改变

1、数组调用以下方法Vue可以监测到。 arr.push(); 向数组的末尾追加元素 const array [1,2,3] const result array.push(4) // array [1,2,3,4] // result 4arr.pop(); 删除末尾的元素 const array [a, b] array.pop() // b array.pop() // a array.pop() // undefi…

【Shell编程练习】编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态

系列文章目录 输出Hello World 通过位置变量创建 Linux 系统账户及密码 监控内存和磁盘容量,小于给定值时报警 猜大小 输入三个数并进行升序排序 系列文章目录编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态 编写脚本测试 192.…

opencv_角点检测

文章内容 一个opencv检测角点的程序 运行效果 #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream>using namespace cv; using namespace std;void detectCorners(M…

AI数字人短视频变现项目:打造短视频运营变现新模式

如今&#xff0c;随着科技的快速发展和人们对数字内容的增长需求&#xff0c;短视频成为了互联网用户最喜爱的娱乐方式之一。然而&#xff0c;在这个竞争激烈的市场中&#xff0c;如何为短视频创作者提供更多的变现机会成为了一个重要的问题。AI数字人短视频变现项目的出现&…

【RT-DETR改进涨点】MPDIoU、InnerMPDIoU损失函数中的No.1(包含二次创新)

前言 大家好&#xff0c;我是Snu77&#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进&#xff0c;内容持续更新&#xff0c;每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本&#xff0c;同时修改内容也支持Re…

深入解析多目标优化技术:理论、实践与优化

本文深入探讨了多目标优化技术及其在机器学习和深度学习中的应用&#xff0c;特别聚焦于遗传算法的原理和实践应用。我们从多目标优化的基础概念、常见算法、以及面临的挑战入手&#xff0c;进而详细介绍遗传算法的工作原理、Python代码实现&#xff0c;以及如何应用于实际的机…

【React源码 - Diff算法】

介绍 在React学习中&#xff0c;Diff算法(协调算法)&#xff0c;想必我们并不陌生&#xff0c;简单来说就是一个对比新老节点寻找差异&#xff0c;然后找出最小的一个变化集&#xff0c;最后对这个最小变化集进行最小的DOM操作&#xff0c;本文将从源码来分析在React(17.0.2)中…

四、任意文件读取漏洞

一、介绍 解释&#xff1a;任意文件读取漏洞就其本身来说就是&#xff0c;攻击者绕过网站防御者设置的防御&#xff0c;读取到了正常使用者不应该读取到的内容。网站开发者使用不同的语言&#xff0c;任意文件读取漏洞利用方式就不同。 二、不同开发语言的不同漏洞点 1.PHP …

韶音、南卡、Oladance开放式耳机值得买吗?超强机型对比环节!

​虽然很多耳机音频爱好者最近都爱上了使用开放式耳机&#xff0c;但是作为一个7年音频数码测评的老司机&#xff0c;我还是要提醒一下&#xff0c;目前有很多的开放式耳机过分强调外观颜值设计&#xff0c;在音质体验和佩戴舒适性上的效果极差&#xff0c;还会有很多漏音、破音…

cesium设置近地天空盒 多种效果(附天空盒原图)

效果&#xff08;天空盒原图已放云盘在文章最后&#xff09;&#xff1a; 为了效果逼真设置了当达到一定高度时就恢复系统默认星空天空盒所&#xff0c;以设置了两个变量 一个是近地的天空盒子一个是当超过一定高度时用系统默认的 let currSkyBox; // 当前生效的Skybox let de…

OpenCV——图像按位运算

目录 一、算法概述1、逻辑运算2、函数解析3、用途 二、代码实现三、结果展示 OpenCV——图像按位运算由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫。 一、算法概述 1、逻辑运算 OpenCV4 针对两个图像之…

Android studio 简单登录APP设计

一、登录界面: 二、xml布局设计: <LinearLayoutandroid:id="@+id/linearLayout"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:layout_editor_absoluteX="…

二、基础篇 vue计算属性和侦听器

计算属性 模板内的表达式非常便利&#xff0c;但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如&#xff1a; <div id"example">{{ message.split().reverse().join() }} </div> 在这个地方&#xff0c;模板不…

Scratch图形化编程如何快速从入门到精通

Scratch是一款由麻省理工学院媒体实验室开发的图形化编程工具&#xff0c;它以拖拽式的编程方式&#xff0c;让编程变得简单易懂&#xff0c;适合所有年龄段的人学习。无论是初学者还是有一定编程基础的人&#xff0c;都可以通过Scratch快速上手并深入学习。下面&#xff0c;65…

徐州数字孪生元宇宙赋能工业智能制造,助力传统制造业数字化转型

徐州数字孪生元宇宙赋能工业智能制造&#xff0c;助力传统制造业数字化转型。在徐州市制造业企业数字化转型的过程中&#xff0c;数字孪生技术的应用已经取得了显著成效。一方面&#xff0c;企业的生产效率得到了显著提高&#xff0c;产品质量也得到了有效保障。另一方面&#…

Postgresql 12.2 + PostGIS 3.0.1 安装部署

参考文档&#xff1a; 按照该文档安装即可&#xff0c;如果遇到报错&#xff0c;可以参考下文&#xff1a; https://blog.csdn.net/weixin_41166785/article/details/127674169 所需的安装包 在资源里面&#xff08;我看下怎么可以不用积分下载&#xff09; 1、no acceptable…

数据结构与算法-二叉树-后序遍历

二叉树的后续遍历 给你一棵二叉树的根节点 root &#xff0c;返回其节点值的 后序遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[3,2,1]递归版本实现 /*** Definition for a binary tree node.* public class TreeNode {* int val;*…

萌宠宠物用品商城设计与制作-计算机毕业设计源码79718

摘要 在社会快速发展的影响下&#xff0c;宠物商城继续发展&#xff0c;大大增加了宠物用品的数量、多样性、质量等等的要求&#xff0c;使宠物用品商城的管理和运营比过去十年更加困难。依照这一现实为基础&#xff0c;设计一个快捷而又方便的萌宠宠物用品商城是一项十分重要并…