ulogreader no longer works with new PX4 logs

37 次查看(过去 30 天)
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.

采纳的回答

Jinal
Jinal 2023-10-9
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 个评论
Christophe KInnard
Christophe KInnard 2023-11-19
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?

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by