Giter Site home page Giter Site logo

adept-fc's People

Contributors

grayks3248 avatar katherinetoc avatar tbretl avatar

Watchers

 avatar  avatar  avatar

adept-fc's Issues

Mixing logic

  • Create a map from RC input signals to pwm output signals
  • Create a map from actuator values (from autopilot) to pwm output signals

Foamy Flight Demo

Demonstrate recovery of all features which were previously available with PX4.

Make files

We need to create a make file which compiles all of our code.

  • All executables must go in the /bin directory so they are ignored by git

Implement clean exit condition for all modules

Currently, each of the modules does not have an exit condition. One potential option to address this is to have the module which launches the rest of the code send out system status messages to all the modules. In this way, the startup module would act as the interface to a human user on the command line.

Finalize ZCM message types

Finalize message types for:

  • VN-200 data
  • ADC data
  • autopilot actuator values
  • RC input values
  • system status messages
  • commanded PWM values
  • HITL spoofed data
  • others?

Add configuration files

Each module may require some values for initialization, or hardware-related variables (e.g. PWM output limits for each channel), which would be best read in from a config file for easy changes.

  • add config files to modules as necessary
  • one config file or a unique file per module?

Create red_flags module

Initial Goals:

  • Monitor overall CPU usage.
  • Monitor status messages from all modules.
  • Send data to be logged by scribe.

GPS time calculation in ADC

Once per second (sometimes), time stamp jumps back 1 second. The logic for determining which GPS second the Arduino ADC data belongs to needs refinement.

ZCM and Logging

The way the logging code is structured now, ZCM call the write function each time there is new data. This is obviously fast as it is not tied to the execution of the logger code. However, when multiple channels are logged, ZCM decides the order in which logging functions are executed. The results is that a random single channel is logged at ~5kHz and the rest are logged ~1-10 Hz.

  • logging behavior needs to be consistent and deterministic

Memory and CPU management

We need to ensure that each module has an appropriate amount of memory allocated, and is guaranteed the necessary CPU resources.

  • speak with Alex about this

Flight mode logic

Create ability to switch between:

  • autopilot mode
  • manual flight mode
  • SYSID maneuver triggering
    -HITL mode

Failsafe modes

If receiver loses signal, it continues operation per its own failsafe mode which we must set up.

if receiver loses power, that needs to be handled in the code (rc_in read failure).

Development of the ADC module/interface

This module needs to read in a total of 10 ADC channels from two ARD-LTC1867 boards (capability to have 16 channels), and pass the received data to a ZCM message.

  • apply 5-hole probe calibration here? Need to get an idea of how expensive this is computationally and if we need to do it onboard.
  • Physical interface between the ADC boards and the RPI (need navio2 attached as well)
  • communicate with two boards simultaneously

Timestamping

We need to address timestamping and clock accuracy. The VN-200 sends GPS time with its data packets, and the ADC has no onboard clock. The RPI CPU clock can be referenced.

  • When do we timestamp data (could be different for actuated commands vs. ADC values, etc.)?
  • How do we ensure clock accuracy? Do we use RPI's clock, do we use an external clock?
  • How do we rectify GPS time and [insert accurate clock here] time?

Unit testing

  • Running list of test-cases.
  • implement them!
  • report results.

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.