PX4飞控学习过程(随着学习不断更新,欢迎讨论)
- 一、 安装时遇到的问题
- 二、 添加环境变量及编译
- 三、 解決E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)的問題
- 四、 VScode无法观测整个工作空间
一、 安装时遇到的问题
由于官方的环境脚本ubuntu_sim_nuttx.sh总是安装失败,所以使用Amov制作的ubuntu18.04系统环境包,该系统是通过systemback软件打包好的ubuntu系统,省去了PX4和ros等环境的安装过程,较为方便,但安装过程依然存在很多问题:
- Amov的px4 ubuntu系统环境如果需要可以找我获取,比较大无法上传;
- 整体安装过程按照amov论坛上的进行即可[入门教程] Ubuntu18-iso-安装说明视频,有关如何安装windows和ubuntu双系统的方法网络上很多ubuntu双系统安装教程;
- 在了解上述两个问题,大致知道如何安装ubuntu系统和如何使用systemback install安装ubuntu系统之后,来看一下使用amov制作的系统包安装过程会遇到的问题;
- 很多人都提到新笔记本电脑硬盘的m2端口systemback软件是无法识别的,也就是说如果你电脑的硬盘是m2的端口,systemback无法分区无法设置相应的挂载点,解决办法论坛也给出了回复
https://bbs.amovlab.com/forum.php?mod=viewthread&tid=961&page=1#pid3926 - 但根据该办法使用live mode模式分区时千万注意格式化硬盘要谨慎操作;
- 分区可以使用gparted软件,下载该软件前先修改软件下载镜像源(我一直用的清华源,可以加快下载速度),很简单百度即可,修改好之后打开终端,输入:
sudo apt-get install gparted
- 打开gparted软件进行分区,挂载点的分区直接按照论坛中的提示即可,200MB-boot/efi、4G-swap、剩下的全部分一个区。
- 之后修改硬盘分区编号,打开终端中分别输入:
sudo ln /dev/nvme0n1 /dev/sdd
sudo ln /dev/nvme0n1p1 /dev/sdd1
sudo ln /dev/nvme0n1p2 /dev/sdd2
sudo ln /dev/nvme0n1p3 /deb/sdd3
注意这里的nvme0n1是你的硬盘编号,在disks或gparted软件中可以查到,后三条命令中的nvme0n1p1、nvme0n1p2、nvme0n1p3分别是你刚刚分出来的三个分区编号,同样在gparted软件中可以查到,千万注意,要输入你自己刚分出来的三个分区编号;
9.重启电脑,接着按照论坛的安装教程安装即可。
二、 添加环境变量及编译
1. 安装好之后的主目录如下,
如果重启电脑发现project、Tools两个文件夹没有了,可从project.zip下载,其中project中包含固件(v1.9.2版本)。也可以自己从github网站clone固件,下载指定版本固件的命令:
git clone -b v1.8.2 https://github.com/PX4/Firmware.git
Tools中包含地面站(版本比较旧,最好自己下载最新版)。
2.该系统包中包含了添加环境变量的脚本,可以直接source该脚本实现ros等环境变量的添加,非常方便。
3.此时可以进入/project/some/Firmware/文件夹中编译固件,px4的编译命令如下:
make px4_fmu-v2_default
如果记不住命令,也可以通过make (两次table键)来补齐命令。
编译时如果遇到出错,显示gcc编译工具问题,可以自己下载gcc交叉编译工具,然后添加环境变量的方法来修改。方法如下:
下载gcc编译工具gcc-arm-none-eabi-7-2017-94-major,这里贴出我的云盘地址
https://cloud.189.cn/t/J3AJv2B3UjM3
下载好后解压到Tools文件夹中,打开终端输入:
sudo gedit ~/.bashrc
在最后一行输入:
export PATH=$PATH:/home/你刚刚解压的gcc文件夹中bin文件夹的路径
我的系统对应的是:
export PATH=$PATH:/home/lee/Tools/gcc-arm-none-eabi-7-2017-94-major/bin
保存,退出,执行编译,需要什么库按照提示安装对应的库即可。
重新编译,直接成功。
编译成功后,数据线连接飞控板,终端输入:
make px4_fmu-v2_default upload
在某些飞控板上上传固件时可能会失败,出现如下问题:
ERROR: Board can accept larger flash images (2080768 bytes) than board config (1032192 bytes). Please use the correct board configuration to avoid lacking critical functionality.
FAILED: platforms/nuttx/CMakeFiles/upload
这是由于官方对飞控板的调整,官方说明,px4fmu-v2_default是针对pixhawk1生成镜像,那么我们的板子是pixhawk1吗?官网上写着The main difference is that it is based on the Pixhawk-project FMUv3 open hardware design, which corrects a bug that limited the original Pixhawk 1 to 1MB of flash.
再看官网对于各个型号的pixhawk的make命令:
Pixhawk 1: make px4fmu-v2_default
HKPilot32: make px4fmu-v2_default
Pixfalcon: make px4fmu-v2_default
Dropix: make px4fmu-v2_default
mRo Pixhawk: make px4fmu-v3_default (supports 2MB Flash)
mRo X-2.1: make auav-x21_default
Pixhawk 2: make px4fmu-v3_default
Pixracer: make px4fmu-v4_default
MindPX/MindRacer: make mindpx-v2_default
Pixhawk Mini: make px4fmu-v3_default
Pixhawk 3 Pro: make px4fmu-v4pro_default
Crazyflie 2.0: make crazyflie_default
Intel® Aero Ready to Fly Drone: make aerofc-v1_default
Pixhawk 4: make px4fmu-v5_default
AUAV-X2 (Discontinued): make px4fmu-v2_default
可以发现我们使用的v2.4.8的飞控板对应的编译命令改为了:
make px4_fmu-v3_default
重新编译并上传,成功。
三、 解決E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)的問題
安装好系统以及环境变量,能够编译固件之后,我们还想下载一些软件,比如浏览器和文档查看器等,最简单的办法就是通过Ubuntu系统自带的软件商店来安装,或者是从网上下载软件对应的.deb安装包,通过系统自带的软件安装器来安装,但有时系统会显示E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
,
此时无论何种方式都无法成功安装软件。解决方法为:ubuntu 问题解决-----------无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
或者直接在文件夹中找到相应的两个lock文件,运行sudo rm lock
即可。
四、 VScode无法观测整个工作空间
我们在用VScode软件进行飞控代码开发时,由于固件的整个工作空间太大导致VScode无法观测到整个空间中的文件变化,按照其提示进行修改。
在/etc/sysctl.conf文件的最后一行添加命令,添加后结果为:
重启VScode软件即可解决问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)