Scipy 笔记
大约 2 分钟
Scipy 笔记
姿态表示与插值
scipy 的姿态表示与插值模块为 scipy.spatial.transform
姿态表示
https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.transform.Rotation.html
姿态表示模块 Rotation 常用的导入方式为 from scipy.spatial.transform import Rotation as R
 该模块可接收多主流的姿态表示方法, 并在各种表示方法之间相互转换
在 Rotation 模块中的常用姿态表示方法如下
- 解析欧拉角姿态 
R.from_euler(seq, angle, degrees)seq欧拉角规则字符串
可传入x,y,z三个字母组成的十二种合法欧拉角, 也可仅传入一个字母, 表示绕单轴旋转
字母所表示的规范为从左到右, 按固定坐标轴旋转 (与机器人学中的欧拉角规范相反)angle欧拉角的角度参数, 完整欧拉角传入三元素数组, 绕单轴旋转传入一个角度degree使用角度制时传入True, 使用弧度制时传入False- 例如 RPY 角规范则使用字符串 
xyz, 传入角度[a,b,c]表示为姿态矩阵时有 
 
常微分方程与积分
https://docs.scipy.org/doc/scipy/reference/integrate.html
scipy 的数值积分模块为 scipy.integrate
常微分方程的数值求解
使用函数 scipy.integrate.solve_ivp 可用于求解具有以下形式的常微分方程或方程组的数值解
该函数的常用形式为scipy.integrate.solve_ivp(fun, t_span, y0, *, t_eval = None, event = None, terminal = False)
fun可调用对象, 具有原型fun(t, y) -> dy即常微分方程组中的函数 , 要求- 函数参数 
y与函数返回值dy为两个一维的且具有相同形状的 Numpy 数组 t为一个浮点数
- 函数参数 
 t_span二元素元组, 即时间参数 的开始与截止时间y0方程在初始时刻的状态变量值, 为一个与y形状相同的 Numpy 数组, 如果传入复数表明在复数域上求解方程t_eval采样时刻, 一个一维数组表明计算解 的采样时刻, 默认将由求解器决定event可调用对象, 具有原型event(t, y) -> a, 在求解过程中将寻找是否有满足event(t, y) == 0的特殊事件点, 如碰撞到墙壁terminal布尔值, 是否在特殊事件发生时终止求解- 函数参数 
t, y与参数fun要求相同 - 范数返回值为一个浮点数
 
- 函数参数 
 - 返回值为一个求解结果对象, 主要包含以下成员 
t一维数组, 计算解的采样间隔y二维数组, 在各个采样间隔下对应的数值解success布尔值, 求解是否成功event_t, event_y一维与二维数组或None, 求解过程中找到的特殊点