无人机飞控三大算法:捷联式惯性导航系统、卡尔曼滤波算法、飞行控制PID算法

2023-05-16

无人机飞控三大算法:捷联式惯性导航系统、卡尔曼滤波算法、飞行控制PID算法。
一、捷联式惯性导航系统
说到导航,不得不说GPS,他是接受卫星发送的信号计算出自身位置的,但是当GPS设备上方被遮挡后,GPS设备无法定位了。比如在室内、隧道内、地下等场所,基本收不到GPS信号。

语录:任何一款有缺点的产品,必然成就了另一款能克服其缺点的产品。

另一种导航方式是不依赖外界信息的,这种导航叫做惯性导航。

那什么是惯性导航呢?他就是利用载体上的加速度计、陀螺仪这两种惯性远见,去分别测出飞行器的角运动信息和线运动信息,与初始姿态、初始航向、初始位置一起交给计算模块,由计算模块推算出飞机的姿态、速度、航向、位置等导航参数的自主式导航方法。

(精益求精:陀螺仪是怎么通过角运动信息再经过计算模块计算得出姿态的呢?同理加速度计又是怎样通过线运动信息再经过计算模块计算出速度的呢?)

另外惯性导航系统分为平台式惯性导航和捷联式惯性导航。

惯性导航系统分为平台式惯性导航和捷联式惯性导航。

早期的惯性导航系统都是平台式的,平台式惯导有实体的物理平台,陀螺仪和加速度计置于由陀螺稳定的平台上,该平台跟踪导航坐标系,以实现速度和位置解算,姿态数据直接取自于平台的环架。

优点:直接模拟导航坐标系,计算比较简单;能隔离载体的角运动,系统精度高。

缺点:结构复杂,体积大,制作成本高。

还有另一种捷联式惯性导航,捷联的英文原义是“捆绑”的意思。因此捷联式惯性导航也就是将惯性测量元件,包括陀螺仪和加速度计,直接装在需要姿态、速度、航向等导航信息的主体上,用计算机的测量信号变换为导航参数。

优点是没有平台,架构简单,体积小,维护方便。

缺点:惯性元件直接装在载体上,环境恶劣,对元件要求较高;坐标变换中计算量大。

总体来看,捷联惯导比平台式惯导优势明显。

在1969年,捷联惯导系统作为"阿波罗"-13号登月飞船的应急备份装置,在其服务舱发生爆炸时将飞船成功地引导到返回地球的轨道上时起到了决定性作用,成为捷联式惯导系统发展中的一个里程碑

二、卡尔曼滤波算法
卡尔曼滤波算法采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻地观测值来更新对状态变量的估计,求出现刻的估计值。

卡尔曼滤波算法是卡尔曼等 人在20世纪60年代提出的一种递推滤波算法。它的实质是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法。这套算法采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值,在惯性导航系统中有非常广泛的应用。刚才说的噪声指的是计算得出的值与实际值的误差。

那么为什么Kalman滤波会应用到惯性导航系统中呢?这主要是因为惯性导航系统的“纯惯性”传感器不足以达到所需的导航精度,为了补偿导航系统的不足,常常使用其他导航设备来提高导航精度,以减小导航误差。所以利用Kalman滤波算法,可以将来自惯性导航系统与其他导航装置的数据(如惯性导航系统计算的位置对照GPS接收机给出的位置信息)加以混合利用,估计和校正未知的惯性导航系统误差。

卡尔曼滤波算法广泛应用已经超过30年,包括机器人导航,控制, 传感器数据融合甚至军事方面的雷达系统以及导弹追踪等等。

比如,在雷达中,人们感兴趣的是跟踪目标,但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置最优的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测),也可以是对过去位置的估计(插值或平滑)。

卡尔曼滤波算法是一个非常复杂的计算,我们结合飞行器来简单的讲一下它的计算过程,比如飞行器想知道自己的一个状态,这个状态可以是姿态、速度或位置等信息,我们知道飞行器的传感器是可以得到这些信息的,通过惯性导航的数学模型也可以计算出这些信息,但这两个信息的值与实际值还是有一定的差距的,把这两个值放在若干数学公式里可以得到一个最优值,通过这个最优值与传感器和数学模型的值进行对比,我们可以知道哪个值与最优值比较接近,下次的计算我们应该较多的参考接近最优值的那个值,比如传感器的值最接近最优值,那我们就把传感器的值使用较大的权重,数学模型得到的值加使用较小的权重,所得到的这个权重不是随便给的,也是通过数学公式得也来的。那我下一个时间段再计算的时候这个权重就要起作用了,传感器的值和数学模型的值会带着权重放在数学公式里得到最优值,然后我们再把这个最优值与传感器和数学模型的值进行对比,再看一下哪个值与最优值接近,如果还是传感器的值比较接近,我们还是会通过公式生成一个权重,交给下个时间段的计算使用。通过不断重复这样的计算,我们就可以得到一个相对较优的值,这就是卡尔曼滤波算法的大概过程。

三、飞行控制PID算法
PID控制器是一种线性控制器,它主要根据给定值和实际输出值构成控制偏差,然后利用偏差给出合理的控制量。

目前,人们通过科学研究获得了诸多具有优异控制效果的算法和理论,但在工程应用领域,基于经典PID的控制算法仍然是最简单、最有效的控制方案。

PID控制器是一种线性控制器,它主要根据给定值和实际输出值构成控制偏差,然后利用偏差给出合理的控制量。

目前主流的几款开源飞控中,无一例外地都是采用PID控制算法来实现无人机的姿态和轨迹控制。

PID里的P是Proportion的首字线,是比例的意思,I是Integral的首字线,是积分的意思,D是Differential的首字母,是微分的意思。

那么PID控制器算法能解决什么问题呢?以多旋翼为例,在没有控制系统的情况下,直接用信号驱动电机带动螺旋桨旋转产生控制力,会出现动态响应太快,或者太慢,或者控制过冲或者不足的现象,多旋翼根本无法顺利完成起飞和悬停动作。为了解决这些问题,就需要在控制系统回路中加入PID控制器算法。在姿态信息和螺旋桨转速之间建立比例、积分和微分的关系,通过调节各个环节的参数大小,使多旋翼系统控制达到动态响应迅速、既不过冲、也不欠缺的现象。

下面我们简单的举个例子让大家了解一下PID的作用,我们先以一个自动驾驶的小车来举例子,为什么用小车呢而不用多旋翼来举例子呢?因为用小车举例,可以看到小车的行进轨迹,根据轨迹我们可以很直观的看到PID对控制的影响,便于理解PID的作用。

我们先讲P,比例控制。现在我们想让这个小车沿着绿线向前走,我们给P设置一个固定的值,这个值可以让离开绿线的小车向绿线的方向行驶,离的越远,方向盘打的角度越大,离的越近,方向盘打的角度越小。橙色的箭头表示小车行进的方向

比如这个小车在这个位置,我们设置了一个中等大小的P值,想要沿着绿线走,在比例控制下路径是这样的,因为小车有一定的速度,到达绿线时因为惯性的原因又向前运动了,然后再根据中等P值向回打方向盘,当到达绿线时,同样因为惯性的原因冲过了头,因为小车越接近绿线,方向盘打的越小,所以小车每经过一次绿线,它的偏差就越来越小,所以随着小车多次的往复运动,就能离绿线越来越近,理论上最终能够行驶在绿线上面。

如果我们把P值设置的比较大,它的路径是这样的,因为方向盘打的角度比较大,所以小车比中等P值的时候较早的到达绿线,但同样因为惯性的原因会多次往返绿线的两侧,也是一次比一次接近绿线,因为它方向盘角度打的比较大,所以会比中等P值往返的次数要多,最终经过多次往返,理论上它会离绿线越来越近,最终到达绿线上方。

如果我们把P值设置的比较小,也就是方向盘打的角度比较小,它的路径是这样的,小车会较晚到达绿线,因为惯性会往返绿线两侧,但是因为方向盘角度小,小车可以在较少的往复次数下接近绿线。

所以我们对比一下设置这三种P值的结果,在小车与绿线相同距离的情况下,P值越大,小车的反应越快,P值越小,小车的反应越慢,所以这三个小车第一次到达绿线的时间是不一样的。虽然P值大能够较快的到达绿线,但是反应比较剧烈,总是因为过快冲过了头。相反P值小的反应比较平缓,但是它反应太慢,我们有时候接受不了。

什么样的P值是合理的呢,就是设置后,小车的反应不是很剧烈,反应时间你也能够接受,那这就是一个相对合理的P值。

那有没有一种办法让它反应再快一点,反应又不那么剧烈呢,那就要用到接下来我们要讲的微分控制了。

我们为了不让这个小车冲过头,我们再给它加一个力,这个力就是D,让这个力来起一个作用,就是让小车越接近绿线的时候,接近绿线的速度越慢,小车越远离绿线的时候,接近绿线的速度相对较快,这个接近绿线的速度不是小车前进的速度,是小车与绿线平行线之间的相对速度。这个D大家可以理解为小车靠近绿线的一个阻力。

假设我们设置了一个相对合理的P值,在P值不变的情况下,微分控制中D值的变化会有怎样的结果。比如我们设置了一个比较合适的D值,微分控制(D)让小车在靠近绿线时,接近绿线的速度比较慢,这样比例控制(P)就可以很轻松的让小车到达绿线上方行驶。

如果D值过大,也就是小车靠近绿线的阻力过大,这样会让小车需要比较长的时间才能到达绿线上方。

如果D值设置的过小,也就是小车靠近绿线的阻力过小,那微分控制(D)就不会对比例控制产生大的影响,所以虽然小车能够较快到达绿线,但小车需要多调整几次,在绿线的两侧往复几次后才能到达绿线上方行驶。

那这样看来比例控制(P)和微分控制(D)的配合,貌似已经很完美了。为什么还要有积分控制(I)呢?

设置合适的P值和D值,可以让小车很好的沿着绿线一直走,但路上不是很平坦,会有些坑坑包包,或者其他的一些干扰,路况不好就会让小车的行进路线发生偏移,比如小车在这里遇到了坑坑包包,它的行进路线 就会变成这样,稍微偏离了绿线一点,因为微分控制(D)让小车离绿线越近时,靠近绿线的速度越慢,比例控制(P)让小车在接近绿线时,方向盘又打的比较小,所以小车要走一段路才回到绿线上面。

有没有办法让它更快回到绿线上面呢,所以我们再给它加一个力,这个力就是I,积分控制。我们让积分控制起这样的作用:如果P和D的调节不是很理想的话,就让I帮他俩一把,向P的方向上加一个力,这样可以让小车更快回到目的路径。

设置了I以后,I会根据误差和误差经历的时间进行积分,然后决定施加给目标方向的力的大小,就能够让小车回到目标轨迹上。

一个合适的I值,可以让小车偏离轨迹后,I可以在合适的时间给P一个合适的力,让小车快速的回到绿线上面;

如果I值过大,积分控制(I)调整的力就会比较大,它在帮P的时候会用力过猛,会让小车冲过绿线,下次帮忙的时候还是用力过猛,P表示很无奈,毕竟I也是好心,经过几次调整后,小车终于回到绿线上面,但我们看小车的轨迹线产生了一定的振荡;

如果I值过小,积分控制(I)调整的力就会比较小,就像有一个手无缚鸡之力的柔弱小鲜肉一样,帮不上太大的忙,所以小车回到正确轨迹的时间就会比较长。

说完了PID控制对小车的影响,下面我们再说说PID控制对多旋翼的影响。比如这架多旋翼想要作的是保持机身的水平平稳。

我们先从P开始,如果P值设置的过大,哪怕机身有那么一丁点倾斜,飞行器都会用稍大一些的力去调整,结果用力过猛,又继续向回调整,这样飞行器就会频繁的调整自己的水平状态,导至机身产生振动。

上图中指向左侧的箭头写的是过大不是过人

如果P值设置的过小,飞行器的水平调整就会显得力不从心,比如空气中的微风让飞行器发生了倾斜,飞行器向回调整的力比较小,所以需要长一点的时间才能调平,这样让我们觉得它反应有点慢。

比如我们经过多次测试设置了一个比较合适的P值,可以让飞行器有一个我们能接受的反应时间,但稍有一点过冲,会有一些震荡,接下来再设置D值,让D值消除震荡,如果D值设置过大,会让飞行器恢复平衡时间过长,反应变慢,

如果设置了一个过小的D值,会导致效果不明显,飞行器还是会有震荡。

比如我们又设置了一个合适的D值,可以让飞行器反应不是很慢,也不会有明显的震荡。接下来我们再设置一下I值。

这里的I我们可以这么理解,I根据飞行器的反应时间,适当的帮忙,如果飞行器反应慢了,他就会帮一下,能让它的反应快一点。但是如果值设置的过大,这个帮忙可能会用力过猛,导致过冲。

如果I值设置过小,它的帮忙就没有太大的作用,还是不会让飞行器反应更快。所以设置一个合适的I值需要多次的测试,让它的帮忙起作用,又不会用力过猛。

有些人怕麻烦就不设置I值了,其实也没有太大的影响,只不过离完美还差那么一点。

PID的设置是一个非常复杂的过程,对于一般的使用者来说是非常难的。所以有些厂商也想出了一些办法。

比如3DR的开源飞控APM和PIXHWAK,咱们看它的调参软件中,PID部分有这么多要调的地方,对于一般的用户来说是比较有难度的,所以它加了一个自动调参的功能,就是这个AutoTune[‘ɔ:toʊtən],可以把遥控器上的一个开关设置成自动调参,找一片开阔地让飞行器起飞,然后把遥控器上的自动调参开关打开,飞控就开始自己控制飞行器进行飞行测试,然后根据测试情况自动设置一个比较合适的PID参数。

有些厂商作的就更简单了,直接在调参软件里加了一个感度的配置,这个感度大家可以理解为敏感度 ,数值越大,敏感度越高,不同的轴距都有不同的推荐感度设置。

左面的这个是大疆NAZA飞控的调参软件,调参软件说明书里就有一个不同轴距的推荐感度值,右面的拓攻更简单,直接选择轴距,就能自动设置推荐的感度值。

这些厂商的调参软件里一般都会有姿态感度和基本感度,或者叫稳定感度。姿态感度是指飞行器对遥控指令的敏感程度,基本感度或稳定感度是指飞行器对于外界干扰反应的敏感程度。这样就比PID理解起来要简单的多了。

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

无人机飞控三大算法:捷联式惯性导航系统、卡尔曼滤波算法、飞行控制PID算法 的相关文章

  • idea--java开发最常用快捷键

    复制行 xff1a ctrl 43 d 删除行 xff1a ctrl 43 y 将某行代码向下移动 xff1a ctrl 43 shift 43 将某行代码向上移动 xff1a ctrl 43 shift 43 向下插入新行 xff08 e
  • 数据同步之初识Canal

    git地址 xff1a 阿里巴巴Canal的Git地址 Canal基于日志增量订阅和消费的业务包括 xff1a 数据库镜像 数据库实时备份索引构建和实时维护 拆分异构索引 倒排索引 业务cache刷新 带业务逻辑的增量数据处理 Mysql
  • SpringBoot整合Shiro登录认证和授权(附demo)

    SpringBoot整合Shiro登录认证和授权 废话不多说 xff0c 直接上代码 xff1a 代码有点多 xff0c 想直接拿demo的直接拉到底 开发环境 xff1a JDK1 8Maven 3 5 3IntelliJ IDEAMyS
  • QGroundControl 4.0 地面站使用

    QGroundControl 4 0 地面站使用 飞行界面 总览 xff1a 飞行控制栏 xff1a 在飞行界面与任务规划界面间进行切换控制飞机起飞和降落暂停或者重启当前的操作 xff08 比如降落或者规划的任务 xff09 控制飞机安全返
  • 改变PX4飞控通过MAVLink发送IMU数据的频率

    改变PX4飞控通过MAVLink发送IMU数据的频率 参考 xff1a https docs px4 io master en middleware mavlink html 在QGC的MAVLink Console中执行命令 xff1a
  • K8S Calico

    1 概述 Calico是一个基于 BGP 的纯三层网络方案 它在每个计算节点都利用 Linux kernel 实现了一个高效的虚拟路由器 vRouter 来进行数据转发 每个 vRouter 都通过 BGP 协议将本节点上运行容器的路由信息
  • QT读取XML

    读取XML 1 读取根节点 xff1a QDomElement root 61 doc documentElement 2 读取第一个子节点 xff1a QDomNode node 61 root firstChild 3 读取下一个子节点
  • C++基础入门学习笔记

    C 43 43 基础入门 1 1 hello world include lt iostream gt using namespace std int main cout lt lt 34 Hello world 34 lt lt endl
  • Android的Handler的简单理解和使用

    简单来说 xff0c Handler就是用来传递消息的 Handler可以当成子线程与主线程的消息传送的纽带 在安卓开发中 xff0c 在子线程中无法刷新UI xff0c 是因为UI在子线程中刷新的话 xff0c 是不安全的 xff0c 就
  • 使用datax-web把oracle数据库中的数据导入到mysql

    一 所需环境 Windows系统电脑 Python2 7 18 xff08 需要配置环境变量 xff09 oracle环境 mysql环境 jdk1 8 navicat git python安装下载 https www python org
  • 自己动手做后端(三)用户登录系统

    前言 用户登录系统 xff0c 最简单的解释是将用户账号和密码传输到后端 xff0c 后端将传过来的账号和密码信息与数据库进行比对 xff0c 如果正确则登陆成功 这一简单的描述可以概况绝大部分用户登录系统 xff0c 但是真正实现的时候
  • 单片机小白学习之路(十五)---定时器和计数器的理解(一)

    目标 xff1a 定时器和计数器的理解 一 1 定时器 计数器简介 定时器 计数器 xff08 Timer Counter xff0c 简称T C xff09 是单片机中最基本的接口之一 即可以定时又可以计数 常用于计数 延时 测量周期 脉
  • stm32---ADXL345

    ADXL345是一款三轴加速度传感器 xff0c 广泛用于手机 游戏手柄等设计 ADXL 支持标准的 I2C 或 SPI 数字接口 xff0c 自带 32 级 FIFO 存储 xff0c 并且内 部有多种运动状态检测和灵活的中断方式等特性
  • HZ和秒之间换算

    Hz和毫秒不能直接换算 xff0c 两者是交流电频率与周期的关系 xff0c 并且是倒数关系 xff1a 周期T 61 1 100 61 0 01秒 61 10毫秒 100Hz即100次 秒 xff0c 即60x100 60秒 xff0c
  • 野火 FireConfig 从SD卡下载镜像到EMMC

    1 用balenaEtcher把镜像下载到SD卡 2 拨码到SD卡启动 3 用MobaXterm当串口终端 xff0c 选择115200 xff0c 取消硬件流 4 输入用户名cat 密码fish 5 输入sudo fire config
  • K8S 网络策略

    1 网络策略 NetworkPolicy 是一种以应用为中心的结构 xff0c 允许你设置如何允许 Pod 与网络上的各类网络 实体 通信 xff0c 在 IP Port L3 L4 层面控制网络流量 xff0c 用于隔离应用以减少攻击面
  • VCC、VDD、VSS以及VBAT的区别

    原链接 xff1a https blog csdn net LemonLeeB article details 99417945 在STM32 的学习中 xff0c 发现有几种看起来相关的名称 xff0c 分别是VCC VDD VSS VB
  • LWIP_MDNS

    一 xff0e mdns1 什么是mdns xff1f mDNS协议适用于局域网内没有DNS服务器时的域名解析 xff0c 设备通过组播的方式交互DNS记录来完成域名解析 xff0c 约定的组播地址是 xff1a 224 0 0 251 x
  • 组播IGMP

    一 xff0e 什么是组播 xff1f 1 一个发送 组播源 xff0c 多个接收 xff0c 接收的有个特点就是在同一个组播组里面 xff0c 组播组有自己的IP 2 对于组播源来说 xff0c 发送命令到组播IP等于把命令发送到所有组成
  • 单片机小白学习之路(四十三)---LCD12864液晶显示

    目标 xff1a LCD12864原理的理解 1 LCD12864简介 LCD12864可以用来显示字符 数字 汉字 图形等内容 xff0c 其分辨率是128 64点 意思是横着有128个点 xff0c 竖直方向有64点 LCD12864

随机推荐

  • stm32---红外接受

    一个脉冲对应 560us 的连续载波 xff0c 一个逻辑 1 传输需要 2 25ms xff08 560us 脉冲 43 1680us 低电平 xff09 xff0c 一个逻辑 0 的传输需要 1 125ms xff08 560us 脉冲
  • 串口通信的校验---奇偶校验,0校验,1校验

    捕获 PNG 设置为奇校验 xff0c 先看发送方将要发送的一帧数据中有几个1 xff0c 如果是偶数个1则校验位置1 xff0c 保证1的个数是奇数 如果是奇数就置0 保证是奇数后发送给接收方 xff0c 接受方此时要检查发送的数据位是否
  • printf重定向

    C语言中printf默认输出设备是显示器 xff0c 当开发板没有时我们就用串口来打印数据 int fputc int ch FILE p USART SendData USART1 ch 如果用串口2打印 xff0c 和换成USART2
  • SPI的CRC校验计算

    22 3 6 CRC计算 CRC校验仅用于保证全双工通信的可靠性 数据发送和数据接收分别使用单独的CRC计算器 通过对每一个接收位进行可编程的多项式运算来计算CRC CRC的计算是在由SPI CR1寄存器 中CPHA和CPOL位定义的采样时
  • 每天一道算法练习题--Day21&& 第一章 --算法专题 --- ----------位运算

    我这里总结了几道位运算的题目分享给大家 xff0c 分别是 136 和 137 xff0c 260 和 645 xff0c 总共加起来四道题 四道题全部都是位运算的套路 xff0c 如果你想练习位运算的话 xff0c 不要错过哦 xff5e
  • argparse库的作用及其用法详解

    一 背景 当一个项目的输入参数较多 xff0c 且要进行修改和调试时 xff0c 经常涉及到参数的格式和路径问题 如果一行一行去进行修改代码 xff0c 会非常繁琐且错误率很高 argparse模块就是为了解决这个问题 二 作用 argpa
  • Golang 文件操作

    1 读文件 os Open name string file File err error os OpenFile name string flag int perm FileMode File error ioutil ReadFile
  • war exploded: Error during artifact deployment. See server log for details.

    错误截图 xff1a 排查过程 1 查看JDK xff0c Tomcat xff0c IDEA版本 2 查看自己的项目配置 3 网上搜索 xff0c 查到的结果是删除tomcat中bin里面的tcnative 1 dll文件 以上方法均没有
  • secure CRT + Xmanager 实现图形化界面的查看

    1 准备 安装xmanager 可以去网上找 有很多破解版Linux主机关闭selinux和防火墙 2 Linux主机安装必要的软件包 root 64 localhost yum install y xorg x11 server util
  • STM32【H7】理论——综述、HAL库简述

    文章目录 1 STM32H7芯片简介1 1 STM32H7与STM32F1 F4系列芯片的区别1 2 硬件框图1 3 STM32H7各型号对比1 4 总线框图和时钟1 5 AXI总线1 5 1 AXI总线简介1 5 2 AXI总线优先级编程
  • STM32理论 —— FreeRTOS(内核控制、时钟、队列)

    文章目录 1 系统内核控制1 1 相关API函数1 1 1 函数 96 taskYIELD 96 1 1 2 函数 96 taskENTER CRITICAL 96 1 1 3 函数 96 taskEXIT CRITICAL 96 1 1
  • vscode基本插件安装与配置

    插件安装 xff1a Auto Rename Tag 重命名标签时 xff0c 自动更新结尾配对的标签 Chinese 汉化 ESLint 规范化代码 xff0c 对应的setting配置 xff08 全局所有项目都有效 xff09 xff
  • Ubuntu20.04(Noetic)版本中关于“使用rospack命令工具来查看这些一级依赖包“报错解决方法

    ROS Noetic版本中关于 使用rospack命令工具来查看这些一级依赖包 报错解决方法 问题描述 xff1a 在跟随ROS初级教程 创建ROS软件包这一步骤 xff0c 可能会遇见下面问题 xff1a smw 64 smw Lenov
  • 最详细的Ubuntu18配置px4_ros_gazebo仿真

    本教程将在Ubuntu18安装ros px4工具链 以及gazebo仿真环境 参考此教程可以在Ubuntu16的环境安装ros px4工具链 以及gazebo仿真环境 首先 xff0c 我们来看下Ubuntu各版本对应的gazebo关系 x
  • 百度获取toke

    https aip baidubce com oauth 2 0 token grant type 61 client credentials amp client id 61 官网获取的AK amp client secret 61 官网
  • 详细的EVE-NG部署方法+EVE各种镜像与模板,附带SCRT+WINSCP等工具提供(VM部署)

    自己写的一份较详细的EVE NG在虚拟机VM上部署的教程 xff0c 喜欢的可以关注一下 xff0c 谢谢 首先我在百度云附上了EVE NG社区版2 0 3 110版本的OVF文件 xff0c 此次用这个版本来演示 xff0c 并且还提供了
  • node.js环境一键部署

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • Golang Interface小结

    1 概述 1 1 简介 接口是一种规范 xff0c 描述了类的行为和功能 xff0c 而不做具体实现 C 43 43 定义接口的方式称为 侵入式 xff0c 而Go采用的是 非侵入式 xff0c 不需要显式声明 xff0c 只需要实现了接口
  • UART 简介

    1 引脚 UART 是一种异步全双工通信方式 xff0c 所以除了电源引脚之外 xff0c UART 常有引脚有 TXD xff0c RXD xff1b 除此之外还有硬件流控引脚 RTS 和 CTS TXD 是发送引脚 xff0c RXD
  • 无人机飞控三大算法:捷联式惯性导航系统、卡尔曼滤波算法、飞行控制PID算法

    无人机飞控三大算法 xff1a 捷联式惯性导航系统 卡尔曼滤波算法 飞行控制PID算法 一 捷联式惯性导航系统 说到导航 xff0c 不得不说GPS xff0c 他是接受卫星发送的信号计算出自身位置的 xff0c 但是当GPS设备上方被遮挡