PX4仿真环境
Ubuntu 20.04 + ROS Noetic + PX4 + Python3
仿真平台搭建过程主要有三个步骤:
安装Ubuntu20.04;
安装ROS Noetic;
安装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-full、ros-noetic-desktop、ros-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:07