Giter Club home page Giter Club logo

triforce-control's People

Contributors

camieac avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

triforce-control's Issues

Continuous integration

Ideally we should set up continuous integration to flag compile errors. I've been having some trouble adding continuous integration to the repository. The latest attempts are in the master branch.

Using Travis

I'm giving up for now, leaving this for someone to pick up at a later time.

Controller delay

There is quite a significant delay between stick movements on controller and PWM output, likely caused by controller input and PWM output being in separate threads. Fix: do in one thread.

Logging to web interface

Serial logging is useful for development purposes, but is useless when fighting. Logging to the web interface will allow status monitoring during fighting.

Switch to mbed RTOS

The current codebase is 'horrendous' ๐Ÿ˜’

We should at least get this thing using mbed RTOS.

New control software features

Features

This is a working document to determine what we want in triforce-control v1.0.0. All discussions are welcome. Development is taking place on rtos-dev.

Closed loop weapon motor control

  • Sense RPM of ring
  • Sense RPM of weapon motors, and therefore contact wheels (mechanical linkage)
  • Prevent contact wheel slippage by:
    • Limiting angular acceleration of weapon motors.
    • Detecting slippage as difference contact point velocities, and adjusting motor according to error.
  • The user input is filtered to prevent large accelerations that would lead to slippage.

Dual Controller

  • One controller for drive.
  • One controller for weapon.
  • Both controllers have their own arm switch (position 1: armed, position 2, disarmed).
  • Both controllers are independent.

Failsafe

  • If drive controller signal is lost, fully disarm the robot (including weapon).
  • If weapon controller is lost, disarm weapon only (allowing drive to continue as normal).
  • If both controllers are lost, fully disarm.

Arm state LEDS (mbed LEDS)

Arm State LED0 LED1 LED2 LED3
DISARMED OFF OFF OFF OFF
DRIVE_ONLY ON ON OFF OFF
FULLY_ARMED ON ON ON ON

Additional LED control

  • Strobing LEDS or something
  • TBC

Logging

  • Logs written to local flash memory
  • Option to write logs to serial

Serial interface

  • Allow basic commands through serial interface (useful for debugging)

Relevant sites/papers

http://www-personal.umich.edu/~johannb/Papers/y
https://youtu.be/3yXlmJyL7pE

Add weapon PWM support

Currently the weapon outputs are commented out , and the weapon ESCs are connected directly to the receiver. In a perfect world the mbed would be used to filter weapon signal from transmitter to prevent rapid spikes in throttle.

Support CAN bus VESC control

We already receive status commands from VESCs. Also allow VESCs to be controlled via CAN bus rather than PWM.

Update to latest mbed-os version

We currently use some deprecated features that prevent us from updating to the latest version of mbed-os. Write replacements for these features and update to the latest.

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.