Ubuntu 20.04 + ROS Noetic + PX4 + Python3

仿真平台搭建过程主要有三个步骤:

  1. 安装Ubuntu20.04;

  2. 安装ROS Noetic;

  3. 安装PX4环境。

2. ROS Noetic安装

Ubuntu20.04对应的ros版本为ROS Noetic。强烈建议安装前先实现终端走代理,可解决大部分网络问题。
1.换源。由于官方源在国外,用官方源安装软件可能网速较慢,因此可以换用国内的镜像源。若已经实现终端代理,可直接使用官方源跳过此步。
2.更新源

sudo apt update
sudo apt upgrade

3.设置ros源:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

设置密钥:

curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

若提示没有安装curl,先安装:

sudo apt install curl

5.ros安装。ros提供 ros-noetic-desktop-fullros-noetic-desktopros-noetic-ros-base三种不同版本,其中ros-noetic-desktop-full包含附件最全,除非设备储存空间十分有限,否则建议安装此版本。安装命令

sudo apt update
sudo apt install ros-noetic-desktop-full

6.设置环境变量。在home目录下,按ctrl+h显示出隐藏文件,在.bashrc文件末尾添加如下一行指令。

source /opt/ros/noetic/setup.bash

这步是为了将ros的相关命令地址写入.bashrc文件,以便在终端调用ros相关指令。
7.rosdep安装。

sudo apt install python3-rosdep
sudo rosdep init
sudo rosdep update

在执行后两句是即使代理配置完成也有相当概率无法完成,此时可以使用国内大佬写的工具rosdepc,也可以通过手动更改文件实现
8.测试。安装完成后,可进行简单测试:打开三个终端,分别输入以下指令并运行。

roscore 
rosrun turtlesim turtlesim_node 
rosrun turtlesim turtle_teleop_key

上述第一个命令是打开一个roscore,roscore用于统一协调管理所有ros话题、节点和服务,是ros运行的基础;第二个命令是打开海龟仿真界面,第三个命令用于打开键盘控制终端。

PX4+Gazebo

1.第一步中,px4并不一定需要安装在用户目录下,可根据个人习惯安装在指定路径。

cd 安装目录
git clone https://github.com/PX4/PX4-Autopilot.git --recursive

如果要使用其他版本的px4,例如1.13.0版本,则使用以下命令:

git clone -b v1.13.0 https://github.com/PX4/PX4-Autopilot.git --recursive

2.进入安装目录,下载安装相关组件

cd PX4-Autopilot/
git submodule update --init --recursive

3.执行.sh脚本

bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

4.期间可能出错,需要更新一下pip和Pillow

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow

如果有其他安装错误,可以尝试使用:

bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --fix-missing

5.最后进入PX4-Autopilot目录下编译启动gazebo中的模型

make px4_sitl_default gazebo

在终端输入commander takeoff,可以控制无人机起飞;在终端输入commander land,可以控制无人机降落。
6.编译完成后,在home文件的.bashrc中添加环境变量,“安装目录”为你的PX4-Autopilot文件夹所在目录:

source 安装目录/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash 安装目录/PX4-Autopilot 安装目录/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:安装目录/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:安装目录/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic

这里需要注意,不同版本的gazebo模型目录可能会不一致,如果使用旧版本,需要自行对照正确的路径。如果无法确定路径位置,可以找自己对应版本的px4 user guide。user guider的Drone Apps&APIs→ROS with MAVROS→ROS/MAVROS with Gazebo Simulation的文章中,有详细介绍对应的路径位置。

 

MAVROS

1.安装MAVROS

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

2.安装 GeographicLib 数据集

sudo /opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh

3.3 安装QGC

安装QGC地面站,参考官方网站即可。

3.4 仿真

通过以下命令可以开启px4软件在环仿真,打开qgc地面站会自动连接上飞机。

roslaunch px4 mavros_posix_sitl.launch

能看到gazebo中无人机模型,qgc地面站连接上无人机。在终端中输入commander takeoff, commander land可以控制无人机起飞和降落。

 

作者:SteveChen  创建时间:2026-05-24 00:05
最后编辑:SteveChen  更新时间:2026-05-24 00:07
上一篇:
下一篇: