刚来新公司不久,部门给安排了新人作业,我被分到的任务是求标准6轴机器人的正反解,以及利用就近原则选择最优解。从今天开始,逐步将这部分内容总结出来;

本文以及后续文章均使用改进DH法;

连杆坐标系:

坐标系的建立方法(摘自机器人学导论):

  1. 找出各个关节轴,并标出这些轴线的延长线;
  2. 找出关节轴i和i+1之间的公垂线或者关键轴i和i+1的交点,以关节轴i和i+1的交点或者公垂线与关节轴i的交点作为连杆坐标系{i}的原点;
  3. 规定Z(i)轴沿关节轴i的指向;
  4. 规定X(i)轴沿公垂线的指向,如果关节轴i和i+1相交,则规定X(i)轴垂直于关节轴i和i+1所在的平面;
  5. 按照右手定则确定Y(i)轴;
  6. 当第一个关节变量为0时,规定坐标系{0}和{1}重合;对于坐标系{N},其原点和X(n)的方向可以任意选取。但是在选取时,通常尽量使连杆参数为0;

建立连杆坐标系:

公司的工业机器人都是6轴,并且都是旋转轴,基坐标系位于1轴轴线和2轴x负方向交点,4,5,6轴轴线交于一点,对其建立改进DH坐标系如下图所示(不知道为什么变形了,后面再替换原图):

MDH参数表:

MDH的确认方法(摘自机器人学导论):

a(i) = 沿X(i)轴,从Z(i)移动到Z(i+1)的距离;
alpha(i) = 绕X(i)轴,从Z(i)移动到Z(i+1)的角度;
d(i) = 沿Z(i)轴,从X(i-1)移动到X(i)的距离;
theta(i) = 绕Z(i)轴,从X(i-1)移动到X(i)的角度;

MDH参数表:

按照上述规则,形成的MDH参数表如下:

标准6轴机器人正反解(1)-坐标系和MDH参数表的更多相关文章

  1. c/c++ 标准库 插入迭代器 详解

    标准库 插入迭代器 详解 插入迭代器作用:copy等函数不能改变容器的大小,所以有时copy先容器是个空的容器,如果不使用插入迭代器,是无法使用copy等函数的. 例如下面的代码就是错误的: list ...

  2. c/c++ 标准库 bind 函数 详解

    标准库 bind 函数 详解 bind函数:接收一个函数名作为参数,生成一个新的函数. auto newCallable = bind(callbale, arg_list); arg_list中的参 ...

  3. ES6标准入门之变量的解构赋值简单解说

    首先我们来看一看解构的概念,在ES6标准下,允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称作解构,简而言之粗糙的理解就是变相赋值. 解构赋值的规则是,只要等号右边的值不是对象或者数组 ...

  4. C++标准库vector类型详解

    Vector简介 vector是定义在C++标准模板库,它是一个多功能.能够操作多种数据结构和算法的模板类(关于模板类我们后面会介绍,如何创建自己的模板类).vector是一个容器,能够像容器一样存放 ...

  5. 继续node爬虫 — 百行代码自制自动AC机器人日解千题攻占HDOJ

    前言 不说话,先猛戳 Ranklist 看我排名. 这是用 node 自动刷题大概半天的 "战绩",本文就来为大家简单讲解下如何用 node 做一个 "自动AC机&quo ...

  6. C++的iostream标准库介绍+使用详解(转)

    0 为什么需要iostream 我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的 stdio库不同,它从一开始就是 ...

  7. Python标准异常和异常处理详解

    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 1.异常处理: 本站Python教程会具体介绍. 2.断言(Asserti ...

  8. 数据加密标准(DES)详解

    1 简介 1.1 历史 DES(Data Encryption Standard)是由IBM公司在1974年提出的加密算法,在1977年被NIST定位数据加密标准.随后的很多年里,DES都是最流行的对 ...

  9. Linux服务器架设篇,DNS服务器(三),正反解区域的配置

    一.大体架构 DNS服务器其实只有一个"真正"的配置文件,即 /etc/named.conf .其他的配置文件都是依据此配置展开的.每个域都需要两个配置文件,即正解文件和反解文件. ...

随机推荐

  1. HTML5 使用localstorage 本地存储

    HTML 本地存储介绍 最早的 Cookies 自然是大家都知道,问题主要就是太小,大概也就 4KB 的样子,而且 IE6 只支持每个域名20个cookies,太少了.优势就是大家都支持,而且支持得还 ...

  2. C#导出和导入Excel模板功能

    引用  Aspose.Cells; 基于WinForm 导入 private void btn_excel_input_Click(object sender, EventArgs e) { try ...

  3. Linux 之 软件安装

    单纯一个操作系统是没有办法满足我们的需求的,所以需要各种安装各种软件来满足我们日常工作.生活需求.一般情况下,Linux常用的安装方式有两种,以CentOS为例: 1.从源代码安装软件 将软件源代码编 ...

  4. Springboot整合cxf后不能访问controller,不能访问接口

    参考版本 springboot 1.4.X <=========> cxf-spring-boot-starter-jaxws 3.1.X springboot 1.5.X <=== ...

  5. 运输层5——TCP报文段的首部格式

    写在前面:本文章是针对<计算机网络第七版>的学习笔记 运输层1--运输层协议概述 运输层2--用户数据报协议UDP 运输层3--传输控制协议TCP概述 运输层4--TCP可靠运输的工作原理 ...

  6. centos6.5上安装git

    亲测有效 https://blog.csdn.net/wxy540843763/article/details/80197301

  7. Using Microsoft Visual C++ DLLs with C++Builder

    Using Microsoft Visual C++ DLLs with C++Builder As powerful as C++Builder is, the majority of DLLs d ...

  8. evpp http编程

    server.RegisterHandler("/fileupload", [](evpp::EventLoop* loop, const evpp::http::ContextP ...

  9. vue中watch的详细用法(转载)

    在vue中,使用watch来响应数据的变化.watch的用法大致有三种.下面代码是watch的一种简单的用法: <input type="text" v-model=&quo ...

  10. ModelAndView返回Json格式的数据

    第一种方式: 1.自定义类JacksonUtil.java,类中实现tojson方法(即将数据转成json类型): 2.自定义类JsonView 继承 AbstractView 3.xml中配置bea ...