1. 使用Gazebo的源由

基于PX4开源软件框架简明简介的框架设计,逐步分析内部模块功能设计。前面,我们用了jmavsim模拟器做了一个介绍,详见PX4开发环境搭建–模拟器编译及QGroundControl & RC遥控模拟配置

在模拟器介绍章节中,Gazebo是PX4官网高度推荐的一款,并且它支持飞行器种类比较全(Quad (Iris and Solo, Hex (Typhoon H480), Generic quad delta VTOL, Tailsitter, Plane, Rover, Submarine )。为了后面更好的理解PX4内部算法、场景测试等,特搭建了Ubuntu 20.04 下的Gazebo模拟器。

2. Gazebo模拟器简介

Gazebo是一种3D动态模拟器,能够准确有效地模拟复杂室内外环境中的飞行器。Gazebo提供了高保真度的物理模拟、一套传感器以及用户和程序的界面。

其典型用途:

  • 测试机器人算法
  • 设计机器人
  • 使用真实场景执行回归测试

模拟器位置

3. Ubuntu 20.04搭建gazebo步骤

Ubuntu的主要组件的管理和安装是通过apt工具,详见链接

3.1 设置gazebo数据源

新增gazebo数据源packages.osrfoundation.org

$ sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'

检查新增情况

$ cat /etc/apt/sources.list.d/gazebo-stable.list
deb http://packages.osrfoundation.org/gazebo/ubuntu-stable focal main

查看非"xxxx"部分,因为Ubuntu系统版本不一样,可能导致后面两栏有所差别,所以我们主要确认数据源是否添加上就可以了。

deb http://packages.osrfoundation.org/gazebo/ubuntu-stable xxxxx xxxx

3.2 配置从数据源获取安装包的apt-Key

wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

3.3 安装Gazebo

$ sudo apt-get update                       //更新apt
$ sudo apt-get install gazebo11             //安装模拟器
$ sudo apt-get install libgazebo11-dev      //涉及模拟器开发就安装下

3.4 检查安装情况

$ gazebo --version
Gazebo multi-robot simulator, version 11.11.0
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

4. 编译运行sitl+gazebo

还是基于SITL & HITL模拟框架,采用QGroundControl + sitl + gazebo(类似jmavsim方式)来搭建仿真环境。

4.1 PX4编译遇错,组件安装

实际在编译sitl的过程中,遇到不少ubuntu组件缺失的情况,需要细心查看log输出(注意:只要细心看就能知道哪些组件需要安装)

这里是我的环境在编译过程中遇到的一些问题,所以我补充安装了以下组件。

$ sudo apt-get install librust-gstreamer-base-sys+default-dev
$ sudo apt-get install libgstreamer-opencv1.0-0 
$ sudo apt-get install libopencv-dev
$ sudo apt-get install libgstreamerd-3-dev

4.2 编译运行sitl+gazebo

$ make px4_sitl gazebo

gazebo启动界面

4.3 QGroundControl + sitl + gazebo + RC

关于这个环境怎么连就不多描述,可以查看以下两个文档。

【1】 PX4模块设计之一:SITL & HITL模拟框架
【2】 PX4开发环境搭建–模拟器编译及QGroundControl & RC遥控模拟配置

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐