ArduPilot / ArduPilot/MissionPlanner

AutoAnaylse

Open
#3,522 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
2.4k
Forks
2.9k
Avg merge
19h 16m
Merged PRs (30d)
4

Description

Hi there!
I'd like to contribute to Mission Planner.
I've got an idea to revamp the AutoAnalyse feature on the DataFlash logs screen. I've been using PyMavlink to write a basic program (at the moment!) to start parsing the .BIN files. Because I have no experience with C# development, I'll need some help in integrating the Python program into Mission Planner.
So far, these are all the features - feel free to suggest some more:
1. Automatic Sensor discovery
2. Plotting all desired roll, pitch and, yaw values against the actual roll, pitch and, yaw values (and warning the user that there is a large discrepancy between any two pairs of points)
3. Generating information if the motor vectors are incorrect. There are two possibilities here. For a Yaw Imbalance, it simply looks at the error logs and rewarns the user if otherwise unaware. For something like "the leans" a simple algorithm works by comparing the values of the AHRS2.Roll, NKF1[0].Roll and NKF1[1].Roll or the AHRS2.Roll, XKF1[0].Roll and XKF1[1].Roll (dependent on the EKF*).
4. Vibration checks are undergone. Simply, the program finds if at any time there were any vibrations, on any axis - independent and dependent of each other (specified) that were above 30ms-1.
5. Magnetic interference. The Mag sensors (X,Y and, Z) is compared to the throttle. The program will search through and see if it can find any sort of correlation between the Mag field and the throttle. Ideally, this value should be below 30%
6. All errors are thrown back to the user in warnings (failsafes included) just to remind them
7. Power issues are analysed and evaluated. Brownouts, random voltage spikes, voltage dropouts and, excessive current draw is evaluated. Most of these come when the Baro or EKF altitude last reports the altitude is definitely above 0.
8.
The program goes through scanning for each point (1-7) at a time if the logs are there.

All issues, errors and warnings are reported back to the user based on the severity. Most things would be a warning (if the vehicle can still continue, but with caution). An error would be a return to a safe position (either a land or return to home) immediately and to analyse the situation.

There will be more features, like automatic notch filtering calculation and such (I'm not too sure how that'd work out) that I'd like to implement as well. I think this could become a good tool to help people analyse their vehicle, after a crash (identification of problem), improve their tuning, identify problems they never even knew they had, or help newbies identify their basic problems in an easy-to-follow kind of way.

Let me know what you think!

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the AutoAnalyse feature on Mission Planner’s DataFlash logs screen and review how .BIN logs are currently parsed. Before implementation, split the proposed sensor, attitude, vibration, magnetic, error, and power checks into a scoped plan and confirm how the PyMavlink work would integrate with the C# application; done means an agreed, testable first slice.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, python
Domain
data, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.