ulogreader
R2026bPX4 ULog 파일 읽어오기
설명
ulogreader 객체는 PX4® ULog 파일(.ulg)을 읽어옵니다. 이 객체는 시작 기록 시간과 종료 기록 시간, 사용 가능한 토픽 요약, 드롭아웃 간격을 포함하여 파일에 대한 정보를 저장합니다.
생성
속성
읽기 전용 속성입니다.
ULog 파일의 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. FileName은 filePath 입력값에 지정된 경로입니다.
데이터형: char | string
읽기 전용 속성입니다.
ULog 파일의 시스템 시작 시간에서 오프셋된 기록 시작 시간으로, 'hh:mm:ss.SSSSSS' 형식의 duration 객체로 지정됩니다.
데이터형: duration
읽기 전용 속성입니다.
ULog 파일에 기록된 마지막으로 타임스탬프가 지정된 메시지의 타임스탬프로, 'hh:mm:ss.SSSSSS' 형식의 duration 객체로 지정됩니다.
데이터형: duration
읽기 전용 속성입니다.
기록된 모든 토픽의 요약으로, 다음 열이 포함된 테이블로 지정됩니다.
TopicNamesInstanceIDStartTimestampLastTimestampNumMessages
데이터형: table
읽기 전용 속성입니다.
기록 중 메시지가 누락된 시간 간격으로, 'hh:mm:ss.SSSSSS' 형식의 duration형 배열로 구성된 n×2 행렬로 지정됩니다. 여기서 n은 드롭아웃 수입니다.
데이터형: duration
객체 함수
readTopicMsgs | Read topic messages |
readSystemInformation | Read information messages |
readParameters | Read parameter values |
readLoggedOutput | Read logged output messages |
예제
ULOG 파일을 불러옵니다. 파일의 상대 경로를 지정합니다.
ulog = ulogreader('flight.ulg');모든 토픽 메시지를 읽어옵니다.
msg = readTopicMsgs(ulog);
선택할 메시지 간의 시간 간격을 지정합니다.
d1 = ulog.StartTime; d2 = d1 + duration([0 0 55],'Format','hh:mm:ss.SSSSSS');
시간 간격 [d1 d2]에서 인스턴스 ID가 0인 토픽 'vehicle_attitude'의 메시지를 읽어옵니다.
data = readTopicMsgs(ulog,'TopicNames',{'vehicle_attitude'}, ... 'InstanceID',{0},'Time',[d1 d2]);
이 토픽의 토픽 메시지를 추출합니다.
vehicle_attitude = data.TopicMessages{1,1}vehicle_attitude = 1066×3 timetable
timestamp q delta_q_reset quat_reset_counter
_______________ ______________________________________________ ___________________________________________________ __________________
00:00:01.952000 0.68231 0.0017879 -0.014252 0.73092 0.6823 2.1123e-10 6.8316e-10 0.73107 1
00:00:01.956000 0.68231 0.0017974 -0.014259 0.73092 0.6823 2.1123e-10 6.8316e-10 0.73107 1
00:00:02.004000 0.68126 0.001916 -0.014383 0.73189 1 0 -2.2119e-09 0.0013563 2
00:00:02.052000 0.68112 0.0019686 -0.014534 0.73202 1 0 -2.2119e-09 0.0013563 2
00:00:02.104000 0.68092 0.002101 -0.014752 0.73221 1 0 -2.2119e-09 0.0013563 2
00:00:02.152000 0.68067 0.0022023 -0.014936 0.73243 1 0 -2.2119e-09 0.0013563 2
00:00:02.204000 0.68045 0.0023886 -0.015088 0.73263 1 0 -2.2119e-09 0.0013563 2
00:00:02.252000 0.68016 0.0025014 -0.015266 0.7329 1 0 -2.2119e-09 0.0013563 2
00:00:02.304000 0.67995 0.0026582 -0.015413 0.73309 1 0 -2.2119e-09 0.0013563 2
00:00:02.352000 0.67983 0.0027451 -0.015558 0.7332 1 0 -2.2119e-09 0.0013563 2
00:00:02.404000 0.67979 0.0028021 -0.015723 0.73323 1 0 -2.2119e-09 0.0013563 2
00:00:02.452000 0.67975 0.0029118 -0.015801 0.73327 1 0 -2.2119e-09 0.0013563 2
00:00:02.504000 0.67972 0.002982 -0.015947 0.73329 1 0 -2.2119e-09 0.0013563 2
00:00:02.552000 0.67975 0.0030121 -0.016096 0.73326 1 0 -2.2119e-09 0.0013563 2
00:00:02.604000 0.6798 0.0030043 -0.016209 0.73321 1 0 -2.2119e-09 0.0013563 2
00:00:02.652000 0.67985 0.0030682 -0.016367 0.73317 1 0 -2.2119e-09 0.0013563 2
⋮
모든 시스템 정보를 읽어옵니다.
systeminfo = readSystemInformation(ulog)
systeminfo = 12×2 table
InformationField Value
_______________________ __________________________________________
"ver_sw" "8763d71bf0b603e0da42ea16fceae7fd2590546f"
"ver_sw_release" "v1.11.0.RC"
"ver_vendor_sw_release" "192"
"ver_hw" "PX4_SITL"
"sys_name" "PX4"
"sys_os_name" "Linux"
"ver_sw_branch" "master"
"sys_os_ver_release" "84148479"
"sys_toolchain" "GNU GCC"
"sys_toolchain_ver" "9.3.0"
"ver_data_format" "1"
"time_ref_utc" "0"
모든 초기 파라미터 값을 읽어옵니다.
params = readParameters(ulog)
params = 631×2 table
Parameters Values
_________________ ______
"ASPD_BETA_GATE" 1
"ASPD_BETA_NOISE" 0.3
"ASPD_DO_CHECKS" 0
"ASPD_FALLBACK" 0
"ASPD_FS_INNOV" 1
"ASPD_FS_INTEG" -1
"ASPD_FS_T1" 3
"ASPD_FS_T2" 100
"ASPD_PRIMARY" 1
"ASPD_SCALE" 1
"ASPD_SCALE_EST" 0
"ASPD_SC_P_NOISE" 0.0001
"ASPD_STALL" 10
"ASPD_TAS_GATE" 3
"ASPD_TAS_NOISE" 1.4
"ASPD_W_P_NOISE" 0.1
⋮
시간 간격 내에 기록된 출력 메시지를 읽어옵니다.
log = readLoggedOutput(ulog,'Time',[d1 d2])log = 23×2 timetable
timestamp LogLevel Messages
_______________ ________ _____________________________________________________________________________________
00:00:00.176000 "INFO" "[logger] [logger] ./log/2020-07-07/15_07_10.ulg"
00:00:00.176000 "INFO" "[logger] Opened full log file: ./log/2020-07-07/15_07_10.ulg"
00:00:00.176000 "INFO" "[mavlink] MAVLink only on localhost (set param MAV_BROADCAST = 1 to enable network)"
00:00:00.184000 "INFO" "[px4] Startup script returned successfully"
00:00:01.044000 "INFO" "[mavlink] partner IP: 127.0.0.1"
00:00:01.096000 "INFO" "[ecl/EKF] 888000: GPS checks passed"
00:00:01.948000 "INFO" "[ecl/EKF] 1780000: reset position to last known position"
00:00:01.948000 "INFO" "[ecl/EKF] 1780000: reset velocity to zero"
00:00:05.548000 "INFO" "[ecl/EKF] 5380000: reset velocity to GPS"
00:00:05.548000 "INFO" "[ecl/EKF] 5380000: starting GPS fusion"
00:00:26.668000 "INFO" "[commander] ARMED by Arm/Disarm component command"
00:00:31.268000 "INFO" "[fw_pos_control_l1] Takeoff on runway"
00:00:31.360000 "INFO" "[commander] Takeoff detected"
00:00:31.688000 "INFO" "[runway_takeoff] #Takeoff airspeed reached"
00:00:33.548000 "INFO" "[runway_takeoff] #Climbout"
00:00:34.088000 "INFO" "[runway_takeoff] #Navigating to waypoint"
⋮
참고 문헌
[1] PX4 Developer Guide. "ULog File Format." Accessed December 6, 2019. https://docs.px4.io/main/en/dev_log/ulog_file_format.html.
버전 내역
R2020b에 개발됨
참고 항목
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)