在Ubuntu20.04系统下安装无人机PX4飞控仿真环境(Gazebo+Mavros+PX4)

一. 前言

各位看官老爷们许久不见了,笔者经过这段时间的沉淀之后决定整理出一份无人机仿真环境搭建的完整教程,希望这份教程能够帮助各位成功在Ubuntu系统下搭建出PX4无人机仿真环境。
本次仿真环境搭建的系统环境为Ubuntu 20.04.6 Desktop + ROS Noetic,关于如何安装Ubuntu 20.04系统以及如何在Ubuntu 20.04系统下成功安装ROS,笔者将完整的安装步骤都记录在了之前的几篇文章中(在DellG16电脑中安装Ubuntu20.04双系统在Ubuntu20.04系统中安装ROS) 看官老爷们可自行安装,在此不进行赘述。
本篇安装教程以官网教程PX4 Autopilot User Guide 为主,辅助参考了这篇文章Ubuntu18.04下PX4+gazebo+QGC实现无人机在仿真环境下的房屋巡视,如果这篇文章确实对各位有所帮助的话,麻烦各位观众老爷点赞、收藏加关注哦!

二. PX4飞控

1.介绍

PX4 是专业自动驾驶仪。它由来自工业界和学术界的世界级开发人员开发,并由一个活跃的全球社区提供支持,为从赛车和货运无人机到地面车辆和潜水器等各种车辆提供动力。它常被应用于无人机、无人车以及无人艇的控制环节中,也可以应用于仿真软件中模拟真实机器人作业过程。
接下来,笔者将介绍PX4飞控的完整安装步骤,主要参考了官网中这个页面下的内容。

2.安装

第一步,下载PX4源码到本地

# 创建本地文件夹
mkdir ~/packages/PX4 && cd ~/packages/PX4
# 下载PX4源码
git clone https://github.com/PX4/PX4-Autopilot.git --recursive

下载过程可能会比较长,需要下载各个子模块,尽量挑一个网速快的时间下,可以反复多试几次,实在不行的话就只能爬个梯子了。
在笔者之前这篇文章中,记载了如何更换系统软件源的详细步骤,如果是因为使用了默认的系统软件源才无法下载PX4源代码,可以按照这篇文章更新系统软件源。

# 子模块源码下载失败
## 远程链接超时
Cloning into '/home/user/packages/PX4/PX4-Autopilot/src/drivers/actuators/vertiq_io/iq-module-communication-cpp'...
error: RPC failed; curl 28 Failed to connect to github.com port 443: Connection timed out
fatal: the remote end hung up unexpectedly
fatal: clone of 'https://github.com/PX4/iq-module-communication-cpp.git' into submodule path '/home/user/packages/PX4/PX4-Autopilot/src/drivers/actuators/vertiq_io/iq-module-communication-cpp' failed
Failed to clone 'src/drivers/actuators/vertiq_io/iq-module-communication-cpp'. Retry scheduled
## 服务器无应答
Cloning into '/home/user/packages/PX4/PX4-Autopilot/src/lib/cdrstream/rosidl'...
fatal: unable to access 'https://github.com/px4/rosidl/': Empty reply from server
fatal: clone of 'https://github.com/px4/rosidl' into submodule path '/home/user/packages/PX4/PX4-Autopilot/src/lib/cdrstream/rosidl' failed
Failed to clone 'src/lib/cdrstream/rosidl'. Retry scheduled

如果只有部分子模块下载失败,比方说下载过程中出现上面那种情况,可以尝试以下命令仅下载子模块内容,不需要重新再下载一次完整版PX4。

# 进入PX4工作目录
cd PX4-Autopilot
# 更新所有子模块到它们当前最新的提交状态 
## --recursive:递归地更新所有子模块(包括子模块的子模块)。
## --remote:从子模块的远程仓库拉取最新的更改。
git submodule update --init --recursive --remote

第二步,配置编译环境

# 运行ubuntu.sh
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --no-sim-tools --no-nuttx

直接运行上述命令之后,可能会出现如下报错

ERROR: pandas 2.0.3 has requirement numpy>=1.20.3; python_version < "3.10", but you'll have numpy 1.17.4 which is incompatible.

对此需要升级系统默认Numpy库,可使用以下命令

# 升级Numpy库到最新版本
pip3 install --upgrade numpy

然后重新运行以下命令

  # 运行ubuntu.sh
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --no-sim-tools --no-nuttx

如果没有出现ERROR,证明PX4飞控安装成功

第三步,重启电脑

三. MAVROS

1.介绍

MAVROS,全称Mavlink ROS,是一个用于与MAVLINK兼容的无人机飞控进行通信的ROS软件包。它充当了ROS与无人机飞控之间的信息传输媒介,将ROS发布的话题转换为MAVLINK协议的消息,再发送给飞控;同时,也将飞控发送的MAVLINK消息转换为ROS可以识别的话题,供ROS节点订阅和使用。除了MAVROS之外,也可以使用MAVSDK来与无人机飞控进行通信。
接下来,笔者将介绍MAVROS的完整安装步骤,主要参考了官网中这个页面下的内容。MAVROS可以使用两种方式进行安装,一种是二进制安装,另外一种是源码安装,这里我们推荐的是源码安装方式。

2.安装

第一步,创建一个ROS工作空间(如果已经有了一个工作空间可以跳过这一步)

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
wstool init src

如果执行catkin init命令报错,可以参考文章五.1节的内容。
如果所有指令运行成功,最后终端会出现以下内容

Writing /home/user/catkin_ws/src/.rosinstall

update complete.

第二步,将MAVLink版本信息与源码下载地址存储到工作空间中的 .rosinstall文件中

rosinstall_generator --rosdistro noetic mavlink | tee /tmp/mavros.rosinstall

其中,noetic对应的是当前系统中ROS的版本,可通过roscore命令查看ROS版本,根据自身ROS版本修改上述命令,然后再执行。
如果运行成功,终端会出现以下内容:

- git:
    local-name: mavlink
    uri: https://github.com/mavlink/mavlink-gbp-release.git
    version: release/noetic/mavlink/2024.10.10-1

第三步,将MAVROS稳定版版本信息与源码下载地址同样存储到工作空间中的 .rosinstall文件中

rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall

如果下载成功,终端会出现以下内容

Using ROS_DISTRO: noetic
- git:
    local-name: mavros
    uri: https://github.com/mavlink/mavros.git
    version: 1.20.0

第四步,在工作空间中下载MAVLink和MAVROS源码及相关依赖项

wstool merge -t src /tmp/mavros.rosinstall
# 下载MAVLink和MAVROS源码
wstool update -t src -j8
# 安装环境依赖
rosdep install --from-paths src --ignore-src -y

如果命令wstool update -t src -j8报错,可参考文章五.2节内容。
所有命令执行成功之后,终端会出现All required rosdeps installed successfully

第五步,安装GeographicLib数据集

# 执行install_geographiclib_datasets.sh,安装数据集
sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh

安装成功之后,终端会出现以下内容

Installing GeographicLib geoids egm96-5
Installing GeographicLib gravity egm96
Installing GeographicLib magnetic emm2015

第六步,编译整个工作空间

# 编译工作空间
catkin build
# 更新系统环境,将工作空间添加到系统路径中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值