机器人坐标变换(一)

8 篇文章 0 订阅
4 篇文章 0 订阅

1.WHY?为什么要机器人坐标变换:

因为目标物体的坐标系与机器人坐标系不一致,它们各自的坐标没有联系。所以,为了使目标物体的坐标系能够让机器人知道在它的那个位置,需要将目标物体的坐标系变换到机器人坐标系中。

2.HOW?如何完成机器人与物体的坐标变换:

soeasy,只需要一个矩阵(4X4),这个矩阵包含着一个旋转矩阵(3X3)和一个平移矩阵(1X3)。

3.PROCESS?以六关节的机器人为例,它有六个自由度,将这些关节联系起来?

首先需要知道两个关节之间的四个参数:两关节指间的垂线长度(连杆长度)、两相邻关节轴的夹角(连杆转角)、两相邻垂线指间的夹角(连杆偏距)、两相邻垂线在关节轴上的距离(关节角)。

     知道这四个参数后,那我们在面对一个机器人时,如何求得这些参数呢?

     首先,你可以去参考《机器人学导论-分析、控制及应用》这本书的第二章,上面讲的非常清楚,这里我主要讲下我在看书后觉得重点的部分。

     1.需要把这些关节画出来,然后根据书上的步骤,一步一步的走到最后,这里重点就是按着书上四个标准运动从前一参考坐标系到下一个参考坐标系。

     2.在第一部中要注意我们的关节角的范围,因为在旋转关节上Z轴的方向有两个可取,这个时候你需要根据关节角的范围,即机器人关节运动的方向和范围来确定去Z轴的哪个方向。

     3.对于移动关节而言,di是关节变量,其他三个连杆的参数固定不变;而对于旋转关节而言,Theta是关节变量,其他三个连杆的参数固定不变。所以我们在求运动学逆解时,我们可以通过分析机器人关节结构,来判断我们得出的这四个参数是否正确。

     4.在求解过程中,由于C语言中三角函数的参数为弧度数,因此需要将角度转换为弧度,如#define Rad2Ang (3.1415926535898/180.0),此时出现的问题是在90°是转换后得到cos值本来应该是0,但是由于转换的误差,所以导致得到数为0.0000000000056等之类的很小的数,这个时候我们需要对这些数做处理,本人做的处理如下:

if(Mat[i][j]>-0.00000000001 && Mat[i][j]<0.0000000001)

{
      Mat[i][j] = 0.0;
}

这样,正解基本上不会出现其他问题了,运动学反解下节再来说明!



  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值