主要内容

se3

(3)齐次变换

自从R2022b

    描述

    se3对象代表了一个SE(3)转换为三维齐次变换矩阵组成的平移和旋转:

    有关更多信息,请参见三维齐次变换矩阵部分。

    这个对象就像一个数值矩阵可以组合使用乘法和除法。

    创建

    描述

    旋转矩阵,向量,翻译和转换矩阵

    变换= se3创建一个SE(3)代表身份转换旋转没有翻译。

    t r 一个 n 年代 f o r 一个 t o n = ( 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ]

    变换= se3 (旋转)创建一个SE(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 ]

    t r 一个 n 年代 f o r 一个 t o n = ( r 11 r 12 r 13 0 r 21 r 22 r 23 0 r 31日 r 32 r 33 0 0 0 0 1 ]

    变换= se3 (旋转,翻译)创建一个SE(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 ] , t r 一个 n 年代 l 一个 t o n = ( t 1 t 2 t 3 ]

    t r 一个 n 年代 f o r 一个 t o n = ( r 11 r 12 r 13 t 1 r 21 r 22 r 23 t 2 r 31日 r 32 r 33 t 3 0 0 0 1 ] = ( 1 0 0 t 1 0 1 0 t 2 0 0 1 t 3 0 0 0 1 ] · ( r 11 r 12 r 13 0 r 21 r 22 r 23 0 r 31日 r 32 r 33 0 0 0 0 1 ]

    变换= se3 (转换)创建一个SE(3)转换代表一个齐次变换定义的平移和旋转转换

    其他三维旋转表示

    变换= se3 (欧拉“eul”)创建一个SE(3)变换的旋转由欧拉角定义欧拉

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

    变换= se3 (皮疹“皮疹”)创建一个SE(3)从数字定义的旋转四元数转换皮疹

    变换= se3 (四元数)创建一个SE(3)旋转四元数定义的转换四元数

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

    变换= se3 (,)创建一个SE(3)变换的旋转对旋转轴

    例子

    变换= se3 (___,翻译“trvec”)创建一个SE(3)变换的平移向量翻译与任何其他类型的旋转输入参数。

    其他翻译和转换表示

    变换= se3 (翻译“trvec”)创建一个SE(3)变换的平移向量翻译

    变换= se3 (构成“xyzquat”)创建一个SE(3)从3 d转换紧凑的姿势构成

    请注意

    如果任何输入包含多个旋转,翻译,或转换,然后输出转换是一个N元组se3对应于每一个对象N输入旋转、翻译或转换。

    输入参数

    全部展开

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

    如果旋转还包含不止一个旋转,你指定翻译在建设,翻译的数量翻译必须一个或等于旋转的数量旋转。由此产生的转换对象的值等于翻译旋转论点,哪个比较大。

    例子:(3)

    数据类型:|

    翻译,作为三元素行向量或一个指定的N3数组。N是翻译的总数,每个表单的翻译是(xyz]。

    如果翻译包含不止一个翻译,旋转的数量旋转必须一个或等于翻译的数量翻译。转换对象创建的结果数量等于的价值翻译旋转论点,哪个比较大。

    例子:(1 4 3)

    数据类型:|

    齐次变换,指定为一个4×4矩阵,一个4×4 -N数组,一个标量se3对象,或一个N元组se3对象。N是转换指定的总数。

    如果转换是一个数组,结果了se3对象=N

    例子:(4)

    数据类型:|

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

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

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

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

    如果欧拉是一个N3矩阵,由此产生的数量se3对象=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”,那么se3对象构造旋转矩阵R乘以旋转x设在与旋转y设在,然后乘以该产品与旋转z设在:

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

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

    数据类型:字符串|字符

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

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

    请注意

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

    例子:(0.7071 - 0.7071 0 0)

    数据类型:|

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

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

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

    数据类型:|

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

    如果是一个N——- - - - - -矩阵,由此产生的创建se3对象=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 = se3(φ,“rotx”);

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

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

    数据类型:字符串|字符

    三维构成紧凑,指定为一个N7矩阵,N的总数是紧凑的姿势。每一行是一个姿势,由xyz位置和四元数的形式(xyzqwqx、qy求出]。x,y,z的职位吗x- - - - - -,y- - - - - -,z分别相互重合。qw,qx、,qy,求出一起是旋转四元数w,x,y,z,分别。

    如果构成是一个N7矩阵,由此产生的创建se3对象=N

    数据类型:|

    对象的功能

    全部展开

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

    例子

    全部折叠

    定义一个欧拉角旋转的(π/ 2 0π/ 7)与一个“XYZ”旋转序列,和一个xyz翻译(6 4 1)

    角=(π/ 2 0π/ 7);trvec = (6 4 1);

    创建一个SE(3)转换使用欧拉角和翻译。

    TF = se3(角度,“eul”,“XYZ”trvec)
    TF =se30.9010 - -0.4339 0 6.0000 0.0000 0.0000 -1.0000 4.0000 0.4339 0.9010 0.0000 1.0000 1.0000 0 0 0

    情节转换。

    plotTransforms (TF, AxisLabels =“上”FrameAxisLabels =“上”);

    图包含一个坐标轴对象。坐标轴对象包含X, Y ylabel包含7块类型的对象,线,文本。

    算法

    全部展开

    扩展功能

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

    版本历史

    介绍了R2022b

    全部展开