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

这篇具有很好参考价值的文章主要介绍了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

Matlab 使用 DH table 建立的 robot 和实际不符,MATLAB,matlab,robotics,机器人,工具箱
Matlab 使用 DH table 建立的 robot 和实际不符,MATLAB,matlab,robotics,机器人,工具箱

Matlab 使用 DH table 建立的 robot 和实际不符,MATLAB,matlab,robotics,机器人,工具箱

Siciliano

Matlab 使用 DH table 建立的 robot 和实际不符,MATLAB,matlab,robotics,机器人,工具箱
Matlab 使用 DH table 建立的 robot 和实际不符,MATLAB,matlab,robotics,机器人,工具箱
Matlab 使用 DH table 建立的 robot 和实际不符,MATLAB,matlab,robotics,机器人,工具箱文章来源地址https://www.toymoban.com/news/detail-794224.html

到了这里,关于Matlab 使用 DH table 建立的 robot 和实际不符的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机械臂仿真:使用matlab机器人工具箱与标准DH法,实现6自由度机械臂的仿真运动

    在了解了如何描述末端执行器的位姿之后,接下来我们就可以实现对机械臂的数学建模。建模的工具有很多种,本文介绍一种基于 标准DH参数法 与Matlab的Robotics Toolbox - Peter Corke库来实现此过程,并尝试实现6自由度机器人的仿真运动。 强烈推荐b站教学视频MATLAB机器人工具箱

    2024年04月13日
    浏览(60)
  • 标准DH坐标系,改进DH坐标系转换矩阵matlab函数代码2.0

    1.标准DH坐标系(Standard DH) 2.改进DH坐标(modified DH)

    2024年02月13日
    浏览(34)
  • 机器人学DH参数及利用matlab符号运算推导

    重新复习了一下机器人学DH参数,并且利用matlab符号运算进行了推导,验证了公式。 图中的 坐标系定义 : 坐标系 i {i} i 的 z z z 轴 z i z_i z i ​ 和关节轴线 i i i 共线,指向任意规定。 坐标系 i {i} i 的 x x x 轴 x i x_i x i ​ 和 a i a_i a i ​ 重合,由关节 i i i 指向关节 i + 1 i+1 i

    2024年02月02日
    浏览(50)
  • 《机器人学导论》根据DH参数表计算变换矩阵MATLAB代码

    PUMA560的DH参数表如下 根据参数表可以求出每一个连杆变换矩阵,求各连杆变换矩阵的MATLAB函数如下 带入DH表的最后三行参数,计算使用样例如下: 得到的结果为: 书上结果为  对比可得,代码计算结果与书上结果一致

    2024年02月06日
    浏览(48)
  • matlab lookup table使用方法

    在lookup tables的库里找到需要的模块 双击模块,设置table data和break points; 如果以坐标轴来理解,则break points是X轴,table data是Y轴; 以下图为例:若输入为2则输出为3; 备注:若输入为不等间距数值则采用lookup table dynamic模块。xdata、ydata的输入应连接到数组,且xdata的数组应该

    2024年02月05日
    浏览(36)
  • Matlab 机器人工具箱 (一)DH参数和正逆运动学

    作者为大三学生,本博客为边学习边使用,如有错误,请见谅。 在文章结束附加代码。 前置坐标系对应改进版:modified 后置坐标系对应标准版:standard 因为学习过程中大部分为前置坐标系,故本文仅讨论前置坐标系。 用的最习惯的是如下的代码: 参数‘alpha’代表扭转角

    2024年02月02日
    浏览(53)
  • Matlab中如何使用appdesigner设计工具建立一个简单的界面

    建立一个新的空白界面,matlab中输入 appdesigner ,打开app设计工具,新建一个空白界面 为了实现图像的输入和结构显示,以及功能的运转,我们首先拖入两个 图像 和三个 按钮 模块,为了美观,去除默认坐标区功能模块的x、y轴颜色和标签(在右侧检查器中更改) 布局完成后

    2024年02月05日
    浏览(38)
  • MATLAB矩阵的建立

    目录 1.前言 2.直接输入法建立矩阵  2.利用冒号表达式建立一个向量 3.linspace函数产生行向量 4.复数矩阵的建立  5.寄语 1.前言 本系列博客均以MATLAB程序设计教程(第三版)为基础而诞生。本博客对应书中第二章第三小节,但与书不一样的是,我改变了书中的内容。因为我觉得

    2024年02月10日
    浏览(32)
  • linux建立软链接——以matlab为例

    如果软件没有建立软连接,每次打开terminal就只是个黑黑的窗口,每次打开软件都要自己load一次,比较麻烦。 第一步: 在工作夹新建文档:project.cshrc 第二步: 在夹新建文档中写入:module laod matlab/R2019  同理,想软连接其他的软件,就module laod(软件名称) 然后再打开term

    2024年01月16日
    浏览(36)
  • 用MATLAB函数在图表中建立模型

    本节介绍如何使用Stateflow®图表创建模型,该图表调用两个MATLAB®函数meanstats和stdevstats。meanstats计算平均值,stdevstats计算vals中值的标准偏差,并将它们分别输出到Stateflow数据平均值和stdev。 请遵循以下步骤: 1.使用以下块创建新模型: 2 保存模块 3 然后双击chart模块进入 4.使

    2024年01月20日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包