DH参数(Denavit-Hartenberg parameters)

为什么

  • 机械臂关节通常只关于一个轴进行移动(旋转或者平移),两段手臂的坐标系之间的变换可以由原本的6变量(3位移+3旋转)简化成4变量(DH参数)
  • 关节自由度高(例如手腕可绕3个轴旋转),也可以分解成多个单轴

是什么

在这里插入图片描述
图源《Introduction to Robotics Mechanics and Control》

四个参数中,有两个表示关节轴相对前一关节轴的变化,另外两个表示关节沿轴的运动。

轴到轴的变化

设两个相邻关节的轴 i − 1 _{i-1} i1和轴 i _{i} i的公共垂线为 l l l,方向为 i − 1 {i-1} i1 i {i} i,轴的变化可以表示为俩个参数

  • 轴间距离 a i − 1 a_{i-1} ai1
  • i − 1 _{i-1} i1旋转到轴 i _i i的角度 α i − 1 \alpha_{i-1} αi1,沿着 l l l右手系旋转

关节的运动

  • 沿轴平移 d i d_i di
  • 绕轴旋转 θ i \theta_i θi

通常其中一个为常数,另一个为变量,根据不同关节类型而定

坐标系

将轴 i − 1 _{i-1} i1到轴 i _{i} i中间的连接称为 l i n k i − 1 link_{i-1} linki1,靠近轴 i _{i} i的称为前端,靠近轴 i − 1 _{i-1} i1的称为后端,则有两种坐标系建立的方式,对应不同的变换矩阵 T i i − 1 T^{i-1}_i Tii1,坐标系 i i i i − 1 i-1 i1的变换。

设在后端

垂线 l l l设为 X i − 1 X_{i-1} Xi1,轴 i − 1 _{i-1} i1设为 Z i − 1 Z_{i-1} Zi1,转换和( a i − 1 , α i − 1 , d i , θ i a_{i-1}, \alpha_{i-1},d_i,\theta_i ai1,αi1,di,θi)有关

T i i − 1 = [ c θ i − s θ i 0 a i − 1 s θ i c α i − 1 c θ i c α i − 1 − s α i − 1 − s α i − 1 d i s θ i s α i − 1 c θ i s α i − 1 c α i − 1 c α i − 1 d i 0 0 0 1 ] T^{i-1}_{i} = \left[ \begin{array}{c} c\theta_i & -s\theta_i & 0 & a_{i-1} \\ s\theta_i c\alpha_{i-1} & c\theta_i c\alpha_{i-1} & -s\alpha_{i-1} & -s\alpha_{i-1} d_i \\ s\theta_i s\alpha_{i-1} & c\theta_i s\alpha_{i-1} & c\alpha_{i-1} & c\alpha_{i-1} d_i \\ 0 & 0 & 0 & 1\\ \end{array} \right] Tii1=cθisθicαi1sθisαi10sθicθicαi1cθisαi100sαi1cαi10ai1sαi1dicαi1di1
在这里插入图片描述
图源《Introduction to Robotics Mechanics and Control》

设在前端

同样垂线 l l l设为 X i − 1 X_{i-1} Xi1,但是将轴 i _{i} i设为 Z i − 1 Z_{i-1} Zi1,转换和( a i , α i , d i , θ i a_i, \alpha_i,d_i,\theta_i ai,αi,di,θi)有关

T i i − 1 = [ c θ i − s θ i c α i s θ i s α i a i c θ i s θ i c θ i c α i − c θ i s α i a i s θ i 0 s α i c α i d i 0 0 0 1 ] T^{i-1}_{i} = \left[ \begin{array}{c} c\theta_i & -s\theta_i c\alpha_i & s\theta_i s\alpha_i & a_i c\theta_i \\ s\theta_i & c\theta_i c\alpha_i & -c\theta_i s\alpha_i & a_i s\theta_i \\ 0 & s\alpha_i & c\alpha_i & d_i \\ 0 & 0 & 0 & 1\\ \end{array} \right] Tii1=cθisθi00sθicαicθicαisαi0sθisαicθisαicαi0aicθiaisθidi1
在这里插入图片描述
图源《Robotics Vision And Control》

怎么用

参数表

求机械臂运动学正解(forward kinematics)
将多个关节串联起来,获得末端位姿

例:UR5

ur5 ros github 参数 (以设在前端的方式建立坐标)

i a i a_i ai α i \alpha_i αi d i d_i di θ i \theta_i θi
101.5707963270.089159 θ 1 \theta_1 θ1
2-0.4250000 θ 2 \theta_2 θ2
3-0.3922500 θ 3 \theta_3 θ3
401.5707963270.10915 θ 4 \theta_4 θ4
50-1.5707963270.09465 θ 5 \theta_5 θ5
6000.0823 θ 6 \theta_6 θ6

q_home_offset = [0, -1.570796327, 0, -1.570796327, 0, 0]
joint_direction = [-1, -1, 1, 1, 1, 1]

末端位姿 T 6 0 = T 1 0 T 2 1 T 3 2 T 4 3 T 5 4 T 6 5 T^{0}_{6} = T^{0}_{1}T^{1}_{2}T^{2}_{3}T^{3}_{4}T^{4}_{5}T^{5}_{6} T60=T10T21T32T43T54T65

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

使用kaptcha生成验证码

前言 说到生成验证码&#xff0c;我们第一个想到的就是kaptcha包&#xff0c;因为这个包已经存在很久了&#xff0c;比较稳定&#xff0c;用的人也多网上的示例代码多&#xff0c;而且很多项目脚手架做验证时也都是用这个框架的。 代码 添加依赖 <!-- 验证码 --><d…

springboot集成kaptcha验证码

导入依赖 <!-- kaptcha 验证码开源组件 --> <dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version> </dependency>kaptcha.xml <?xml version"1.0&q…

kaptcha的使用

目录 一、spring使用kaptcha 1导入依赖 2. 配置文件设置 3.编写请求验证码 4.使用 二、springboot的使用 一、spring使用kaptcha 1导入依赖 <!--验证码--><dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</arti…

图片验证码kaptcha

1.效果展示&#xff1a; 2.实现方式 1&#xff09;引入依赖 <!--验证码--> <dependency><groupId>com.github.axet</groupId><artifactId>kaptcha</artifactId><version>0.0.9<</version> </dependency>2&#xff…

Kaptcha 使用教程

项目结构&#xff1a; SpringBoot 2.7 Vue2 不想了解的&#xff0c;直接跳转到 快速上手 目录 Kaptcha 是什么&#xff1f; Kaptcha 是一个可高度配置的实用验证码生成工具&#xff0c;可自由配置的选项如&#xff1a; 验证码的字体验证码字体的大小验证码字体的字体颜色验证…

Kaptcha验证码实现

文章目录 实现流程用户认证 实现流程 1.先引用了google的验证码生成器(Kaptcha) <dependency><groupId>com.github.axet</groupId><artifactId>kaptcha</artifactId><version>0.0.9</version></dependency>2.编写Kaptcha的配…

SpringBoot整合Kaptcha

目录 前言 1.Kaptcha简介 2.Kaptcha参数 实现步骤 1.引入依赖 2.配置类 3.配置文件 4.controller类 5.结果展示 前言 1.Kaptcha简介 Kaptcha是Google提供的一个图形验证码插件&#xff0c;可以从官网https://code.google.com/p/kaptcha/了解更多的详情。它的源代码是…

Kaptcha生成图片验证码

先看结果图。 思路&#xff1a; ①进入登录页的时候&#xff0c;前端通过Axios发送GET请求&#xff0c;获取验证码。 ②后端收到请求后&#xff0c;生成验证码code和该验证码对应的关键字codeKey。 ③将codeKey和code作为Key&#xff0c;Value保存在Redis中&#xff0c;设置有效…

Kaptcha验证码

Kaptcha验证码 【1】&#xff1a;引包&#xff1a;kaptcha-2.3.2.jar(版本随意) 【2】&#xff1a;applictionContext.xml中的配置 <!-- 验证码 --> <bean id"captchaProducer" class"com.google.code.kaptcha.impl.DefaultKaptcha"> <pr…

Kaptcha 验证码 无噪点 无干扰线 配置

先看 生成的验证码图片例子&#xff1a; 这是原来的样子 KaptchaConfig.java 这个就不用说了吧&#xff0c;使用Kaptcha的基本配置类 package com.xx.config;import com.google.code.kaptcha.NoiseProducer; import com.google.code.kaptcha.impl.DefaultKaptcha; import co…

spring整合kaptcha验证码

验证码在项目肯定会用得到&#xff0c;本案例是在window上运行的&#xff0c;若kaptcha验证码在Linux上显示的是一堆乱码&#xff0c;可能是因为Linux没有中文字体库和中文字体造成的&#xff0c;可进行如下操作&#xff1a; 1. 判断有没有中文字体库&#xff1a; fc-list 2.…

kaptcha html页面验证码,kaptcha验证码使用配置

效果图&#xff1a; 1. 首先加入 kaptcha的jar包在工程中kaptcha-2.3.2.jar和kaptcha-2.3.2-jdk14.jar 2. 配置web.xml&#xff1a;对kaptcha的参数进行配置&#xff1a; Kaptcha com.google.code.kaptcha.servlet.KaptchaServlet kaptcha.border no kaptcha.textproducer.fon…

Cookie、Kaptcha

目录 一、本质 二、Cookie在浏览器和服务器之间的传递 1.没有Cookie的状态 2.创建Cookie对象并返回 三、Cookie时效性 1.理论 2.代码 3.会话和持久化Cookie对比 四、Cookie的domain和path 五、Cookie的应用 六、Kaptcha 1.为什么需要验证码&#xff1f; 2.Kaptcha…

java验证码kaptcha_spring整合kaptcha验证码的实现

kaptcha简介: kaptcha是一个很有用的验证码生成工具&#xff0c;由于它有许多可配置项&#xff0c;所以用它可以简单快捷的生成各式各样的验证码。 开发工具及使用的核心技术: 1、eclipse 2、mybatis 3、spring 4、springmvc 5、kaptcha 本文将介绍kaptcha两种使用方式: 方式一…

SpringBoot 整合 kaptcha + redis 实现 图形验证码登录

一、新建一个SpringBoot 项目&#xff0c;springboot项目创建过程详见 mac idea 创建 springboot 项目_JAVA&#xff24;WangJing的博客-CSDN博客_mac idea创建springboot项目 二、SpringBoot 整合使用 Rdis SpringBoot 项目 添加 redis配置_JAVA&#xff24;WangJing的博客…

10.20扫雷

扫雷 1.构建主函数,方法与三子棋雷同,但是有很多不一样的地方,就是需要构建两个二维数组,一个存放雷的数据,一个存放展现给玩家的数据棋盘 2.在对棋盘分别初始化 时候,考虑到两个二维数组存放内容不同,直接对初始化函数进行添加字符参数 3.构建参数 因为考虑到后期排查雷的时…

扫雷游戏

游戏设计 1.设计两个二维数组的面板&#xff0c;一个是展示给用户使用的&#xff0c;另一个是雷区的面板 2.初始化两个面板&#xff0c;用户使用的面板初始化为‘’&#xff0c;雷区的面板全部初始化为‘0’ 3.设置你所需要的雷区 4.用户输入坐标&#xff0c;进行判断。越界重新…

【180720】微软Windows扫雷游戏代码

源码简介 本源码是一个微软Windows扫雷游戏代码&#xff0c;可选择难度级别&#xff1a;初级、中级、高级。 注意事项: 1、开发环境为Visual Studio 2010&#xff0c;使用.net 2.0开发。 源码下载地址&#xff1a;点击下载 备用下载地址&#xff1a;点击下载

扫雷win10_windows扫雷游戏原来是一道数学难题!

各位同学大家好&#xff0c;这里是质心数学游戏科普频道。 今天和大家聊的是一款有点复古的windows系统自带小游戏——MineSweeper&#xff08;扫雷&#xff09;。 我刚接触这款游戏是高中的上机课&#xff0c;当时的电脑系统还是win95&#xff0c;在大家还不会局域网互联打Sta…

【扫雷】游戏

一、目的 实现一个扫雷游戏 二、过程 1、游戏框架 首先&#xff0c;游戏开始之前&#xff0c;显示游戏菜单Menu() static void Menu() {printf("#############################\n");printf("########欢迎来到扫雷游戏#######\n");printf("######…