(最新)ubuntu搭建PX4无人机仿真环境(2) —— MAVROS安装(适用于ROS1、ROS2)

前言

MAVROS是一个ROS(Robot Operating System)软件包 ,有了它就可以让ROS与飞控通信。这次安装 ROS1 是以ubuntu 18.04 (ROS1 Melodic)为例,ROS2 是以ubuntu 22.04 (ROS Humble)为例,也适用于其他版本 。安装之前确保 ROS 安装成功,没安装的可以看我仿真系列教程。
(注:安装方式有二进制安装和源码安装两种方式,源码安装需要从GitHub上下载源码,推荐二进制安装)

搭建仿真环境系列教程👇

ubuntu搭建PX4无人机仿真环境(1) —— 概念介绍

ubuntu搭建PX4无人机仿真环境(2) —— MAVROS安装(适用于ROS1、ROS2)

ubuntu搭建PX4无人机仿真环境(3) —— ubuntu安装QGC地面站

ubuntu搭建PX4无人机仿真环境(4) —— 仿真环境搭建

ubuntu安装ROS melodic(最新、超详细图文教程)

注:在 Ubuntu 20.04,ROS2 foxy 中,启动 px4.launch 可能会遇到 InvalidLaunchFileError,ValueError 之类的错误,这是 Foxy 中的MAVROS2 2.4.0版本会有这个问题,换版本就行,可以参考这个 教程

1. 方法一:二进制安装(推荐)

  • 下载安装
sudo apt install ros-$ROS_DISTRO-mavros ros-$ROS_DISTRO-mavros-extras
# 安装 GeographicLib datasets:
wget https://gitee.com/tyx6/mytools/raw/main/mavros/install_geographiclib_datasets.sh
chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh  #这步可能需要装一段时间

注:如果10分钟了都没安装好,可以参考后面安装 GeographicLib datasets 缓慢的章节
在这里插入图片描述

  • 更新环境:
source ~/.bashrc

2. 方法二:源码安装

注:源码安装之前,必须确保 ROS 已经配置了 rosdep

ROS1

  • 安装依赖
sudo apt-get install python-catkin-tools python-rosinstall-generator -y

# For Ros Noetic use that:
# sudo apt install python3-catkin-tools python3-rosinstall-generator python3-osrf-pycommon -y
  • 创建ROS1工作空间(如果之前有就不用了)后面的步骤都要在 catkin_ws 目录下执行
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
wstool init src
  • 下载源码和依赖:
cd ~/catkin_ws
rosinstall_generator --rosdistro $ROS_DISTRO mavlink | tee /tmp/mavros.rosinstall
rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src -j4   # 这步会把源码下载到本地,访问的是GitHub,可能会失败,多试几次
rosdep install --from-paths src --ignore-src -y  # 安装依赖

在这里插入图片描述

  • 安装 GeographicLib datasets
cd ~/catkin_ws
sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh

注:如果10分钟了都没安装好,可以参考后面安装 GeographicLib datasets 缓慢的章节

  • 编译:
cd ~/catkin_ws
# 编译源码 大概需要几分钟
catkin build 

编译成功

在这里插入图片描述

  • 配置环境
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc 
source ~/.bashrc #使环境生效

ROS2

  • 安装依赖 :
sudo apt install -y python3-vcstool python3-rosinstall-generator python3-osrf-pycommon python3-colcon-common-extensions
  • 创建ROS2工作空间(如果之前有就不用了)后面的步骤都要在 ros2_ws 目录下执行
mkdir -p ~/ros2_ws/src
  • 下载源码和依赖:
cd ~/ros2_ws/
rosinstall_generator --format repos mavlink | tee /tmp/mavlink.repos
rosinstall_generator --format repos --upstream mavros | tee -a /tmp/mavros.repos

在这里插入图片描述

vcs import src < /tmp/mavlink.repos
vcs import src < /tmp/mavros.repos
# 这两个命令比较考验网络,如果失败,多执行几次即可

在这里插入图片描述

rosdep install --from-paths src --ignore-src -y

在这里插入图片描述

  • 安装 GeographicLib datasets
cd ~/ros2_ws/
sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh #这步可能需要装一段时间

注:如果10分钟了都没安装好,可以参考后面安装 GeographicLib datasets 缓慢的章节

  • 编译:
cd ~/ros2_ws/
colcon build # 大概10分钟左右,跟个人配置有关

在这里插入图片描述

  • 配置环境
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc 
source ~/.bashrc #使环境生效

3. 解决安装 GeographicLib datasets 缓慢

鉴于每个人环境不同,在执行 install_geographiclib_datasets.sh 脚本时,有的人很快,有的人几十分钟都安装不好,如果出现这种情况可以使用我修改的脚本。注:此方法不一定对每个人有效。

git clone https://gitee.com/tyx6/geographiclib_datasets_tools.git
cd geographiclib_datasets_tools/
chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh

在这里插入图片描述

4. 检测

如果可以跳转那就代表安装成功,如果不行,重新执行配置环境这一步,记得将之前添加的删掉

  • ROS1:
roscd mavros
  • ROS2:
ros2 pkg prefix mavros

如果用方式法一,结果大致如下:
ROS1:
在这里插入图片描述
ROS2:
在这里插入图片描述

如果是方式法二,结果大致如下:

ROS1: 在这里插入图片描述
ROS2:

在这里插入图片描述

如有其他问题,或者发现文章有错误,请在评论区留言
Keep learning!

参考

mavros官方教程ROS1

PX4 documentation

mavros/mavros/README.md at ros2 · mavlink/mavros · GitHub

### 配置和使用PX4飞行控制器 #### 安装准备 为了顺利配置和使用PX4飞行控制器,在Ubuntu 22.04环境中需满足特定的前提条件。这包括已安装Ubuntu 22.04并完成网络环境的配置;拥有一定的Linux命令行操作基础;以及安装有支持图形界面的桌面环境[^1]。 #### 更新系统与安装依赖项 确保系统的软件包列表是最新的,并安装必要的工具链和其他依赖项: ```bash sudo apt update && sudo apt upgrade -y ``` 接着,按照官方文档中的指导来安装编译PX4所需的全部依赖库。 #### 编译PX4固件 进入PX4源码目录,初始化子模块并构建默认的目标平台: ```bash git clone https://github.com/PX4/Firmware.git --recursive cd Firmware make px4_sitl_default gazebo ``` 上述命令会下载最新的稳定版代码仓库及其关联资源文件,并针对SITL(Software In The Loop)仿真实验室进行编译工作[^3]。 #### 启动Gazebo模拟器 启动带有指定模型的Gazebo仿真场景,例如四旋翼无人机x500型号: ```bash make px4_sitl gz_x500 ``` 对于其他类型的飞行器或传感器组合,可以替换`gz_x500`参数为相应的选项,比如带深度相机(`gz_x500_depth`)或是视觉里程计(`gz_x500_vision`)版本的四轴飞行器等。 #### 使用QGroundControl地面站控制软件 下载适用于Linux平台的应用映像文件,并赋予执行权限以便能够直接运行该程序: ```bash chmod 777 QGroundControl.AppImage ./QGroundControl.AppImage & ``` 通过此方式启动后的QGC应用窗口可用于连接至正在运行的PX4实例来进行调试、监控及任务规划等活动。 #### 跨平台集成MATLAB/Simulink协同开发 如果计划在Windows操作系统上的MathWorks MATLAB/Simulink产品间建立通信桥梁,则需要遵循额外指南以实现两者之间的无缝对接[^2]。
评论 48
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值