主要内容

so3

(3)旋转

自从R2022b

    描述

    so3对象代表了一个在三维(3)旋转右手笛卡儿坐标系统。

    (3)旋转是一个3×3正交旋转矩阵。例如,这些是标准正交旋转的旋转矩阵ϕ,ψ,θ关于x- - - - - -,y- - - - - -,z分别设在:

    R x ( ϕ ) = ( 1 0 0 0 因为 ϕ ϕ 0 ϕ 因为 ϕ ] , R y ( ψ ) = ( 因为 ψ 0 ψ 0 1 0 ψ 0 因为 ψ ] , R z ( θ ) = ( 因为 θ θ 0 θ 因为 θ 0 0 0 1 ]

    有关更多信息,请参见三维正交旋转矩阵部分。

    这个对象就像一个数值矩阵,使您能够编写旋转使用乘法和除法。

    创建

    描述

    三维旋转表示

    旋转= so3创建一个代表身份所以(3)旋转旋转,没有翻译。

    r o t 一个 t o n = ( 1 0 0 0 1 0 0 0 1 ]

    旋转= so3 (旋转)创建一个所以(3)旋转代表纯旋转定义的标准正交旋转旋转

    r o t 一个 t o n = ( r 11 r 12 r 13 r 11 r 22 r 23 r 31日 r 32 r 33 ]

    旋转= so3 (四元数)创建一个所以(3)旋转的旋转四元数定义的四元数

    旋转= so3 (转换)创建一个所以从SE(3)(3)旋转变换转换

    其他数字三维旋转表示

    例子

    旋转= so3 (欧拉“eul”)创建一个所以(3)旋转的旋转由欧拉角定义欧拉

    旋转= so3 (欧拉“eul)”,序列)指定的顺序欧拉角旋转序列。例如,序列“ZYX股票”旋转的z设在,那么y设在和x设在。

    旋转= so3 (皮疹“皮疹”)创建一个所以(3)旋转的旋转由数字四元数定义皮疹

    旋转= so3 (axang“axang”)创建一个旋转(3)从定义的转动轴角旋转axang

    旋转= so3 (,)创建一个(3)旋转的旋转对旋转轴

    请注意

    如果任何输入包含多个旋转,然后输出旋转是一个N元组so3对应于每一个对象N输入旋转。

    输入参数

    全部展开

    正交旋转,3-by-3-by指定为3 x3的矩阵N数组,一个标量so3对象,或一个N元组so3对象。N旋转的总数。

    如果旋转是一个数组,结果了so3输出数组中的对象等于N

    例子:(3)

    齐次变换,指定为一个se3对象或一个N元组se3对象。N是转换指定的总数。

    输出so3对象只包含旋转的子矩阵se3对象。

    如果转换是一个数组,结果了so3输出数组中的对象等于N

    例子:se3(π/ 4,“rotx”)

    四元数,指定为一个标量四元数对象或作为一个N元组四元数对象。N是指定的四元数的总数。

    如果四元数是一个N元数组,结果数量的创建so3对象=N

    例子:四元数(0.2,0.4,0.2)

    欧拉角,指定为一个N3矩阵,在弧度。每一行代表一组欧拉角与轴旋转序列定义的序列论点。默认的轴旋转序列ZYX股票

    如果欧拉是一个N3矩阵,由此产生的数量so3对象=N

    例子:(π/ 2ππ/ 4)

    数据类型:|

    欧拉角轴旋转序列,指定为一个字符串标量:

    • “ZYX股票”(默认)

    • 之一“ZYZ”

    • “ZXY”

    • “ZXZ”

    • “YXY”

    • “YZX”

    • “YXZ”

    • “YZY”

    • “XYX”

    • “XYZ”

    • “XZX”

    • “XZY”

    这些都是标准正交旋转的旋转矩阵ϕ,ψ,θ关于x- - - - - -,y- - - - - -,z分别设在:

    R x ( ϕ ) = ( 1 0 0 0 因为 ϕ ϕ 0 ϕ 因为 ϕ ] , R y ( ψ ) = ( 因为 ψ 0 ψ 0 1 0 ψ 0 因为 ψ ] , R z ( θ ) = ( 因为 θ θ 0 θ 因为 θ 0 0 0 1 ]

    当从这个序列构建旋转矩阵,每个字符显示相应的轴。例如,如果序列“XYZ”,那么so3对象构造旋转矩阵R乘以旋转x设在与旋转y设在,然后乘以该产品与旋转z设在:

    R = R x ( ϕ ) · R y ( ψ ) · R z ( θ )

    例子:so3([π/ 2π/ 3π/ 4],“eul”之一“ZYZ”)旋转一个点的π/ 4弧度的z设在,然后旋转点π/ 3弧度的y设在,然后旋转点π/ 2弧度的z设在。这相当于so3(π/ 2,“rotz”) * so3(π/ 3,“roty”) * so3(π/ 4,“rotz”)

    数据类型:字符串|字符

    指定为一个四元数N4矩阵。N是指定的四元数的数量。每一行代表一个四元数的形式qwqx、qy求出),qw是一个标量。

    如果皮疹是一个N4矩阵,由此产生的数量so3对象=N

    请注意

    so3对象可实现输入之前四元数转换一个旋转矩阵的四元数。

    例子:(0.7071 - 0.7071 0 0)

    数据类型:|

    轴角旋转,指定为一个N4矩阵形式(xyzθ]。N轴角旋转的总数。x,y,z向量组件吗x- - - - - -,y- - - - - -,z分别设在。向量定义了轴旋转的角度θ在弧度。

    如果axang是一个N4矩阵,由此产生的数量so3对象=N

    例子:(。2含量为π/ 4]旋转的轴,定义为0.2x设在,0.15沿着y设在,0.25沿着z设在,π/ 4弧度。

    数据类型:|

    Single-axis-angle旋转,指定为一个N——- - - - - -矩阵。矩阵的每个元素是一个角,在弧度,大约使用指定的轴论点,so3对象创建一个so3对象为每个角。

    如果是一个N——- - - - - -矩阵,由此产生的创建so3对象=N

    逆时针旋转角是积极当你看到沿着指定轴向原点。

    数据类型:|

    轴旋转,指定这些选项之一:

    • “rotx”——旋转x设在:

      R x ( ϕ ) = ( 1 0 0 0 因为 ϕ ϕ 0 ϕ 因为 ϕ ]

    • “roty”——旋转y设在:

      R y ( ψ ) = ( 因为 ψ 0 ψ 0 1 0 ψ 0 因为 ψ ]

    • “rotz”——旋转z设在:

      R z ( θ ) = ( 因为 θ θ 0 θ 因为 θ 0 0 0 1 ]

    使用参数来指定多少对指定的轴旋转。

    例子:Rx = so3(φ,“rotx”);

    例子:Ry = so3(ψ,“roty”);

    例子:Rz = so3(θ,“rotz”);

    数据类型:字符串|字符

    对象的功能

    全部展开

    mtimes, * 转换或旋转乘法
    mrdivide, / 转换或旋转
    rdivide。/ Element-wise转换或旋转
    次,. * Element-wise转换或旋转乘法
    插值函数 插入之间转换
    经销 计算转换之间的距离
    正常化 标准化转换或旋转矩阵
    变换 应用刚体变换点
    axang 转换或旋转转换成轴角旋转
    eul 转换或旋转转化为欧拉角
    rotm 提取旋转矩阵
    皮疹 转换或旋转转换为数字四元数
    trvec 提取转换向量
    tform 提取齐次变换
    xyzquat 转换或旋转转换成紧凑的三维姿态表示
    se3 (3)齐次变换
    四元数 创建一个四元数的数组

    例子

    全部折叠

    创建所以(3)旋转由欧拉角定义。

    eul1 =[π/ 4π/ 3π/ 8)
    eul1 =1×30.7854 1.0472 0.3927
    R = so3 (eul1“eul”)
    R =so30.3536 -0.4189 0.8364 0.3536 0.8876 0.2952 -0.8660 0.1913 0.4619

    欧拉角的转换。

    eul2 = eul(右)
    eul2 =1×30.7854 1.0472 0.3927

    算法

    全部展开

    扩展功能

    C / c++代码生成
    生成C和c++代码使用MATLAB®编码器™。

    版本历史

    介绍了R2022b

    全部展开