
Ubuntu18.04下px4+MAVROSM+QGC地面站安装教程及避坑指南
Ubuntu18.04下px4+MAVROSM+QGC地面站安装教程及避坑指南
下面安装建立在已经安装好了ROS的基础,未安装ROS的请先按照下面教程安装ROSROS 安装教程
目录
一、安装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了
更多推荐
所有评论(0)