All Projects → Georacer → ardupilog

Georacer / ardupilog

Licence: GPL-3.0 license
A ardupilot log to MATLAB converter

Programming Languages

matlab
3953 projects

Projects that are alternatives of or similar to ardupilog

BuildTimeLogger-for-Xcode
A console app for logging Xcode build times and presenting them in a notification
Stars: ✭ 43 (+65.38%)
Mutual labels:  log
CocoaLogKit
Log framework based on CocoaLumberjack and ZipArchive
Stars: ✭ 17 (-34.62%)
Mutual labels:  log
fast log
Rust async log High-performance asynchronous logging
Stars: ✭ 104 (+300%)
Mutual labels:  log
bk-log
蓝鲸日志平台是为了解决运维场景中查询日志难的问题而推出的一款SaaS,基于业界主流的全文检索引擎,通过蓝鲸智云的专属agent进行日志采集,无需登录各台机器,集中管理所有日志。
Stars: ✭ 102 (+292.31%)
Mutual labels:  log
APStreamline
Live Video Streaming Made Easy!
Stars: ✭ 98 (+276.92%)
Mutual labels:  ardupilot
logging
mod: zap logging in golang
Stars: ✭ 44 (+69.23%)
Mutual labels:  log
log-master
split the log
Stars: ✭ 28 (+7.69%)
Mutual labels:  log
aushape
A library and a tool for converting audit logs to XML and JSON
Stars: ✭ 37 (+42.31%)
Mutual labels:  log
clue
a extremely high performance log library for android. 高性能的Android日志库
Stars: ✭ 27 (+3.85%)
Mutual labels:  log
log
A simple to use log system, minimalist but with features for debugging and differentiation of messages
Stars: ✭ 21 (-19.23%)
Mutual labels:  log
sprout
Golang logging library supporting log retrieval.
Stars: ✭ 85 (+226.92%)
Mutual labels:  log
haminer
[mirror] Library and program to parse and forward HAProxy HTTP logs
Stars: ✭ 22 (-15.38%)
Mutual labels:  log
XLog
一个简易的日志打印框架(支持打印策略自定义,默认提供2种策略:logcat打印和磁盘打印)
Stars: ✭ 33 (+26.92%)
Mutual labels:  log
log-target-file
Yii Logging Library - File Target
Stars: ✭ 19 (-26.92%)
Mutual labels:  log
laravel-epilog
🐈 IP, referer, user ID and more in Laravel logs
Stars: ✭ 25 (-3.85%)
Mutual labels:  log
kuafu
This is a tool library that includes log, fsm, state machine...
Stars: ✭ 83 (+219.23%)
Mutual labels:  log
vim-log-highlighting
Syntax highlighting for generic log files in VIM
Stars: ✭ 164 (+530.77%)
Mutual labels:  log
logs-monitor
An application like Linux tail for Windows. Using Windows FindFirstChangeNotification API to monitoring file changes.
Stars: ✭ 43 (+65.38%)
Mutual labels:  log
tailor
Tailor, the library for tailing logs under logrotate, written in go.
Stars: ✭ 35 (+34.62%)
Mutual labels:  log
slack-backup
Make copy of slack converstaions
Stars: ✭ 15 (-42.31%)
Mutual labels:  log

ardupilog

An Ardupilot log to MATLAB converter. Primarily intended to facilitate processing of logs under MATLAB environment.

It is very efficient: The time required to parse large logs is in the order of seconds.

Supported log formats

Currently, only Dataflash logs (.bin files) are supported.

Usage

Add the ardupilog source code to your path. Then,

log = Ardupilog()

will open a file browser, where you can select the log file you want to decode.

Alternatively, the path can be passed directly as a string:

log = Ardupilog('<path-to-log-string>')

The variable struct log will be generated with the included message types as fields. Each field is a variable of type LogMsgGroup.

Each LogMsgGroup under a log contains the following members:

  • typeNumID: The message ID.
  • name: The declared name string.
  • LineNo: The message sequence numbers where messages of this type appear in the log.
  • TimeS: The timestamps vector in seconds since boot time, for each message.
  • One vector for each of the message fields, of the same length as the timestamps.

Plotting

To plot a specific numerical data field from a specific message, you can enter:

log.plot('<msgName>/<fieldName>');

The full command allows for passnig a Matlab-style line style and an existing Axes Handle to plot in. Additionally, it always returns the Axes Handles it plots in:

ah = log.plot('<msgName>/<fieldName>',<lineStyle>,<axesHandle>)

For example, to plot the Pitch field from the AHR2 message in red, enter:

log.plot('AHR2/Pitch', 'r');

Message Filter

You can optionally filter the log file for specific message types:

log_filtered = log.filterMsgs(<msgFilter>)
log_filtered = Ardupilog('<path-to-log', <msgFilter>)

msgFilter can be:

  • Either a vector of integers, representing the message IDs you want to convert.
  • Or a cell array of strings. Each string is the literal name of the message type.

Slicing

Typically, only a small portion of the flight log is of interest. Ardupilog supports slicing logs to a specific start-end interval with:

sliced_log = log.getSlice([<start_value>, <end_vlaue>], <slice_type>)
  • sliced_log is a deep copy of the original log, sliced to the desired limits.
  • slice_type can be either TimeS or LineNo.
  • <start-value> and <end_value> are either sconds since boot or message sequence indexes.

Example

log_during_cruise = log.getSlice([t_begin_cruise, t_end_cruise], 'TimeS')

Exporting to plain struct

To parse and use the log object created by

log = Ardupilog('<path-to-log>')

requires the ardupilog library to exist in the current MATLAB path.

Creating a more basic struct file, free of the ardupilog dependency, is possible with:

log_struct = log.getStruct();

log_struct does not need the ardupilog source code accompanying it to be shared.

Supported log versions

Logs from the following versions are been tested for Continuous Integration:

  • Copter: 3.6.9, 4.0.0, 4.1.0
  • Plane: 3.5.2, 3.7.1, 3.8.2, 3.9.9, 4.0.0, 4.1.0
  • Rover: 4.0.0, 4.1.0

LICENSE

This work is distributed under the GNU GPLv3 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].