Matlab 2024里的Support for UAV Toolbox Support Package for PX4 Autopilots工具包支持PX4 1.14.0版本的固件,很多新的功能和支持1.14.0的一些较新的硬件都可以使用Matlab 2024a进行开发。但在配置环境的过程中也遇到了很多问题,踩了很多坑,记录下来,供需要的人参考。
1、 打开Matlab 2024a,运行px4.mlpkginstall文件,安装Support for UAV Toolbox Support Package for PX4 Autopilots,安装完成后选择稍后设置。此时即便选择立即设置,也会显示找不到WSL2,需要安装WSL2,如下图所示。
2、 安装WSL2(Windows Subsystem for Linux):以管理员身份运行命令提示符(cmd),在cmd中输入wsl --list --online
,就能看到不同版本的Ubuntu系统,使用wsl --install -d <distro>
命令安装相应版本的Ubuntu,例如wsl --install -d Ubuntu-22.04
。如果速度特别慢的话,可在后面加上–web-download,速度有明显改善
3、 Ubuntu安装成功后需要重新启动电脑。
4、 在windows搜索栏下输入Ubuntu,打开对应的Ubuntu系统,进行Ubuntu系统的用户名和密码设置。
5、 在命令提示符中输入wsl -l -v
查看wsl版本,如果版本号为1,需要升级为2,在cmd中运行如下命令:
wsl.exe update
wsl --set-default-version 2
wsl --set-version Ubuntu 2
升级完成后进行后续步骤;
6、 git clone PX4固件,在打开的Ubuntu Terminal中,建立文件夹,并git clone PX4固件,命令如下:
mkdir mypx4
cd mypx4
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
cd PX4-Autopilot
git checkout v1.14.0 -f
git submodule update --init --recursive
注意:当进行git clone时,可能会报如下错误:
这是因为git默认使用http/2.0协议,而github还是http/1.1,可通过如下命令进行修改:
git config --global http.version HTTP/1.1
在完成git submodule update之后,可通过如下命令恢复。
git config --global http.version HTTP/2
7、 下载完PX4源码之后,需要对Ubuntu系统下的PX4 Tool Chain工具链进行设置,在ubuntu下运行如下代码,并输入Ubuntu系统的密码即可。
cd mypx4/PX4-Autopilot/Tools/setup
bash ./ubuntu.sh
等待工具链设置完成,需要关闭Ubuntu,再重新打开,随后进行后续步骤;
8、 在使用UAV Toolbox Support Package for PX4 Autopilots进行编译之前,建议使用Ubuntu进行一次编译,以便排查问题,进入到PX4-Autopilot目录后,使用make 固件版本的命令行进行编译,可以打出make px4,然后按一下Tab键就能显示出所有可编译的固件列表,如下:
选择所需的固件进行编译,以px4_fmu-v6c为例,编译成功的界面如下:
注意:假如在编译过程中遇到了这样的问题:
AttributeError: ‘module’ object has no attribute ‘RAW_OPT’
原因是2023年12月之后的新版本empy更新导致的,解决方法就是装一个旧版本,使用如下命令解决,再重新进行编译即可。
pip uninstall em
pip install empy==3.3.4
9、 安装Qgroundcontrol,Cmake,python3.8.2等程序,记住安装目录,后面进行UAV Toolbox Support Package for PX4 Autopilots设置时使用;
10、 打开Matlab 2024a的附加功能(Add-Ons)-管理附加功能(Manage Add-Ons),下拉找到UAV Toolbox Support Package for PX4 Autopilots 版本24.1.1,点击旁边的齿轮进行设置;
11、 此时如果仍出现如下画面:
这个意思表示工具包并未找到WSL2,需要重新安装WSL2,但是前面已经安装过了。这是由于系统语言不是英语的缘故,需要进行以下操作:
a.将windows系统的显示语言更改为English;
b.打开windows资源管理器,在地址栏里输入%temp%并回车进入;
c.下拉找到MW_px4_WSL_distribution.txt并删除;
d.重新点击UAV Toolbox Support Package for PX4 Autopilots 版本24.1.1旁边的齿轮进行设置。
12、 再次进入UAV Toolbox Support Package for PX4 Autopilots的设置之后,会跳出如下界面:
将Ubuntu系统下PX4-Autopilot的路径复制过来,点击Validate,显示Firmware Validate Successfully之后,点击下一步;
这个不了解,看着勾吧。
这个就根据自己的飞控类型进行选择即可,我选择的是cube orange和它默认的固件。
这个选第一个,实验室的人告诉我选第二个很麻烦,用第一个没错,原因未知。
这个是检测QGC的安装路径,验证成功后点下一步,再点下一步。
点击编译固件,然后回到matlab的command windows里观察编译的过程是否有误,编译的整个过程与Ubuntu内一致,如下:
编译完成之后,连接飞控,选择正确的端口进行固件Upload即可。
上传完成之后,环境配置就完成了。第一次配置的时候,中间会有选择python3.8.2路径的过程,我这里不是第一次就没显示,但跟QGC路径确定的过程一致。
以上过程使用到的软件均包含于以下网盘链接内,请有选择的下载
链接:https://pan.baidu.com/s/1kRAVrgp5qy8oXvPV4mTmjA?pwd=4ogp 提取码:4ogp