摘自:http://www.di3renlei.cn/info/3794
PX4开发指南-5.2.Gazebo仿真
2017-11-10 12:54 PX4开发指南 lizhao 1425次阅读 0条评论 ★收藏0次
分享到:
-
官网英文原文地址: http://dev.px4.io/simulation-gazebo.html
-
Gazebo是独立机器人3D模拟环境。它可以和ROS完整的机器人仿真也可单独使用。本文简要介绍了单独的使用方法。
-
视频地址:http://7xvob5.com1.z0.glb.clouddn.com/2-PX4 Flight Stack ROS 3D Software in the Loop Simulation (SITL).mp4
- 需要安装Gazebo以及我们的模拟插件。
推荐使用Gazebo 7(最低使用Gazebo 假如你的Linux安装了操作系统ROS版本早于Jade,请先卸载绑定的旧版本Gazebo (sudo apt-get remove ros-indigo-gazebo),因为这个版本太老了。
-
Mac OS需要安装Gazebo 7.需要相应的安装xquartz,并且在没有OpenCV无法运行。
brew cask install xquartz brew install opencv brew install gazebo7
-
PX4 SITL使用Gazebo但不依赖模拟软件ROS。但也可以像普通飞行代码一样ROS模拟连接。
-
假如你计划和ROS一起用PX4,确保按照Gazebo 配置7版本指南。
-
正常安装
-
按照Linux安装指导 安装Gazebo 7。
-
确保gazebo7和libgazebo7-dev都装上了。
-
- 在PX在4个固件源文件的目录下,运行机架类型(支持四旋翼、固定翼和垂直起降,包括光流)PX4 SITL。
注:您可以使用以下说明来保持它Gazebo操作,只需重新启动PX4。
cd ~/src/Firmware make posix_sitl_default gazebo
cd ~/src/Firmware make posix gazebo_iris_opt_flow
cd ~/src/Firmware make posix gazebo_solo
make posix gazebo_plane
make posix_sitl_default gazebo_standard_vtol
make posix_sitl_default gazebo_tailsitter
make posix gazebo_rover
- 当前的默认世界位于世界目录中
iris.world
。iris.world
默认环境使用高度图作为地面。使用距离传感器时,往往很难达到理想的效果。如果高度图中的结果与预期不一致,建议使用iris.model中的模型从irregular_ground更改为asphalt_plane。
如果您在操作过程中遇到错误或缺乏依赖,请确保您按照安装文件和代码安装。
- 接着会启动PX4 shell:
[init] shell id: 140735313310464 [init] task name: px4 ______ __ __ ___ | ___ \ \ \ / / / | | |_/ / \ V / / /| | | __/ / \ / /_| | | | / /^\ \ \___ | \_| \/ \/ |_/ px4 starting. pxh>
右击四旋翼模型可以从弹出的菜单中启用跟随模式,这将会始终保持飞行器在视野中。
- 一旦初始化完成,系统将打印起始位置(telem> home: 55.7533950, 37.6254270, -0.00)。飞机可以通过输入以下命令起飞:
pxh> commander takeoff
QGroundControl(QGC)支持手柄或拇指手柄。将系统设置为手动飞行模式(如使用手柄控制飞机) POSCTL,并从QGC拇指手柄的选项菜单
。
-
SITL Gazebo环境变量可以覆盖默认起飞位置。
-
设置的变量包括:
PX4_HOME_LAT
,PX4_HOME_LON
, 和PX4_HOME_ALT
.
举个例子
export PX4_HOME_LAT=28.452386 export PX4_HOME_LON=-13.867138 export PX4_HOME_ALT=28.5 make posix gazebo
-
扩大发展会话(development sessions),单独启动Gazebo和PX4可能更方便,甚至从IDE中启动。
-
除现有使用外px4参数运行sitl_run.sh加载正确的模型cmake 目标(target)此外,它还创造了一个名字px4_启动目标(launcher targets)(这是原始sitl px4应用程序的thin wrapper)。 这个thin wrapper简单地嵌入应用程序参数,如当前工作目录和模型文件路径。
-
通过终端运行gazebo(或任何其他模拟器)服务器(server)和客户端(client)查看器:
make posix_sitl_default gazebo_none_ide
-
在您的IDE选择你想调试的px4_ 目标(例如
px4_iris
) -
直接从IDE启动调试会话(session)
-
由于模拟器(如模拟器),这种方法显著减少了调试周期时间Gazebo)总是在后台运行,你只需要重新运行light的px4进程。
- 编辑
Tools/sitl_gazebo
文件夹中的文件。这些代码可以从Github上的sitl_gazebo repository访问。 /ul>
- 仿真可以像真实的飞控一样与ROS连接
构建系统强制检查所有依赖的子模块,包括仿真软件。虽然这些文件夹中文件的改变不会被覆盖,但当这些改变被提交的时候子模块需要在固件库中以新的hash注册。为此,输入git add Tools/sitl_gazebo 进行提交。这样仿真软件的GIT hash就会被更新。