无人机飞控算法-姿态估计-欧拉角-旋转矩阵-四元数

2023-05-16

# 无人机飞控算法-姿态估计 此系列记录了我理解的卡尔曼滤波从0到1的过程,从姿态估计到位置估计,我们从核心点一个个出发,并结合实际模块的应用来一一揭开卡尔曼滤波的神秘面纱。


提示:在系列文章中,我参考了大量CSDN,知乎,简书等其他朋友的各种文档资料,并从中获益良多,对此表示非常感谢!在更新的过程中不免出现很多错误,希望大家能够及时指出和交流,一起学习,一起进步!

@TOC


前言

作为一个非控制类出生的通信工程师,半路出家,还是挺困难的,需要学习的知识很多,主要是卡尔曼滤波方面的,包含微积分、线性代数、概率统计论、信号与系统、控制论等等。在无人机里飞控是其中重要的组成部分之一,而飞控的核心就是算法,主要包括姿态估计算法,导航控制算法,PID控制算法,路径规划算法等。此系列从姿态估计算法入手,通过IMU的姿态解算来学习姿态估计算法究竟是为何物。


推荐:学习基础知识我推荐一下3blue1brown,在B站上可以搜索到他们的课程,讲的很生动,可以帮您快速理解一些核心知识。

一、姿态估计是什么?

想象一下,你拿着一根平衡杆,走在独木桥上,你该如何操控你手里的平衡杆才能使你不掉下去呢?从主观意识着想,其实挺简单的,如果身子往左倾斜,我们就把杆子向右移,如果身子往右倾斜,我们就把杆子向左移。要实现这个目的,首先我们是不是要知道身体现在究竟是左倾斜还是右倾斜呢?这就是姿态估计(Attitude Estimator)。那如何检测姿态呢?这就需要传感器了,在人类的身上,大脑充当了这个角色,在机器上,我们通过惯性测量单元(IMU)来测量姿态。

二、惯性测量单元(IMU)

1.陀螺仪

陀螺仪是利用高速回转体的动量矩敏感壳体相对惯性空间绕正交于自转轴的一个或二个轴的角运动检测装置。利用其他原理制成的角运动检测装置起同样功能的也称陀螺仪。陀螺仪可感测一轴或多轴的旋转角速度,可精准感测自由空间中的复杂移动动作,因此,陀螺仪成为追踪物体移动方位与旋转动作的必要运动传感器。不像加速器与电子罗盘,陀螺仪不须借助任何如重力或磁场等的外在力量,能够自主性的发挥其功能。所以,从理论上讲只用陀螺仪是可以完成姿态导航的任务的。陀螺仪的特性就是高频特性好,可以测量高速的旋转运动。缺点是存在零点漂移,容易受温度/加速度等的影响。

2.加速度计

加速器可用来感测线性加速度与倾斜角度,单一或多轴加速器可感应结合线性与重力加速度的幅度与方向。含加速器的产品,可提供有限的运动感测功能。加速度计的低频特性好,可以测量低速的静态加速度。在我们的飞行器上,就是对重力加速度g(也就是前面说的静态加速度)的测量和分析,其它瞬间加速度可以忽略。记住这一点对姿态解算融合理解非常重要。当我们把加速度计拿在手上随意转动时,我们看的是重力加速度在三个轴上的分量值。加速度计在自由落体时,其输出为0。为什么会这样呢?这里涉及到加速度计的设计原理:加速度计测量加速度是通过比力来测量,而不是通过加速度。

3.磁力计

电子罗盘也叫数字指南针,磁力计,是利用地磁场来定北极的一种方法。现在一般有用磁阻传感器和磁通门加工而成的电子罗盘。电子罗盘可由地球的磁场来感测方向。运用电子罗盘的消费性电子产品应用,包含在手机的地图应用程序显示正确方向,或为导航应用程序提供前进方向数据。然而,电子设备或建筑材料的磁场干扰,比地球磁场来得强,导致电子罗盘传感器的输出值,较容易受到各种环境因素的影响,尤其在室内更是如此,因此,电子罗盘须要透过频繁的校正,才能维持前进方向数据的准确度。


在捷联式惯导中,一般集成6轴陀螺仪和加速度计,有一些也集成了磁力计,但是一般情况下,我们都使用外部磁力计,因为磁力计在内部很容易受到电磁干扰。

三、欧拉角

1.坐标系

在描述姿态角度的时候一定要确定好坐标系旋转轴旋转顺序旋转方向,如果不确定好这些,那最后得到的旋转矩阵一定是千姿百态,保证你看的眼花缭乱,不明所以,一会又对了,一会儿又错了。关于坐标系的概念和分类大家可以去看相关文档,这里我们只讲和飞控相关的坐标系.

参考坐标系(导航系)

在飞控里常用的导航坐标系有两种:东北天和北东地。

东北天

东北天用ENU表示XYZ轴

北东地

北东地用NED表示XYZ轴

载体坐标系(机体系)

在飞控里常用的载体坐标系也有两种:右前上和前右下。

右前上

右前上表示载体坐标系的XYZ轴

前右下

前右下表示载体坐标系的XYZ轴

对应关系

ENU对应右前上

NED对应前右下

一般在惯导里用ENU较多,在控制领域里用的NED较多,飞控里也用的NED坐标系。

2.欧拉角和姿态角

欧拉角是描述旋转的一种方式,那姿态角呢?姿态角属于欧拉角的一种特殊形式,我们一般定义姿态角为偏航(Yaw),俯仰(Pitch),横滚(Roll)。在不同的载体坐标系里,姿态角对应也不一样。

ENU-右前上

右前上坐标系下,Z对应偏航,Y对应横滚,X对应俯仰。所以在常用的姿态旋转顺序(Yaw-Pitch-Roll)中,对应的旋转方式为(Z-X-Y)。

NED-前右下

前右下坐标系下,Z对应偏航,Y对应俯仰,X对应横滚。所以在常用的姿态旋转顺序(Yaw-Pitch-Roll)中,对应的旋转方式为(Z-Y-X)。前右下的旋转如下图:

 

注意这里的姿态角方向都遵循 右手定则

3.旋转规则

旋转规则分两种:

  • Proper Euler angles (z-x-z, x-y-x, y-z-y, z-y-z, x-z-x, y-x-y) 经典欧拉角
  • Tait–Bryan angles (x-y-z, y-z-x, z-x-y, x-z-y, z-y-x, y-x-z) 卡尔丹角

每种规则都使用了3个变量描述三次旋转过程中的旋转角度, 差别在于Proper Euler angles只涉及两个转轴.而Tait–Bryan angles涉及三个转轴。 一般我们习惯使用卡尔丹角来旋转,在姿态的旋转中,一般使用(Yaw-Pitch-Roll)的旋转顺序。

旋转轴

旋转轴分绕固定坐标系旋转和绕动坐标系旋转,前者称为外旋,后者称为内旋。 - Fixed Angles 外旋 - Euler Angles 内旋

外旋(Fixed Angles)

外旋为绕静止坐标系旋转,也就是每次旋转都绕参考的静止坐标系进行三轴旋转。外旋为旋转矩阵按照先后依次左乘。

内旋(Euler Angles)

外旋为动坐标系旋转,也就是每次旋转后绕变化后的坐标系进行三轴旋转。内旋为旋转矩阵按照先后依次右乘。

在外旋和内旋中有一个特性很重要,这里先提一下:X-Y-Z的外旋等价于Z-Y-X内旋

4.万向节(Gimbal)

在欧拉角表示姿态的过程中会出现一个问题,这个问题叫万向锁。

什么是万向锁

在网上找了很多,都说的迷迷糊糊的,这里做个最通俗易懂的解释。万向锁存在于特定的旋转顺序中,当第二次进行Y轴旋转90度时就会出现万向锁,就会丢失一个方向的自由度,不太好理解吧?拿一个飞控举例,长边为Y轴,短边为X轴,垂直向下为Z轴。 飞控先平放在桌面上:

我们先进行Z轴旋转45度:

 

我们再绕Y轴旋转90度:

我们再绕X轴旋转45度:

注意:此刻你要从世界坐标系下观察,最开始飞控机载坐标系和世界坐标系重合,我们绕Z轴旋转了一次,也就是在水平方向上有了旋转,然后我们绕Y轴旋转90度,也就是我们在Y方向上有了旋转,现在还剩最后一个旋转X,如果我们此刻绕X轴旋转,会发生什么?在机体坐标系下,你会认为我们还是转了啊?但是在世界坐标系下,无论你在X轴怎么转,你所反应出来的效果和最开始第一次在Z轴下的旋转不是一个效果吗?飞控始终在桌面上水平旋转,只是翻了个身而已,始终无法立起来。这样的旋转虽然我是旋转了三次,但是实际上只需要旋转2次就可以达到同样的效果了,所以就没有办法表示第三个维度的旋转。反过来,从姿态A到姿态B,可以通过几种不同的方式旋转得到同样的结果,那么我们的旋转的角度就不唯一,这就是奇异点。 当然,你可以说我可以不这么转啊?我不转90度就好了吗?当然这是不可能的,旋转都是不可预测的,他可能是任意角度。 如果这里你还是不懂的话,我们在下一章旋转矩阵里再来解释这个问题!

四、旋转矩阵(DCM)

旋转矩阵又称为方向余弦矩阵,前面我们通过欧拉角来表示姿态的旋转,其实我们可以用旋转矩阵来表示旋转。本身矩阵就是为了表示旋转而生的,三个轴的旋转也就是将三个旋转矩阵相乘即可。

前提

描述旋转矩阵之前一定切记,一定要先定义好坐标系和旋转规则,否则就会把小白带入大坑深深不能自拔,本章的DCM遵循如下定义:
  • 参考系:ENU或END
  • 载体系:右前上或前右下
  • 旋转顺序:(Yaw-Pitch-Roll)Z-X-Y或Z-Y-X
  • 旋转轴:内旋
  • 旋转方向:右手定则
以后在默认情况下,我们一般都遵循内旋和右手定则,只是坐标系和旋转顺序会有一些变化。

DCM推导

网上有很多DCM的推导文档,很多都没有注明坐标系和内旋外旋,导致推出来的看不懂。 我推荐一个视频大家可以看看:B站老师讲旋转矩阵

推导思路

根据我们之前提到的一个外旋内旋特性:X-Y-Z的外旋矩阵等价于Z-Y-X的内旋矩阵。 如果我们要推导内旋矩阵,那么推导出外旋的逆方向矩阵就可以了,注意这里的逆方向可不是矩阵转置。你不信可以用Matlab实验一下。为什么要先推外旋呢?因为外旋比较好理解,很直观就可以把三轴的旋转矩阵算出来。

再谈坐标系

在推导外旋旋转矩阵时,我们再分析一下坐标系,也就是ENU和NED,我们用图来对比一下两者有何区别:

他们虽然定义的方向不一样,但同在右手定则下旋转的话,对应的顺序其实是一样的! 在ENU下,绕Z轴旋转,这时候应该是如下图所示:

 

Z轴朝上,右手定则,绕Z轴转,我们只关注XY平面上发生的变化,整体变化是从XY坐标系变到了X'Y'坐标系,我们简称为XY变化。 在NED下,绕Z轴旋转,这时候应该是如下图所示:

 

Z轴朝下,右手定则,绕Z轴转,我们只关注XY平面上发生的变化,整体变化是从XY坐标系变到了X'Y'坐标系,同样是XY变化。

比较两者,其实是一样的都是XY变化,同理,其他两轴也是如此!

从这里我们得到一个结论:不管是东北天还是北东地,他们所对应的单轴的旋转矩阵都是一样的,不同的无非就是旋转顺序和坐标系的定义区别而已。也就是ENU的X-Y-Z和NED的X-Y-Z是一样的,其他旋转顺序也是如此,既然外旋一样,那不同坐标系得到的最终内旋矩阵也是一样!

一般在ENU下我们用Z-X-Y,在NED下我们Z-Y-X旋转。 三轴基本旋转矩阵(外旋) 注意这里的三轴是外旋的,而且前面说了,这里不区分坐标系。

虽然旋转矩阵一样,但是我们最好还是注明坐标系,因为后面的一些运算就和坐标系有关系了。接下来我们就列举常用的几种旋转矩阵来说明。

默认情况下的旋转,参考系为n系,载体系为b系,旋转的时候,参考系不动,载体系进行旋转

ENU_Z-X-Y_Euler_Angles

  • 参考系(导航系):(ENU)东北天
  • 载体系(机体系):(XYZ)右前上
  • 旋转顺序:Z-X-Y
  • 姿态顺序:(Yaw-Pitch-Roll)偏航-俯仰-横滚
  • 旋转轴:内旋

要计算内旋的Z-X-Y,我们只需要计算外旋的Y-X-Z即可,也就是计算出ENU_Y-X-Z_Fixed_Angles:

但是内旋的右乘就是从左到右乘了,从这里也可以看出左乘的Y-X-Z等于右乘的Z-X-Y了。

下面的旋转矩阵是从载体系到参考系的旋转矩阵R_b2n,左上角标有F表示是外旋下的DCM:

注意:内旋是按照旋转顺序右乘,外旋是按照旋转顺序左乘,所以内旋的Z-X-Y等于外旋的Y-X-Z。

 

根据外旋内旋规则那么得到内旋的旋转矩阵R_b2n:从载体系到参考系:

求转置可得到从参考系到载体系的旋转矩阵:

同理我们再给出其他旋转方式的DCM,过程我就不写了,直接给出结果!

ENU_Z-Y-X_Euler_Angles

  • 参考系(导航系):(ENU)东北天
  • 载体系(机体系):(XYZ)右前上
  • 旋转顺序:Z-Y-X
  • 姿态顺序:(Yaw-Pitch-Roll)偏航-俯仰-横滚
  • 旋转轴:内旋 此刻我们变成了Z-Y-X旋转,注意此刻我们的姿态旋转顺序变成了(Yaw-Pitch-Roll,Z-Y-X): 注意这里的Y轴变成了Pitch,这似乎不合之前坐标系的对应关系。这无大碍,看你最后选的坐标系定了,你也可以把Y轴定义为Roll,但是在东北天下,显得怪怪的,萝卜白菜,各有所爱嘛。

 

这个旋转矩阵是从载体系到参考系:

求转置可得到从参考系到载体系的旋转矩阵:

NED_Z-Y-X_Euler_Angles

  • 参考系(导航系):(NED)北东地
  • 载体系(机体系):(XYZ)前右下
  • 旋转顺序:Z-Y-X
  • 姿态顺序:(Yaw-Pitch-Roll)偏航-俯仰-横滚
  • 旋转轴:内旋 前面我们说了,旋转矩阵和坐标系无关,所以NED下的ZYX和ENU下的ZYX是一样的哦,唯一不同的就是,姿态的命名和正负方向不一样了,绕X轴变成了横滚,绕Y轴变成了俯仰,Z轴还是偏航。

这个旋转矩阵是从载体系到参考系:

求转置可得到从参考系到载体系的旋转矩阵:

我们主要列出了3个DCM包括ENU下的2种和NED下的1种,这三种是比较常用的,其余的大家有兴趣可以自行推导!

再谈万向锁

如果在上一章中,你没有完全弄懂为什么欧拉角会有万向锁的问题,这里我们通过DCM矩阵来分析一下,我们用NED下的Z-Y-X旋转DCM矩阵来分析:

 

如果我们在Pitch方向上旋转90度,cosPitch=0,sinPitch=1,化简矩阵得到:

 

通过这个矩阵我们可以看出,不管Y,Z轴如何旋转X轴都不变。

DCM的实际应用

讲了那么多,是应该用实践上战场了,看看这个DCM究竟有何用!

加速度计计算初始姿态角
一般我们在初始化姿态角的时候,都会用加速度计来初始化飞机的横滚和俯仰角,由于加速度计在Z轴上的转动不会产生变化,所以不能计算偏航角,偏航角需要由磁力计获取! 同样先确定好坐标系,和旋转顺序。我们为什么选用ENU呢?这和传感器有关,我们截取数据手册加速度的方向定义:

 

这个IMU的加速度计的坐标系正好符合东北天,所以我们用东北天,如果你系统中使用的是NED,那么这里就要把传感器的Y,Z轴取反,所以第一步确立你的坐标系,以后就统一使用它。

ENU-Z-X-Y

NED-Z-Y-X

注意:由于IMU的坐标系和NED不一致,所以我们要把传感器的Y轴和Z轴的值取反,乘以静止加速度向量的时候,Z轴也要取反,所以是乘以[0,0,-1],这一点很重要!不然,你计算出来的姿态角度是不对的!

磁力计计算初始偏航角
由于加速度计无法感知Z轴变化,所以无法通过加速度计来计算偏航角,还好我们有磁力计,我们可以通过磁力计来计算初始偏航角。参考链接: 基于加速度计与磁力计的姿态解算方法(加计补偿偏航)

磁力计原理

地磁场是一个矢量,对于一个固定的地点来说,这个矢量可以被分解为两个与当地水平面平行的分量和一个与当地水平面垂直的分量。如果保持电子罗盘和当地的水平面平行,那么罗盘中磁力计的三个轴就和这三个分量对应起来,如图所示。

 

实际上对水平方向的两个分量来说,他们的矢量和总是指向磁北的。罗盘中的航向角(Azimuth)就是当前方向和磁北的夹角。由于罗盘保持水平,只需要用磁力计水平方向两轴(通常为X轴和Y轴)的检测数据就可以用如下公式计算出航向角。当罗盘水平旋转的时候,航向角在0°~ 360°之间变化。

 

实际航向

实际情况下但是我们不能保证当前载体绝对水平,所以我们需要把传感器的数据转换到水平面。这里就要用到当前飞机的姿态角了,我们通过DCM矩阵来完成从载体系到参考系的转换,我们需要的是参考系下的水平分量。 通过矩阵来表达也就是:

 令磁力计测量的数据为:

 

DCM矩阵为(我们使用的是北东地下的ZYX旋转):

 由于Yaw不参与转换,所以设Yaw=0,得到:

 整理公式得到:

 通过这个旋转,我们就把载体坐标系的数据,变成了水平载体坐标系,也就是载体水平的情况下,磁力计测量的数据值。

主意z轴的正负(原始数据是z轴朝上为正) 最后得到实际的航向角为:

真实航向

磁力计所解算的航向角是载体坐标x轴相对于磁北而言的,而真北与磁北之间存在一个磁偏角:

 所以载体坐标纵轴相对于真北的航向角为:

 

计算出来的夹角是正还是负? 和载体坐标系有关,如果z轴朝下,根据右手定则,那么载体的旋转正方向为顺时针,那么得到的偏航角就是负的。

小结

在实际的系统中使用的时候一定要确定一种旋转方式,不能混用,后面的章节里我们都使用NED参考系下的ZYX内旋。

五、四元数

四元数是一个比较抽象的概念,他是站在四维空间的角度看待三维的旋转变化,比较难以理解。你可以简单的理解为,三维空间中的三轴旋转等价于绕某一个轴进行一个角度的旋转,这是比较好理解的,其实这个和Axis Angle轴角的概念很像了。

四元数如何表达旋转

四元数如何表示姿态?三维空间的任意旋转,都可以用绕三维空间的某个轴旋转过某个角度来表示,即所谓的Axis-Angle表示方法。物体从一个姿态变化到另一个姿态,可等效为物体绕了某一个轴通过一次旋转某个角度完成,但实际物体可能经过了多次中间过程才变化到了我们想要的姿态,我们不去关心中间过程,我们只需找到一种变化关系,通过这种变换关系,可求出物体从地理坐标系变到物体坐标系坐标或者从物体坐标系变到地理坐标系的坐标。

四元数表达式

我们用罗德里格旋转来用四元数表达姿态: 四元数特性:

 我们这里直接给出四元数下的ZYX旋转矩阵:

 

注意:这里四元数旋转矩阵是唯一的。但是为什么注明ZYX旋转呢?那是应为,欧拉角和四元数之间的转换是区分旋转顺序的,不同的旋转顺序会生成不同的四元数,你可以通过 四元数在线来观察其中的变化,你可以看出同一种旋转结果,只对应一个四元数,确对应了多种的欧拉旋转顺序。

对四元数矩阵推导感兴趣的朋友参考我这篇文章:

四元数转欧拉角

回顾一下,我们前面得到了欧拉角转DCM,现在我们有了四元数转DCM,把两者的矩阵一对应,就可以求解四元数转欧拉角的方程了。

NED_ZYX_Quat2Angle

注意:我们用的NED下的ZYX旋转

根据矩阵对应得到:

ENU_ZXY_Quat2Angle

欧拉角转四元数

Z-Y-X的欧拉角转四元数

我们用的ZYX旋转四元数

 

注意:这里的乘法不是普通的乘法规则,需遵守四元数乘法规则,不同旋转顺序得到的结果也不一样,这一点和矩阵乘法相似,最后得到四元数方程为:

Z-X-Y的欧拉角转四元数

ZXY旋转

小结

其实这些方程,我们在Matlab中的Aero Toolbox中,可以找到所有的旋转关系对应。

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

无人机飞控算法-姿态估计-欧拉角-旋转矩阵-四元数 的相关文章

  • 可以带到2015年的几点思考

    1 自己的事情永远得自己出头 我从小就是个很独立的人 我不知道这种独立是什么时候培养起来的 xff0c 但清楚的记得一件事情 上小学那会儿 xff0c 有一年母亲生病了 xff0c 在医院 xff0c 家里就我一个人 xff0c 有时候 x
  • 远程桌面登录Lubuntu

    Lubuntu也就是ubuntu的服务器版本 xff0c 其实远程很简单 xff0c 并没有很多教程讲的那么复杂 远程桌面比较好的解决方式是用xrdb xff0c 效果也很不错 第一步 xff1a sudo apt get install
  • 用java做的一个小游戏—黑白反斗棋(适合菜鸟)

    用Java做的一个小游戏 xff0c 黑白反斗棋 xff0c 我玩过了5 5和10 10的 是学习之后做的 xff0c 不是自己原始开发的 import java awt Color import java awt FlowLayout i
  • 我的精神分裂——普通青年用二-B的方式走文艺的范儿

    一直以来都是以一种低沉的文笔在写些我的垃圾生活 xff0c 垃圾感想 xff0c 每次都会放那些特定的音乐 xff0c 那是一种心境 xff0c 那些音乐带着我的手在敲动 今天我想换种音乐 xff0c 猜猜我在放什么音乐 xff0c 很Hi
  • 读书随笔(1)——《计较是贫穷的开始》

    xff08 读书之后写感 xff0c 本该是读书之后自然的一个延续 xff0c 但我却很少这样了 xff0c 这不能说是一个极其坏的习惯 xff0c 虽不知道我究竟能不能改了 xff0c 但还是希望能尽可能的写写 xff0c 对自己想法有个
  • 2012年终随笔

    时至年终 xff0c 按我此前的惯例 xff0c 该写篇年终总结性的文章 xff0c 在之前末日说沸沸扬扬的时候 xff0c 我在想是否该早点写 xff0c 写个末日遗言什么的 xff0c 但还是没有写 xff0c 觉得如果真的末日来临 x
  • ath10k 出现ath10k_htt_t2h_msg_handler+0xebc/0x1efc解决方案

    问题log Fri Feb 21 20 08 34 2020 kern warn kernel nbsp 86 625786 WARNING CPU 0 PID 8 at openwrt 18 06 git build dir target
  • 解决第一次使用zookeeper闪退问题

    1 复制zookeeper 3 4 13 conf zoo sample cfg文件 xff0c 改名为zoo cfg 2 windows点击zookeeper 3 4 13 bin zkServer cmd命令启动zookeeper注册中
  • Android 11 update-api 遇到的问题

    1 缺少 非空判断 error log Missing nullability on method 96 getSecurityRestrictPwd 96 return MissingNullability import android
  • linux 文件 目录 默认权限

    结论 在linux系统中任何文件 目录都有一定的权限 xff0c 对于新创建的文件或目录 xff0c 也会有默认的访问权限 可能是出于安全的考虑 xff0c linux系统新建文件默认没有执行权限 xff0c 其最大权限为rw rw rw
  • centos 7 安装xfce 4桌面环境

    默认情况下 xff0c 完整安装的CentOS 7将安装GNOME图形用户界面 xff08 GUI xff09 xff0c 并且将在系统启动后加载 但是 xff0c 如果我们安装的CentOS没有安装GUI xff0c 那么我们总是可以稍后
  • Android 屏幕处于横屏状态 旋转180度界面切换显示

    span span public SreenOrientationListener mSreenOrientationListener span span mSreenOrientationListener 61 new SreenOrie
  • linux 桌面管理器 xfce 用户自动登录

    vi etc lightdm lightdm conf SeatDefaults autologin user 61 username 需要登录的用户名 autologin user timeout 61 delay
  • python 并行计算 pathos模块 简介

    目录 pathos模块 1 pathos自身的多进程方法 xff08 pathos multiprocessing ProcessPool pathos multiprocessing ProcessingPool pathos pools
  • 自然对数的底“e”的由来

    目录 一 神奇的 加减术 二 约翰 纳皮尔 xff08 John Napier xff09 的伟大贡献 发明对数 三 e在哪里 xff1f 是如何出现并逐步确认的呢 xff1f xff08 一 xff09 在制作对数表的过程中更加深入认识e
  • postgresql 报错 FATAL: no pg_hba.conf entry for host 未配置允许远程连接 解决方法

    目录 错误现象 问题原因 解决方案 1 进入到data目录下 xff0c 找到pg hba conf文件 2 修改文件 3 进入到postgres用户下 xff0c 执行命名 4 连接成功 错误现象 问题原因 这是在远程连接时pg hba
  • js javascript 解决 强制关注才能阅读

    问题现象 xff1a 强制关注 才能展开看文章 解决方法 xff1a chrome浏览器 打开文章网页 快捷键F12 然后切换到Console界面 复制一下代码回车 就可以阅读全部文章了 var article content 61 doc
  • linux 查看系统已安装内核

    目录 1 RHEL CentOS Fedora 2 Debian Ubuntu Linux Mint 3 SUSE openSUSE 4 Arch Linux 1 RHEL CentOS Fedora 在终端中执行如下命令查看已安装的 Li
  • win11 报错 你的IT管理员已经限制对此应用一些区域的访问 解决方法

    你的IT管理员已经限制对此应用一些区域的访问 你尝试访问的项目不可用 有关详细 请与你的IT支持人员联系 1 按下win 43 s xff0c 在框中输入cmd xff0c 右键管理员身份运行 2 在命令提示符中输入 reg add HKE
  • HTTPS和HTTP的区别

    什么是 HTTPS HTTPS 基于安全套接字层的超文本传输协议 或者是 HTTP over SSL 是一个 Netscape 开发的 Web 协议 你也可以说 xff1a HTTPS 61 HTTP 43 SSL HTTPS 在 HTTP

随机推荐

  • 正则表达式在线自动生成器

    正则表达式的强大众所周知 xff0c 它令程序员的头痛程度也数一数二的 最近我发现了一个网站 xff0c txt2re xff0c 能够自动为你生成正则表达式 xff0c 而且很灵活 xff0c 在这里推荐一下 网址 https www t
  • transfer-encoding:chunked的含义

    Transfer Encoding chunked 表示输出的内容长度不能确定 xff0c 普通的静态页面 图片之类的基本上都用不到这个 但动态页面就有可能会用到 xff0c 但我也注意到大部分asp php asp net动态页面输出的时
  • 回首2013,展望2014

    此刻值此2013年末 xff0c 明天便是元旦 近日浏览CSDN论坛时 xff0c 发现有许多的坛友都在写2013年度总结 xff0c 博客作为个人的名片 xff0c 也决定开始尝试写博客 xff0c 我的第一篇博客就是关于2013年度总结
  • i tell you 微软各种 操作系统 应用程序 开发工具 下载

    I tell you 提供微软系各种操作系统 xff08 win7 xp win10 xff09 应用程序 xff08 office project visio等 xff09 开发人员工具 xff08 visual C 43 43 visu
  • docker 设置国内镜像源

    目录 国内加速地址 修改方法 国内加速地址 1 Docker中国区官方镜像 https registry docker cn com 2 网易 http hub mirror c 163 com 3 ustc https docker mi
  • Docker网络代理设置

    背景 在一些实验室环境 xff0c 服务器没有直接连接外网的权限 xff0c 需要通过网络代理 我们通常会将网络代理直接配置在 etc environment etc profile之类的配置文件中 xff0c 这对于大部分操作都是可行的
  • android布局优化(ViewStub)

    页面中有些布局在初始化时没必要显示 xff0c 但是又不得不事先在布局文件中写好 xff0c 虽然设置成了invisible或gone xff0c 但是在初始化时还是会加载 xff0c 这无疑会影响页面加载速度 针对这一情况 xff0c A
  • iOS类似Android的ViewPager

    WhdeViewPager 类似安卓的 ViewPager Android ViewPager GitHub https github com whde WhdeViewPager 效果如下 使用 viewPager 61 WhdeView
  • ubuntu怎么切换到root用户,切换到root账号方法

    ubuntu怎么切换到root用户 xff0c 使用su root命令 xff0c 去切换到root权限 xff0c 会提示输入密码 xff0c 可是如何也输不对 xff0c 提示 Authentication failure 或者是提示认
  • left join 基本用法

    废话不多说 xff0c 来看例子 一 建表 xff0c 导入测试数据 create table temp1 aid VARCHAR2 5 not null car VARCHAR2 10 not null create table temp
  • Ubuntu系统与Linux常用命令

    目录 一 Ubuntu系统 xff1a 1 Ubuntu目录的简介2 Ubuntu与人交互3 人与Linux系统进行交互1 如何打开一个终端 xff1a 2 终端命令提示 4 Ubuntu命令的组成1 命令目的 xff1a 2 命令的格式
  • STM32串口打印输出乱码的解决办法

    前言 最近在试用uFUN开发板 xff0c 下载配套的Demo程序 xff0c 串口数据输出正常 xff0c 当使用另一个模板工程 xff0c 调用串口printf调试功能时 xff0c 输出的却是乱码 xff0c 最后发现是外部晶振频率不
  • 扬州大学信息工程学院2022届考研情况分析(主要针对专业课为858程序设计与数据结构的专业)

    作者 xff1a 64 江上 酒 23扬大信工考研交流群 xff1a 714584589 今年初试专业课为858程序设计与数据结构的人数达475人 xff0c 进入复试的共计118人 xff08 含计科 软工及电子信息各个方向 xff09
  • Android(12)浅析 偏好设置 Preference(一)

    Android 12 浅析 偏好设置 Preference xff08 一 xff09 官方基本用法 xff1a https developer android google cn guide topics ui settings 效果演示
  • 扬州大学信息工程学院2023届考研情况分析(针对858计算机专业基础的所有考生)

    扬州大学信息工程学院2023届考研情况分析 xff08 针对858计算机专业基础的所有考生 xff09 作者 xff1a 64 江上 酒 24扬大信工考研交流群 xff1a 714584589 进入复试的基本要求及各方向招生的详细计划如下图
  • Spring启动类源码学习小记

    现在面试Java 的 xff0c 都必备SpringBoot了 xff0c 一说SpringBoot xff0c 面试官又喜欢问底层 xff0c 我也是这种形式主义的受害者之一 xff0c 但是还别说 xff0c 自从看了底层源码 xff0
  • 电脑桌面美化(Win10)

    这是你的电脑桌面 而有人的桌面是这样的 这样的 有的人会把桌面图标放到dock栏里 xff0c 再把任务栏变成透明的 xff0c 再换个动态壁纸 xff0c 在加个频谱听听音乐 各种花里胡哨的 xff0c 是不是很羡慕 而电脑桌面完全取决于
  • 总结2014——迷茫以及迷茫过后的坚持

    首先 xff0c 借用一句话和大家共勉 xff1a 少一些功利主义的追求 xff0c 多一些不为什么的坚持 xff01 xff01 不知不觉15年也快过了1个月了 xff0c 还是想着要为14年做一下总结 xff1a 记录一下自己的历程 今
  • 无人机运动学控制中的坐标系,及惯性坐标系与机体坐标系之间的矩阵转换 欧拉角

    一 无人机控制中的坐标系 无人机运动学中 xff0c 有三种需要了解的坐标系 1 1 地球中心坐标系 xff08 ECEF xff09 地球中心坐标系 xff0c 即坐标系原点位于地心 X轴通过格林尼治线和赤道线的交点 xff0c 正方向为
  • 无人机飞控算法-姿态估计-欧拉角-旋转矩阵-四元数

    无人机飞控算法 姿态估计 此系列记录了我理解的卡尔曼滤波从0到1的过程 xff0c 从姿态估计到位置估计 xff0c 我们从核心点一个个出发 xff0c 并结合实际模块的应用来一一揭开卡尔曼滤波的神秘面纱 提示 xff1a 在系列文章中 x