matlab仿真建立机器臂模型并得到其D-H参数表

2023-05-16

最近老师要求我们在matlab中构造下图机器人的模型

其初步构型长这样

 

想要实现图示关节的构型,必须在正确的坐标位置绘制出圆柱体(为圆柱指定位置和z轴方向),那么就必须先获得机器臂各个关节的位姿(位置和姿态),引入D-H参数,利用D-H参数表构建各个连杆的齐次变换矩阵,便能够表示机器臂各个关节的位姿,画上圆柱,实现此机器臂的构型。

D-H法是建立机器人各个关节间的齐次变换矩阵的通用方法,规则简单、通用性强。

那么问题来了,如何获得此机器臂的D-H参数信息呢?

D-H法一般有两步走

一、先确定每个关节处坐标系的z轴

 

二、再确定每个关节处坐标系的x

关节x轴的确定由相邻关节z轴和自身的z轴决定,此时分为三种情况

  1. 两z轴异面
  2. 两z轴相交
  3. 两z轴平行(此时公垂线有无数条,可以有多种选择)

 有了以上知识,便能直接在机器臂的构型中画出每个关节的坐标

根据坐标系绘制D-H参数表

th

dz

dx

alf

Link1

0

0

0

0

Link2

0

56

0

90

Link3

90

0

43

0

Link4

0

0

43

0

Link5

-90

0

0

-90

Link6

0

45.5

0

0

Link7

0

50

0

0

      将机器人的基座建立在世界坐标系的原点处,其x、y、z轴的朝向也和世界坐标系的重合,link1表示世界坐标系到基座的变换,故link1的4个参数均为0。Link2将dz设置为56是为了将第一个连杆沿着第一个圆柱(圆柱也是依托在此关节处的坐标画出来的)的z轴移动56mm;将alf设置为90是为了让第一个圆柱处的坐标系的姿态绕x轴旋转90度,实现第一个圆柱到第二个圆柱的形态变化。

       同样道理,link3处先绕z轴顺时针旋转90度,使x轴竖直向上,再让其沿着x轴平移43mm,实现第二个圆柱到第三个圆柱的形态变化。

        同理link4。

        要将第4个关节变换到第五个关节的那种状态要先绕z轴旋转再绕z轴旋转然后再沿着z轴平移,但是D-H参数的顺序是有严格限制的,必须是“先绕z轴旋转,再沿z轴平移,再沿着x轴平移,再沿着x轴旋转”,故仅靠一次D-H变换无法实现。所以我在此引入多一个关节,让它实现先从前一个关节到过渡关节进行绕z轴旋转再绕x轴旋转,再从过渡关节到后一个关节进行沿z轴平移45.5mm,以此解决顺序问题。

此处引入过渡关节帮助变化,但在实际的机器人构型中并不想表示出来,所以在后续的绘图代码中只需在循环画图中不画出此关节即可。

for i=2:7
      
      Link(i).A=Link(i-1).A*Link(i).A;        %计算第i个关节的位姿根据上一关节的位姿计算下一关节的位姿
      Link(i).p= Link(i).A(:,4);
      Link(i).n= Link(i).A(:,1);
      Link(i).o= Link(i).A(:,2);
      Link(i).a= Link(i).A(:,3);
      Link(i).R=[Link(i).n(1:3),Link(i).o(1:3),Link(i).a(1:3)];
      Connect3D(Link(i-1).p,Link(i).p,'b',2); hold on;
      if i~=6
      DrawCylinder(Link(i-1).p, Link(i-1).R * Link(i).az, radius,len, joint_col); hold on;
      end
end

实现机器人构型,大功告成

如果将if条件注释掉,机器臂构型将长这样

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab仿真建立机器臂模型并得到其D-H参数表 的相关文章

随机推荐

  • 自动化测试_Mac安装python+selenium

    1 下载安装 参照下文 https blog csdn net kacylining article details 60587484 https www zhihu com question 30496889 a 下载 pip https
  • 使用Postman实现批量接口执行自动化测试

    一 创建文件夹 1 点击 34 Collections 34 TAB进入 xff0c 再次点击 New Collection 按钮创建文件夹 示例图文 xff1a 二 定义变量及调用执行测试 xff0c 方便灵活调用 1 定义全局变量 xf
  • 真人踩过的坑,告诉你避免自动化测试常犯的10个错误

    虽然从自己的错误中学习也不错 xff0c 但从别人的错误中学习总是更好的 作为一个自动化测试人员 xff0c 分享常见的容易犯的10个错误 xff0c 可以从中吸取教训 xff0c 引以为鉴 一 必要时才自动化 新人小王接到为Web应用程序
  • linux上传下载网速脚本

    bin sh LANG 61 34 34 while true do up time1 61 96 ifconfig 1 grep 34 bytes 34 awk 39 print 6 39 awk F 39 print 2 39 96 d
  • 部门刚来的00后太卷,还没2年班,跳到我们公司起薪20k....

    都说00后躺平了 xff0c 但是有一说一 xff0c 该卷的还是卷 这不 xff0c 前段时间我们公司来了个00后 xff0c 工作都没两年 xff0c 跳槽到我们公司起薪18K xff0c 都快接近我了 后来才知道人家是个卷王 xff0
  • 在阿里我是如何当面试官的

    前言 由于疫情关系 xff0c 最近看到很多测试同学的工作情况内心还是蛮触动的 xff08 降薪 变相裁员 辞退等 xff09 可能这并不是当下一个普遍的现象 xff0c 但仍然使我感受到前端这碗青春饭不好混 于此同时联系我内推的同学很多都
  • 3月面试了一个4年的测试,一问三不知,还反怼我...

    最近看了很多简历 xff0c 很多候选人年限不小 xff0c 但是做的都是一些非常传统的项目 xff0c 想着也不能通过简历就直接否定一个人 xff0c 何况现在大环境越来 越难 xff0c 大家找工作也不容易 xff0c 于是就打算见一见
  • Jenkins参数化构建自动化测试

    测试人员在进行支付类型相关的场景测试过程中 xff0c 需要真实支付的金额较大 xff0c 测试过程中又难以控制测试支付成本 xff0c 无法确切的向公司申请测试备用金 那么问题来了 xff1a 在无法避免自掏腰包进行巨额支付测试时 xff
  • 运维实战 kubernetes(k8s) 之 service

    64 TOC 运维实战 kubernetes k8s 之 service 1 service 介绍 Service可以看作是一组提供相同服务的Pod对外的访问接口 借助Service xff0c 应用可以方便地实现服务发现和负载均衡 ser
  • 企业运维之 openstack 的私有网络以及图形化配置

    企业运维之 openstack 的私有网络以及图形化 1 私有网络2 图形化配置虚拟机3 封装镜像4 上传镜像5 块存储6 kolla ansible 在上一篇的基础上 xff0c 来继续完善 openstack 的相关配置 先将控制节点启
  • AD 软件的学习--基本操作

    一 界面认识 如果某个空间消失了就在设置中的VIEW进行一个复位 device 元器件 xff1b connector 连接器 库所在文件夹 原理图大小设置 二 基本过程 放元器件时 xff0c 空格键进行旋转 先选好元件 xff0c 摆在
  • ROS学习记录(三)C++与Python文件的配置

    本篇文章依托于赵虚左老师的ROS课程 xff0c 实现HelloWorld打印 xff0c 并安装VScode环境 课程链接 讲义链接 文章目录 前言一 基本操作过程1 先创建一个工作空间 xff1b 2 再创建一个功能包 xff1b 二
  • STM32学习笔记-SMT32使用HAL库UART中断方式使用

    目录 1 引言 2 配置 3 流程 1 引言 近来需要使用蓝牙模块 xff0c 再了解到蓝牙模块等无线模块许多使用串口透传 xff0c 便决定在研究一下串口UART 的使用方法 由于用的板子种类每次都不一样 xff0c 有F103 有G0
  • Jetson Nano-USB和HDMI无响应,无法开机问题+jetson nano的烧录记录

    问题描述 xff1a Jetson Nano USB和HDMI没输出 xff0c 电源Led正常绿灯 xff0c 但端口无供电 xff0c 无法正常使用和开机 经查阅相关资料 xff0c 初步猜测应该是系统崩溃了 xff0c 导致usb驱动
  • expect/spawn小记

    usr bin expect set timeout 3 spawn ssh l root 10 239 81 207 expect 34 passwd 34 send 34 123456 r 34 interact
  • 人脸识别(了解知识)

    上节课我们学习了 xff0c OpenCV的基础知识和基本的读取数据方法 这节课 xff0c 让我们继续来了解人脸识别的知识 一 xff0c 图片灰度转换 OpenCV 中有数百种关于在不同色彩空间之间转换的方法 当前 xff0c 在计算机
  • 医疗实验室信息管理系统源码(云LIS)

    云LIS系统源码是一种医疗实验室信息管理系统 xff0c 提供全面的实验室信息管理解决方案 它的主要功能包括样本管理 检测流程管理 报告管理 质量控制 数据分析和仪器管理等 云LIS源码技术说明 xff1a 技术架构 xff1a Asp N
  • java 算法之快速排序

    1 快速排序是一种比较高效的排序算法 xff0c 采用 分而治之 的思想 xff0c 通过多次比较和交换来实现排序 xff0c 在一趟排序中把将要排序的数据分成两个独立的部分 xff0c 对这两部分进行排序使得其中一部分所有数据比另一部分都
  • 设置机器人的tf变换

    设置机器人的tf变换 转载自古月居 xff1a ROS探索总结 xff08 二十二 xff09 设置机器人的tf变换 1 什么是tf变换 ROS中的很多软件包都需要机器人发布tf变换树 xff0c 那么什么是tf变换树呢 xff1f 抽象的
  • matlab仿真建立机器臂模型并得到其D-H参数表

    最近老师要求我们在matlab中构造下图机器人的模型 其初步构型长这样 想要实现图示关节的构型 xff0c 必须在正确的坐标位置绘制出圆柱体 xff08 为圆柱指定位置和z轴方向 xff09 xff0c 那么就必须先获得机器臂各个关节的位姿