I am trying to create a simulation world that includes two Mini Talon models, each equipped with a camera. The world is based on the standard runway world provided in the Gazebo examples.
When the simulation is running with charging enabled, I observe approximately 40% RTF. However, when charging is disabled, the RTF drops to around 7%, which is extremely low. At this point, I can no longer increase the max_step_size without introducing significant jitter in the simulation.
I am wondering whether it is possible to run this world with higher RTF values, or if there are specific optimizations I am missing. The full world file is attached below.
<?xml version="1.0" ?>
<sdf version="1.7"
xmlns:experimental="http://sdformat.org/schemas/experimental">
<world name="runway">
<physics name="1ms" type="ode">
<max_step_size>0.002</max_step_size>
<real_time_factor>1</real_time_factor>
</physics>
<plugin filename="gz-sim-physics-system"
name="gz::sim::systems::Physics">
</plugin>
<plugin filename="gz-sim-sensors-system" name="gz::sim::systems::Sensors">
<render_engine>ogre2</render_engine>
</plugin>
<plugin filename="gz-sim-user-commands-system"
name="gz::sim::systems::UserCommands">
</plugin>
<plugin filename="gz-sim-scene-broadcaster-system"
name="gz::sim::systems::SceneBroadcaster">
</plugin>
<plugin filename="gz-sim-imu-system"
name="gz::sim::systems::Imu">
</plugin>
<plugin filename="gz-sim-navsat-system"
name="gz::sim::systems::NavSat">
</plugin>
<scene>
<ambient>1.0 1.0 1.0</ambient>
<background>0.8 0.8 0.8</background>
<sky></sky>
</scene>
<spherical_coordinates>
<latitude_deg>-35.363262</latitude_deg>
<longitude_deg>149.165237</longitude_deg>
<elevation>584</elevation>
<heading_deg>0</heading_deg>
<surface_model>EARTH_WGS84</surface_model>
</spherical_coordinates>
<light type="directional" name="sun">
<cast_shadows>0</cast_shadows>
<pose>0 0 10 0 0 0</pose>
<diffuse>0.8 0.8 0.8 1</diffuse>
<specular>0.8 0.8 0.8 1</specular>
<attenuation>
<range>1000</range>
<constant>0.9</constant>
<linear>0.01</linear>
<quadratic>0.001</quadratic>
</attenuation>
<direction>-0.5 0.1 -0.9</direction>
</light>
<!-- ENU axes -->
<model name="axes">
<static>1</static>
<link name="link">
<visual name="r">
<cast_shadows>0</cast_shadows>
<pose>5 0 0.1 0 0 0</pose>
<geometry>
<box>
<size>10 0.01 0.01</size>
</box>
</geometry>
<material>
<ambient>1 0 0 1</ambient>
<diffuse>1 0 0 1</diffuse>
<emissive>1 0 0 1</emissive>
<specular>0.5 0.5 0.5 1</specular>
</material>
</visual>
<visual name="g">
<cast_shadows>0</cast_shadows>
<pose>0 5 0.1 0 0 0</pose>
<geometry>
<box>
<size>0.01 10 0.01</size>
</box>
</geometry>
<material>
<ambient>0 1 0 1</ambient>
<diffuse>0 1 0 1</diffuse>
<emissive>0 1 0 1</emissive>
<specular>0.5 0.5 0.5 1</specular>
</material>
</visual>
<visual name="b">
<cast_shadows>0</cast_shadows>
<pose>0 0 5.1 0 0 0</pose>
<geometry>
<box>
<size>0.01 0.01 10</size>
</box>
</geometry>
<material>
<ambient>0 0 1 1</ambient>
<diffuse>0 0 1 1</diffuse>
<emissive>0 0 1 1</emissive>
<specular>0.5 0.5 0.5 1</specular>
</material>
</visual>
</link>
</model>
<include>
<uri>model://runway</uri>
</include>
<include>
<pose degrees="true">0 0 0.2 0 0 90</pose>
<uri>model://mini_talon_vtail</uri>
<name>vtail_1</name>
<experimental:params>
<plugin element_id="camera_link::camera::GstCameraPlugin" action="modify">
<udp_port>5600</udp_port>
</plugin>
<plugin element_id="ArduPilotPlugin" action="modify">
<fdm_port_in>9002</fdm_port_in>
</plugin>
</experimental:params>
</include>
<include>
<pose degrees="true">-2 0 0.2 0 0 90</pose>
<uri>model://mini_talon_vtail</uri>
<name>vtail_2</name>
<experimental:params>
<plugin element_id="camera_link::camera::GstCameraPlugin" action="modify">
<udp_port>5610</udp_port>
</plugin>
<plugin element_id="ArduPilotPlugin" action="modify">
<fdm_port_in>9012</fdm_port_in>
</plugin>
</experimental:params>
</include>
<!-- <include>
<pose degrees="true">2 0 0.2 0 0 90</pose>
<uri>model://mini_talon_vtail</uri>
<name>vtail_3</name>
<experimental:params>
<plugin element_id="camera_link::camera::GstCameraPlugin" action="modify">
<udp_port>5610</udp_port>
</plugin>
<plugin element_id="ArduPilotPlugin" action="modify">
<fdm_port_in>9022</fdm_port_in>
</plugin>
</experimental:params>
</include> -->
</world>
</sdf>
Additionally, the low RTF issue persists regardless of whether the cameras are enabled or disabled; closing the camera streams does not improve performance.
I am using gazebo harmonic on Windows 11 with wsl2.
Thank you in advance for any guidance or suggestions.