贴一下最近搞的gazebo和px4的总结,仅代表个人经验,如有纰漏请多指教
虽然环境没有airsim那么真实,但不得不说,gazebo和px4的官网教程维护的还是很好,而且gazebo更易于理解和掌握,以下是我安装和使用时所参考的主要教程:
Gazebo仿真 - Amov-wiki 0.0.1 文档amov-wiki.readthedocs.io![f40eec0ba845344cdb300ef25253033f.png](https://i-blog.csdnimg.cn/blog_migrate/33062208b180fbdb95dc5bba8b405d1f.png)
![c6effa598cf3444606618351b314d74d.png](https://i-blog.csdnimg.cn/blog_migrate/f5f3f7970c7150c427907c3547e9f5ef.png)
一、安装
安装过程主要参考了链接1,配置环境是Ubuntu16.04+gazebo9+ros kinetic,安装过程中的主要问题如下。
问题1:本来系统自带的是ros原生的gazebo7,但是后来配置好了后发现,始终无法可视化,以及一些奇怪的库的报错,后来google后将gazebo7卸载重装gazebo9后解决。
问题2:git submodule update --init --recursive安装慢,建议挂代理下载。
问题3:gazebo黑屏问题,https://bitbucket.org/osrf/gazebo_models/downloads/在这里下载各种model,放到~/.gazebo/models下
问题4:mavros的geographiclib库有问题,这里建议使用源码安装,在工作空间运行mavros即可。
二、gazebo理解
gazebo的仿真器还是很好理解的,比起ue4+airsim开发过程要简单很多(毕竟ue4是为游戏开发的,工程要庞大的多),我理解的gazebo的主要开发环境就是world了,在.world文件中可以配置好环境信息以及各种model信息。而model就是我们需要插入到环境中的模型,具体配置是由.sdf文件和其他相关文件决定的,很方便自己编写和定制。而如果要操控model,就需要编写plugin来进行控制,都是cpp的脚本,配置好sdf中的<plugin/>后在其中的Load函数中写好控制流程即可。