问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Ubuntu搭建PX4无人机仿真环境详细教程

创作时间:
作者:
@小白创作中心

Ubuntu搭建PX4无人机仿真环境详细教程

引用
CSDN
1.
https://m.blog.csdn.net/weixin_41978174/article/details/140584767

前言

本教程基于ROS1,在搭建之前,需要把ROS、MAVROS、QGC等基础环境安装配置完成。大家可以参考我之前的教程。本次安装是以px4 v1.13.2为例。

我的配置如下:

  • 虚拟机 Ubuntu 18.04 (运行内存 4G、硬盘内存 80G)
  • ROS melodic
  • QGC v4.2.6

建议安装之前可以先看看这个👉ubuntu搭建PX4无人机仿真环境(1) —— 概念介绍

  • ubuntu搭建PX4无人机仿真环境(2) —— MAVROS安装
  • ubuntu搭建PX4无人机仿真环境(3) —— ubuntu安装QGC地面站
  • ubuntu安装ROS melodic(最新、超详细图文教程)

如果想要自己编译 PX4 固件可以看Ubuntu编译PX4固件这篇教程

1. 准备

下载源码

方式一:
从GitHub上下载,但是比较考验个人网速

sudo apt-get install git
git clone https://github.com/PX4/PX4-Autopilot.git # 下载源码
mv PX4-Autopilot PX4_Firmware  # 更改目录名

cd PX4_Firmware
git checkout -b dev v1.13.2  # 切换版本
git submodule update --init --recursive   # 更新下载子模块
# 比较慢,不行就多执行几次

方式二:
从提供的网盘里下,或者从QQ群(961297255)里下载

链接:https://pan.baidu.com/s/1eNB9dWlKoVmRMAYsSPI0vw
提取码:s8uh

下载后解压,然后执行下面命令:

cd PX4_Firmware
wget https://gitee.com/tyx6/mytools/raw/main/px4/set_executable.sh
chmod +x set_executable.sh
./set_executable.sh

安装依赖

cd ~/PX4_Firmware/Tools/setup

删掉原来的,用我修改后的(就修改了一个python包版本和把pip安装源换成了清华源),这一步是可做可不做,如果觉得python包下载太慢了,可以试试

rm ubuntu.sh requirements.txt
wget https://gitee.com/tyx6/mytools/raw/main/px4/ubuntu.sh
wget https://gitee.com/tyx6/mytools/raw/main/px4/requirements.txt
chmod +x ubuntu.sh
./ubuntu.sh --no-nuttx --no-sim-tools
# 这是官方提供的脚本 有两个可选参数
# --no-sim-tools   不安装仿真环境
# --no-nuttx   不安装交叉编译环境
#(如果需要自己编译飞控固件,烧录到飞控中,那就需要交叉编译环境)
# 脚本执行时间,跟个人网络有关,可能需要一段时间

注:使用之前要检查是否已经安装了 gazebo,建议使用官方推荐的gazebo版本

gazebo --version

如果出现上图内容,说明没有安装,如果出现了gazebo的版本信息说明已经安装了,要卸载,命令如下:

sudo apt-get remove gazebo* 
sudo apt-get remove libgazebo*
sudo apt-get remove ros-$ROS_DISTRO-gazebo*

卸载完后,开始安装(Ubuntu 18 会安装 gazebo 9.19,Ubuntu 20 会安装 gazebo 11.14)

cd ~/PX4_Firmware/Tools/setup
./ubuntu.sh --no-nuttx
# 这一步会安装仿真环境,包括gazebo
# 脚本执行时间,跟个人网络有关,可能需要一段时间
sudo apt-get install ros-$ROS_DISTRO-gazebo-ros-pkgs ros-$ROS_DISTRO-gazebo-ros-control

安装好测试一下gazebo

gazebo --version

再运行一下gazebo:

gazebo

如出现上图错误,输入以下命令:

echo "export SVGA_VGPU10=0" >> ~/.bashrc
source ~/.bashrc

再重新运行 gazebo

gazebo

出现下图,表示运行成功:

注:
运行Gazebo仿真,可能会缺模型,这时会自动下载,Gazebo模型服务器在国外,自动下载会比较久,所以我们可以先下载到本地。

git clone https://gitee.com/tyx6/gazebo_models.git
# 检测文件夹 ~/.gazebo/models 是否存在,如果不存在创建
if [ ! -d "~/.gazebo/models" ]; then mkdir -p ~/.gazebo/models ;fi
mv ./gazebo_models/* ~/.gazebo/models/

或者如果觉得git clone有点慢可以直接进入仓库然后下载ZIP压缩包,将该压缩包里的模型文件放在~/.gazebo/models/路径下,然后可以看到很多模型文件。

如果下载慢,可以从网盘里下,或者从QQ群(961297255)里下载

链接:https://pan.baidu.com/s/1O3J7nrjU2imyYWRwl9114g
提取码:ud28

2. 编译

cd ~/PX4_Firmware
make px4_sitl_default gazebo   # 这步可能有点慢,跟 ubuntu 的配置有关

出现下图表示编译成功 😄

注:如果运行后终端有下图报错,这个不影响仿真,不用管也行。这是因为 gazebo 会检查 models 文件夹下是否有 model.config 文件,但是 .git 文件夹不属于 model 文件,那自然也不会有 model.config 文件。如果觉得难受就从其他model.config文件复制修改一个过来,或者删掉 .git 文件夹。

3. 配置环境

将下面语句添加到 ~/.bashrc(此文件在主目录下,是个隐藏文件) 文件中(前两个source顺序不能颠倒,路径要根据自己的实际路径修改,如果一直按照我的步骤来,应该是不用修改)

gedit ~/.bashrc  # 打开文件
source ~/catkin_ws/devel/setup.bash  # 这个是个人的ROS工作空间,没有的话需要自己创建
source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo

注: 为了方便大家,我做了一个自动添加环境的脚本,效果与手动添加等同,只要有一个成功就行。执行脚本之前要确认之前没在 .bashrc 文件中加入环境,有的话删掉或者注释,环境重复也会导致配置失败

首先下载脚本,然后将脚本放入你的 PX4 源码目录下,再执行(以我的为例):

cd ~/PX4_Firmware
wget https://gitee.com/tyx6/mytools/raw/main/px4/setenv.sh
chmod +x setenv.sh  # 添加可执行权限
./setenv.sh

执行完后如下所示:

  • 更新环境(最好重启一下 Ubuntu ):
source ~/.bashrc 

关掉终端,再次打开,会跟下图差不多:

4. 测试

在终端输入下面命令:

roslaunch px4 mavros_posix_sitl.launch

打开另一个终端,运行下面命令,查看MAVROS与仿真无人机通信状况。若connected: True,则通信成功,如果是false,一般是因为 .bashrc 里的路径写的不对,请仔细检查。

rostopic echo /mavros/state | grep connected    # 只查看 connected 信息
# rostopic echo /mavros/state                     # 查看全部信息

到这 PX4 无人机基本仿真环境就搭建完成了,大家可以基于此来拓展自己的仿真。

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

Keep learning!

参考

  • 仿真平台基础配置(对应PX4 1.13版)
  • PX4 documentation
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号