问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

搭建PX4联合Matlab和Simulink进行飞控算法设计的仿真环境

创作时间:
作者:
@小白创作中心

搭建PX4联合Matlab和Simulink进行飞控算法设计的仿真环境

引用
CSDN
1.
https://m.blog.csdn.net/weixin_45031928/article/details/138483595

本文将详细介绍如何搭建基于PX4的飞控算法仿真环境,通过Matlab和Simulink实现飞控算法的设计与验证。文章将从软件安装、环境配置到硬件连接等多个方面进行讲解,帮助读者快速掌握这一技术。

环境要求

  • MATLAB : R2024a
  • UAV Toolbox Support Package for PX4 Autopilots : 24.1.1
  • WSL2 Ubuntu :22.04 LTS
  • Windows :Windows 10 22H2
  • Python: 3.8.2
  • PX4 :1.14.0

安装UAV Toolbox Support Package for PX4 Autopilots硬件支持包

打开Matlab,点击【附加功能】中的【获取附加功能】。搜索并安装UAV Toolbox Support Package for PX4 Autopilots硬件支持包。在弹出的页面中点击【安装】按钮。登陆MATLAB账号后按提示完成安装,最后可以点击【立即设置】进入配置页面。

也可以点击【稍后设置】,之后通过【管理附加功能】中的UAV Toolbox Support Package for PX4 Autopilots硬件支持包右侧的设置按钮进入。

安装WSL2(Windows Subsystem for Linux 2)

进入Matlab配置页面后需要先安装WSL2(Windows Subsystem for Linux 2),WSL2可以在Windows计算机上开发PX4飞控。点击上方的【link】按钮进入安装教程。

确保在BIOS中启用了计算机的虚拟化功能。它通常分别被称为“虚拟化技术”、“英特尔VT-x”或“AMD-V”。以管理员身份打开Windows命令提示符。可以通过在Windows搜索中输入【cmd】,单击【以管理员身份运行】。

在Windows命令提示符下执行以下命令以安装WSL2。

wsl --install

安装完成后,重新启动计算机,重启后需要设置Ubuntu系统的名称和密码。我这里默认安装的是Ubuntu 20.04版本,但是安装帮助中建议是使用22.04版本,所以我使用以下命令进行升级。

sudo apt update
sudo apt full-upgrade
sudo do-release-upgrade

还需要安装LSB模块。

sudo apt-get install lsb

之后在Matlab配置页面点击下方的【link】按钮进入配置教程,主要讲解了如何启动WSL2。

安装Python 3.8.2

如果没有安装Python 3.8.2,点击【Next】-【Install】安装Python 3.8.2,安装完毕后点击【Next】。

如果安装了Python 3.8.2,勾选【I have already installed Python 3.8.2】,点击【Next】,选择Python 3.8.2安装位置点击【Validate】进行验证,点击【Next】。

下载PX4源码

之后需要在WSL2中下载PX4 v1.14.0版本的源码。点击上方的【link】按钮进入安装教程。打开WSL2,到达用户目录下。

cd ~

从官网下载最新版本源码固件。

git clone https://github.com/PX4/PX4-Autopilot.git --recursive

clone成功之后,进入PX4-Autopilot文件夹中。

cd PX4-Autopilot

PX4-Autopilot里面就是PX4的源码,但是它依赖了很多其他的库,所以此时不完整还不能用,我们需要更新他的依赖。

git submodule update --init --recursive

安装PX4 Toolchain工具链

之后需要在WSL2中下载安装PX4 Toolchain工具链。点击【link】按钮进入安装教程。打开WSL2,到达PX4源码目录下包含工具链设置脚本的文件夹。

cd ~/PX4-Autopilot/Tools/setup/

运行工具链设置脚本。

bash ./ubuntu.sh

各种依赖环境安装成功之后需要重启WSL系统。

选择使用或禁用PX4源码中的控制模块

之后需要选择使用或禁用PX4源码中的控制模块,如果需要在Simulink中设计飞行控制器算法并替换掉PX4源码中的控制器,那就勾选【Disable multi-copter and fixed-wing controller modules in PX4 Firmware】。

选择PX4硬件并设置构建对象

之后需要选择PX4硬件并设置构建对象,我这里选择的是【Pixhawk 6c】,构建对象选择【px4_fmu-v6c_default】。

选择启动脚本的形式

这里需要选择启动脚本的形式,可以选择源码中的rcS文件直接构建到飞控固件中,或者选择rc.txt文件放到SD卡中。由于之前选择了禁用PX4源码中的控制模块,则在rc.txt文件中会禁用mc_pos_control位置控制模块和mc_att_control姿态控制模块,点击【Next】。

这里需要将生成的rc.txt文件拷贝到飞控板上的SD卡上。点击【link】按钮进入教程。在Matlab命令行中运行以下命令进入rc.txt文件所在位置。

cd (fullfile(codertarget.pixhawk.internal.getSpPkgRootDir,'lib','etc'))

在SD卡根目录下新建一个etc文件夹,然后将rc.txt文件拷贝到这个文件夹下,之后将SD重新插回飞控板即可。

编译PX4固件

之后需要编译PX4固件,点击【Build Firmware】进行编译。

连接PX4硬件

之后需要连接PX4硬件并烧录固件,需要提前用数据线插好飞控板到飞控板上再点击【Next】进入测试连接界面,我这里是COM14端口。点击【Upload Firmware】烧录固件。在弹窗中点击【确定】,然后重新插拔一次飞控板的连接数据线。耐心等待一段时间后显示烧录成功,点击【Next】。到这里所有的硬件设置就已经都完成了。

参考资料:UAV Toolbox Support Package for PX4 Autopilots

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号