Is there any possibility to use UXECE-DDS Clinet to increase the /fmu/out/sensor_combined to 500 Hz or higher?

Is there any possibility to use UXECE-DDS Clinet to increase the /fmu/out/sensor_combined to 500 Hz or higher?

1 Like

@Benja Maybe you know this?

As far as I know, sensor_combined does not reach such high frequency intenally, so even if UXECE-DDS Clinet allows 500Hz you won’t have it.

But if you do can increase it’s internal rate to 500Hz, look at

and reduce it (the name is misleading, it is actually the minimum period, in milliseconds between message publication). The default settings limit it to 100Hz

1 Like

Thank you so much for your quick response. I would like to have IMU data (more specifically, the gyro) at the highest frequency possible. I noticed that the rate controller is running at 2000 Hz, which suggests that the FCU may have a gyro with a frequency greater than 2000 Hz. Following your instructions, I changed the #define UXRCE_DEFAULT_POLL_RATE 2 and added the DDS topic:

- topic: /fmu/out/vehicle_imu
  type: px4_msgs::msg::VehicleImu

And I also notice that the work queue of the imu is running over 500 Hz

NuttShell (NSH) NuttX-11.0.0
nsh> work_queue status

Work Queue: 10 threads                          RATE        INTERVAL
|__ 1) wq:rate_ctrl    
|   |__ 1) control_allocator               2003.6 Hz          499 us
|   |__ 2) dshot                           1970.2 Hz          508 us
|   |__ 3) mc_rate_control                 2003.6 Hz          499 us
|   \__ 4) vehicle_angular_velocity        2003.6 Hz          499 us
|__ 2) wq:SPI1         
|   |__ 1) bmi088_accel                    1598.4 Hz          626 us
|   \__ 2) bmi088_gyro                     2002.3 Hz          499 us
|__ 3) wq:SPI4         
|   |__ 1) bmi088_accel                    1612.0 Hz          620 us
|   \__ 2) bmi088_gyro                     1999.3 Hz          500 us
|__ 4) wq:I2C1         
|   \__ 1) spl06                             31.0 Hz        32217 us
|__ 5) wq:nav_and_controllers
|   |__ 1) ekf2_selector                    256.6 Hz         3896 us
|   |__ 2) flight_mode_manager               50.0 Hz        19997 us
|   |__ 3) land_detector                     85.8 Hz        11661 us
|   |__ 4) mc_att_control                   171.5 Hz         5831 us
|   |__ 5) mc_hover_thrust_estimator         85.7 Hz        11662 us
|   |__ 6) mc_pos_control                    85.7 Hz        11663 us
|   |__ 7) sensors                          171.5 Hz         5831 us
|   |__ 8) vehicle_acceleration             200.1 Hz         4998 us
|   |__ 9) vehicle_air_data                  31.1 Hz        32187 us
|   \__10) vehicle_gps_position               3.3 Hz       299902 us
|__ 6) wq:INS0         
|   |__ 1) ekf2                             171.5 Hz         5831 us
|   \__ 2) vehicle_imu                      514.4 Hz         1944 us
|__ 7) wq:INS1         
|   |__ 1) ekf2                             171.2 Hz         5843 us
|   \__ 2) vehicle_imu                      510.6 Hz         1959 us
|__ 8) wq:hp_default   
|   |__ 1) battery_status                   100.0 Hz         9999 us
|   |__ 2) board_adc                        100.0 Hz         9999 us (10000 us)
|   |__ 3) gyro_fft                         980.2 Hz         1020 us
|   |__ 4) manual_control                    15.5 Hz        64548 us
|   |__ 5) mc_autotune_attitude_control       0.0 Hz            0 us
|   |__ 6) pwm_out                            3.3 Hz       298771 us (300000 us)
|   |__ 7) rc_update                         71.4 Hz        13998 us
|   \__ 8) tone_alarm                         0.9 Hz      1073498 us
|__ 9) wq:ttyS4        
|   \__ 1) rc_input                         250.0 Hz         4001 us (4000 us)
\__ 10) wq:lp_default   
    |__ 1) cdcacm_autostart                   2.0 Hz       497444 us
    |__ 2) gyro_calibration                  50.0 Hz        20003 us (20000 us)
    |__ 3) load_mon                           2.0 Hz       497196 us (500000 us)
    |__ 4) mag_bias_estimator                50.0 Hz        20000 us (20000 us)
    |__ 5) parameters                         0.0 Hz            0 us
    \__ 6) send_event                        30.0 Hz        33326 us (33333 us)
nsh> 

However, the IMU rate is still only 170 Hz (which is the same for the combined sensor data). I’m wondering what might be causing this 170 Hz limit and whether it is possible to increase the rate.

I may have replied to the wrong person. I meant to ask @Benja , I assume you are familiar with this. Thanks again for your patience. :smiley:

I you just want the gyro, then look for sensor_gyro or vehicle_angular_velocity. Those topics are published at much higher frequencies than sensor_combined.

However, make sure you connection can handle it.

2 Likes

That works perfectly. Thank you so much for your help.

Good to hear that!
Could you please mark the post as solved then?
Thanks!