python中欧拉-罗德里格斯的代码详解
我们可以在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中欧拉-罗德里格斯的代码详解相关推荐
- python命令行大全-用什么库写 Python 命令行程序(示例代码详解)
一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse . docopt . click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. ...
- python 代码命令大全-用什么库写 Python 命令行程序(示例代码详解)
一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse . docopt . click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. ...
- 信息论与编码 python实现 费诺编码 代码详解
先给出整体代码 要copy的朋友可以拿去 下面给出 from math import * class FanoCod: #费诺编码code_dict = {}x_p = {}x_plist = []A ...
- Python VTK 球体贴图代码详解(二)
效果 继昨天的柱体代码学习,之后尝试了一把球体并进行贴图,效果如下: 代码 代码是在昨天柱体基础上修改成球体,并针对球体贴图多了两步: import vtk# *************柱体***** ...
- python 图像语义分割mIOU代码详解
mIOU公式在此不赘述. 1.fast_hist(label.flatten(), pred.flatten(), num_classes) 2.生成关于像素的混淆矩阵 k = (a >= 0) ...
- 如何在python制作计算器_Python简易计算器制作方法代码详解
主要用到的工具是Python中的Tkinter库 比较简单 直接上图形界面和代码 引用Tkinter库 from tkinter import * 建立主窗口对象 window=Tk() #设置窗口对 ...
- 基于模糊C均值聚类(FCM)的图像分割原理+python代码详解
一.模糊 "模糊":一个元素可以不同程度的属于某几个子集,也就是说元素对于集合的隶属度可以在[0,1]上取连续值. 二.步骤 2.1步骤 翻译一下: S1:初始化参数:加权指数m, ...
- python怎么画条形图-python绘制条形图方法代码详解
1.首先要绘制一个简单的条形图 import numpy as np import matplotlib.pyplot as plt from matplotlib import mlab from ...
- python画简单的图形的代码-Python实现画图软件功能方法详解
概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...
最新文章
- MongoDB 在评论中台的实践
- 推荐一个ASP的内容管理框架(ASP Nuke)
- vue 如何解析原生html,VUE渲染后端返回含有script标签的html字符串示例
- Oracle分组函数
- nssl1150,jzoj5309-密室【分层建图,SPFA】
- AutoMapper搬运工之自定义类型转换
- 假如王撕葱是程序员。。。
- linux 用vi命令的使用以及vi编辑后的后续保存退出等相关命令的使用
- torch.nn模块介绍
- 使用 Arduino 烧录全新的 ATmega328P
- 银行卡,身份证,驾驶证识别
- Excel怎么把横向的数据变成纵向排列?
- 【网络编程学习之旅】一文学习网络编程之NIO
- 缓存路由组件+路由组件的2个生命周期钩子 activated 和 deactivated
- USB出现“can‘t set config #1, error -12”问题的探索
- 什么是项目集,如何有效管理?
- 目标检测1——SAR影像舰船数据集
- position 属性
- v5行为验证使用介绍(三)- 程序接入流程
- gSOAP 源码分析(四)