nolanholden / geovis Goto Github PK
View Code? Open in Web Editor NEWGEOVIS - all-purpose flight-path visualization tool (for University of Louisville's River City Rocketry.)
Home Page: https://nolanholden.com/hydra
License: MIT License
GEOVIS - all-purpose flight-path visualization tool (for University of Louisville's River City Rocketry.)
Home Page: https://nolanholden.com/hydra
License: MIT License
For example, if something goes wrong, we can submit to Alerter
(or MessageBlaster
etc.) (perhaps even with an enum
for priority settings) and it can alert via Serial
, write to file, send over the radio, etc.
All for ~one configuration at the beginning of the program.
Currently using GpsReceiver::smartDelay(...)
to consistently read the hardware serial transmissions. This is non-optimal and requires user knowledge of internals. Let's strive for a cleaner, hands-off API to the GPS module.
Testing has shown that high sampling rates of the GPS receiver cause the cessation of new fixes (and GPS date, and other data from the satellites).
This can be seen by building the project at this commit: 6aa457c
For example:
Opening port
Port open
VMDPV_1|1_VMDPV
Setup complete. . .
sats hdop lat long fix-age date time (... and friends ...)
9 ,89 ,38.218971 ,-85.753220 ,0 ,07/05/2017,19:04:05,1097 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,720 ,9 ,0 ,
9 ,89 ,38.218971 ,-85.753220 ,513 ,07/05/2017,19:04:05,1610 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,783 ,9 ,1 ,
9 ,89 ,38.218971 ,-85.753220 ,1026 ,07/05/2017,19:04:05,2123 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,846 ,9 ,1 ,
9 ,89 ,38.218971 ,-85.753220 ,1538 ,07/05/2017,19:04:05,2635 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,909 ,9 ,1 ,
9 ,89 ,38.218971 ,-85.753220 ,2051 ,07/05/2017,19:04:05,3148 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,972 ,9 ,1 ,
9 ,89 ,38.218971 ,-85.753220 ,2564 ,07/05/2017,19:04:05,3661 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1035 ,9 ,2 ,
// Above, the "fix age" grew to 2564 milliseconds. (i.e., no new fixes completely arrived for 2.5 seconds)
// This is absolutely unacceptable.
9 ,89 ,38.218971 ,-85.753220 ,1 ,07/05/2017,19:04:09,4174 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1098 ,10 ,2 ,
9 ,89 ,38.218971 ,-85.753220 ,513 ,07/05/2017,19:04:09,4686 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1161 ,10 ,3 ,
9 ,89 ,38.218971 ,-85.753220 ,1026 ,07/05/2017,19:04:09,5199 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1224 ,10 ,4 ,
9 ,89 ,38.218971 ,-85.753220 ,1539 ,07/05/2017,19:04:09,5712 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1287 ,10 ,4 ,
9 ,89 ,38.218971 ,-85.753220 ,2051 ,07/05/2017,19:04:09,6225 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1350 ,10 ,5 ,
9 ,89 ,38.218971 ,-85.753220 ,2564 ,07/05/2017,19:04:09,6737 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1413 ,10 ,5 ,
9 ,89 ,38.218971 ,-85.753220 ,3077 ,07/05/2017,19:04:09,7250 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1476 ,10 ,6 ,
9 ,89 ,38.218971 ,-85.753220 ,3590 ,07/05/2017,19:04:09,7763 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1543 ,10 ,6 ,
9 ,89 ,38.218971 ,-85.753220 ,4102 ,07/05/2017,19:04:09,8275 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1606 ,10 ,7 ,
9 ,89 ,38.218971 ,-85.753220 ,4615 ,07/05/2017,19:04:09,8788 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1669 ,10 ,8 ,
9 ,89 ,38.218971 ,-85.753220 ,5128 ,07/05/2017,19:04:09,9301 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1732 ,10 ,9 ,
9 ,89 ,38.218971 ,-85.753220 ,5640 ,07/05/2017,19:04:09,9814 ,153.50 ,261.06 ,0.11 ,W ,9620 ,92.61 ,E ,1795 ,10 ,10 ,
// Again, "fix age" grew to 5640 milliseconds.
// Very unacceptable.
For instance, if gps receiver values continued to be !isValid()
, then start over again.
If IMU gets all ~0.0, then start over, etc..
Currently, equation constants can only be bulk specified for entire class definitions. This is problematic if we decide to filter data differently for a single sensor (for instance, perhaps gps heading is filtered differently from gps altitude). Most likely, this suggests a promotion of kalman types from struct to class with individually provided equation constants.
IMU's Vector
s deals in doubles
, and there are many double
->float
conversions.
This is prudent, considering our high port-availability.
In the meantime, leave filtering infrastructure but remove internal APIs for filtered data. It should not be used until we verify the quality / accuracy of filtered data for the given configuration.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.