ulogreader no longer works with new PX4 logs
31 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
James Croughan
am 5 Okt. 2023
Kommentiert: Christophe KInnard
am 19 Nov. 2023
Hi, I've been using ulogreader for a while to analyze flight logs from PX4-based flight controllers. However, it seems to have stopped working with the newest version of PX4. When trying to import any log from any version of PX4 v1.14, I get the following error printouts:
Error using uav.internal.ulogread.ulogparse/loadFile
Colon operands must be in the range of the data type.
Error in uav.internal.ulogread.ulogparse (line 411)
obj = loadFile(obj,logFile);
Error in ulogreader (line 183)
ulog = uav.internal.ulogread.ulogparse(obj.FileName);
I know the issue isn't with the log itself, since I can open the same log just fine using the online tool px4 flight review, which can be seen and downloaded at the below link. Any logs from v1.13 and earlier work fine.
Mainly wondering if there is a fix in the works for this, either in terms of a change I can make on my end to make it work or a fix included in more recent versions of MATLAB. I am currently running on R2022b.
0 Kommentare
Akzeptierte Antwort
Jinal
am 9 Okt. 2023
Hello James,
As per my understanding, you are encountering an error while reading a ULOG file from a PX4 Autopilot using ‘ulogreader’ in MATLAB R2022b.
This is a known issue in MATLAB releases prior to MATLAB R2023b. There are two possible workarounds for resolving the issue:
1) Upgrade to MATLAB R2023b.
2) In the MATLAB command window, execute the following code:
matlabroot
% Use the path obtained as the output of above command to replace ‘matlabroot’ in the command given below.
cd matlabroot\toolbox\uav\uavmatlab\+uav\+internal\+ulogread
open ulogparse.m
On line 971: replace
keylen = data(1);
with
keylen = uint32(data(1));
then restart MATLAB.
I hope this resolves the issue you were facing.
2 Kommentare
Christophe KInnard
am 19 Nov. 2023
I have Matlab 2023b and I have the same problem. Went to check the script and it already has the line 'keylen = uint32(data(1));'... any suggestion for a fix?
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!