下面安装建立在已经安装好了ROS的基础,未安装ROS的请先按照下面教程安装ROSROS 安装教程

目录

一、安装px4_toolchain

二、编译PX4固件

三、mavros and mavlink 安装

四、修改gazebo配置

五、安装QGC地面站


一、安装px4_toolchain

1. 新建脚本一个空的文件ubuntu_sim_common_deps.sh,将下面的内容填入,安装px4工具链

#!/bin/bash

## Bash script for setting up a PX4 development environment on Ubuntu LTS (16.04).
## It can be used for installing simulators (only) or for installing the preconditions for Snapdragon Flight or Raspberry Pi.
##
## Installs:
## - Common dependencies and tools for all targets (including: Ninja build system, Qt Creator, pyulog)
## - FastRTPS and FastCDR
## - jMAVSim simulator dependencies
## - PX4/Firmware source (to ~/src/Firmware/)

# Preventing sudo timeout https://serverfault.com/a/833888
trap "exit" INT TERM; trap "kill 0" EXIT; sudo -v || exit $?; sleep 1; while true; do sleep 60; sudo -nv; done 2>/dev/null &

# Ubuntu Config
echo "We must first remove modemmanager"
sudo apt-get remove modemmanager -y


# Common dependencies
echo "Installing common dependencies"
sudo apt-get update -y
sudo apt-get install git zip qtcreator cmake build-essential genromfs ninja-build exiftool astyle -y
# make sure xxd is installed, dedicated xxd package since Ubuntu 18.04 but was squashed into vim-common before
which xxd || sudo apt install xxd -y || sudo apt-get install vim-common --no-install-recommends -y
# Required python packages
sudo apt-get install python-argparse python-empy python-toml python-numpy python-dev python-pip -y
sudo -H pip install --upgrade pip
sudo -H pip install pandas jinja2 pyserial pyyaml
# optional python tools
sudo -H pip install pyulog

# Install FastRTPS 1.7.1 and FastCDR-1.0.8
fastrtps_dir=$HOME/eProsima_FastRTPS-1.7.1-Linux
echo "Installing FastRTPS to: $fastrtps_dir"
if [ -d "$fastrtps_dir" ]
then
    echo " FastRTPS already installed."
else
    pushd .
    cd ~
    wget https://www.eprosima.com/index.php/component/ars/repository/eprosima-fast-rtps/eprosima-fast-rtps-1-7-1/eprosima_fastrtps-1-7-1-linux-tar-gz -O eprosima_fastrtps-1-7-1-linux.tar.gz
    tar -xzf eprosima_fastrtps-1-7-1-linux.tar.gz eProsima_FastRTPS-1.7.1-Linux/
    tar -xzf eprosima_fastrtps-1-7-1-linux.tar.gz requiredcomponents
    tar -xzf requiredcomponents/eProsima_FastCDR-1.0.8-Linux.tar.gz
    cpucores=$(( $(lscpu | grep Core.*per.*socket | awk -F: '{print $2}') * $(lscpu | grep Socket\(s\) | awk -F: '{print $2}') ))
    (cd eProsima_FastCDR-1.0.8-Linux && ./configure --libdir=/usr/lib && make -j$cpucores && sudo make install)
    (cd eProsima_FastRTPS-1.7.1-Linux && ./configure --libdir=/usr/lib && make -j$cpucores && sudo make install)
    rm -rf requiredcomponents eprosima_fastrtps-1-7-1-linux.tar.gz
    popd
fi

# jMAVSim simulator dependencies
echo "Installing jMAVSim simulator dependencies"
sudo apt-get install ant openjdk-8-jdk openjdk-8-jre -y

 2. 为脚本添加权限:

sudo chmod +x ubuntu_sim_common_deps.sh

3. 打开一个新的terminal,执行

sudo usermod -a -G dialout $USER

执行完之后重启一下, 官方说的是Logout and login again 使得操作生效

4. 在刚刚建立ubuntu_sim_common_deps.sh的目录下,执行

source ubuntu_sim_common_deps.sh

等待一会儿,terminal中出现done

表示安装完成

5.添加域名映射

nslookup github.global.ssl.fastly.net
nslookup github.com

找到对应的address,将address填入host文件

6. 填入host文件

sudo gedit /etc/hosts

效果如下所示 

二、编译PX4固件

1. 安装固件,选择安装1.9.2版本,官网给出的固件包为最新版本,但还是推荐此版本

mkdir PX4
cd PX4
git clone https://github.com/PX4/Firmware.git
cd Firmware
git checkout v1.9.2
git submodule update --init --recursive

2. 这里实际上官网到github已经更新为https://github.com/PX4/PX4-Autopilot ,可以使用上面的git,也可以使用下面的,亲测无区别。

3. (重点来了,固件在进行git submodule update --init --recursive时由于github的限制你根本无法更新模组,需要手动将github链接改成github.com.cnpmjs.org)

sudo gedit ~/PX4/Firmware/.gitmodules

打开后将所有https://github.com 改为https://github.com.cnpmjs.org,如下图所示

除了以上这些还有一部分需要更改,进入以下目录

cd ~/PX4/Firmware/src/drivers/uavcan/libuavcan
cd ~/PX4/Firmware/Tools/jMAVSim
cd ~/PX4/Firmware/Tools/sitl_gazebo
cd ~/PX4/Firmware/platforms/qurt/dspal
cd ~/PX4/Firmware/src/drivers/uavcan/libuavcan/libuavcan/dsdl_compiler/pyuavcan
cd ~/PX4/Firmware/Tools/sitl_gazebo/external/OpticalFlow

分别进入对应的目录并按同样的步骤修改文件夹中的.gitmodules文件,注意,每次修改完后,要使用git submodule update --init更新一下,然后再进入下一个目录

修改完了后进入到Firmware文件夹下

cd ~/PX4/Firmware

执行以下命令更新改动

git submodule sync

更新完后,再次运行submodule update --init --recursive,就可以完成PX4子模块更新

4. 类似于Keil的编译操作,对PX4进行编译

make px4_sitl_default

三、mavros and mavlink 安装

1. 在terminal中执行

sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras

2. 安装完成后,依次执行

wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh

chmod +x install_geographiclib_datasets.sh

./install_geographiclib_datasets.sh

3. 完毕之后执行:

roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"

未报错即表示mavros安装成功

四、修改gazebo配置

配置环境变量

sudo  gedit  ~/.bashrc
export FIRMWARE_DIR={path_to_Firmware} #path_to_Firmware是你的firmware路径,如/home/zhanqx/PX4/Firmware
source $FIRMWARE_DIR/Tools/setup_gazebo.bash $FIRMWARE_DIR $FIRMWARE_DIR/build/posix_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$FIRMWARE_DIR
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$FIRMWARE_DIR/Tools/sitl_gazebo

在地图添加如上代码,path_to_Firmware是你的firmware路径

打开新的终端,执行

roslaunch px4 mavros_posix_sitl.launch

打开的gazebo场景中会出现一架uav

五、安装QGC地面站

QGC地面站无法使用官方最新的版本(只支持ubuntu20.04),需要自己手动选择老版本进行使用,进入以下链接 QGC不同版本下载链接,我使用的版本为4.1.2

 下载后缀.Applmage,下载好了后首先需要给予安装权限

chmod +x ./QGroundControl.AppImage

然后执行

./QGroundControl.AppImage

便可直接打开QGC了

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐