Giter Club home page Giter Club logo

fcs's People

Contributors

bendyer avatar danieldyer avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

liubingzsd mfkiwl

fcs's Issues

Improve FDM accuracy

Without control input, having no dynamics model at all yields better results. See if there's a static control input value that will improve that, otherwise look at re-integrating control input monitoring when under manual control (failsafe device to I/O board aux?).

Accelerometer and sensor geometry calibration

Add a triggerable calibration mode (exited automatically if gyro or accelerometer readings exceed a certain threshold) which determines a baseline gyro bias value (assuming vehicle is stationary) and then runs TRICAL on the accelerometers and magnetometers.

Also work out relative orientations of each sensor โ€” maybe UKF with 3x orientation quaternions and angle between magnetic field and gravity vectors as the measurement model?

Magnetometer calibration stability improvement

Enforce a minimum attitude angle between successive magnetometer calibration updates to prevent gyro drift resulting in magnetometer orientation calibration change over time in static use.

Generate AHRS test dataset

The last I/O board recordings use a different packet format, so they'll need to be converted to use the new one (including accelerometer readings divided by 2). Take a ~2 minute sample and store the data in the test directory so accuracy tests can be included in the unittest script.

The AHRS loop will need the facility to read I/O board streams from files rather than the UART buffers via DMA, as well as the facility to output state packets to a file/stdout.

Add I/O board reset logic

If more than 2ms have elapsed since the last sensor packet, and more than 100ms have elapsed since the last reset, the I/O board reset line should be asserted.

This needs to be updated in the CPLD bitstream as well as ahrs.c.

Write integration test driver

Python script that interfaces with a main.c-less library version of fcs. On startup calls the various init functions (single-process/single-core), then enters the main loop and calls the tick functions each timestep.

All I/O goes through stubbed versions of the serial drivers, so each of the four streams has its own independent input buffer and output buffer. Bytes are read whenever there's space in the stream read buffer, and written whenever there are bytes available in the stream output buffer.

Should support multiplexed I/O on stdin/stdout (Python string literals?), as well as raw binary file I/O per stream (4 input files / 4 output files).

Fix RFD900 status packet parser

The parser has issues when dealing with a mixed RFD900/GCS status stream. Move to an integrated state machine driven approach.

Add GCS packet interface

Parse GCS packets and use the altitude and pressure to calibrate the on-board barometric pressure sensors.

Determine SPI NOR programming approach

EVM6657 uses CCS to write program data to DDR3, then copies it to the NOR.

Compare that approach with writes from the CPU (Linux), plus whatever TI tools are required.

Also investigate SPI boot configuration tables and determine best way to generate these.

Limit field ranges in packet deserialization

It's possible to get a valid deserialization result from a packet containing out-of-range values which, if serialized, would result in assertion failure.

Avoid this possibility by restricting deserialized field values to the same range required by serialization. Any packet with field values outside the valid range will result in an FCS_DESERIALIZATION_ERROR.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.