精华内容
下载资源
问答
  • 2013-01-05 11:05:08

    在halcon中c_1Hc_5描述的是坐标系从c_1如何转换到c_5,同时也描述了c_5坐标系在c_1坐标系中的位置和朝向。

     

    上文中说明了如何将c_5坐标系中的点转换为c_1坐标系内的点的坐标,其算法是c_5坐标系内的坐标左乘以c_1到c_5坐标系的转换矩阵。

     

     

    在halcon中hom_mat3d_translate为左乘,hom_mat3d_translate_local为右乘,较常用的是

     

    结合相机坐标系和世界坐标系来说:

    Exterior camera parameters:These 6 parameters describe the 3D pose, i.e., the position and orientation, of the world coordinate system relative to the camera coordinate system. For line scan cameras, the pose of the world coordinate system refers to the camera coordinate system of the first image line. Three parameters describe the translation, three the rotation. See create_pose for more information about 3D poses. Note that camera_calibration operates with all types of 3D poses for NStartPose. When using the standard calibration plate, the world coordinate system is defined by the coordinate system of the calibration plate which is located in the middle of the surface of the calibration plate, its z-axis pointing into the calibration plate, its x-axis to the right, and it y-axis downwards.

     

    相机标定结果的外参为:c_H_w  即世界坐标系(标定板坐标系)在相机坐标系的位置和姿态,同时也是相机坐标系向世界坐标系的转换向量。

     

    Moving camera: H(cam<-cal) = H(cam<-tool) * H(tool<-base) * H(base<-cal)

                                             |               |               |

     

    以上两式为手眼标定的公式,两者是一个意思,表达方式不一样,其中H(cam<-cal)为相机标定结果中的外参,其含义为标定板坐标系在相机坐标系中的位置和姿态,同时也是相机坐标系向标定板坐标系的转换方式,同时也表明标定板坐标系内的坐标左乘以该矩阵可以得到该点在相机坐标系中的坐标。

     

    更多相关内容
  • 以下面puma560工业机器人为例,其坐标系建立如下图: puma560机器人模型(坐标系) 基本的矩阵旋转关系在此不在啰嗦,直接进入求解思路探讨过程! 1不带刀具的坐标系转化 1.1已知关节坐标系求解世界坐标系 基本思路...

    世界坐标系与关节坐标系互换—矩阵求解

    前言

    前面的文章有提到关节坐标系(θ1…θ6)和世界坐标系(XYZABC或XYZ rxryrz)的基本概念,本文主要从两个坐标系相互转化关系进行探究(附加带工具情况研究)。
    以下面puma560工业机器人为例,其坐标系建立如下图:
    在这里插入图片描述
    puma560机器人模型(坐标系)

    基本的矩阵旋转关系在此不在啰嗦,直接进入求解思路探讨过程!

    1不带刀具的坐标系转化

    1.1已知关节坐标系求解世界坐标系

    基本思路:不论是关节坐标系还是世界坐标系,其最终的目的都是要实现既定的目标位置和姿态,那么关节坐标系与世界坐标系之间一定存在转换的关系。如R(关节)转换 = 目标姿态 = R(世界坐标)转换。
    在这里插入图片描述图片来源于互联网

    一、旋转角度转换求解

    ①相对于世界坐标系的关节坐标系运动描述(为方便描述,我们假设第六轴轴向竖直)
    如上所示,机器人第6轴竖直向下,指向Z轴反方向,相对于世界坐标系描述则可用向量表示为[0,0,-1],
    对于任意一个工作位置的描述,可由第一到第六轴的旋转角度(θ01-θ6)来得到。那么6轴的运动我们可以进行从末尾姿态到各关节角度的反向推导。
    六轴运动可分为6各轴的旋转方向(以下第6轴Z轴方向称为Z轴):
    (1)第六轴旋转θ6,则此时Z轴的方向为:R6 = R关(θ6)*[0,0,-1]
    在这里插入图片描述
    (其实可以看出来,第6轴的旋转对于Z轴的矢量无影响,由于是相对于运动后坐标系参考,所以为左乘矩阵)
    (2)第五轴旋转θ5,如上图所示,第五轴的转动是相对第六轴的Y轴进行转动,此时Z轴指向为:R56 = R关(θ5)R关(θ6)[0,0,-1]在这里插入图片描述
    (3)第四轴旋转θ4,同理如上图,第4轴的运动是相对于第六轴Z轴方向旋转,则此时Z轴指向为:R 456 = R关z(θ4)R关y(θ5)R关z(θ6)[0,0,-1]
    在这里插入图片描述
    在这里插入图片描述
    (4)第三轴旋转为θ3,同理,第3轴的运动是相对于第六轴Y轴方向旋转,则此时Z轴指向为:R 3456 =R关y(θ3)
    R关z(θ4)*R关y(θ5)R关z(θ6)[0,0,-1]
    在这里插入图片描述
    (5)第二轴旋转为θ2,同理,第2轴的运动是相对于第六轴Y轴方向旋转,则此时Z轴指向为:R 23456 =R关y(θ2)R关y(θ3) R关z(θ4)*R关y(θ5)R关z(θ6)[0,0,-1],

    第一轴旋转为θ1,同理,第1轴的运动是相对于第六轴Z轴方向旋转,则此时Z轴指向为:R 123456 =R关z(θ1)*R关y(θ2)R关y(θ3) R关z(θ4)*R关y(θ5)R关z(θ6)[0,0,1]
    在这里插入图片描述
    (以上角度θ等同于j)
    假设以上:
    R1’ = R关z(θ1)
    R2‘ = R关z(θ1)*R关y(θ2)
    R3’ = R关z(θ1)*R关y(θ2)*R关y(θ3)
    R4‘ = R关z(θ1)*R关y(θ2)R关y(θ3) R关z(θ4)
    R5’ = R关z(θ1)*R关y(θ2)R关y(θ3) R关z(θ4)*R关y(θ5)
    R6‘ = R关z(θ1)*R关y(θ2)R关y(θ3) R关z(θ4)*R关y(θ5)*R关z(θ6)

    在不带工具坐标的情况下, 对于关节坐标为(θ1,θ2,θ3,θ4,θ5,θ6)的位置时,第六轴Z轴指向可描述为R6’*[0,0,1]
    ②关节坐标系中描述,可忽略中间轴,直接去参考末端点与世界坐标系基点的位姿关系,设,末端点绕世界坐标系X,Y,Z旋转分别为A,B,C角度。
    则旋转矩阵为
    在这里插入图片描述
    (rx,ry,rz分别代表A B C)
    则其旋转后Z轴方向为:
    R ABC = Rotx(A)*Roty(B)Rotz(C)[0,0,-1]

    求解

    因此如已知θ1-θ6,可令两式相等,即R_123456 = R_ABC
    有:

    =在这里插入图片描述
    在这里插入图片描述
    三个方程,三个未知数,可求得A,B,C的角度值。
    matlab程序如下:

    clc
    clear
    syms theta1 theta2 theta3 theta4 theta5 theta6
    syms A B C
    Z = [0;0;1]
    R_16 = Rotr('Z',theta1)*Rotr('Y',theta2)*Rotr('Y',theta3)* Rotr('Z',theta4)*Rotr('Y',theta5)*Rotr('Z',theta6)
    R_ABC = Rotr('X',A)*Rotr('Y',B)*Rotr('Z',C)
    
    r11=R_16(1,1);r12=R_16(1,2);r13=R_16(1,3);
    r21=R_16(2,1);r22=R_16(2,2);r23=R_16(2,3);
    r31=R_16(3,1);r32=R_16(3,2);r33=R_16(3,3);
    
    A = -atan(r23/r33)
    B = asin(r13)
    C = -atan(r12/r11)
    
    function R = Rotr( axis ,theta )
    %为方便调用旋转矩阵,写此 函数
     
    switch axis
        case 'X'
            R=[1,0,0,0;0,cos(theta),-sin(theta),0;0,sin(theta),cos(theta),0;0,0,0,1];
        case 'Y'
            R=[cos(theta),0,sin(theta),0;0,1,0,0;-sin(theta),0,cos(theta),0;0,0,0,1];
        case 'Z'
            R=[cos(theta),-sin(theta),0,0;sin(theta),cos(theta),0,0;0,0,1,0;0,0,0,1];
    end
    
    function T = Trans( u,v,w )
    %为方便调用平移矩阵,写此函数
     
    T=[1,0,0,u;0,1,0,v;0,0,1,w;0,0,0,1];
    end
    
    

    求解结果为:R_16 =

    [ - sin(theta6)*(cos(theta4)sin(theta1) - sin(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)cos(theta2)cos(theta3))) - cos(theta6)(cos(theta5)(sin(theta1)sin(theta4) + cos(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)*cos(theta2)cos(theta3))) + sin(theta5)(cos(theta1)*cos(theta2)*sin(theta3) + cos(theta1)cos(theta3)sin(theta2))), sin(theta6)(cos(theta5)(sin(theta1)sin(theta4) + cos(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)*cos(theta2)cos(theta3))) + sin(theta5)(cos(theta1)*cos(theta2)*sin(theta3) + cos(theta1)*cos(theta3)sin(theta2))) - cos(theta6)(cos(theta4)sin(theta1) - sin(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)*cos(theta2)cos(theta3))), cos(theta5)(cos(theta1)*cos(theta2)*sin(theta3) + cos(theta1)*cos(theta3)sin(theta2)) - sin(theta5)(sin(theta1)sin(theta4) + cos(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)*cos(theta2)cos(theta3))), 0]
    [ sin(theta6)
    (cos(theta1)cos(theta4) + sin(theta4)(sin(theta1)*sin(theta2)*sin(theta3) - cos(theta2)cos(theta3)sin(theta1))) + cos(theta6)(cos(theta5)(cos(theta1)sin(theta4) - cos(theta4)(sin(theta1)*sin(theta2)*sin(theta3) - cos(theta2)*cos(theta3)sin(theta1))) - sin(theta5)(cos(theta2)*sin(theta1)*sin(theta3) + cos(theta3)*sin(theta1)sin(theta2))), cos(theta6)(cos(theta1)cos(theta4) + sin(theta4)(sin(theta1)*sin(theta2)*sin(theta3) - cos(theta2)cos(theta3)sin(theta1))) - sin(theta6)(cos(theta5)(cos(theta1)sin(theta4) - cos(theta4)(sin(theta1)*sin(theta2)*sin(theta3) - cos(theta2)*cos(theta3)sin(theta1))) - sin(theta5)(cos(theta2)*sin(theta1)*sin(theta3) + cos(theta3)*sin(theta1)sin(theta2))), sin(theta5)(cos(theta1)sin(theta4) - cos(theta4)(sin(theta1)*sin(theta2)*sin(theta3) - cos(theta2)*cos(theta3)sin(theta1))) + cos(theta5)(cos(theta2)*sin(theta1)*sin(theta3) + cos(theta3)*sin(theta1)*sin(theta2)), 0]
    [ sin(theta4)sin(theta6)(cos(theta2)sin(theta3) + cos(theta3)sin(theta2)) - cos(theta6)(sin(theta5)(cos(theta2)*cos(theta3) - sin(theta2)*sin(theta3)) + cos(theta4)cos(theta5)(cos(theta2)sin(theta3) + cos(theta3)sin(theta2))), sin(theta6)(sin(theta5)(cos(theta2)*cos(theta3) - sin(theta2)*sin(theta3)) + cos(theta4)cos(theta5)(cos(theta2)*sin(theta3) + cos(theta3)*sin(theta2))) + cos(theta6)sin(theta4)(cos(theta2)*sin(theta3) + cos(theta3)sin(theta2)), cos(theta5)(cos(theta2)*cos(theta3) - sin(theta2)*sin(theta3)) - cos(theta4)sin(theta5)(cos(theta2)*sin(theta3) + cos(theta3)*sin(theta2)), 0]
    [ 0, 0, 0, 1]

    R_ABC =

    [ cos(B)*cos©, -cos(B)*sin©, sin(B), 0]
    [ cos(A)*sin© + cos©*sin(A)*sin(B), cos(A)*cos© - sin(A)*sin(B)*sin©, -cos(B)*sin(A), 0]
    [ sin(A)*sin© - cos(A)*cos©*sin(B), cos©*sin(A) + cos(A)*sin(B)*sin©, cos(A)*cos(B), 0]
    [ 0, 0, 0, 1]
    在这里插入图片描述

    设R11 = R_16(1,1),以此类推,有
    A = -atan(r23/r33)
    B = asin(r13)
    C = -atan(r12/r11)
    则:A B C的值为:
    A =

    -atan((sin(theta5)*(cos(theta1)sin(theta4) - cos(theta4)(sin(theta1)*sin(theta2)*sin(theta3) - cos(theta2)*cos(theta3)sin(theta1))) + cos(theta5)(cos(theta2)*sin(theta1)*sin(theta3) + cos(theta3)*sin(theta1)sin(theta2)))/(cos(theta5)(cos(theta2)*cos(theta3) - sin(theta2)*sin(theta3)) - cos(theta4)sin(theta5)(cos(theta2)*sin(theta3) + cos(theta3)*sin(theta2))))

    B =

    -asin(sin(theta5)*(sin(theta1)sin(theta4) + cos(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)*cos(theta2)cos(theta3))) - cos(theta5)(cos(theta1)*cos(theta2)*sin(theta3) + cos(theta1)*cos(theta3)*sin(theta2)))

    C =

    -atan((cos(theta6)*(cos(theta4)sin(theta1) - sin(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)cos(theta2)cos(theta3))) - sin(theta6)(cos(theta5)(sin(theta1)sin(theta4) + cos(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)*cos(theta2)cos(theta3))) + sin(theta5)(cos(theta1)*cos(theta2)*sin(theta3) + cos(theta1)*cos(theta3)sin(theta2))))/(sin(theta6)(cos(theta4)sin(theta1) - sin(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)cos(theta2)cos(theta3))) + cos(theta6)(cos(theta5)(sin(theta1)sin(theta4) + cos(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)*cos(theta2)cos(theta3))) + sin(theta5)(cos(theta1)*cos(theta2)*sin(theta3) + cos(theta1)*cos(theta3)*sin(theta2)))))

    二、位置关系转换求解

    在这里插入图片描述

    思路:本部分参考殷卓的《浅谈工业机器人坐标系转化》,其利用了机器人由六个关节组成,末端手臂的位置向量是这六个关节位置向量的矢量和的思路。
    如上图中的机器人各关节的尺寸已知(仅提供一个思路)
    (注意,以下为0指的是所有关节转角为0)
    ①第一关节
    在θ1为0时,位置向量是向X方向偏移一定的距离,记作x1
    则θ1不为0时,位移则为:
    R1’[x1,0,0]
    ②第二关节
    在θ2为0时,位置向量是向Y方向偏移了一定的距离,记y2
    则在θ2不为0时,位移为:
    R2’
    [0,y2,0]
    ③第三关节
    在θ3为0时,位置向量是向X,Z方向偏移了一定的距离,记X3,Z3
    则在θ2不为0时,位移为:
    R3’*[X3,0,Z3]
    ④第四-六关节
    由于四到六关节坐标系建于同一点,则该部分无位置变换,仅进行姿态转换,可见该机器人的位置有前三关节决定

    综上所述,如果设世界坐标的位置为x、y、z, 则已知关节坐标求解世界坐标(不带工具坐标系情况下)的位置公式为:
    [X,Y,Z] = R1*[x1,0,0]+R2’[0,y2,0]+R3’[X3,0,Z3]

    分析:以上等式中含有三个方程,同时存在三个未知数,可求解。
    求解:
    matlab代码

    %% 位置关系
    syms x1 y2 x3 z3 X Y Z
    T_16 = R_1*[x1;0;0]+R_12*[0;y2;0]+R_13*[x3;0;z3]
    T_6 = [X;Y;Z] ; %世界坐标系位移 等于上述关节坐标系运动值
    %解得X Y Z的值
    X = T_16(1)
    Y = T_16(2)
    Z = T_16(3)
    

    结果:
    X =
    z3*(cos(theta1)*cos(theta2)*sin(theta3) +cos(theta1)*cos(theta3)sin(theta2)) - x3(cos(theta1)sin(theta2)sin(theta3) - cos(theta1)cos(theta2) cos(theta3)) + x1cos(theta1) - y2sin(theta1)

    Y =
    z3*(cos(theta2)*sin(theta1)*sin(theta3) + cos(theta3)*sin(theta1)sin(theta2)) - x3(sin(theta1)*sin(theta2)*sin(theta3) - cos(theta2)cos(theta3)sin(theta1)) + y2cos(theta1) + x1sin(theta1)

    Z =
    z3*(cos(theta2)cos(theta3) - sin(theta2)sin(theta3)) - x3(cos(theta2) sin(theta3) + cos(theta3)*sin(theta2))

    总结

    以上,通过角度旋转公式和坐标公式,可以由6关节参数转换为XYZABC坐标值,完成计算。
    角度公式
    R6‘ = R关z(θ1)*R关y(θ2)R关y(θ3) R关z(θ4)*R关y(θ5)R关z(θ6)= R_ABC = Rotx(A)Roty(B)Rotz(C)
    位置公式
    [X,Y,Z] = R1
    [x1,0,0]+R2’
    [0,y2,0]+R3’
    [X3,0,Z3]

    点的运动坐标为:

    %% 最终结果
    point = [X,Y,Z,A,B,C]
    

    point =

    [ z3*(cos(theta1)*cos(theta2)*sin(theta3) + cos(theta1)*cos(theta3)sin(theta2)) - x3(cos(theta1)*sin(theta2)sin(theta3) - cos(theta1)cos(theta2)cos(theta3)) + x1cos(theta1) - y2sin(theta1), z3(cos(theta2)*sin(theta1)*sin(theta3) + cos(theta3)*sin(theta1)sin(theta2)) - x3(sin(theta1)*sin(theta2)sin(theta3) - cos(theta2)cos(theta3)sin(theta1)) + y2cos(theta1) + x1sin(theta1), z3(cos(theta2)*cos(theta3) - sin(theta2)sin(theta3)) - x3(cos(theta2)*sin(theta3) + cos(theta3)sin(theta2)), -atan((sin(theta5)(cos(theta1)sin(theta4) - cos(theta4)(sin(theta1)*sin(theta2)*sin(theta3) - cos(theta2)*cos(theta3)sin(theta1))) + cos(theta5)(cos(theta2)*sin(theta1)*sin(theta3) + cos(theta3)*sin(theta1)sin(theta2)))/(cos(theta5)(cos(theta2)*cos(theta3) - sin(theta2)*sin(theta3)) - cos(theta4)sin(theta5)(cos(theta2)*sin(theta3) + cos(theta3)sin(theta2)))), -asin(sin(theta5)(sin(theta1)sin(theta4) + cos(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)*cos(theta2)cos(theta3))) - cos(theta5)(cos(theta1)*cos(theta2)*sin(theta3) + cos(theta1)*cos(theta3)sin(theta2))), -atan((cos(theta6)(cos(theta4)sin(theta1) - sin(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)cos(theta2)cos(theta3))) - sin(theta6)(cos(theta5)(sin(theta1)sin(theta4) + cos(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)*cos(theta2)cos(theta3))) + sin(theta5)(cos(theta1)*cos(theta2)*sin(theta3) + cos(theta1)*cos(theta3)sin(theta2))))/(sin(theta6)(cos(theta4)sin(theta1) - sin(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)cos(theta2)cos(theta3))) + cos(theta6)(cos(theta5)(sin(theta1)sin(theta4) + cos(theta4)(cos(theta1)*sin(theta2)*sin(theta3) - cos(theta1)*cos(theta2)cos(theta3))) + sin(theta5)(cos(theta1)*cos(theta2)*sin(theta3) + cos(theta1)*cos(theta3)*sin(theta2)))))]

    基于标准DH坐标系的转换思路

    DH坐标系参数表
    在这里插入图片描述
    (****本图应该是基于MDH建立坐标系,分析用SDH分析,有点问题,参考思路)

    %用于标准DH坐标建模计算
    function T = T_SDH(theta,d,a,alpha)
    T = Rot('Z',theta)*Trans(0,0,d)*Trans(a,0,0)*Rot('X',alpha)
    
    function R = Rotr( axis ,theta )
    %为方便调用旋转矩阵,写此 函数
    %带比例 4*4 角度表示
    switch axis
        case 'X'
            R=[1,0,0,0;0,cosd(theta),-sind(theta),0;0,sind(theta),cosd(theta),0;0,0,0,1];
        case 'Y'
            R=[cosd(theta),0,sind(theta),0;0,1,0,0;-sind(theta),0,cosd(theta),0;0,0,0,1];
        case 'Z'
            R=[cosd(theta),-sind(theta),0,0;sind(theta),cosd(theta),0,0;0,0,1,0;0,0,0,1];
    end
    
    function T = Trans( u,v,w )
    %为方便调用平移矩阵,写此函数
     
    T=[1,0,0,u;0,1,0,v;0,0,1,w;0,0,0,1];
    end
    

    根据DH旋转公式有:
    T_01 =
    在这里插入图片描述
    T_12 =
    在这里插入图片描述
    T_23 =
    在这里插入图片描述
    T_34 =
    在这里插入图片描述
    T_45 =
    在这里插入图片描述
    T_56 =
    在这里插入图片描述
    T_16 = T_01T_12T_23T_34T_45T_56
    [ sin((pi
    theta6)/180)(sin((pitheta4)/180)(cos((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180) - cos((pitheta1)/180)cos((pitheta2)/180)cos((pitheta3)/180)) + cos((pitheta4)/180)sin((pitheta1)/180)) - cos((pitheta6)/180)(cos((pitheta5)/180)(cos((pitheta4)/180)(cos((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180) - cos((pitheta1)/180)cos((pitheta2)/180)cos((pitheta3)/180)) - sin((pitheta1)/180)sin((pitheta4)/180)) + sin((pitheta5)/180)(cos((pitheta1)/180)cos((pitheta2)/180)sin((pitheta3)/180) + cos((pitheta1)/180)cos((pitheta3)/180)sin((pitheta2)/180))), cos((pitheta6)/180)(sin((pitheta4)/180)(cos((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180) - cos((pitheta1)/180)cos((pitheta2)/180)cos((pitheta3)/180)) + cos((pitheta4)/180)sin((pitheta1)/180)) + sin((pitheta6)/180)(cos((pitheta5)/180)(cos((pitheta4)/180)(cos((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180) - cos((pitheta1)/180)cos((pitheta2)/180)cos((pitheta3)/180)) - sin((pitheta1)/180)sin((pitheta4)/180)) + sin((pitheta5)/180)(cos((pitheta1)/180)cos((pitheta2)/180)sin((pitheta3)/180) + cos((pitheta1)/180)cos((pitheta3)/180)sin((pitheta2)/180))), sin((pitheta5)/180)(cos((pitheta4)/180)(cos((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180) - cos((pitheta1)/180)cos((pitheta2)/180)cos((pitheta3)/180)) - sin((pitheta1)/180)sin((pitheta4)/180)) - cos((pitheta5)/180)(cos((pitheta1)/180)cos((pitheta2)/180)sin((pitheta3)/180) + cos((pitheta1)/180)cos((pitheta3)/180)sin((pitheta2)/180)), d3cos((pitheta1)/180)cos((pitheta2)/180) - l2sin((pitheta1)/180) + d4cos((pitheta1)/180)cos((pitheta2)/180)cos((pitheta3)/180) - d4cos((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180)]
    [ cos((pitheta6)/180)(cos((pitheta5)/180)(cos((pitheta4)/180)(cos((pitheta2)/180)cos((pitheta3)/180)sin((pitheta1)/180) - sin((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180)) - cos((pitheta1)/180)sin((pitheta4)/180)) - sin((pitheta5)/180)(cos((pitheta2)/180)sin((pitheta1)/180)sin((pitheta3)/180) + cos((pitheta3)/180)sin((pitheta1)/180)sin((pitheta2)/180))) - sin((pitheta6)/180)(cos((pitheta1)/180)cos((pitheta4)/180) + sin((pitheta4)/180)(cos((pitheta2)/180)cos((pitheta3)/180)sin((pitheta1)/180) - sin((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180))), - sin((pitheta6)/180)(cos((pitheta5)/180)(cos((pitheta4)/180)(cos((pitheta2)/180)cos((pitheta3)/180)sin((pitheta1)/180) - sin((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180)) - cos((pitheta1)/180)sin((pitheta4)/180)) - sin((pitheta5)/180)(cos((pitheta2)/180)sin((pitheta1)/180)sin((pitheta3)/180) + cos((pitheta3)/180)sin((pitheta1)/180)sin((pitheta2)/180))) - cos((pitheta6)/180)(cos((pitheta1)/180)cos((pitheta4)/180) + sin((pitheta4)/180)(cos((pitheta2)/180)cos((pitheta3)/180)sin((pitheta1)/180) - sin((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180))), - sin((pitheta5)/180)(cos((pitheta4)/180)(cos((pitheta2)/180)cos((pitheta3)/180)sin((pitheta1)/180) - sin((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180)) - cos((pitheta1)/180)sin((pitheta4)/180)) - cos((pitheta5)/180)(cos((pitheta2)/180)sin((pitheta1)/180)sin((pitheta3)/180) + cos((pitheta3)/180)sin((pitheta1)/180)sin((pitheta2)/180)), l2cos((pitheta1)/180) + d3cos((pitheta2)/180)sin((pitheta1)/180) + d4cos((pitheta2)/180)cos((pitheta3)/180)sin((pitheta1)/180) - d4sin((pitheta1)/180)sin((pitheta2)/180)sin((pitheta3)/180)]
    [ sin((pi
    theta4)/180)sin((pitheta6)/180)(cos((pitheta2)/180)sin((pitheta3)/180) + cos((pitheta3)/180)sin((pitheta2)/180)) - cos((pitheta6)/180)(sin((pitheta5)/180)(cos((pitheta2)/180)cos((pitheta3)/180) - sin((pitheta2)/180)sin((pitheta3)/180)) + cos((pitheta4)/180)cos((pitheta5)/180)(cos((pitheta2)/180)sin((pitheta3)/180) + cos((pitheta3)/180)sin((pitheta2)/180))), sin((pitheta6)/180)(sin((pitheta5)/180)(cos((pitheta2)/180)cos((pitheta3)/180) - sin((pitheta2)/180)sin((pitheta3)/180)) + cos((pitheta4)/180)cos((pitheta5)/180)(cos((pitheta2)/180)sin((pitheta3)/180) + cos((pitheta3)/180)sin((pitheta2)/180))) + cos((pitheta6)/180)sin((pitheta4)/180)(cos((pitheta2)/180)sin((pitheta3)/180) + cos((pitheta3)/180)sin((pitheta2)/180)), cos((pitheta4)/180)sin((pitheta5)/180)(cos((pitheta2)/180)sin((pitheta3)/180) + cos((pitheta3)/180)sin((pitheta2)/180)) - cos((pitheta5)/180)(cos((pitheta2)/180)cos((pitheta3)/180) - sin((pitheta2)/180)sin((pitheta3)/180)), - d3sin((pitheta2)/180) - d4cos((pitheta2)/180)sin((pitheta3)/180) - d4cos((pi*theta3)/180)sin((pitheta2)/180)]
    [ 0,0,1]


    根据得到的T_16的转换矩阵,取旋转矩阵部分直接转换
    即T_DH = T_16(3X3)

    %ABC的旋转矩阵为(同上)R_ABC

    使T_DH = R_ABC,从而解的ABC的值
    令T_16 = r(**),同理:
    A = -atan(r23/r33)
    B = asin(r13)
    C = -atan(r12/r11)

    (注意,T_DH的解比较复杂,但T_DH中的θ值默认均为已知值)
    具体θ值的求解,是由已知位置姿态逆解获得。

    (如果已知了终点的姿态,可直接求得ABC的值,无需通过求出θ再求得ABC,此过程仅仅是为了对不同坐标系下的转换关系进行一个探讨)

    关于带刀具的坐标系转换,即在以上的基础上,新增一个工具坐标系的位置及姿态,进行求解,后续进行~

    展开全文
  • 机器人坐标转换软件

    2019-05-01 21:58:57
    机器人坐标转换软件,ABB,FANUC,KUKA,等都可以使用,很方便小巧的一个软件,分享给大家。
  • 相机坐标系to机器人坐标系+20200920

    千次阅读 2020-09-20 09:08:43
    在视觉 SLAM 中,我们引入了 4 个坐标系,通过不同坐标系观测到同一个点会得到不同的坐标位置,并且存在一定的关系。 一、世界坐标系到相机坐标系 世界坐标系与相机坐标系之间仅相差一个旋转和一个平移,我们将图像...

    在视觉 SLAM 中,我们引入了 4 个坐标系,通过不同坐标系观测到同一个点会得到不同的坐标位置,并且存在一定的关系。
    在这里插入图片描述
    一、世界坐标系到相机坐标系

    世界坐标系与相机坐标系之间仅相差一个旋转和一个平移,我们将图像中的坐标系旋转到与世界坐标系相同的方向,再将两个原点通过平移重合到一起即可完成变换。
    1、旋转矩阵
    在这里插入图片描述
    1、坐标系原点的平移
    2、三个轴的旋转
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 机器人坐标转换

    万次阅读 2018-09-18 15:17:13
    坐标系标识统一: 我们使用右手坐标系,ROS里面用的也是右手坐标系. 左:左手坐标系,右:右手坐标系. 记忆:大拇指是z轴,食指是x轴(右手指往内转动).我们说旋转多少度时,都以右手手指往内攥的方向为正方向. 颜色:...

    坐标系标识统一:

    我们使用右手坐标系,ROS里面用的也是右手坐标系.

    左:左手坐标系,右:右手坐标系.

    记忆:大拇指是z轴,食指是x轴(右手指往内转动).我们说旋转多少度时,都以右手手指往内攥的方向为正方向.

    颜色:一般都用rgb表示xyz轴:

    坐标变换:

    习惯上,我们表示一个物体的三维位置和朝向时,都会在其身上附一个随动的坐标系.所以描述一个物体在坐标系中的位置和朝向,总是可以等效为描述物体自身坐标系和别的坐标系之间的关系.

    旋转矩阵:

    表示两个坐标系之间的旋转关系.

    举例:表示导航小车自身的坐标系和地图坐标系之间的旋转关系.如上所述,我们描述机器人在地图中的姿态,一般不会讲机器人在地图坐标系中的坐标,而是讲机器人自身的坐标系和地图坐标系之间的旋转平移关系.(虽然它和机器人的坐标在数值上是一样的)

    物体B(假设它自身的坐标系也叫B)相对参考坐标系A发生了旋转,那么定义从B旋转到A旋转矩阵为:

    解释:从坐标系B旋转到坐标系A的旋转矩阵,它的每一列,都是B的坐标轴单位向量在A中的表示.

    那么不难推测,旋转矩阵的每一行,都是A的坐标轴单位向量在B中的表示.即:

    连续的旋转变换:

    比如从C旋转成B,再从B旋转成A,那么从C到A的旋转矩阵就是按顺序从后往前直接连乘:

    旋转矩阵的使用:

    当然主要是用于计算同样一个点在不同的坐标系里的表示之间的转换.即:

    p在B中的坐标,点乘B到A的旋转矩阵,得到在A中的坐标.举例:雷达探测到的点的坐标是相对雷达自身的,我们想得到点相对机器人的坐标,那么我们就需要雷达自身坐标系和机器人坐标系之间的旋转矩阵.用此矩阵去点乘相对雷达的坐标.

    齐次坐标变换:

    首先说齐次坐标,齐次坐标相比普通坐标,主要用于区分向量和点.向量是没有位置概念的,但点是有的.从普通坐标转换成齐次坐标时,

    如果(x,y,z)是个点,则变为(x,y,z,1);

    如果(x,y,z)是个向量,则变为(x,y,z,0).

    具体看这篇文章,写的很清晰.

    前面我们说了旋转,而平移很简单,就是向量之间的加减.目前,我们平移加旋转一个物体,想得物理世界一个固定点在移动后的物体的坐标系里的坐标,我们得先计算平移,再计算旋转.即:

    而齐次坐标变换的作用就是将两者统一成一个矩阵,矩阵左上角是旋转矩阵,右侧为平移向量.(第二行p下面加了个1,这是从普通坐标变为了齐次坐标,表示这是个点).即:

    齐次坐标转换矩阵统一了平移和旋转,方便了坐标变换的逆运算、多坐标系的连续变换,运算规则和旋转矩阵类似:

    参考:<干货位置角度平移旋转,“乱七八糟”的坐标变换>

    展开全文
  • 机器人坐标系变换 坐标变换-旋转部分 二维坐标旋转的向量和几何表示 对于以前数学学习不好的人来说,在机器人的坐标变换里,总是各种蒙。 这个图片来给你解答。
  • 工业机器人常用坐标系介绍

    千次阅读 2020-12-23 15:18:38
    一、什么是工业机器人坐标系?坐标系:为确定机器人的位置和姿态而在机器人或空间上进行的位置指标系统。坐标系包含:基坐标系(BaseCoordinateSystem)、大地坐标系(WorldCoordinateSystem)、工具坐标系...
  • 终于搞明白坐标系之间的转换关系了,问题描述如下:已知一个空间坐标系M1,在该坐标系下存在三个点,并且已知这三个点的坐标M2,这时候让你用这三个点建立一个新的坐标系,然后求出空间一点P在坐标系M2和M1之间的...
  • 前段时间和川崎机器人做了一个定位抓取的项目,用到了一个坐标系转换的功能,自己在visiopro中写了个脚本,希望可以帮助有需要的人
  • 2.地坐标系到体坐标系的雅克比转换矩阵 3.六自由度的状态空间模型 x ̇=ucosθcosΨ+v(sinΨcosϕ+cosΨsinθsinϕ)+w(sinΨsinϕ+cosΨsinθcosϕ) y ̇=usinΨcosθ+v(cosΨcosϕ+sinΨsinθsinϕ)+w(cosΨsinϕ+...
  • FANUC机器人坐标变换

    2021-02-11 21:23:47
    FANUC機器人坐標變換Pr[]式機器人内部的位置寄存器,Pr[]值有兩种形式,一種是直角坐標座標值,另一種是關節坐標作標值,兩者可以互相轉換。P[]是程序中的點位,除具有上述Pr[]性質外,還記錄有坐標號碼和工具...
  • 机器人的应用中,可以使用不同的坐标系来定义机器人,传感器和其他物体的位置。通常,对象在三维空间中的位置可以通过位置和方向值指定。这些值有多个可能的表示形式应用于某些特定应用程序。平移和旋转是位置和...
  • 一种拆除机器人手臂坐标系与激光器坐标系转换方法.pdf
  • ur机器人编程-坐标系

    千次阅读 2020-05-18 23:28:27
    ur机器人编程-坐标系 特征:有三个相互垂直的xyz坐标轴组成 基座特征: 工具特征:tcp Tcp:控制xyz 控制工具围绕每个轴的旋转,Rx:Ry:Rz: 可以设置特征,通过移动特征移动该路点 1.设置特征 1)单击安装设置...
  • ROS学习六、TF坐标系转换(1)前言tf树tf包 前言 移动机器人涉及位姿的变换,比如关节间的相对位姿,关节与传感器的相对位姿,多机器人之间的相对位姿等。 ROS使用TF(TransForm)来处理坐标系间的位姿变换。 tf树 ROS...
  • 对于直角坐标系{A},空间任一点p的位置可以用3x1的列矢量Ap来表示。 2.方位描述 3.位姿描述 实际上同时描述位置和姿态,上面讲了用位置矢量和旋转矩阵来描述,这样,刚体B的位姿可以用坐标系{B}来描述: 坐标变换...
  • #资源达人分享计划#
  • 机器人学-_坐标转换

    2015-06-13 23:05:52
    如果要做一个机器人的操作系统,机器人运动学是必不可少的,而机器人运动学最重要的东西就是坐标变换
  • 坐标变换树 定义了 每个 不同的坐标系间的 偏移和旋转。 举个例子 一个移动的小车在顶部安装着一个激光测距仪。 定义两个坐标系 : 一个小车的中心(base_link),另一个激光测距仪的中心(base_laser) 假设激光测距...
  • #物理坐标(例如机器人坐标) r1:=[0, 2.0, -2.0, 10, -2.0] c1:=[0, 1.0, -5.0, -10, 10] row:=670 col:=789 vector_to_hom_mat2d (r, c, r1,c1 , HomMat2D) affine_trans_point_2d (HomMat2D, row,col, Qx, Qy) #...
  • 工业测量系统、坐标系、坐标系转换原理及方法
  • 假设世界坐标系W,机器人坐标系为A,机器人在坐标系W中的坐标为(x,y,θ),则机器人坐标系A到世界坐标系W的转换矩阵为 T A W T^W_A TAW​ 。也就是说,如果已知机器人A坐标系表示的点 P A P_A PA​,则该点在...
  • 机器视觉中坐标系转换

    千次阅读 2020-09-13 15:27:04
    机器视觉、立体视觉等等方向常常涉及到四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。 整体预览如下 1、世界坐标系和相机坐标系 世界坐标系,也称为测量坐标系,它是一个三维直角坐标系(Xw,Yw,Zw)...
  • 机器人坐标系——工具坐标、用户坐标系标定

    万次阅读 多人点赞 2018-12-20 18:24:52
    例如:图1中变换TBT{^B_T}TTB​T描述了操作臂指向的坐标系{T},它是相对于操作臂基座的坐标系{B}的,又已知工作台相对于操作臂基座的空间位置SBT{^B_S}TSB​T,并且已知工作台上螺栓的坐标系相对于工作台坐标系的...
  • 机器人坐标变换

    2020-03-24 16:09:12
    假设有一点P\mathrm{P}P ,在机器人坐标系 (B)\mathrm{(B)}(B) 中其坐标为 PB\mathrm{P^B}PB,在世界坐标系 (A)\mathrm{(A)}(A) 中其坐标为 PA\mathrm{P^A}PA,PA\mathrm{P^A}PA 和 PB\mathrm{P^B}PB 之间可以通过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,972
精华内容 2,788
关键字:

机器人坐标系转换