当前位置: 首页> 科技> IT业 > 【PX4-AutoPilot教程-TIPS】PX4飞控Gazebo仿真去除asphalt沥青地面

【PX4-AutoPilot教程-TIPS】PX4飞控Gazebo仿真去除asphalt沥青地面

时间:2025/7/9 17:07:14来源:https://blog.csdn.net/weixin_45031928/article/details/142091585 浏览次数:0次

PX4飞控Gazebo仿真去除asphalt沥青地面

环境:

Ubuntu :20.04 LTS

PX4 :1.13.0

在使用PX4飞控进行仿真测试时,默认的Gazebo仿真环境通常会包含一个沥青地面(asphalt plane)。然而,在某些特定测试场景下,我们可能希望去除这一默认地面,以便测试无人机在不同环境下的表现,或者为了减少仿真中不必要的资源消耗。本文将介绍如何在Gazebo仿真中去除默认的沥青地面。

在这里插入图片描述

在PX4的Gazebo仿真环境中,地面模型的加载是通过引用世界文件(.world)中的模型URI来实现的。在默认情况下,posix_sitl.launch脚本会调用empty.world文件作为仿真环境的世界文件。

<?xml version="1.0"?>
<launch><!-- Posix SITL environment launch script --><!-- launches PX4 SITL, Gazebo environment, and spawns vehicle --><!-- vehicle pose --><arg name="x" default="0"/><arg name="y" default="0"/><arg name="z" default="0"/><arg name="R" default="0"/><arg name="P" default="0"/><arg name="Y" default="0"/><!-- vehicle model and world --><arg name="est" default="ekf2"/><arg name="vehicle" default="iris"/><arg name="world" default="$(find mavlink_sitl_gazebo)/worlds/empty.world"/><arg name="sdf" default="$(find mavlink_sitl_gazebo)/models/$(arg vehicle)/$(arg vehicle).sdf"/><env name="PX4_SIM_MODEL" value="$(arg vehicle)" /><env name="PX4_ESTIMATOR" value="$(arg est)" /><!-- gazebo configs --><arg name="gui" default="true"/><arg name="debug" default="false"/><arg name="verbose" default="false"/><arg name="paused" default="false"/><arg name="respawn_gazebo" default="false"/><!-- PX4 configs --><arg name="interactive" default="true"/><!-- PX4 SITL --><arg unless="$(arg interactive)" name="px4_command_arg1" value="-d"/><arg     if="$(arg interactive)" name="px4_command_arg1" value=""/><node name="sitl" pkg="px4" type="px4" output="screen"args="$(find px4)/build/px4_sitl_default/etc -s etc/init.d-posix/rcS $(arg px4_command_arg1)" required="true"/><!-- Gazebo sim --><include file="$(find gazebo_ros)/launch/empty_world.launch"><arg name="gui" value="$(arg gui)"/><arg name="world_name" value="$(arg world)"/><arg name="debug" value="$(arg debug)"/><arg name="verbose" value="$(arg verbose)"/><arg name="paused" value="$(arg paused)"/><arg name="respawn_gazebo" value="$(arg respawn_gazebo)"/></include><!-- gazebo model --><node name="$(anon vehicle_spawn)" pkg="gazebo_ros" type="spawn_model" output="screen" args="-sdf -file $(arg sdf) -model $(arg vehicle) -x $(arg x) -y $(arg y) -z $(arg z) -R $(arg R) -P $(arg P) -Y $(arg Y)"/>
</launch>

posix_sitl.launch脚本调用了empty.world文件。

<arg name="world" default="$(find mavlink_sitl_gazebo)/worlds/empty.world"/>

文件位置在Firmware/Tools/sitl_gazebo/worlds/empty.world这里。

<?xml version="1.0" ?>
<sdf version="1.5"><world name="default"><!-- A global light source --><include><uri>model://sun</uri></include><!-- A ground plane --><include><uri>model://ground_plane</uri></include><include><uri>model://asphalt_plane</uri></include><physics name='default_physics' default='0' type='ode'><gravity>0 0 -9.8066</gravity><ode><solver><type>quick</type><iters>10</iters><sor>1.3</sor><use_dynamic_moi_rescaling>0</use_dynamic_moi_rescaling></solver><constraints><cfm>0</cfm><erp>0.2</erp><contact_max_correcting_vel>100</contact_max_correcting_vel><contact_surface_layer>0.001</contact_surface_layer></constraints></ode><max_step_size>0.004</max_step_size><real_time_factor>1</real_time_factor><real_time_update_rate>250</real_time_update_rate><magnetic_field>6.0e-6 2.3e-5 -4.2e-5</magnetic_field></physics></world>
</sdf>

上面的代码中,标签引用了多个模型,其中model://asphalt_plane正是我们需要去除的地面模型。为了去除这个默认的沥青地面,我们只需要去除这三行代码。

<include><uri>model://asphalt_plane</uri>
</include>

删除这三行代码后,保存文件。

重新启动Gazebo后,你应该能够看到仿真环境中原本的沥青地面已被移除

在这里插入图片描述

关键字:【PX4-AutoPilot教程-TIPS】PX4飞控Gazebo仿真去除asphalt沥青地面

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: