Dds connectivity problem

hi i have some problem with the dds

i have jump at the dds

NuttShell (NSH) NuttX-11.0.0
nsh> sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
PID COMMAND CPU(ms) CPU(%) USED/STACK PRIO(BASE) STATE FD
0 Idle Task 50794 27.932 288/ 768 0 ( 0) READY 0
1 hpwork 0 0.000 292/ 1224 249 (249) w:sem 0
2 lpwork 0 0.000 292/ 1576 50 ( 50) w:sem 0
1202 mavlink_shell 0 0.000 1092/ 2000 100 (100) w:sem 3
4 wq:manager 0 0.000 628/ 1232 255 (255) w:sem 4
5 wq:lp_default 267 11.991 1420/ 3472 205 (205) w:sem 4
1174 log_writer_file 0 0.000 380/ 1144 60 ( 60) w:sem 3
359 dataman 0 0.001 892/ 1376 90 ( 90) w:sem 5
431 wq:hp_default 28 1.766 1120/ 2776 237 (237) w:sem 4
440 wq:SPI1 154 9.282 1512/ 2368 253 (253) w:sem 4
442 wq:I2C2 4 0.276 864/ 2312 245 (245) w:sem 4
445 wq:SPI2 405 24.359 1804/ 2368 252 (252) w:sem 4
582 wq:nav_and_controllers 81 4.871 1228/ 2216 242 (242) w:sem 4
585 wq:rate_ctrl 89 5.400 2524/ 3120 255 (255) w:sem 4
587 wq:INS0 87 5.224 3796/ 5976 241 (241) w:sem 4
588 wq:INS1 18 1.126 1204/ 5976 240 (240) w:sem 4
799 commander 5 0.380 1492/ 3192 140 (140) w:sig 5
880 gps 1 0.071 1020/ 1936 205 (205) w:sem 4
1086 uxrce_dds_client 19 1.310 2724/ 7872 100 (100) w:sem 34
1098 wq:ttyS0 3 0.240 772/ 1704 234 (234) w:sem 4
1107 navigator 1 0.079 1624/ 2144 105 (105) w:sem 11
1172 logger 2 0.156 3100/ 3608 230 (230) w:sem 3
1198 mavlink_if0 54 3.635 1916/ 2792 100 (100) READY 7
1201 mavlink_rcv_if0 6 0.415 1564/ 4808 175 (175) READY 7
1211 dmesg 0 0.039 964/ 2000 100 (100) w:sig 3
1212 mavlink_shell 0 0.000 908/ 2000 100 (100) w:sem 3
1219 top 7 0.486 2036/ 4056 237 (237) RUN 3

ent] timesync converged: true
uxrce_dds_client: cycle: 103171 events, 298564418us elapsed, 2893.88us avg, min 135us max 1515280us 19931.824us rms
uxrce_dds_client: cycle interval: 103173 events, 2981.40us avg, min 136us max 8240277us 32526.709us rms
nsh> uxrce_dds_client status
INFO [uxrce_dds_client] Running, connected
INFO [uxrce_dds_client] Using transport: serial
INFO [uxrce_dds_client] Payload tx: 63761 B/s
INFO [uxrce_dds_client] Payload rx: 0 B/s
INFO [uxrce_dds_client] timesync converged: true
uxrce_dds_client: cycle: 103471 events, 299165491us elapsed, 2891.30us avg, min 135us max 1515280us 19903.139us rms
uxrce_dds_client: cycle interval: 103478 events, 2978.46us avg, min 136us max 8240277us 32478.885us rms
nsh> uxrce_dds_client status
INFO [uxrce_dds_client] Running, connected
INFO [uxrce_dds_client] Using transport: serial
INFO [uxrce_dds_client] Payload tx: 63761 B/s
INFO [uxrce_dds_client] Payload rx: 0 B/s
INFO [uxrce_dds_client] timesync converged: true
uxrce_dds_client: cycle: 103517 events, 299792339us elapsed, 2896.07us avg, min 135us max 1515280us 19931.617us rms
uxrce_dds_client: cycle interval: 103522 events, 2983.27us avg, min 136us max 8240277us 32492.143us rms
nsh> uxrce_dds_client status
INFO [uxrce_dds_client] Running, connected
INFO [uxrce_dds_client] Using transport: serial
INFO [uxrce_dds_client] Payload tx: 33211 B/s
INFO [uxrce_dds_client] Payload rx: 0 B/s
INFO [uxrce_dds_client] timesync converged: true
uxrce_dds_client: cycle: 103789 events, 300380893us elapsed, 2894.15us avg, min 135us max 1515280us 19905.758us rms
uxrce_dds_client: cycle interval: 103793 events, 2981.15us avg, min 136us max 8240277us 32449.867us rms
nsh> uxrce_dds_client status
INFO [uxrce_dds_client] Running, connected
INFO [uxrce_dds_client] Using transport: serial
INFO [uxrce_dds_client] Payload tx: 63781 B/s
INFO [uxrce_dds_client] Payload rx: 0 B/s
INFO [uxrce_dds_client] timesync converged: true
uxrce_dds_client: cycle: 104082 events, 301001345us elapsed, 2891.96us avg, min 135us max 1515280us 19877.939us rms
uxrce_dds_client: cycle interval: 104086 events, 2978.73us avg, min 136us max 8240277us 32404.301us rms
nsh> uxrce_dds_client status
INFO [uxrce_dds_client] Running, connected
INFO [uxrce_dds_client] Using transport: serial
INFO [uxrce_dds_client] Payload tx: 63781 B/s
INFO [uxrce_dds_client] Payload rx: 0 B/s
INFO [uxrce_dds_client] timesync converged: true
uxrce_dds_client: cycle: 104187 events, 301707996us elapsed, 2895.83us avg, min 135us max 1515280us 19894.813us rms
uxrce_dds_client: cycle interval: 104193 events, 2983.01us avg, min 136us max 8240277us 32407.512us rms
nsh>

did someone have idea why i got this jump on the data ?

Those straight lines in the data are just that you are missing data and it is interpolating between the last 2 points. Get a good SD card and you’ll probably have less dropouts

Hi everyone,

I’ve been troubleshooting an issue where the uxrce_dds_client data flow would frequently lag or stop entirely. While some suggested a faster SD card, I found that the bottleneck was actually in the task scheduling.

I modified the task priority in src/modules/uxrce_dds_client/uxrce_dds_client.cpp to SCHED_PRIORITY_FAST_DRIVER, and now the data flow is fast and consistent without any interruptions.

Here is the code change I made:

C++

int UxrceddsClient::task_spawn(int argc, char *argv[])
{
    _task_id = px4_task_spawn_cmd("uxrce_dds_client",
                                  SCHED_DEFAULT,
                                  SCHED_PRIORITY_FAST_DRIVER,
                                  PX4_STACK_ADJUSTED(8000),
                                  (px4_main_t)&run_trampoline,
                                  (char *const *)argv);

    if (_task_id < 0) {
        _task_id = -1;
        return -errno;
    }

    return 0;
}

This fixed my DDS problem immediately. I am sharing this in case it helps others, but I would also like to ask the experts: Is there a risk that setting the DDS client to such a high priority might interfere with other critical sensor drivers?

Thanks!