如果要在虚拟机上使用Ubuntu,可以参考

安装虚拟机。

如果需要安装VPN,推荐用lanten,下载地址

https://github.com/getlantern/lantern

下载完后,在lanten的目录下执行

sudo dpkg -i 下载的安装包名

即可安装

先安装git

sudo apt-get install git

如果提示


E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。


则更新源

执行​​sudo apt-get update​

安装PX4和gazebo9

下载PX4源码

git clone -b stable https://github.com/PX4/Firmware.git --recursive

用git clone下载px4 Firmware时,如果一些子模块因为网络原因下载失败。可以在网络正常后,在Firmware路径下用​​git submodule update --init --recursive​​继续下载剩余的子模块。

源码下载完毕后

cd Firmware
sudo bash ./Tools/setup/ubuntu.sh

在执行这个脚本的过程中会自动安装px4的编译环境和gazebo仿真环境,环境安装过程中如果报错一般是网速问题,可以开vpn,再重新执行脚本。直到安装成功。

安装完环境后编译生成gazebo仿真所需的sdf文件

make px4_sitl_default gazebo

如果要编译下载到飞控的代码,需重启电脑编译,以v5固件为例

make px4_fmu-v5_default

注意编译的时候Firmware路径不能不能有英文的括号,否则编译会报错或者一直循环config

笔者在编译成功后,利用​​make clean​​清除编译后再次编译会报如下错

ubuntu18.04配置px4编译环境及mavros环境_mavros

解决办法是用​​make distclean​​重新清除一下即可。

如果要使用QT编译PX4作为看代码的工具,可以参考

安装ros和mavros

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python-rosdep
sudo rosdep init

如果rosdep init出现以下错误

ubuntu18.04配置px4编译环境及mavros环境_mavros_02

一般是网络问题,无法访问那个链接,开个vpn一般能解决。

如果开了vpn后可以访问链接,但是还是报错,执行

sudo c_rehash /etc/ssl/certs
sudo -E rosdep init

如果执行成功,继续执行下面的命令

rosdep update
sudo apt install python-catkin-tools

mavros我这里直接用二进制安装,如果用源码安装参考

https://docs.px4.io/master/en/ros/mavros_installation.html

sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
chmod +x install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh

安装好mavros后,需要添加一下px4源码的路径,否则不能使用px4的launch文件

gedit .bashrc

如果Firmware在home目录下,则添加如下

source ~/Firmware/Tools/setup_gazebo.bash ~/Firmware/ ~/Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/Tools/sitl_gazebo

注意这里的路径是每次ros启动的时候会从这里启动无人机的模型,因此只有修改这个路径下的固件,在通过roslaunch启动无人机的时候,对应的修改才会对仿真的无人机有效

保存后 ​​source .bashrc​

测试mavros

roslaunch px4 mavros_posix_sitl.launch

如果正常启动gazebo,并且终端显示版本号,则说明px4、ros、mavros都正常安装了。

ubuntu18.04配置px4编译环境及mavros环境_ubuntu_03

如果需要安装QGC地面站,可以在下面的网址下载

https://docs.qgroundcontrol.com/master/en/getting_started/download_and_install.html

ubuntu18.04配置px4编译环境及mavros环境_PX4_04

下载后在地面站目录下执行

chmod +x QGroundControl.AppImage

再双击打开地面站即可,如果打开地面站时出现下面的提示

ubuntu18.04配置px4编译环境及mavros环境_git_05

执行下面命令,再打开即可

sudo usermod -a -G dialout $USER
sudo apt-get remove modemmanager