我们可以在python中定义以下函数来完成三维和四维的罗德里格斯公式的数值计算,即统一了旋转运动和一般螺旋运动的Euler-Rodrigues公式: R = e θ A s = I + s i n θ A s + ( 1 − c o s θ ) A s 2 \mathbf R=e^{\theta \mathbf As} = \mathbf I + sin\theta \mathbf A_s + (1-cos\theta)\mathbf A_s^2 R=eθAs=I+sinθAs​+(1−cosθ)As2​ H = e θ E s = I + s i n θ E s + ( 1 − c o s θ ) E s 2 \mathbf H=e^{\theta \mathbf Es}= \mathbf I +sin\theta \mathbf E_s + (1-cos\theta)\mathbf E_s^2 H=eθEs=I+sinθEs​+(1−cosθ)Es2​显然,始终的 s \mathbf s s为单位旋转轴或者单位螺旋, θ \theta θ为绕轴旋转的角度。这样就完成了李代数so(3)/se(3)到李群SO(3)/SE(3)之间的指数映射关系。

def Euler_Rodrigues(M,theta):'''输入:李代数元素的矩阵表示和对应的角度theta输出:对应的李群元素H【示例1】so3->SO3输入:M = np.array([[0,-1,0],[1,0,0],[0,0,0]])theta = 30*deg输出: Euler_Rodrigues(M,theta) =[[ 0.866 -0.5    0.   ][ 0.5    0.866  0.   ][ 0.     0.     1.   ]]【示例2】s33->SE3输入:M = np.array([[ 0.   -1.    0.    3.37][ 1.    0.   -0.   -3.37][-0.    0.    0.    0.  ][ 0.    0.    0.    0.  ]])theta = 30*deg输出: Euler_Rodrigues(M,theta) =[[ 0.866 -0.5    0.     2.136][ 0.5    0.866  0.    -1.234][ 0.     0.     1.     0.   ][ 0.     0.     0.     1.   ]]'''dim = M.shape[0]I = np.eye(dim)MLG = I + sin(theta)*M + (1-cos(theta))*matmul(M,M)return MLG

python中欧拉-罗德里格斯的代码详解相关推荐

  1. python命令行大全-用什么库写 Python 命令行程序(示例代码详解)

    一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse . docopt . click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. ...

  2. python 代码命令大全-用什么库写 Python 命令行程序(示例代码详解)

    一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse . docopt . click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. ...

  3. 信息论与编码 python实现 费诺编码 代码详解

    先给出整体代码 要copy的朋友可以拿去 下面给出 from math import * class FanoCod: #费诺编码code_dict = {}x_p = {}x_plist = []A ...

  4. Python VTK 球体贴图代码详解(二)

    效果 继昨天的柱体代码学习,之后尝试了一把球体并进行贴图,效果如下: 代码 代码是在昨天柱体基础上修改成球体,并针对球体贴图多了两步: import vtk# *************柱体***** ...

  5. python 图像语义分割mIOU代码详解

    mIOU公式在此不赘述. 1.fast_hist(label.flatten(), pred.flatten(), num_classes) 2.生成关于像素的混淆矩阵 k = (a >= 0) ...

  6. 如何在python制作计算器_Python简易计算器制作方法代码详解

    主要用到的工具是Python中的Tkinter库 比较简单 直接上图形界面和代码 引用Tkinter库 from tkinter import * 建立主窗口对象 window=Tk() #设置窗口对 ...

  7. 基于模糊C均值聚类(FCM)的图像分割原理+python代码详解

    一.模糊 "模糊":一个元素可以不同程度的属于某几个子集,也就是说元素对于集合的隶属度可以在[0,1]上取连续值. 二.步骤 2.1步骤 翻译一下: S1:初始化参数:加权指数m, ...

  8. python怎么画条形图-python绘制条形图方法代码详解

    1.首先要绘制一个简单的条形图 import numpy as np import matplotlib.pyplot as plt from matplotlib import mlab from ...

  9. python画简单的图形的代码-Python实现画图软件功能方法详解

    概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...

最新文章

  1. MongoDB 在评论中台的实践
  2. 推荐一个ASP的内容管理框架(ASP Nuke)
  3. vue 如何解析原生html,VUE渲染后端返回含有script标签的html字符串示例
  4. Oracle分组函数
  5. nssl1150,jzoj5309-密室【分层建图,SPFA】
  6. AutoMapper搬运工之自定义类型转换
  7. 假如王撕葱是程序员。。。
  8. linux 用vi命令的使用以及vi编辑后的后续保存退出等相关命令的使用
  9. torch.nn模块介绍
  10. 使用 Arduino 烧录全新的 ATmega328P
  11. 银行卡,身份证,驾驶证识别
  12. Excel怎么把横向的数据变成纵向排列?
  13. 【网络编程学习之旅】一文学习网络编程之NIO
  14. 缓存路由组件+路由组件的2个生命周期钩子 activated 和 deactivated
  15. USB出现“can‘t set config #1, error -12”问题的探索
  16. 什么是项目集,如何有效管理?
  17. 目标检测1——SAR影像舰船数据集
  18. position 属性
  19. v5行为验证使用介绍(三)- 程序接入流程
  20. gSOAP 源码分析(四)

热门文章

  1. 安装python3.x解释器步骤,Windows下使Python2.x版本的解释器与3.x共存的方法
  2. python从文件中读取数据_【Python】从文件中读取数据
  3. 最新Mac Pro详解
  4. 哪些字段适合建立索引
  5. 安卓webview长按分享,长按选择,长按复制,仿好奇心日报长按分享自定义弹窗的实现
  6. BM25算法——(他人写)
  7. 好用一些的真无线蓝牙耳机,音质好的真无线蓝牙耳机
  8. Formality总结
  9. EXCEL函数篇01 按间隔符提取数据,实现分列功能
  10. 计算机科技手抄报内容,科技手抄报内容:云计算