PX4-AutoPilot
文章平均质量分 83
记录一下学习过程,整理一下学习教程
后厂村路练习生
在后厂村路努力科研搬砖的无人机控制方向练习生一名~
展开
-
【开发环境】搭建PX4+ROS2+MAVROS2+Simulink+Optitrack实物联合仿真环境
本篇文章介绍如何搭建使用ROS2对PX4固件与Matlab/Simulink进行联合实物仿真的环境,以及如何安装所有所需软件和构建ROS2应用程序。介绍了动捕系统Optitrack的软件Motive的使用,介绍如何获取动捕位置信息,并在启动vrpn_client_ros2节点、启动MAVROS2、启动ROS2节点InfinityFlightReal后使用遥控器切换Offboard模式实现了沿自定义8字形轨迹的实物飞行。原创 2024-07-09 15:01:37 · 1043 阅读 · 0 评论 -
【DIY飞控板PX4移植】BARO模块BMP388气压计的PCB硬件设计和PX4驱动配置
BMP388是一款基于成熟传感原理的压力和温度测量数字传感器。介绍了PCB硬件设计和PX4驱动配置,包括封装、原理图、PCB设计、引脚选择问题、飞控板的PX4驱动配置文件夹结构、各类board配置文件等。原创 2024-06-13 21:38:07 · 1199 阅读 · 6 评论 -
【开发环境】PX4无人机实物使用视觉或运动捕捉系统进行位置估计
这篇文章介绍了如何配置基于PX4飞控的无人机系统,通过ROS或其他MAVLink系统从MoCap/VIO系统获取数据。主要介绍如何设置像VICON和Optitrack这样的MoCap系统,以及像ROVIO、SVO和PTAM这样的VIO系统。原创 2024-06-13 16:03:25 · 2882 阅读 · 17 评论 -
【PX4-AutoPilot教程-TIPS】PX4加速度计陀螺仪滤波器参数设置
进行滤波器参数设置的前提是飞机简单调试过PID已经可以稳定起飞,开源飞控的很多默认参数是可以让飞机平稳起飞的。修改参数SDLOG_PROFILE,勾选High rate选项。以最大频率来记录数据,这就方便我们之后对角速率、加速度以及控制输出信号进行傅里叶分析。PX4可以调整低通滤波器的截止频率参数来过滤掉高频噪声。截止频率越小,过滤的越彻底,但是带来的控制延时越大。截止频率越大,延时越小,但是会使噪声变大。原创 2024-06-11 20:31:12 · 984 阅读 · 0 评论 -
【PX4-AutoPilot教程-TIPS】离线安装Flight Review PX4日志分析工具
使用Flight Review在线分析日志,有时会因为网络原因无法使用。使用离线安装的方式使用Flight Review,可以在无需网络的情况下使用Flight Review网页。执行以下命令就会弹出Flight Review的网页,此网页不需要联网就可使用。原创 2024-06-11 20:24:11 · 465 阅读 · 0 评论 -
【PX4-AutoPilot教程-TIPS】PX4姿态解算基本原理(下)
陀螺仪测量绕三个轴转动的角速度,因此利用陀螺仪的输出值进行一段时间的积分可以得到一组姿态角。但是这组角度值为陀螺仪自身坐标系下的角度值,若要求得导航坐标系下的姿态角,一般利用陀螺信号通过与欧拉角、方向余弦矩阵或四元数进行微分的方法进行姿态信息的更新。原创 2024-05-13 10:47:12 · 1396 阅读 · 0 评论 -
【PX4-AutoPilot教程-TIPS】PX4姿态解算基本原理(上)
陀螺仪测量绕三个轴转动的角速度,因此利用陀螺仪的输出值进行一段时间的积分可以得到一组姿态角。但是这组角度值为陀螺仪自身坐标系下的角度值,若要求得导航坐标系下的姿态角,一般利用陀螺信号通过与欧拉角、方向余弦矩阵或四元数进行微分的方法进行姿态信息的更新。原创 2024-05-13 10:47:03 · 958 阅读 · 0 评论 -
【TIPS】Matlab2024A配置UAV Toolbox Support Package for PX4 Autopilots硬件支持包时下载完PX4源码后配置验证报错找不到文件夹路径的解决办法
本文介绍了Matlab2024A配置UAV Toolbox Support Package for PX4 Autopilots硬件支持包时下载完PX4源码后Matlab配置页面验证报错找不到文件夹路径的解决办法。通过单步执行代码发现是软件包内部有两处写错了。将`\\wsl.localhost\`改为`\\wsl$\`即可。之后在Matlab命令行中运行命令生成P代码。之后再次在Matlab配置页面点击【Validate】验证即可。原创 2024-05-10 10:22:30 · 820 阅读 · 0 评论 -
【DIY飞控板PX4移植】LED模块的PCB硬件设计和PX4驱动配置
本文介绍了LED模块的PCB硬件设计和PX4驱动配置。如果`CONFIG_ARCH_LEDS`标识符被定义,那么LED的控制权在NuttX操作系统手中,如果标识符没有被定义,则用户(PX4程序)可以对LED进行控制。如果`CONFIG_ARCH_LEDS`标识符没有被定义,LED号的定义在下列代码。原创 2024-05-10 10:15:20 · 762 阅读 · 0 评论 -
【DIY飞控板PX4移植】IMU模块ICM42688P加速度计陀螺仪的PCB硬件设计和PX4驱动配置
ICM42688P是一款6轴MEMS运动跟踪设备,结合了3轴陀螺仪和3轴加速度计。它有一个可配置的主机接口,支持I3CSM、I2C和SPI串行通信,具有2KB FIFO和2个可编程中断,支持超低功率唤醒,以最大限度地减少系统功耗。介绍了PCB硬件设计和PX4驱动配置,包括封装、原理图、PCB设计、引脚选择问题、朝向问题、飞控板的PX4驱动配置文件夹结构、各类board配置文件等。原创 2024-05-09 10:35:11 · 1582 阅读 · 0 评论 -
【DIY飞控板PX4移植】IMU模块BMI088加速度计陀螺仪的PCB硬件设计和PX4驱动配置
BMI088是一种惯性测量单元(IMU),用于检测6自由度的运动和旋转。它将两个惯性传感器的功能结合在一个设备中:一个先进的三轴16位陀螺仪和一个通用的、前沿的三轴16bit加速度计。介绍了PCB硬件设计和PX4驱动配置,包括封装、原理图、PCB设计、引脚选择问题、朝向问题、飞控板的PX4驱动配置文件夹结构、各类board配置文件等。原创 2024-05-09 10:29:48 · 1087 阅读 · 3 评论 -
【PX4-AutoPilot教程-TIPS】PX4设置DMA通道后系统无法正常启动的解决方法
进行PX4源码移植的时候修改PX4的DMA配置,主要是对nuttx-config/include/board_dma_map.h文件进行修改。该文件用于配置DMA。DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动,这就节省了CPU的资源来做其他操作。在打开了多个串口通道和SPI通道的DMA后,烧录固件到飞控板中,系统无法正常启动进入PX4代码,并不断重启。原因是STM32H7系列的每组DMA只有8个通道。原创 2024-05-08 16:02:34 · 256 阅读 · 0 评论 -
【PX4-AutoPilot教程-TIPS】Matlab2024A配置UAV Toolbox Support Package for PX4 Autopilots包安装WSL2后卡在配置页面的解决方法
Matlab2024A版本安装完UAV Toolbox Support Package for PX4 Autopilots硬件支持包后,按照教程安装WSL2后重新进入配置页面,仍然卡在配置WSL2页面,系统检测不到WSL2环境。给出了官方给出的解决方法和自己研究得出的解决方法。原创 2024-05-08 15:57:02 · 1076 阅读 · 0 评论 -
【PX4-AutoPilot教程-TIPS】MAVROS2运行px4.launch文件终端mavros.odometry重复报错map和base_link_frd连接错误的解决方法
在使用命令`ros2 launch mavros px4.launch`命令启动MAVROS2与PX4之间的连接时,MAVROS2可以启动,但终端重复报错,这个重复报错好像不影响使用,报错信息如下。ODOM: Ex: Could not find a connection between 'map' and 'base_link_frd' because they are not part of the same tree.Tf has two or more unconnected trees.原创 2024-05-07 12:41:18 · 451 阅读 · 0 评论 -
【PX4-AutoPilot教程-TIPS】MAVROS2运行px4.launch文件报错ValueError无法启动的解决方法
在使用命令`ros2 launch mavros px4.launch`命令启动MAVROS2与PX4之间的连接时报错,无法启动MAVROS2,报错信息如下。分析原因是ROS2 Foxy中MAVROS2的版本问题,Foxy中的MAVROS2 2.4.0版本会有这个问题,但MAVROS2 2.7.0修复了这个问题,所以比较好的解决方案就是自己创建工作空间搭建环境。从github官网下载MAVROS2的ros2分支的最新版本代码,替换mavros2_ws/src文件夹中的mavros文件夹。原创 2024-05-07 12:38:21 · 554 阅读 · 0 评论 -
【PX4-AutoPilot教程-TIPS】Matlab使用ROS Toolbox编译MAVROS2消息报错缺少geographic_msgs消息
在使用Matlab的ROS Toolbox工具箱编译与PX4联合调试的代码,Matlab官方给出的示例是使用ROS2配合microRTPS连接无人机,并发送控制命令来导航模拟无人机。但是实际中使用更多的是MAVROS2连接的方法,所以这里选择了编译MAVROS2消息来实现与Matlab的联合调试。在官网下载MAVROS2的源码,使用Matlab中的ros2genmsg命令生成ROS2消息。编译过程中报错缺少geographic_msgs这个消息包,本文给出了解决办法。原创 2024-05-06 10:30:09 · 626 阅读 · 0 评论 -
【开发环境-PX4飞控算法】搭建PX4联合Matlab和Simulink进行飞控算法设计的仿真环境
本篇文章介绍如何搭建PX4+Matlab+Simulink飞控算法设计联合仿真环境,提供了如何安装所有所需软件的教程。包括安装UAV Toolbox Support Package for PX4 Autopilots硬件支持包,安装WSL2(Windows Subsystem for Linux 2),安装Python 3.8.2,下载PX4源码,安装PX4 Toolchain工具链,选择使用或禁用PX4源码中的控制模块,选择PX4硬件并设置构建对象,选择启动脚本的形式,编译PX4固件,连接PX4硬件等。原创 2024-05-06 10:01:55 · 3453 阅读 · 4 评论 -
【PX4-AutoPilot教程-仿真环境架构】梳理PX4&Gazebo&MAVLink&MAVROS&ROS&ROS2之间的关系
梳理PX4&Gazebo&MAVROS&ROS&ROS2之间的关系。仿真是在尝试现实世界中飞行之前测试PX4代码的一种快速、简单且安全的方法。PX4的UDP端口14550用于与地面站进行通信。地面站侦听此端口上的连接,QGroundControl默认侦听此端口。PX4的UDP端口14540用于与Offboard模式板外电脑进行通信。Offboard模式板外电脑应侦听此端口上的连接。仿真器的本地TCP端口4560用于与PX4通信。PX4用于启动仿真的launch文件在Firmware/launch文件夹中。原创 2024-02-26 17:17:20 · 3119 阅读 · 2 评论 -
【PX4、RTPS、ROS2、Simulink联合仿真】在Simulink中使用ROS2发布消息通过microRTPS中间件控制无人机沿自定义8字形轨迹正向飞行(带偏航角控制)并在Gazebo中可视化
本篇文章介绍如何使用使用ROS2控制无人机沿自定义8字形轨迹正向飞行(带偏航角控制)并在Gazebo中可视化,提供了Matlab/Simulink源代码,以及演示效果图。microRTPS桥接工具由运行在PX4上的客户端和运行在计算机上的服务端组成,它们进行通信以提供uORB和ROS2话题格式之间的双向数据交换和话题转换。这样在Ubuntu中就生成了一个可以调用uORB话题接口的ROS2节点,这个节点可以和运行在同一局域网下的Matlab/Simulink上的ROS2节点进行通信,以实现联合仿真。原创 2024-02-22 21:55:05 · 2415 阅读 · 11 评论 -
【PX4、RTPS、ROS2、Simulink联合仿真】在Simulink中使用ROS2发布消息通过microRTPS中间件控制无人机沿自定义圆形轨迹正向飞行(带偏航角控制)并在Gazebo中可视化
本篇文章介绍如何使用使用ROS2控制无人机沿自定义圆形轨迹正向飞行(带偏航角控制)并在Gazebo中可视化,提供了Matlab/Simulink源代码,以及演示效果图。microRTPS桥接工具由运行在PX4上的客户端和运行在计算机上的服务端组成,它们进行通信以提供uORB和ROS2话题格式之间的双向数据交换和话题转换。这样在Ubuntu中就生成了一个可以调用uORB话题接口的ROS2节点,这个节点可以和运行在同一局域网下的Matlab/Simulink上的ROS2节点进行通信,以实现联合仿真。原创 2024-02-22 20:09:49 · 1532 阅读 · 2 评论 -
【PX4、RTPS、ROS2、Simulink联合仿真】在Simulink中使用ROS2发布消息通过microRTPS中间件控制无人机沿自定义圆形轨迹飞行并在Gazebo中可视化
本篇文章介绍如何使用ROS2控制无人机沿自定义圆形轨迹飞行并在Gazebo中可视化,提供了Matlab/Simulink源代码,以及演示效果图。microRTPS桥接工具由运行在PX4上的客户端和运行在计算机上的服务端组成,它们进行通信以提供uORB和ROS2话题格式之间的双向数据交换和话题转换。这样在Ubuntu中就生成了一个可以调用uORB话题接口的ROS2节点,这个节点可以和运行在同一局域网下的Matlab/Simulink上的ROS2节点进行通信,以实现联合仿真。原创 2024-02-21 16:42:40 · 2266 阅读 · 0 评论 -
【PX4、RTPS、ROS2、Simulink联合仿真】在Simulink中使用ROS2发布消息通过microRTPS中间件控制无人机进入Offboard模式起飞悬停并在Gazebo中可视化
本篇文章介绍如何使用ROS2控制无人机进入Offboard模式起飞悬停并在Gazebo中可视化,提供了Matlab/Simulink源代码,以及演示效果图。microRTPS桥接工具由运行在PX4上的客户端和运行在计算机上的服务端组成,它们进行通信以提供uORB和ROS2话题格式之间的双向数据交换和话题转换。这样在Ubuntu中就生成了一个可以调用uORB话题接口的ROS2节点,这个节点可以和运行在同一局域网下的Matlab/Simulink上的ROS2节点进行通信,以实现联合仿真。原创 2024-02-21 15:58:58 · 1401 阅读 · 9 评论 -
【PX4-AutoPilot教程-TIPS】Gazebo仿真环境昏暗的解决办法即Ubuntu系统安装NVIDIA显卡驱动方法
Gazebo仿真环境昏暗的解决办法即Ubuntu系统安装NVIDIA显卡驱动方法。具体原因为大多数情况是因为显卡性能不足,Gazebo自动关闭了灯光和阴影的渲染。Ubuntu在安装的时候并不会为独立显卡配置驱动,而是默认使用CPU上的集成显卡,以达到稳定并替用户省电的目的。对于独立显卡需要手动为显卡安装驱动以改善Gazebo的显示效果。Gazebo仿真环境前后对比画面明显变亮了。切换到独显驱动sudo prime-select nvidia。原创 2024-02-20 20:11:50 · 1337 阅读 · 0 评论 -
【PX4-AutoPilot教程-TIPS】PX4控制无人机在Gazebo中飞行时由于视角跟随无人机在画面中心导致视角乱晃的解决方法
PX4控制无人机在Gazebo中飞行时由于视角跟随无人机在画面中心导致视角乱晃的解决方法。无人机在Gazebo中飞行时,无人机始终处于画面中央,会带着视角乱晃,在Gazebo中进行任何操作视角都无法固定,观察Gazebo左侧World栏GUI选项,发现有一个track_visual项。原因是PX4在Gazebo仿真中Tools/sitl_run.sh文件中写了一个脚本来使无人机一直处于画面中央。在运行仿真命令时加上前缀PX4_NO_FOLLOW_MODE=1来屏蔽视角跟随部分代码。原创 2024-02-20 16:48:55 · 901 阅读 · 0 评论 -
【PX4-AutoPilot教程-源码】移植PX4固件到自制NuttX操作系统飞控板的方法
本文介绍了移植PX4固件到自制NuttX操作系统飞控板的方法。使用的是PX4 V1.13.0版本固件,经过实物验证成功给自己制作的飞控板移植了PX4固件。另外还介绍了飞控板的配置文件夹结构,移植的技巧和经验等。介绍了default.px4board、bootloader.px4board、nuttx-config/bootloader/defconfig、nuttx-config/nsh/defconfig、nuttx-config/include/board.h文件等。原创 2024-02-18 20:23:47 · 1579 阅读 · 8 评论 -
【开发环境-PX4路径规划算法】搭建PX4+Gazebo+ROS2+microRTPS+Matlab+Simulink路径规划算法设计联合仿真环境
本篇文章介绍如何搭建使用ROS2对PX4固件与Matlab/Simulink进行联合仿真的环境,提供了ROS2-PX4桥接体系结构和应用程序管道的概述,以及如何安装所有所需软件和构建ROS2应用程序。环境:MATLAB : R2022bUbuntu :20.04 LTSWindows :Windows 10ROS :ROS2 FoxyPython: 3.8.2Visual Studio :Visual Studio 2019PX4 :1.13.0原创 2024-01-26 16:05:15 · 3387 阅读 · 3 评论 -
【PX4-AutoPilot教程-TIPS】Ubuntu中安装指定版本的gcc-arm-none-eabi
Ubuntu中安装指定版本的gcc-arm-none-eabi。原创 2024-01-04 15:40:23 · 1463 阅读 · 0 评论 -
【PX4-AutoPilot教程-TIPS】使用ESP8266模块制作WIFI数传并用AccessPoint(AP)模式&Station(STA)模式实现单机&集群组网
使用ESP8266模块制作WIFI数传并分别使用AccessPoint(AP)模式&Station(STA)模式实现单机&集群组网,即无人机通信网络搭建,使用PX4飞控固件,使用QGC地面站成功完成连接。原创 2024-01-04 14:19:27 · 1819 阅读 · 0 评论 -
【PX4-AutoPilot教程-TIPS】系统控制台System Console和命令行解释器MAVLink Shell的区别
简要介绍PX4中系统控制台System Console和命令行解释器MAVLink Shell的区别。原创 2024-01-02 21:52:02 · 604 阅读 · 1 评论 -
【PX4-AutoPilot教程-Offboard】MAVROS功能包控制无人机进入offboard模式飞行官方例程(C++实现)
主要介绍如何通过MAVROS功能包使用PX4飞控中的offboard模式控制gazebo中的飞机起飞到高度两米,代码用C++实现。在运行过程中,可能会出现一个BUG,就是无人机无法起飞,文章中简述了解决方法。原创 2023-12-21 23:25:53 · 6015 阅读 · 10 评论 -
【PX4-AutoPilot教程-源码】uORB话题订阅发布机制理解、应用和代码阅读
本文讲解了uORB主题订阅发布机制,以及分析了如何订阅发布传感器主题的例程、如何定义自己的主题消息的例程。原创 2023-12-21 23:00:51 · 1909 阅读 · 2 评论 -
【PX4_BUG】MAVROS控制无人机offboard模式无法起飞,报错CMD: Unexpected command 176, result 0,重复Offboard enabled
主要介绍在通过MAVROS功能包的offboard模式控制gazebo中的飞机起飞到高度两米时遇到无法起飞的BUG,重复报错INFO [commander] Failsafe mode deactivated,INFO [commander] Failsafe mode activated,重复报错CMD: Unexpected command 176, result 0,重复报错Offboard enabled,介绍了解决方法。原创 2023-12-20 22:36:38 · 1975 阅读 · 19 评论 -
【PX4-AutoPilot教程-源码】使用PX4搭建并运行第一个应用程序
本文主要说明如何在PX4中搭建并运行你的第一个板载应用程序,输出"hello sky"。原创 2023-12-20 22:24:53 · 1840 阅读 · 0 评论 -
【PX4-AutoPilot教程-源码】PX4源码文件目录架构分析
PX4源代码的结构复杂,本文介绍了源代码的总目录结构(以v1.13.0为例)。原创 2023-12-20 10:36:20 · 2973 阅读 · 5 评论 -
【PX4-AutoPilot教程-开发环境】使用双系统安装Ubuntu系统并搭建PX4开发环境
使用双系统安装Ubuntu系统并搭建PX4开发环境,并下载PX4源码,配置好编译环境和工具链(ROS操作系统+mavros通信包+jMAVSim仿真+gazebo仿真+QGC地面站)。教程中使用的是Ubuntu20.04系统,PX4固件版本为v1.13.0,步骤中大部分都使用了快速安装脚本,十分方便高效。原创 2023-12-19 23:53:02 · 743 阅读 · 0 评论 -
【PX4-AutoPilot教程-开发环境】使用VMware虚拟机导入配置好的Ubuntu系统
学习PX4开发需要先配置好开发环境,对于新手推荐使用VMware虚拟机搭建Ubuntu系统,并下载PX4源码,配置好编译环境和工具链(ROS操作系统+mavros通信包+jMAVSim仿真+gazebo仿真+QGC地面站+QT开发平台)。如果你不想配置相应的环境,可以选择导入阿木实验室配置好的Ubuntu系统。原创 2023-12-19 23:47:46 · 1046 阅读 · 0 评论 -
【PX4-AutoPilot教程-开发环境】使用VMware虚拟机安装Ubuntu系统并搭建PX4开发环境(ROS+mavros+jMAVSim+gazebo+QGC+QT)
学习PX4开发需要先配置好开发环境,对于新手推荐使用VMware虚拟机搭建Ubuntu系统,并下载PX4源码,配置好编译环境和工具链(ROS操作系统+mavros通信包+jMAVSim仿真+gazebo仿真+QGC地面站+QT开发平台)。教程中使用的是Ubuntu18.04系统(官方推荐使用版本),PX4固件版本为v1.13.0,飞控板为pixhawk2.4.8版本。原创 2023-12-19 23:34:07 · 3619 阅读 · 0 评论 -
【PX4_BUG】HolybroKakuteH7V2或KakuteH7MiniV2烧录PX4固件后出现地面站设置参数掉电后重置无法保存问题的解决方法
第一次在Ubuntu中使用命令`make holybro_kakuteh7v2 upload`命令给Holybro Kakute H7 V2和Kakute H7 Mini V2烧录PX4固件后,发现使用地面站调参后,掉电后调的参数会恢复默认值。在Github上PX4项目问题栏搜索相关问题,发现有人发现了这个问题并解决了该问题,已经合并进了主分支并且在用户手册中补充了注意事项。原创 2023-06-23 06:39:00 · 592 阅读 · 0 评论 -
【PX4_BUG】systemback还原系统失败There has been critical changes in the file system during this operation解决
本文解决的是Ubuntu系统使用systemback工具还原进度条达到100%时报错The restore point creation is aborted! There has been critical changes in the file system during this operation.的问题。原创 2022-11-02 20:27:25 · 3716 阅读 · 7 评论 -
【PX4_BUG】jMAVSim仿真提示错误Exception in thread “main“ java.lang.reflect.InvocationTargetException
jMAVSim仿真失败,提示错误Exception in thread "main" java.lang.reflect.InvocationTargetException原创 2022-11-01 21:20:47 · 453 阅读 · 0 评论