博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ROS系统MoveIt玩转双臂机器人系列(六)--D-H逆运动学求解程序(C++)
阅读量:5902 次
发布时间:2019-06-19

本文共 1843 字,大约阅读时间需要 6 分钟。

 

注:本篇博文全部源码下载地址为:。

一、转换矩阵

 

  经过上一篇博客介绍,我们已经获得了Rob一个手臂的D-H参数表,如上表所示,我们要把这些参数转换成相邻坐标系的转换矩阵,D和H两位老前辈已经推导出通用公式了,通用公式如图1,其中cθi = cos(θi) ,sθi =  sin(θi )。这是一个4x4的矩阵,它表征了相邻两个坐标系的位置和姿态两个维度的转换关系,具体说明见上一篇博文。

图1

  套用图1中的公式,我们分别得到坐标系{1}相对于坐标系{0}的转换矩阵T1如下:

  同理,我们得到坐标系{2}相对于坐标系{1}的转换矩阵T2,{3}相对于{2}的转换矩阵T3,{4}相对于{3}的转换矩阵T4,{5}相对于{4}的转换矩阵T5,{6}相对于{5}的转换矩阵T6,分别如下 :

            

 至此,我们得到了所有相邻坐标系的转换矩阵,由于他们是串联的,我们可以得到坐标系{6}相对于坐标系{0}的转换矩阵T2:

式1

其中(s1指θ1,s2指θ2,以此类推):

  nx = - cos(s5)*(cos(s4)*(sin(s1)*sin(s3) - cos(s1)*cos(s2)*cos(s3)) + cos(s1)*sin(s2)*sin(s4)) - sin(s5)*(cos(s3)*sin(s1) + cos(s1)*cos(s2)*sin(s3));

  ny = cos(s5)*(cos(s4)*(cos(s1)*sin(s3) + cos(s2)*cos(s3)*sin(s1)) - sin(s1)*sin(s2)*sin(s4)) + sin(s5)*(cos(s1)*cos(s3) - cos(s2)*sin(s1)*sin(s3));
  nz = cos(s5)*(cos(s2)*sin(s4) + cos(s3)*cos(s4)*sin(s2)) - sin(s2)*sin(s3)*sin(s5);
  ox = sin(s5)*(cos(s4)*(sin(s1)*sin(s3) - cos(s1)*cos(s2)*cos(s3)) + cos(s1)*sin(s2)*sin(s4)) - cos(s5)*(cos(s3)*sin(s1) + cos(s1)*cos(s2)*sin(s3));
  oy = cos(s5)*(cos(s1)*cos(s3) - cos(s2)*sin(s1)*sin(s3)) - sin(s5)*(cos(s4)*(cos(s1)*sin(s3) + cos(s2)*cos(s3)*sin(s1)) - sin(s1)*sin(s2)*sin(s4));
  oz = - sin(s5)*(cos(s2)*sin(s4) + cos(s3)*cos(s4)*sin(s2)) - cos(s5)*sin(s2)*sin(s3);
  ax = sin(s4)*(sin(s1)*sin(s3) - cos(s1)*cos(s2)*cos(s3)) - cos(s1)*cos(s4)*sin(s2);
  ay = - sin(s4)*(cos(s1)*sin(s3) + cos(s2)*cos(s3)*sin(s1)) - cos(s4)*sin(s1)*sin(s2);
  az = cos(s2)*cos(s4) - cos(s3)*sin(s2)*sin(s4);
  Px = 40*cos(s1)*cos(s2) - (764*cos(s1)*sin(s2))/5; 

  Py = 40*cos(s2)*sin(s1) - (764*sin(s1)*sin(s2))/5; 

  Pz = (764*cos(s2))/5 + 40*sin(s2);

 

由于时间关系,暂时先不把具体过程写下来,其实源代码里面全部都有,需要的请先去文章开头的代码仓下载代码来看。

tip:

  源码是一个VS工程,基于VS2010创建。

<-- 未完待续 --> 

 

 

 

 

欢迎留言、私信、邮箱、微信等任何形式的技术交流。

作者信息:

名称:Shawn

邮箱:zhanggx0102@163.com

微信二维码:↓

          

 

 

 

 

 

 

posted on
2018-08-26 10:31 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/shawn0102/p/9392884.html

你可能感兴趣的文章
vue-validator(vue验证器)
查看>>
jQuery Ajax MVC 下拉框联动
查看>>
html
查看>>
c#创建文件夹
查看>>
Hibernate事务代码规范写法
查看>>
网络最大流问题算法小结 [转]
查看>>
面试之Java知识整理
查看>>
iOS推送消息报错误“Domain=NSCocoaErrorDomain Code=3000”的可能问题
查看>>
kvm-1
查看>>
hdu1045 Fire Net---二进制枚举子集
查看>>
leetcode 64. Minimum Path Sum
查看>>
textkit
查看>>
CentOS7+CDH5.14.0安装CDH错误排查: HiveServer2 该角色的进程已退出。该角色的预期状态为已启动...
查看>>
The Oregon Trail 俄勒冈之旅
查看>>
Excel VBA连接MySql 数据库获取数据
查看>>
Developing a Service Provider using Java API(Service Provider Interface)(转)
查看>>
BAE Flask UEditor 使用七牛云
查看>>
Bootstrap系列 -- 15. 下拉选择框select
查看>>
【转载】无限级分类的简单实例
查看>>
关于WinPE安装操作系统
查看>>