PX4的学习

PX4项目学习::(一)项目架构 下图所示为PX4的软件顶层架构。我们可以将上图从中间分成两个看,其中右边为传感器采集(GPS、optical_flow、inertial_sensors)回来的数据,,​ px4的控制部分程序,采用的是分层设计。 阅读详情

一、PX4固件简介

1、PX4是什么?

PX4是由苏黎世联邦理工学院的计算机视觉与几何实验室的一个软硬件项目PIXHAWK演变而来,有“开源飞控之王”之称,PX4是专业的自动驾驶仪,为各种载具提供支持。

PX4遵循BSD协议,该协议允许将开源软件二次开发后用于商业用途。目前广泛应用于视觉导航、视觉避障、多机协同、目标跟踪等用途。

PX4的定位:无人机领域的安卓

2、PX4能做什么?

支持的载具:多旋翼、直升机、飞艇、固定翼无人机、无人车、无人船、水下机器人、旋翼机。

应用场景:航拍、行业应用、科学研究。

3、学习资料

PX4官方文档:PX4 自动驾驶仪用户指南 | PX4 Guide (main)

MAVLink官方文档:MAVLink Developer Guide | MAVLink Guide

4、PX4架构

PX4架构的具体描述:

PX4的架构是一个从物理硬件到上层应用、再到外部通信的分层协作系统。

(1)底层硬件与实时操作系统

最底层是飞控硬件(如Pixhawk)及其连接的各类传感器(IMU、GPS、气压计、距离传感器等)、电机执行器以及任务载荷(相机等),这些硬件之上运行着NuttX实时操作系统,为整个系统提供多任务调度与实时响应能力。

(2)中间层:驱动 + 通信中间件

在操作系统之上是驱动层和中间件层:驱动层负责与电机、传感器等硬件直接交互;中间件则包括uORB(用于模块间的高效异步消息通信)、MAVLink(与地面站和遥控器进行遥测、数传通信)以及RTPS(用于与ROS2等外部系统集成)。

(3)顶层:飞行应用与控制模块

最顶层是应用/模块层,包含Commander(状态机与任务管理)、Navigator(路径规划)、Controllers(姿态与位置控制)、Logger(日志记录)等核心模块,它们通过uORB订阅和发布传感器数据、控制指令,完成飞行决策与控制输出。

整个系统与外部的地面站(如QGroundControl)和遥控器通过MAVLink或RC链路双向交互,形成一个完整的无人机飞控闭环。

二、PX4编译环境安装

Ⅰ、Ubuntu20.04环境安装

1、选择阿里云服务器

2、安装git

更新软件包列表:sudo apt update

升级已安装的软件包:sudo apt upgrade

安装git:sudo apt install git

3、下载源码

github获取PX4源码:GitHub - PX4/PX4-Autopilot: PX4 Autopilot Software · GitHub

git克隆源码仓库:

git clone https://github.com/PX4/PX4-Autopilot.git --branch v1.13.3(1.13.3版本)

更新项目所有子模块:git submodule update --init --recursive --force

上述两步命令也可以换成一步命令解决。

git克隆源码仓库+自动初始化并克隆该仓库所依赖的所有 Git 子模块:

git clone https://github.com/PX4/PX4-Autopilot.git --branch v1.13.3 --recursive(1.13.3版本)

补充如何在一个虚拟机中将已下载的目录文件传输到另一个虚拟机

查看虚拟机的IP地址:ifconfig

检查SSH是否已安装:which ssh、which sshd

安装SSH服务:sudo apt install openssh-server -y

启动SSH服务:sudo systemctl start sshd 或使用 service命令 sudo service ssh start

设置开机自启:sudo systemctl enable sshd

检查SSH服务状态:sudo systemctl status sshd【应该显示 active (running)】

被传输文件的虚拟机网络需要设置为桥接模式。

传输文件,目录文件需要添加 -r :scp -r ./PX4-Autopilot sean@10.14.17.71:/home/sean/

如果无法设置为桥接模式,两个虚拟机可以直接通过U盘传递文件。

4、安装PX4和gazebo9环境

进入到源码目录下输入如下的命令:

sudo bash ./Tools/setup/ubuntu.sh

接着重启Ubuntu,开始编译部件。

源代码目录彻底清理:make distclean

编译PX4仿真脚本:make px4_sitl_default gazebo

5、问题解决

出现的问题:未安装kconfiglib

解决办法:根据提示进行安装

出现的问题:未安装empy

解决办法:根据提示进行安装

出现的问题:未安装pyros-genmsg

解决办法:根据提示进行安装

出现的问题:未安装packaging

解决办法:根据提示进行安装

出现的问题:未安装toml

解决办法:根据提示进行安装

出现的问题:未安装numpy

解决办法:根据提示进行安装

出现的问题:empy模块版本不兼容

解决办法:

①卸载已有的empy

pip3 uninstall empy

②如果系统包管理安装的也卸掉
sudo apt remove python3-empy -y

③安装3.3.4版本的empy

pip3 install --user empy==3.3.4

出现的问题:未安装jinja2

解决办法:根据提示进行安装

出现的问题:缺少future模块

解决办法:pip3 install --user future

出现的问题:未安装jsonschema

解决办法:根据提示进行安装

6、编译飞控固件

make px4_fmu-v3_default

问题:缺少编译飞控硬件固件所需的编译器

解决:sudo apt install gcc-arm-none-eabi

Ⅱ、Ubuntu22.04环境安装

1、选择阿里云服务器

2、安装git

更新软件包列表:sudo apt update

升级已安装的软件包:sudo apt upgrade

安装git:sudo apt install git

3、下载源码

github获取PX4源码:GitHub - PX4/PX4-Autopilot: PX4 Autopilot Software · GitHub

git克隆源码仓库:

git clone https://github.com/PX4/PX4-Autopilot.git --branch v1.14.4(1.14.4版本)

更新项目所有子模块:git submodule update --init --recursive --force

上述两步命令也可以换成一步命令解决。

git克隆源码仓库+自动初始化并克隆该仓库所依赖的所有 Git 子模块:

git clone https://github.com/PX4/PX4-Autopilot.git --branch v1.14.4 --recursive(1.14.4版本)

4、安装PX4和Gazebo Garden环境

下载并添加 Gazebo 官方 GPG 密钥:

sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg

添加 Gazebo 官方源到系统:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null

更新软件包列表:sudo apt update

升级已安装的软件包:sudo apt-get upgrade

安装 Gazebo Garden:sudo apt install gz-garden

验证Gazebo Garden:gz sim

进入到源码目录下输入如下的命令:

sudo bash ./Tools/setup/ubuntu.sh --no-sim-tools

接着重启Ubuntu,开始编译部件。

源代码目录彻底清理:make distclean

编译PX4仿真脚本:make px4_sitl gz_x500

5、问题解决

出现的问题:Ubuntu22.04没有软件包openjdk-14-jre和openjdk-14-jdk,可能Ubuntu20.04还有这个软件包。

​

解决办法:

①安装 Ubuntu 22.04 官方源中提供的 OpenJDK 17。

sudo apt update

sudo apt upgrade

sudo apt install openjdk-17-jre openjdk-17-jdk -y

②修改PX4安装脚本

nano ./Tools/setup/ubuntu.sh

Ctrl + W搜索、Ctrl + X离开

​

出现的问题:未安装kconfiglib

解决办法:根据提示安装

出现的问题:未安装empy

解决办法:根据提示安装

出现的问题:未安装pyros-genmsg

解决办法:根据提示安装

出现的问题:empy模块版本不兼容

解决办法:

①卸载已有的empy

pip3 uninstall empy

②如果系统包管理安装的也卸掉
sudo apt remove python3-empy -y

③安装3.3.4版本的empy

pip3 install --user empy==3.3.4

出现的问题:未安装jinja2

解决办法:根据提示安装

出现的问题:未安装jsonschema

解决办法:根据提示安装

三、PX4主要参数讲解

1、传感器标定参数

是什么:用于配置和管理传感器(罗盘、陀螺仪、加速度计、气压计等)的标定参数,包括硬件标识、优先级和温度补偿系数。

用来干嘛:

  • 识别连接的传感器硬件(通过ID)

  • 设置多传感器优先级(如多个罗盘时选择使用哪个)

  • 存储传感器标定数据(偏移量、比例系数、温度补偿系数)

怎么用:

  • 通过 QGroundControl 执行传感器校准

  • 可选启用温度补偿功能(适用于陀螺仪、加速度计、气压计)

  • 温度校准可在环境舱中进行,也可通过飞行日志数据进行板外校准

参数名

说明

典型设置

规则/注意事项

CAL_MAG0_ID / CAL_MAG1_ID

罗盘硬件ID

奇数=外置,偶数=内置

ID为奇数→外置罗盘;ID为偶数→内置罗盘

CAL_MAG0_PRIO / CAL_MAG1_PRIO

罗盘优先级

外置 > 内置

外置优先级必须高于内置,否则航向会不稳定

CAL_ACC*

加速度计标定数据

标定自动生成

标定时需将飞行器置于6个不同静止姿态

CAL_GYRO*

陀螺仪标定数据

标定自动生成

标定时飞行器必须完全静止

TC_G_ENABLE

陀螺仪温度补偿开关

0=禁用,1=启用

启用后传统 CAL_GYRO* 参数会被重置

TC_A_ENABLE

加速度计温度补偿开关

0=禁用,1=启用

启用后传统 CAL_ACC* 参数会被重置

TC_B_ENABLE

气压计温度补偿开关

0=禁用,1=启用

启用温度补偿前需要先完成基本标定

SYS_CAL_TDEL

温度校准时所需温升度数

5°C

校准过程中需实际升温这么多,否则无法完成

SYS_CAL_TMIN / SYS_CAL_TMAX

温度校准范围

5°C ~ 60°C

覆盖从冷启动到工作温度的整个范围

2、Control Allocate(控制分配)

是什么:将飞控计算出的力矩和推力指令(如俯仰、滚转、偏航、油门)分配到实际电机/舵机的功能模块。

用来干嘛:

  • 将角速率控制器的输出转换为具体执行器指令

  • 支持不同飞行器构型(多旋翼、固定翼、VTOL、无人车)

  • 处理电机失效时的重新分配

怎么用:

  • 在 QGC 中选择机型(自动设置 CA_AIRFRAME 参数)

  • 进入执行器配置界面设置

  • 配置哪个输出控制哪个电机/舵机、电机的正反转向、舵机的行程范围

参数名

说明

典型设置

规则/注意事项

CA_AIRFRAME

飞行器构型类型

多旋翼/固定翼/VTOL

设置后会自动配置电机几何布局,通常由选择机架时自动设置

CA_ROTOR_COUNT

旋翼数量

4 / 6 / 8

必须与实际电机数量一致

CA_ROTORx_KM

力矩系数(x = 0 ~ 7)

默认 0.05

表示电机产生力矩的效率,数值越大扭矩效应越强

CA_ROTORx_PY / PZ

电机位置偏移

根据布局设置

正数/负数决定电机在机体轴上的位置,影响混控器计算

SYS_CTRL_ALLOC

启用控制分配

1 = 启用

必须启用才能使用执行器配置界面

3、解锁检查参数

是什么:无人机解锁(arming)前的安全检查项配置。

用来干嘛:

  • 确保起飞前系统状态正常

  • 防止地面意外启动电机

  • 区分预解锁(安全舵面可动)和完全解锁(电机可转)两种状态

怎么用:

  • 通过 QGC 参数编辑器配置各项检查

  • 测试环境可放宽检查(如使用断路器参数)

  • 正式飞行保持严格检查

参数名

说明

典型设置

规则/注意事项

COM_ARM_WO_GPS

无GPS是否允许解锁

0=不允许,1=允许

室内飞行必须设为1,否则无法解锁

COM_ARM_CAM_AVOID

避障未就绪是否阻止解锁

0=忽略,1=阻止

若使用避障传感器,建议设为1

COM_PREARM_MODE

预解锁模式

0=禁用,1=安全开关,2=上电启用

安全开关优先用这个而非 CBRK_IO_SAFETY

COM_DISARM_LAND

降落后自动上锁延迟(秒)

2

设为0或负数可禁用自动上锁

COM_RC_ARM_HYST

解锁手势保持时间(秒)

1

防止误触,需保持解锁动作至少1秒

RC_MAP_ARM_SW

遥控器解锁通道

0=未分配

建议分配一个两段开关

COM_ARM_SWISBTN

解锁开关是否为按钮

0=两段开关,1=瞬时按钮

使用瞬时按钮时设为1,需配合手势解锁

CBRK_IO_SAFETY

IO安全开关断路器

0=启用,22027=禁用

生产环境飞行慎用,启用后安全开关被永久旁路

4、失控保护与飞行终止参数

是什么:当飞控与遥控器、地面站失去联系或检测到故障时的应急处理机制,以及触发后执行的动作配置。

用来干嘛:

  • 遥控信号丢失时自动返航或降落

  • 低电压时触发保护动作

  • GPS失效时切换控制模式

  • 飞行终止时触发安全设备(降落伞等)

怎么用:

  • 设置失联后的等待时间和动作类型

  • 配置返航高度确保安全

  • (可选)配置飞行终止的PWM输出值

参数名

说明

典型设置

规则/注意事项

COM_RC_LOSS_T

RC失联后等待时间(秒)

0.5 ~ 5

短距飞行可设小值,长距设2-3秒避免信号短暂丢失触发返航

NAV_RCL_ACT

RC失联动作

0=返航,1=降落,2=终止任务,3=悬停

远航任务必须开启返航;测试环境可设降落

COM_LOW_BAT_ACT

低电压动作

0=警告,1=返航,2=降落

动力电池一般设1,任务电池需根据飞行时间谨慎设置

COM_LOW_BAT_VOLT

低电压阈值(V)

根据电池设置

3S锂电约10.5V,4S约14V,6S约21V

GPS_FAIL_ACTION

GPS失效动作

0=悬停,1=降落

自动任务中可设悬停,等待GPS恢复

NAV_RTL_ALT

返航高度(m)

高于周围障碍物

返航高度必须高于周围最高障碍物,建议留有冗余

CBRK_FLIGHTTERM

飞行终止断路器

0=启用终止功能

设为非零值会禁用飞行终止功能

PWM_MAIN_FAILn / PWM_AUX_FAILn

终止时PWM输出值

用于展开降落伞等

注意:PWM值需根据降落伞展开机构规格设置

5、PID控制参数(比例-积分-微分控制器参数)

(1)多旋翼角速度环

是什么:多旋翼飞行器最底层的控制环,控制机体绕各轴的旋转角速度。

用来干嘛:

  • 决定飞行器对打杆动作的响应速度和干脆程度

  • 是整个控制系统中最重要的调参环节

怎么用:

  • 调参顺序为 P → D → I

  • 先调P:增加响应速度,太大会震荡

  • 再调D:抑制震荡,增加阻尼

  • 最后调I:消除静差,修正偏航

参数名

说明

调试顺序

规则/注意事项

MC_ROLL_P

滚转角速度 P

1

P值太大→高频震荡;太小→响应迟缓

MC_ROLL_I

滚转角速度 I

3

修正持续的外部干扰(如重心偏移、持续风)

MC_ROLL_D

滚转角速度 D

2

D值太大→高频震动/电机发热;太小→抑制震荡不足

MC_PITCH_P / I / D

俯仰轴同上

同上

同上

MC_YAW_P

偏航角速度 P

同上

偏航响应通常比滚转/俯仰慢,可适当降低预期

MC_YAW_I

偏航角速度 I

同上

修正偏航方向静差(如电机扭矩不平衡)

(2)多旋翼姿态环

是什么:角速度环的外层,控制机体的空间姿态角度。

用来干嘛:决定飞机恢复水平姿态的力度和稳定速度。

参数名

说明

规则/注意事项

MC_ROLLRATE_P

滚转姿态 P

姿态环的P值越大→恢复水平越快,但可能引发震荡

MC_PITCHRATE_P

俯仰姿态 P

建议比角速度环P值小一个数量级

MC_YAWRATE_P

偏航姿态 P

偏航姿态环通常用默认值即可

(3)多旋翼位置/速度环

是什么:最外层的控制环,控制飞机在空间中的位置和移动速度。

用来干嘛:实现悬停精度、自主飞行和速度控制。

参数名

说明

规则/注意事项

MPC_XY_P

水平位置 P(悬停纠偏力度)

值越大→位置纠偏越快,但可能产生超调震荡

MPC_Z_P

垂直高度 P

值越大→高度保持越硬,但油门响应可能突兀

MPC_XY_VEL_P / I / D

水平速度 PID

影响飞行平滑度;D值较大时会使"刹车"更柔和

MPC_Z_VEL_P / I / D

垂直速度 PID

影响升降手感

MPC_XY_VEL_MAX

最大水平速度(m/s)

默认5m/s,竞技可调高

MPC_Z_VEL_MAX_UP

最大上升速度(m/s)

默认3m/s

MPC_TILTMAX_AIR

最大倾斜角度(度)

默认35°,角度越大→水平加速越快

6、滤波参数

是什么:对传感器原始数据进行降噪处理的算法参数。

用来干嘛:

  • 权衡控制延迟与噪声抑制

  • 降低延迟可提升飞行性能,但会增加电机发热和续航降低

怎么用:

  • 先通过飞行日志分析噪声频率

  • 逐步提高截止频率,观察电机温度和飞行表现

  • 使用陷波滤波器抑制特定频率噪声

参数名

说明

典型设置

规则/注意事项

IMU_GYRO_CUTOFF

陀螺仪低通截止频率(Hz)

30~120

有振动→降低截止频率(30Hz以下);响应迟钝→提高截止频率(最高120Hz,延迟约1.9ms)

IMU_DGYRO_CUTOFF

D项专用截止频率(Hz)

30~80

陀螺仪数据用于D项时单独滤波,通常比普通截止频率低

IMU_GYRO_NF0_FREQ

陀螺仪陷波中心频率(Hz)

0=禁用

通过FFT图分析噪声峰值频率后设置

IMU_GYRO_NF0_BW

陷波带宽(Hz)

根据分析设置

带宽太宽会滤除有用信号,太窄可能无法覆盖噪声

IMU_GYRO_RATEMAX

陀螺仪最大发布速率(Hz)

2000 / 4000

提高速率可降低延迟,但增加CPU负载

SYS_USE_IO

使用IO芯片

0=禁用(降低延迟)

设为0可将陀螺仪直连FMU,降低延迟但牺牲AUX输出

7、无人车参数

是什么:用于控制轮式或履带式地面车辆的特定参数。

用来干嘛:

  • 配置阿克曼转向或差速转向控制

  • 设置速度限制和控制增益

怎么用:

  • 构建固件时需要编译 _rover 版本(如 make px4_fmu-v6x_rover)

  • 在QGC选择无人车机型

  • 配置控制分配(转向、油门通道)

参数名

说明

规则/注意事项

CA_WHEEL_BASE

轮距(阿克曼转向)

仅阿克曼转向需要设置,单位米

RO_SPEED_MAX

最大速度(m/s)

根据车辆动力和场地限制设置

RO_SPEED_P / I / D

速度控制 PID

影响车速闭环响应

编译需求

make px4_fmu-v6x_rover

标准固件不包含无人车控制,需编译Rover专用版本

8、固定翼参数

是什么:针对固定翼飞行器气动特性的控制参数。

用来干嘛:控制舵面响应、空速保持和飞行姿态。

怎么用:

  • 先手动模式确认舵面方向正确

  • 调整巡航空速(平飞油门)

  • 调整FBWA模式的感度

参数名

说明

规则/注意事项

FW_RR_P / I / D

滚转角速度 PID

P值太大→滚转震荡;固定翼D值通常比多旋翼小

FW_PR_P / I / D

俯仰角速度 PID

俯仰控制是固定翼最关键的轴

FW_YR_P / I

偏航角速度 PI

偏航通常不需要D

FW_AIRSPD_MIN

最小空速(m/s)

低于此值会触发失速保护,需根据机翼失速速度设置

FW_AIRSPD_TRIM

巡航空速(m/s)

平飞巡航的最佳空速,效率最高

FW_AIRSPD_MAX

最大空速(m/s)

限制俯冲时的最大空速

FW_THR_TRIM

巡航油门

对应巡航空速的油门值

FW_P_LIM_MAX / FW_P_LIM_MIN

最大/最小俯仰角(度)

保护飞机避免失速或过度俯冲

9、VTOL垂起参数

是什么:垂直起降固定翼(VTOL)的过渡飞行模式参数。

用来干嘛:

  • 控制多旋翼模式与固定翼模式之间的平滑转换

  • 配置过渡空速、油门和倾转机构

怎么用:

  • 确保多旋翼模式已调好

  • 确保固定翼模式已调好

  • 在空速充足的情况下测试过渡

  • 根据风速大小调整过渡空速(风速过大时增加)

参数名

说明

规则/注意事项

VT_ARSP_BLEND

过渡开始空速(m/s)

风速过大时增加此值,避免过渡期失速

VT_ARSP_TRANS

过渡完成空速(m/s)

必须大于 VT_ARSP_BLEND

VT_F_TRANS_THR

前向过渡目标油门

倾转/尾座式VTOL前飞时的油门值

VT_PSHER_SLEW

前推电机油门爬升时间(s)

倾转机构油压延迟,过大→过渡迟缓;过小→冲击

RC_MAP_TRANS_SW

过渡模式切换通道

分配一个开关用于手动切换模式

10、MAVLink通信参数

是什么:MAVLink通信协议的配置参数,用于与地面站、机载计算机等设备通信。

用来干嘛:

  • 配置各串口的MAVLink实例

  • 设置通信模式和数据速率

怎么用:

  • 将MAVLink实例分配到串口

  • 选择模式(Normal/Onboard/OSD等)

  • 设置波特率和数据速率

参数名

说明

规则/注意事项

MAV_X_CONFIG

第X实例绑定的串口(X=0,1,2)

每个串口只能绑定一个MAVLink实例

MAV_X_MODE

模式

Normal=地面站,Onboard=机载计算机,OSD=屏幕显示,ExtVision=视觉系统

MAV_X_RATE

最大数据速率(B/s)

不要超过数传模块的物理带宽

MAV_X_FORWARD

是否转发到其他接口

启用后会在各MAVLink实例间转发消息

SER_TELx_BAUD

端口波特率

数传电台:57600;4G模块/OSD:115200;机载计算机:921600

11、SD卡日志参数

是什么:SD卡日志记录相关的配置参数。

用来干嘛:

  • 控制日志记录的开始/停止时机

  • 选择记录的数据类型(用于调试分析)

怎么用:

  • 调试振动问题 → 开启原始IMU日志 (SDLOG_PROFILE 开启高频和原始数据)

  • 日常飞行 → 默认配置文件

  • 长时间任务 → 降低日志速率

参数名

说明

规则/注意事项

SDLOG_MODE

0=禁用,1=起飞后自动,2=手动

默认1(起飞后自动记录)

SDLOG_PROFILE

位掩码

bit0=姿态/传感器,bit1=原始IMU高频,bit2=热校准数据,高带宽包含bit3+bit4

SDLOG_UTC_OFFSET

时区偏移(小时)

中国为+8

SDLOG_MODE参数

模式值含义说明
-1Logging disabled完全禁用日志记录 。
0when armed until disarm当解锁时开始,上锁时停止(默认) 。
1from boot until disarm从系统启动开始,直到上锁时停止。
2from boot until shutdown从系统启动开始,直到关机/断电时停止。
3depending on AUX1 RC channel通过遥控器上的 AUX1 通道手动控制日志启停 。
4from 1st armed until shutdown从第一次解锁开始,直到关机/断电时停止。

12、条件参数

是什么:只有在其依赖的另一个参数被启用时,才会在 QGroundControl 中显示出来的参数。

用来干嘛:

  • 简化参数界面:避免用户看到大量不相关或当前不可用的参数,防止误配置

  • 逻辑关联配置:确保只有启用了某项功能,其相关参数才可被修改

  • 防止错误设置:避免用户配置在当下固件/硬件状态下无效的参数 

怎么用:

  • 首先在 QGC 参数列表中找到并启用“主开关”参数

  • 重启飞控(部分参数需要重启后才能生效)

  • 再次进入参数列表,之前隐藏的条件参数就会显示出来

  • 按需配置这些条件参数

如何查找条件参数:

  • 先通过 PX4 完整参数参考文档查找该参数是否依赖其他参数 

  • 检查对应的主开关参数是否已启用

  • 确认固件版本中是否包含该模块(部分 FMUv2 固件为节省空间会裁剪模块)

主开关参数(需先启用)

描述

启用后会显示的条件参数

说明

TC_G_ENABLE

陀螺仪温度补偿开关

TC_G0_ID、TC_G0_X3_0、TC_G0_TREF 等温补系数

启用温度补偿后,相关的多项式系数参数才会显示

TC_A_ENABLE

加速度计温度补偿开关

TC_A0_ID、TC_A0_X3_0、TC_A0_TREF 等

同样,启用后才显示加速度计的温补系数

COM_PARACHUTE

降落伞功能开关

COM_PARACHUTE_ALT、COM_PARACHUTE_ACT 等

启用降落伞功能后,相关的动作高度、触发条件等参数才会出现

GPS_1_CONFIG (分配串口)

第1个GPS的串口配置

GPS_1_BAUD、GPS_1_PROTOCOL

只有给某个串口分配了GPS服务,该GPS的波特率和协议参数才会显示

四、QGC地面站使用

1、载具设置

下载固件

等待固件下载

固件下载完毕,之后会自动连接

连接成功后,开始进行配置

设置机架

传感器的校准,首先对罗盘进行校准

根据提示旋转无人机

依次完成校准

接下来校准陀螺仪,只需水平静止放置

然后是加速度计校准,不需要旋转,根据提示放置

依次完成校准

最后是地平线校准,只需水平静止放置

遥控器校准

点击下一步之后,根据右边的图示,拨动遥控器的摇杆

完成校准

设置飞行模式

设置执行器参数

接着点击工具按钮,进行重启飞行器,之后会出现执行器的选项,开始配置

电池校准

连接电池,等待几秒后校准完成

测试电机

2、分析工具

点击刷新查看日志

选择需要下载的日志文件,点击下载按钮进行下载路径选择,开始文件下载

日志的擦除

Mavlink控制台,进行软件调试

参考PX4官方文档的命令:模块参考:命令(Command) | PX4 Guide (main)

查看所有可执行的命令:help

查看传感器状态的命令:

Mavlink数据流显示

3、软件设置

飞行视图的设置

计划视图和单位设置

其它设置

日志和连接设置

GPS和NTRIP设置

网络RTK的账号和密码输入到地面站中,地面站通过网络的差分数据传输到无人机上,这样使用RTK就不需要再架设基站了,直接使用的是地面站。

测试用的是中国移动的cors账号,推荐用这个,淘宝1.99一天的那个
【cors账号配置方法】
移动CORS设置方式:
1、IP:120.253.239.161
2、端口:8001对应CGCS2000坐标系,8002端口对应WGS84坐标系,记得中央子午线改成当地
3、源节点:
RTCM33_GRCEJ(五星十六频,推荐五星仪器以上使用)
RTCM33_GRCE(四星十一频,推荐四星仪器以上使用)
RTCM33_GRC(三星八频,推荐三星仪器使用)
RTCM30GR(双星仪器使用)

勾选 Connect to NTRIP server
Host Adress 填 IP
Server Port 填 8002
Username填卡号
Password填密码
Mount point 填 RTCM33_ GRCEJ
最后一个不填
如果使用千寻账号,Host Adress 填 IP
WMServer Port 填 8002
Mount point 填AUTO,其他类似

然后确保手机有网,重启地面站,连上船后等待一段时间看定位状态是否进固定解

设备无法自动连接,开始进行手动配置连接

新建一个连接信号

手动连接通信,设备与地面站建立连接

五、QGC编译环境安装(Ubuntu)

安装QT:Index of /official_releases/online_installers(新版本)

Index of /archive/online_installers(旧版本)

查看Linux版本的架构:uname -m或uname -p

下载好的QT文件可直接拖动到Ubuntu中,右击下载文件选择Properties,添加可读可写的权限

双击下载文件,开始下载QT

选择安装目录,默认就可以

选择部件

等待安装

启动QT

如果启动失败,在终端安装qtcreator:sudo apt install qtcreator

打开QT:qtcreator  查看QT的版本:qmake -v

百度网盘获取QGC的源码:

https://pan.baidu.com/s/1I4zQtv4WmkRcefNWggq3HQ?pwd=5ucb 选择4.2.8原版源码

或者直接克隆源码:

git clone --recursive https://github.com/mavlink/qgroundcontrol.git

解压源码文件

QT打开源码文件的项目后,有一个需要5.15的版本问题

使用 aqtinstall 工具安装

安装 aqtinstall:pip install aqtinstall

安装 Qt 5.15.2 (Linux, gcc_64 版本):

aqt install-qt linux desktop 5.15.2 gcc_64(安装在当前目录)

指定安装到自定义目录,例如 ~/Qt:

aqt install-qt -O ~/Qt linux desktop 5.15.2 gcc_64(安装在指定目录)

确认安装路径

在QT creator中添加QT版本

选择QT5.15.2的安装路径

应用设置

更改当前Kits的QT版本

QT版本选择5.15.2

使用 aqtinstall 安装 Charts 模块

aqt install-qt -O ~/Qt linux desktop 5.15.2 gcc_64 -m qtcharts

QT中编译运行,启动QGC

六、QGC的一键安装

如果想快速进行安装,避免各种依赖包的安装。

终端输入如下的命令:

wget https://github.com/mavlink/qgroundcontrol/releases/download/v4.4.3/QGroundControl.AppImage

sudo apt install libfuse2

chmod +x QGroundControl.AppImage

./QGroundControl.AppImage

也可以在github直接下载:Releases · mavlink/qgroundcontrol

如下问题是没有访问的权限,根据提示输入命令解决问题

sudo usermod -a -G dialout $USER

sudo apt-get remove modemmanager

无人机的仿真

运行QGC:./QGroundControl.AppImage

编译PX4仿真脚本:make px4_sitl_default gazebo

开始模拟飞行

七、无人机滤波参数调试

1、震动原因分析

桨叶问题:桨叶损坏或动平衡不良导致周期性震动。
电机与安装问题:电机桨座不垂直、电机动平衡差或安装松动。
结构问题:机架刚性不足或部件(如螺丝、减震球)松动。

2、降低震动方法

软件滤波
调整低通滤波器或陷波滤波器参数,优先过滤高频噪声。PX4中通过IMU_GYRO_CUTOFF设置低通截止频率,需平衡滤波效果与延迟。
陷波滤波器(如IMU_GYRO_NF0_BW)针对特定频率噪声(如桨叶谐波)。

硬件减震
优化减震球软硬度或增加配重,确保传感器与震动源隔离。

3、调参流程

初步调整
自稳模式下测试默认PID参数,确保基本飞行无超调或振荡。角度率环P/D值不宜过高。

滤波优先
先调整滤波参数(低通/陷波),再精调PID。未滤除的噪声会导致电机过热、续航缩短或随机抽搐。

PID与延时关系
控制延时(如滤波、机身刚性、电机响应)影响PID稳定性。高延时需降低P值,大轴距飞机因电机响应慢需较小PID。

4、关键参数与配置

延时优化

  • 使用AUX引脚(禁用SYS_USE_IO)减少IO延迟。

  • 启用Dshot/OneShot降低PWM延迟。

  • 高频率陀螺仪(如4kHz,需H7处理器)减少采样延迟。

日志记录
调参前启用高频率日志(SDLOG_PROFILE勾选High rate)便于分析。

5、注意事项

  • 滤波过度增加延迟,可能导致控制发散。

  • 大轴距飞机因电机响应慢需更低PID增益。

  • 传感器噪声未滤除时,调PID效果有限。

6、IMU滤波参数调优与振动抑制方法

FFT:快速傅里叶变换

核心作用:把时域波形(时间–幅值,示波器看到的波浪曲线)→ 转换成频域频谱(频率–幅值,观察的频谱图)

常用的查看频谱图的工具

  • Flight Review:PX4 官方在线日志分析工具。上传 .ulog 文件后,在陀螺仪或加速度计分析页面中可以直接看到 FFT 频谱图。这是最方便、也最常用于 PID 调参和滤波调试的方式。

  • MATLAB / Simulink:加载日志后使用 fft() 函数绘制频谱图,功能更专业。

  • Python (Jupyter Notebook):使用 scipy.fft 和 matplotlib 库自己绘制频谱图。

  • PX4 工具链中的 pyulog:命令行工具可以导出 CSV,再导入其他软件做 FFT。

陀螺仪噪声处理

观察陀螺仪数据的FFT频谱图,若40Hz后噪声显著,可将IMU_GYRO_CUTOFF设为35。对于角加速度数据,若FFT显示40Hz附近存在噪声高峰,IMU_DGYRO_CUTOFF建议设置为35。

陀螺仪数据频谱图

角加速度数据频谱图

加速度计滤波调整

根据加速度计FFT频谱,若35Hz后振动幅值较大,IMU_ACCEL_CUTOFF可设为30。调参后需检查actuator_control的FFT输出,确保控制噪声处于可接受范围。

加速度数据频谱图

硬件振动抑制

除软件滤波外,硬件措施包括:

  • 飞控安装减震装置

  • 确保所有部件牢固固定

  • 使用高强度、小轴距机架

  • 选择高KV值电机(高频振动更易滤除)

陷波滤波器应用

若FFT在特定低频处出现尖峰,可通过陷波滤波器精准滤除。例如:

  • 第一陷波:中心频率IMU_GYRO_NF0_FRQ=20,带宽IMU_GYRO_NF0_BW=10

  • 第二陷波:中心频率IMU_GYRO_NF0_FRQ=26.5,带宽IMU_GYRO_NF0_BW=2
    调参后需验证效果,必要时优先检查机械结构是否松动。

陷波滤波前频谱图

陷波滤波后频谱图

编号对应轴中文名称控制意义
00X轴滚转轴(Roll)左右倾斜
01Y轴俯仰轴(Pitch)前后倾斜
02Z轴偏航轴(Yaw)左右转向

穿越机参数参考

典型穿越机配置:

  • IMU_GYRO_CUTOFF=120

  • IMU_DGYRO_CUTOFF=50~80(根据机架尺寸调整)

八、无人机PID参数调试

自动调参流程

使用QGC地面站进行自动调参需切换至Hold模式,通过Autotune功能完成角速率环PID调整。调整过程中飞机会自动执行动作,完成后地面站提示“Autotune successful”即表示成功。角度环调参与此类似。

手动调参顺序

角速率环→姿态环→速度环→位置环。角速率环优先调整,姿态环仅含比例项,默认参数通常适用。

角速率环PID调参方法

一个经典的 PID 负反馈控制系统,核心目标是让实际输出 y 跟随设定值 r 变化,消除误差 e。

1、信号流向拆解

  •  误差计算:e = r - y,把设定值和实际输出做差,得到当前的误差。

  • PID 控制器处理误差:

    • 误差 e 先经过比例系数 K 放大,再分成三路:

      • 比例(P)支路:直接按放大后的误差大小输出控制量,快速响应误差,但无法消除稳态误差。

      • 积分(I)支路:对放大后的误差做积分运算,只要误差不为零,积分项就会一直累积,直到误差被消除,解决 “稳态误差” 问题。

      • 微分(D)支路:直接对输出 y 做微分(即取变化率),再乘以 -K 后取反。本质是提前预判误差的变化趋势,提前施加控制,抑制系统超调,加快动态响应。

  • 控制量合成:把 P、I、D 三个支路的输出相加,得到最终控制量 u。

  • 被控对象执行:控制量 u 输入到被控对象 G(s),改变系统状态,得到实际输出 y。

  • 负反馈闭环:输出 y 反馈回输入端,和设定值 r 再次比较,形成闭环控制。

2、三个环节的核心作用

  • P(比例):快速拉回误差,误差越大,控制力度越强。但只有 P 控制时,系统会存在稳态误差,无法让输出完全等于设定值。

  • I(积分):消除稳态误差。只要误差存在,积分项就会不断累积,直到误差为零,输出才会稳定。但积分过强会导致系统超调、震荡。

  • D(微分):抑制超调,稳定系统。它对误差的变化率敏感,当误差快速变化时,微分项会提前 “刹车”,防止系统冲过头。但微分容易放大噪声,需要合理设置参数。

并行形式与标准形式

  • 并行形式:以K作为全局常数参数,比例、积分、微分三类控制增益相互耦合关联,参数联动变化,结构原生绑定,适合固定机型场景。

  • 标准形式:以P为基准定值,比例、积分、微分增益完全解耦独立调节,各参数互不干扰,调试逻辑清晰,可快速通过增益标定适配不同机型,通用性更强。

P项调节

初始设置:I、D置0,K=1。逐步增加P增益(每次20%-30%,后期5%-10%)。

  • P过高:高频振荡(10Hz)。

  • P过低:响应迟缓,相位滞后。

P过高频谱图

P过低频谱图

P适中频谱图

I项调节

P调稳后调整I。

  • I过高:低频振荡。

  • I过低:静差显著。

I过高频谱图

I过低频谱图

I适中频谱图

D项调节

抑制超调,避免过大(导致电机发热、抽搐)。

  • D过小:阶跃输入后超调振荡。

  • 适度D值:快速稳定无振荡。

D过大频谱图

姿态环调参

仅调节比例项P,P过小则响应迟钝,过大易振荡,一般使用默认值。

调参模式建议

新手推荐自稳模式,熟练后可切换至特技模式观察效果。调参后需验证电机响应平稳性及飞行稳定性。对称机型roll/pitch参数可相同,yaw的D项通常为0。

PX4学习 笔记一 modules/position_estimator文件夹下,有params.cpp,CMakeLists.txt,position_estimator_inav_main.cpp,inertial_filter。commander进行传感器的校准,飞行前的检查,解锁状态的切换,飞行模式切换。2.inertial_filter是加速度的一次积分得到速度,二次积分得到位置的过程中,对动态误差的处理进行校准。vehicle_status.msg 解锁的状态,飞行模式,飞行状态,定义的是全局变量。 阅读详情

相关推荐

PX4学习笔记之uorb

PX4原生代码二次开发学习笔记之添加新的topic以及发布、订阅消息

wei_supreme的博客 3861

PX4源码学习(一):结构概述

最近在做PX4固件的移植开发工作,由于之前没有这方面开发经验,加之PX4源码又比较庞杂,所以想要通过一点一点的学习梳理和实践,使这部分工作能够尽快开展起来。博客中如有错误,恳请大家指正,同时欢迎小伙伴们一起交流学习。 PX4飞控源码系统框架介绍: 注:本篇内容中所编译的PX4 固件版本为v1.11,以 px4_fmu-v2_default 为例。 一、boards 各种不同的飞控板硬件配置文件。 二、px4_fmu-v2_default 编译后生成的文件,其路径为:Firmware/ bul

Kunfly的博客 3507

px4源码学习三--px4源码结构分析

px4源码结构分析Px4源码目录

znr1995的博客 5894

【PX4学习笔记】01.PX4硬件基础

pixhawk接口图以及引脚说明​ “负-正-信”。辅助通道(控制舵机那种)与主通道。V4版本的硬件不再有正负​ 🚶PX4FMU主处理器和PX4IO从处理器。Bootloader加载主从处理器IMPORTANT]1.PX4FMU主处理器,主要用于数据获取、计算、控制等核心代码2.PX4IO从处理器,主要用于输出带电机、电调、接收机、SBUS等NOTE]1.Bootloader主要用于连接IMU等硬件以及初始化PX4、APM固件。

踏上取经路,比抵达灵山更重要🐱‍👤 1万+

【PX4学习笔记】2. 真正开始入门px4开发

1. 前言 这学期有一门机器人导论课程,最近在课程实验中使用了turtlebot,对ROS下机器人应用的开发有了深入的理解,经验在px4开发上也同样适用。 根据turtlebot实验的经验,我开始有能力阅读px4例程源码。根据官方教程的指导,我学会了如何用gazebo仿真环境下运行C++程序。 turtlebot和px4的区别 编译方式 前者是工作空间下catkin_make 后者是工作空间的Firmware下“make……” 程序包结构 后者是 运行C++程序的方式 前者是新开一个终端

【人工智障 | 计算鸡视觉 | 机器孩】 8861

从零开始学习PX4源码0(固件下载及编译)

本节主要记录从零开始学习PX4源码1(固件下载)的过程,欢迎批评指正!!!下载固件主要分为两个版本,之前稳定版本和最新官网发布版本,为什么要下载两个版本,主要是说明两个版本有一定的差异(开发环境及源码文件格式等),我们是从之前版本开始学习,为什么不从最新的?因为之前版本代码文件格式还是固定的,最新的变化很大,不利于初学者学习,apm和px4不好的地方就是之前版本v1.7.2和最新版本v1.14.0有些文件总是在变化,这样很不好。

陌城烟雨 4616

【PX4学习笔记】07.PX4框架学习以及PX4中的PID

PX4固件代码框架

踏上取经路,比抵达灵山更重要🐱‍👤 3558

Cadence 17.4 PSpice仿真555定时器输出方波

这里利用555定时器组成多谐振荡器产生1Hz的方波并用PSpice仿真其输出的方波波形。555定时器是一种广泛应用的中规模集成电路。根据其内部组成的不同,可分为双极型(555B)和CMOS型(555C)两类。两种类型的定时器各有所长。双极型定时器具有较大的驱动能力,其输出电流可达200mA,可直接驱动发光二级管、扬声器、继电器等负载。而CMOS型定时器的输入阻抗高、功耗低。

tj_nonstoper的博客 1万+

手把手教你调试Pixhawk垂直起降参数

Pixhawk垂直起降参数 1、写在前面 本来想写个垂直起降手把手教你调试的,由于作者也没有太多的时间给大家拍照并现场调试,鉴于很多朋友问我里面的参数问题,干脆写点东西算了。 2、参数列表及解释 VT_ARSP_BLEND 这个参数的意思是,如果飞机在由旋翼状态转成固定翼状态的过程中,空速达到了这个参数设置的空速,那么旋翼的控制比重开始慢慢减少。也就是说在没有达到这个空速之前,旋...

weixin_43056212的博客 1万+

iPhone存储空间耗尽自救指南:从“白苹果”死锁到成功保数据刷机

本文详细介绍了iPhone存储空间耗尽导致'白苹果'死锁的解决方案,通过保留数据刷机方法成功恢复设备运行。文章分享了从失败尝试到最终成功的完整流程,包括关键操作步骤和预防措施,帮助用户在紧急情况下保住重要数据。

weixin_32578161的博客 290

Cursor 详细使用

Cursor 是一款基于 VSCode 开发的 AI 驱动代码编辑器,集成 GPT-4、Claude3.5 等先进 LLM,具备代码补全、生成、解释、调试等功能,可提升开发效率和代码质量。3. 代码编辑:在编辑区编写代码,利用快捷键提升效率,如 Ctrl+Space 触发智能代码补全、Ctrl+K 润色或修改代码、Ctrl+L 智能问答与代码编辑。3. 代码解释:选中代码,按 Ctrl+L,输入如 “解释这段代码的功能”,Cursor 会给出详细解释。

坚持写博客,大家的关注是我前进的动力! 4817

PX4学习笔记

首先使用Rufus工具制作Ubuntu启动盘设置ntfs,关于盘格式参考:优点:采用日志式,稳定安全,Windows系统使用友好,是主流格式。缺点:苹果电脑只支持读,想要写需要买驱动软件。:优点:对Windows和MAC格式都兼容,对优化更好。缺点:机械硬盘用这格式数据容易丢。数据安全可靠度:APFS=NTFS > ExFAT数据传输便捷度:ExFAT > NTFS > APFS。

weixin_43580083的博客 2473

STM32G474片内运放实战:从独立模式到PGA与ADC采样链路

在嵌入式控制系统中,运放是连接模拟信号与数字处理的关键环节。传统方案依赖外部分立运放搭建放大电路,存在成本高、PCB布局敏感、一致性差等痛点。STM32G474在MCU内部集成多路可编程运放(OPAMP),支持独立模式、跟随器、PGA以及比较器模式,配合内部ADC和DMA可构成完整模拟采集链路。通过片内互联,信号路径大幅缩短,抗干扰性和通道一致性显著提升,尤其适用于电机电流采样、数字电源等场景。本文以STM32G474为例,详解从独立模式到PGA增益配置,再到ADC与DMA联动调试的完整过程,并给出采样时间

weixin_29194255的博客 247

PX4飞控代码学习目录

本文整理了一份PX4飞控学习资料合集,涵盖STM32基础、Nuttx系统、PX4代码解析、驱动开发、控制算法等多个方面。作者在缺乏官方学习路径的情况下,通过收集博客和论文资料,按类别整理成结构化目录,包括时钟系统、USB驱动、Bootloader、任务调度、位置/姿态控制等核心内容。该资源持续更新,为PX4开发者提供系统化的参考指南,涵盖从底层驱动到上层控制逻辑的全栈知识。

Vincent的博客 1284

【OpenClaw从入门到精通】第01篇:保姆级教程——从零开始搭建你的第一个本地AI助理(2026实测版)

本文聚焦2026年开源AI代理工具OpenClaw的本地部署与实操,从核心概念拆解入手,先厘清OpenClaw、Gateway、Skills、ClawHub的关联,再明确硬件系统要求与大模型API-Key准备要点,通过官方一键安装脚本完成本地部署,并配置阿里云百炼API实现大模型对接。以“让AI助理抓取开源中国热门项目”的虚拟实战案例,详细演示Skills调用流程,同时梳理部署中“命令找不到”“API-Key配置失败”等高频问题的解决方法。内容兼顾新手友好性与实操参考性,所有步骤均基于公开技术文档验证。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 4万+

FanucROBOGUIDE软件二次开发:使用ROBOGUIDEAPI进行编程

菜单栏:位于界面顶部,提供文件、编辑、视图、插入、格式、工具、窗口和帮助等选项。工具栏:包含常用的工具按钮,如新建、打开、保存、运行、停止、机器人控制等。工作站视图:显示工作站的3D模型,用户可以在这里放置机器人、工件、工具和其他设备。机器人控制面板:用于控制机器人运动,包括手动移动、程序编辑和运行。程序编辑器:在这里可以编写和编辑机器人程序,支持Fanuc的R-30iB Plus和R-30iB控制柜的程序格式。状态栏:显示当前工作站的状态信息,如机器人位置、程序状态等。

kkchenjj的博客 1409

PX4 学习开始

学习PX4的网站:https://www.ncnynl.com/archives/201709/2026.html

weixin_43672602的博客 229

Token 费用爆炸?教你用 Semantic Cache(语义缓存)把 API 成本降低 80%

本文介绍了语义缓存(Semantic Cache)技术在大模型应用中的关键作用。传统Redis缓存基于精确匹配,无法处理用户提问的语义相似性,导致重复调用昂贵的LLM API。语义缓存通过将问题向量化并在向量空间中进行相似度匹配,可识别30%-50%的重复提问,直接返回历史答案。文章详细解析了技术原理(Embedding+向量搜索)、架构设计,并提供了基于Python和ChromaDB的50行核心实现代码。同时指出了生产环境中的三大挑战:阈值设定、隐私保护和多轮对话处理,并给出相应解决方案。该技术能以极低成

BUG猿的博客 1056

px4原生源码学习-(1)

接触px4代码有几天了,想把自己所学所想记录下来.   px4就不过多介绍了,算得上目前使用的最广泛的开源飞控了。为什么说”px4原生代码学习呢”,这还得追溯到被大疆干死的3DR,3DR想做消费级无人机,但苦于团队难建,所以索性就纠集起那几个著名的开源飞控团队,让大家一起搞一起发财(熟知还是被大疆搞死),但还是留下了这个宝贵的开源飞控遗产。这些开源团队中出名的当数APM团队和pixhawk团队,

lyonlui的博客 1万+

PCL 逐点插入法构建Delaunay三角网(C++详细过程版)

点云构建Delaunay三角网的逐点插入法基于PCL点云库的C++详细过程版实现

点云侠的博客 2992

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

PX4学习笔记——PX4仿真开环控制无人机转圈

其中进入OFFBOARD模式需要以>=2HZ的频率向无人机发送消息,否则无人机会回退到OFFBOARD模式之前所在的模式。我们要发布无人机的目标位置,其中发布目标位置的消息将分为x坐标、y坐标和z坐标,因此我们需要写出圆圈的参数方程。这里我用的终端是zsh的,如果是bash可以自行将zsh换成bash即可。把速度和加速度以及偏航角速度忽略了,本质上来讲还是位置控制。来设定无人机的状态(解锁)和模式(OFFBOARD)。第二篇文章有速度闭环控制(但是是画矩形)创建脚本offb.sh。

weixin_45504690的博客 1552

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

PX4/APM/飞控的学习笔记前言-Cxm

开始了 开始了 终于有时间可以学习飞控了 此文章是用来当目录,我会持续更新我的学习之旅,希望能对各位有所帮助 如果有错误的地方还请各位大佬不吝赐教,可以在评论区回复相关问题来交流。 此帖持续更新 ...

chen_taifu的博客 3402

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

PX4学习记录2 源码文件目录结构

本文主要记录自己学习 PX4 源码文件目录结构的过程。有写得不好或不对的地方,欢迎批评指正!!!

2501_91132786的博客 226

PX4例程学习

PX4的源代码中提供了一些学习例程,对于PX4的二次开发非常有用。现在学习下,应该有很多能够运用上的东西。例程的目录位于Firmware\src\examples目录下,每个目录是独立的应用程序,包含需要用到的源代码和CMake文件。 CMake的写法 在每个样例中有一个CMakeLists.txt文件,对于每个样例都需要这样一个文件来把程序编译进可执行程序中,如下: px4_add_mo...

上善若水 5517

PX4学习记录3 程序启动过程

本文主要记录自己学习 PX4 程序启动过程的过程。有写得不好或不对的地方,欢迎批评指正!!!

2501_91132786的博客 182
上一篇: 同步、异步与互斥:从通用OS到RTOS的全面解析
下一篇: C++的学习第一部分
橙橙笔记
博客等级 码龄4年 13粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值