ardupilotreader
설명
ardupilotreader 객체는 ArduPilot® dataflash 로그 파일(.bin)을 읽어옵니다. 이 객체는 파일 시작 기록 시간과 종료 기록 시간, 사용 가능한 메시지, 그리고 로그 파일의 총 메시지 수를 저장합니다.
생성
설명
는 지정된 파일 이름 또는 파일 경로에서 ArduPilot dataflash 로그 파일을 읽어오고 파일에 대한 정보가 포함된 객체를 반환합니다.arduObj = ardupilotreader(filePath)
속성
읽기 전용 속성입니다.
ArduPilot dataflash 로그 파일의 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. FileName은 filePath 인수에 지정된 경로입니다.
데이터형: char | string
읽기 전용 속성입니다.
ArduPilot dataflash 로그 파일의 시스템 시작 시간에서 오프셋된 기록 시작 시간으로, 'hh:mm:ss.SSSSSS' 형식의 duration 객체로 지정됩니다.
데이터형: duration
읽기 전용 속성입니다.
ArduPilot dataflash 로그 파일에 기록된 마지막으로 타임스탬프가 지정된 메시지의 타임스탬프로, 'hh:mm:ss.SSSSSS' 형식의 duration 객체로 지정됩니다.
데이터형: duration
읽기 전용 속성입니다.
기록된 모든 메시지의 요약으로, 다음 필드가 포함된 테이블로 지정됩니다.
MsgNameInstanceIDStartTimestampLastTimestampNumMessages
데이터형: table
읽기 전용 속성입니다.
로그 파일의 총 메시지 수
데이터형: double
객체 함수
readMessages | Read messages from ArduPilot® log file |
readParameters | Read parameter values from ArduPilot® log file |
readLoggedOutput | Read logged output messages from ArduPilot® log file |
예제
BIN 파일을 불러옵니다.
bin = ardupilotreader('flight.bin');모든 메시지를 읽어옵니다.
msg = readMessages(bin);
선택할 메시지 간의 시간 간격을 지정합니다.
d1 = duration([0 1 00],'Format','hh:mm:ss.SSSSSS'); d2 = d1 + duration([0 0 55],'Format','hh:mm:ss.SSSSSS');
시간 간격 [d1 d2] 내의 자세 메시지를 읽어옵니다.
attMsg = readMessages(bin,'MessageName',{'ATT'},'Time',[d1 d2]);
메시지에서 자세 데이터를 추출합니다.
AttData = attMsg.MsgData{1,1}AttData=534×10 timetable
timestamp TimeUS DesRoll Roll DesPitch Pitch DesYaw Yaw ErrRP ErrYaw AEKF
_______________ _______________ _______ ____ ________ _____ ______ ______ _____ ______ ____
00:01:01.669489 00:01:01.669489 0 0.06 0 0.05 358.94 358.95 0 0 3
00:01:01.769448 00:01:01.769448 0 0.06 0 0.05 358.95 358.96 0 0 3
00:01:01.869408 00:01:01.869408 0 0.06 0 0.05 358.95 358.96 0 0 3
00:01:01.969368 00:01:01.969368 0 0.06 0 0.05 358.95 358.96 0 0 3
00:01:02.069328 00:01:02.069328 0 0.06 0 0.05 358.96 358.97 0 0 3
00:01:02.169288 00:01:02.169288 0 0.06 0 0.05 358.96 358.97 0 0 3
00:01:02.269248 00:01:02.269248 0 0.06 0 0.05 358.96 358.97 0 0 3
00:01:02.369208 00:01:02.369208 0 0.06 0 0.05 358.97 358.98 0 0 3
00:01:02.469168 00:01:02.469168 0 0.06 0 0.05 358.97 358.98 0 0 3
00:01:02.569128 00:01:02.569128 0 0.07 0 0.05 358.97 358.98 0 0 3
00:01:02.669088 00:01:02.669088 0 0.07 0 0.05 358.98 358.99 0 0 3
00:01:02.769048 00:01:02.769048 0 0.07 0 0.05 358.98 358.99 0 0 3
00:01:02.869008 00:01:02.869008 0 0.07 0 0.05 358.98 358.99 0 0 3
00:01:02.968968 00:01:02.968968 0 0.07 0 0.06 358.98 358.99 0 0 3
00:01:03.068928 00:01:03.068928 0 0.07 0 0.06 358.99 359 0 0 3
00:01:03.168889 00:01:03.168889 0 0.07 0 0.06 358.99 359 0 0 3
⋮
모든 파라미터 값을 읽어옵니다.
params = readParameters(bin)
params=1312×4 timetable
timestamp TimeUS Name Value Default
_______________ _______________ __________________ _____ _______
00:01:01.651163 00:01:01.651163 "FORMAT_VERSION" 120 120
00:01:01.651163 00:01:01.651163 "SYSID_THISMAV" 1 1
00:01:01.651163 00:01:01.651163 "SYSID_MYGCS" 255 255
00:01:01.651163 00:01:01.651163 "PILOT_THR_FILT" 0 0
00:01:01.651163 00:01:01.651163 "PILOT_TKOFF_ALT" 0 0
00:01:01.651163 00:01:01.651163 "PILOT_THR_BHV" 0 0
00:01:01.651163 00:01:01.651163 "SERIAL0_BAUD" 115 115
00:01:01.651163 00:01:01.651163 "SERIAL0_PROTOCOL" 2 2
00:01:01.651163 00:01:01.651163 "SERIAL1_PROTOCOL" 2 2
00:01:01.651163 00:01:01.651163 "SERIAL1_BAUD" 57 57
00:01:01.651163 00:01:01.651163 "SERIAL2_PROTOCOL" 2 2
00:01:01.651163 00:01:01.651163 "SERIAL2_BAUD" 57 57
00:01:01.651163 00:01:01.651163 "SERIAL3_PROTOCOL" 5 5
00:01:01.651163 00:01:01.651163 "SERIAL3_BAUD" 38 38
00:01:01.651163 00:01:01.651163 "SERIAL4_PROTOCOL" 5 5
00:01:01.651163 00:01:01.651163 "SERIAL4_BAUD" 38 38
⋮
기록된 모든 출력 메시지를 읽어옵니다.
loggedoutput = readLoggedOutput(bin);
시간 간격 [d1 d2] 내에 기록된 출력 메시지를 읽어옵니다.
log = readLoggedOutput(bin,'Time',[d1 d2])log=16×2 timetable
timestamp TimeUS Message
_______________ _______________ _________________________________________________
00:01:01.651163 00:01:01.651163 "ArduCopter V4.3.3 (34e8e02c)"
00:01:01.651163 00:01:01.651163 "d6384d347e3c476ea8702e6a78ef3590"
00:01:01.651163 00:01:01.651163 "Param space used: 323/4096"
00:01:01.651163 00:01:01.651163 "RC Protocol: SITL"
00:01:01.651163 00:01:01.651163 "New mission"
00:01:01.651163 00:01:01.651163 "New rally"
00:01:01.651163 00:01:01.651163 "New fence"
00:01:01.651163 00:01:01.651163 "Frame: QUAD/PLUS"
00:01:01.651163 00:01:01.651163 "GPS 1: detected as u-blox at 230400 baud"
00:01:07.788707 00:01:07.788707 "Mission: 1 WP"
00:01:08.014449 00:01:08.014449 "EKF3 IMU0 MAG0 in-flight yaw alignment complete"
00:01:08.019448 00:01:08.019448 "EKF3 IMU1 MAG0 in-flight yaw alignment complete"
00:01:29.004384 00:01:29.004384 "Reached command #1"
00:01:29.004384 00:01:29.004384 "Mission: 2 WP"
00:01:48.199202 00:01:48.199202 "Reached command #2"
00:01:48.199202 00:01:48.199202 "Mission: 3 WP"
버전 내역
R2024a에 개발됨
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)