Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The IMU data interval is unstable with high update frequency #3402

Open
Rubbishwang opened this issue Oct 19, 2024 · 0 comments
Open

The IMU data interval is unstable with high update frequency #3402

Rubbishwang opened this issue Oct 19, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@Rubbishwang
Copy link

Rubbishwang commented Oct 19, 2024

I used Gazebo 9.19.0, ros noetic, mavros, mavlink and px4 in Ubuntu20.04 environment for co-simulation. Run the rosservice call /mavros/set_message_interval 31 100 command to set the IMU update frequency at 100 Hz. I expect the IMU to refresh at a constant 10ms interval, but in practice it always fluctuates between 8-12ms. I tried to modify max_step_size and real_time_update_rate in the world file, but the problem persisted.What can I do to keep the IMU update rate as stable as possible at 10ms?
Part of my world file is as follows:

<physics name='default_physics' default='0' type='ode'>
  <ode>
    <solver>
      <type>quick</type>
      <iters>200</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.0001</max_step_size>
  <real_time_factor>1</real_time_factor>
  <real_time_update_rate>10000</real_time_update_rate>
</physics>

<plugin name='rotors_gazebo_imu_plugin' filename='libgazebo_imu_plugin.so'>
    <robotNamespace/>
    <linkName>iris::/imu_link</linkName>
    <imuTopic>/imu</imuTopic>
    <gyroscopeNoiseDensity>0.0</gyroscopeNoiseDensity>
    <gyroscopeRandomWalk>0</gyroscopeRandomWalk>
    <gyroscopeBiasCorrelationTime>1000000.0</gyroscopeBiasCorrelationTime>
    <gyroscopeTurnOnBiasSigma>0.0</gyroscopeTurnOnBiasSigma>
    <accelerometerNoiseDensity>0.0</accelerometerNoiseDensity>
    <accelerometerRandomWalk>0.0</accelerometerRandomWalk>
    <accelerometerBiasCorrelationTime>1000000.0</accelerometerBiasCorrelationTime>
    <accelerometerTurnOnBiasSigma>0.0</accelerometerTurnOnBiasSigma>
  </plugin>

I have been puzzled by this question for a long time. I hope for your answer. Thank you!

@Rubbishwang Rubbishwang added the enhancement New feature or request label Oct 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant