姿态矩阵与姿态向量的相互转化

2023-05-16

罗德里格斯公式

在这里插入图片描述
转轴 n 是矩阵 R 特征值 1 对应的特征向量。求解此方程,再归一化,就得到了旋转轴。

CV_EXPORTS_W void Rodrigues( InputArray src, OutputArray dst, OutputArray jacobian = noArray() );

参数说明:

  • src——为输入的旋转向量(3x1或者1x3)或者旋转矩阵(3x3)。该参数向量表示其旋转的角度,用向量长度表示。

  • dst——为输出的旋转矩阵(3x3)或者旋转向量(3x1或者1x3)。

  • jacobian——为可选的输出雅可比矩阵(3x9或者9x3),是输入与输出数组的偏导数。

举例

CMakeLists.txt

project(RotationMatrix)

# 使用Qt的模块
set(QT Core Widgets)
find_package(Qt5 COMPONENTS REQUIRED ${QT})

# 使用opencv的模块
find_package(OpenCV REQUIRED )

add_executable(RotationMatrix RotationMatrix.cpp)

target_link_libraries(RotationMatrix ${OpenCV_LIBS})

qt5_use_modules(RotationMatrix ${QT})

RotationMatrix.cpp

#include <stdio.h>
#include <QDebug>
#include <opencv2/opencv.hpp>
using namespace cv;


int main(int argc, char *argv[])
{
    // 旋转向量
    double posture[3] = {1, 0, 0};
    cv::Mat rxyz = cv::Mat(1, 3, CV_64F, posture);
    cv::Mat rotateMat = cv::Mat(3, 3, CV_64F);
    // 1x3旋转向量->3x3旋转矩阵
    cv::Rodrigues(rxyz, rotateMat);
    qDebug() << "1x3旋转向量->3x3旋转矩阵";
    qDebug() << rotateMat.at<double>(0, 0) << rotateMat.at<double>(0, 1) << rotateMat.at<double>(0, 2);
    qDebug() << rotateMat.at<double>(1, 0) << rotateMat.at<double>(1, 1) << rotateMat.at<double>(1, 2);
    qDebug() << rotateMat.at<double>(2, 0) << rotateMat.at<double>(2, 1) << rotateMat.at<double>(2, 2);

    // 3x3姿态矩阵->1x3旋转向量
    cv::Mat rxyz2 = cv::Mat(1, 3, CV_64F);
    cv::Rodrigues(rotateMat, rxyz2);
    qDebug() << "3x3旋转矩阵->1x3旋转向量";
    qDebug() << rxyz2.at<double>(0, 0) << rxyz2.at<double>(0, 1) << rxyz2.at<double>(0, 2);


    return 0;
}

结果

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

姿态矩阵与姿态向量的相互转化 的相关文章

  • odroid Xu4介绍

    Odroid xu4介绍 下面对这块开发板做一下简单的介绍 xff0c 共需要用到的人参考 从参数上来看 xff0c ODROID XU4的整体性能基本和目前的中端智能手机差不多 xff0c 它搭载了主频
  • OdroidXu4开发环境搭建

    OdroidXu4开发环境搭建 一 烧录镜像 1 SD卡烧录 首先准备一张至少16G的sd卡 镜像可以在官网 xff1a http odroid com dokuwiki doku php id 61 en odroid xu4 softw
  • 大小端:字节序与比特序

    https blog csdn net fzy0201 article details 26876711 https blog csdn net qq 40334837 article details 89042607 前言 前两天被问到一
  • VLC Buffering机制介绍

    一 简介 了解一定播放器知识的同学应该都知道 xff0c 播放器内部是有缓存的 xff08 非直播场景 xff09 缓存的作用主要是解决生产者和消费者速度的不匹配 xff0c 给用户更好的使用体验 例如 xff0c 在网络不稳定的情况下 x
  • Linux静态库和动态库学习总结

    一 废话 之前由于工作需要 xff0c 要封装一个Linux加密解密转换的动态库 xff0c 这个之前只做过Windows下面的 xff0c Linux下面还真没有做过 xff0c 之后做了整一个晚上才算做好 xff0c 不过其中也学到了不
  • UART的FIFO功能

    经常听到UART的FIFO功能 xff0c 但是从来没有真正使用过和认真思考过它的作用 正好有客户用到这个功能 xff0c 在这里做个总结 FIFO 是 First In First Out 的缩写 xff0c 它是一个具有先入先出特点的缓
  • 《C语言内核深度解析》笔记(3):指针才是C语言的精髓

    第03章 指针才是C语言的精髓 3 2 指针 int a 61 10 int p 61 amp a 指针变量p和普通变量之间没有本质区别 xff0c 都是变量空间放了一个数值 xff0c 只是p里面的数值比较特殊 xff0c 是a空间的地址
  • 相机针孔模型----从世界坐标系,到相机坐标系,再到图像物理坐标系,最后到图像像素坐标系的转换过程解析

    看了很多讲解针孔相机模型中从世界坐标系 gt 到相机坐标系 gt 图像坐标系的文章 xff0c 心里的疑惑也逐渐展开 xff0c 现在总结一下自己的理解 xff1a 世界坐标系 相机坐标系 图像物理坐标系 图像像素坐标系在我的另一篇博文里已
  • D1 R32 – ESP32+Arduino CNC Shield控制步进电机

    陈拓 2023 04 01 2023 04 05 1 简介 在 Arduino Uno开发板 43 电机驱动扩展版CNC Shield V3 0硬件说明 https blog csdn net chentuo2000 article det
  • pixhawk当中关于NMEA类型的gps数据处理流程

    1 启动跟新gps的数据的任务是在ArduCopter cpp中scheduler tasks中 调用的速度是50hz 2 通过执行update GPS方法中的 3 调转到ap gps cpp中的update方法中 4 在update中通过
  • C++Eigen库的配置和基本使用

    1 配置 1 下载 http bitbucket org eigen eigen get 3 2 5 tar bz2 2 配置 文件夹名字较长 xff0c 解压后可重命名 xff0c 如我命名为eigen3 xff0c 把D program
  • C++:extern "c"用法解析

    引言 C 43 43 保留了一部分过程式语言的特点 xff0c 因而它可以定义不属于任何类的全局变量和函数 但是 xff0c C 43 43 毕竟是一种面向对象的程序设计语言 xff0c 为了支持函数的重载 xff0c C 43 43 对全
  • 堆栈的作用,以及存放的数据

    在计算机领域 xff0c 堆栈是一个不容忽视的概念 xff0c 但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构 堆栈都是一种数据项按序排列的数据结构 xff0c 只能在一端 称为栈顶 top 对数据项进行插入和删除 要点 x
  • STM32 姿态传感器mpu6050的使用

    文章目录 特性引脚说明使用I2C软件 xff0c 驱动mpu6050手册中寄存器描述MPU6050初始化的步骤 xff1a 数据读取mpu6050输出的值 特性 MPU6050 xff0c 能同时检测三轴加速度 三轴陀螺仪 三轴角速度 的运
  • STM32 GPS定位

    文章目录 ATGM332D简介特性引脚接入串口通信NMEA 协议解析串口输出nmealib在linux下使用 ATGM332D简介 高性能 低功耗 GPS 北斗双模定位模块 特性 特性说明基本功能三维位置定位 经纬度 海拔 xff0c 测速
  • 树莓派笔记13:舵机云台(一)

    最近买了个小型舵机云台模块来玩 xff0c 淘宝上卖这个的挺多的 xff0c 一般三四十块钱 xff0c 很多还卖配套的摄像头 说是云台 xff0c 其实就是用两个舵机结合固定板做的支撑模块 xff0c 两个舵机分别控制左右和上下的转动 1
  • STM32F103ZET6串口使用USAR_TFLAG_IDLE空闲中断实现UART_DMA接收和发送不定长数据

    本文是实现STM32F103ZET6串口通过使用STM32的IDLE空闲中断 xff08 USAR TFLAG IDLE 实现UART DMA接收和发送 xff08 Rx和Tx均通过DMA通道 xff09 不定长数据 本文实现了UART1
  • c++中使用LibCurl解析http请求数据

    libcurl lib xff08 或libcurl so xff0c unix下面尽量实时编译 xff0c 并且要注意系统版本 xff08 32 or 64 xff09 xff09 是跨平台解析http请求数据的动态库 xff0c 使用起
  • ESP32 web WiFi 管理器esp32-wifi-manager

    拓 2023 04 09 2022 04 11 1 简介 github仓库 https github com tonyp7 esp32 wifi manager 说明 esp32 wifi manager是esp32的纯C esp idf组
  • ubuntu下安装多版本Python

    转自 xff1a http www cnblogs com ningvsban p 4384995 html

随机推荐