Given an external programmable sensor (or a companion computer) connected to a PX4 flight controller via UART, the sensor can send any MAVLink message I want at any frequency. The sensor is not meant to affect the flight; it only needs to log a set of values, but the number of values is around 10–15, and I want to obtain a time-series graph for each value.
From what I found in the documentation, PX4’s logger automatically logs these three MAVLink messages: NAMED_VALUE_FLOAT, DEBUG and DEBUG_VECT. However, the first two can only keep track of a single value, and DEBUG_VECTcan only keep track of exactly three values. What makes me think they can do more is thatDEBUG, for example, has an index variable for which the MAVLink documentation says: “The index is used to discriminate between values. These values show up in the plot of QGroundControl as DEBUG N.“ But neither QGC nor PlotJuggler produce DEBUG0, DEBUG1, DEBUG2… or anything similar, but instead a single debug value that is oscillating between all the possible values the sensor is sending via different MAVLink messages that have the same name. Using different MAVLink component IDs doesn’t help either.
From the PX4 source code for the logger module, it seems that only single instances of corresponding uORB topics are added for logging:
add_topic("debug_array");
add_topic("debug_key_value");
add_topic("debug_value");
So, does this definitely means it is not possible to debug multiple values in parallel without modifying the PX4 src code? If that is the case, I do not see the purpose of the index of debug variable in the MAVLink DEBUGmessage.
Is somebody perhaps capable of enlightening me more on this matter?