Giter Site home page Giter Site logo

rover-embedded's People

Contributors

ausshir avatar chameleon07 avatar climathosphere avatar irene000 avatar jpas avatar matthew75 avatar ottopasuuna avatar ozzie387 avatar ryan-caufield avatar tyrelkostyk avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rover-embedded's Issues

Inverse Kinematics for arm

Take real world xyz coordinates and translate them to lengths of linear actuators/motor rotations.

  • Derive formula
  • Implement formula into code

Organize VESC library

We had a terrible way of organizing versions of the VESCPacket arduino library. This is my doing, so I'll make sure all the the Arduino sketches are using the most up to date version, and organize things...

Get heading information

@ottopasuuna commented on Sat Jan 07 2017
The rover needs to know which direction it is facing. We need to figure out what hardware to use to acheive this, and implement it.

  • Choose sensor
  • Write Arduino code to read sensor and send it to the rover
  • Sheilding to prevent interferance.

Lidar

One option for environmental awareness is a LIDAR, basically a RADAR but with lasers.

  • Get distance readings
  • Rotate the range finder
  • Keep track of rotation to pair with distance readings
  • Create basic map of the surroundings based on the distance and rotation values. Likely will be done on the python/webui side.
  • If we have time, put it on a 2 axis gimbal to get elevation values.

Drive motor control code

As we are likely using these motor controllers, there may be very little that needs to be done. However, some modifications could be made to the firmware.

Implement vesc communication protocol on Arduino

We need a standard way to communicate to all the microcontrollers on the rover, and the motor controllers have their own communication protocol that we may as well use for other micros as well. Should just be a matter of copying the necessary files from the bldc project and documenting what functions to call. It would also be nice if it was set up in such a way that we only need to include one headder file.

Update BNO055 code

  • Get absolute acceleration values relative to the earth for the Kalman filter
  • Update subscription names to be more usefull

Robolcuster.h calls every registered callback

Just an issue to remind myself that this is a problem. Currently it looks like when the arduino receives a message over serial, it calls all the registered callbacks, regardless of whether it matches the appropriate key.

Battery monitoring software

Monitor the state of the rover's battery

  • Measure cell voltage
  • Measure current draw of the battery
  • Send data to the rover and to the webui.

Arm motor control

@ottopasuuna commented on Tue Sep 06 2016

Make motors on the arm move. Will likely be able to reuse last years code.

  • Limiting (prevent arm from breaking its self).
  • Variable speed and direction
  • Ramping (not manditory)

The Science Module

SCIENCE!!!!!!

With lasers.

Laser spectroscopy, find nitrites in a soil sample.

Embedded device integration with robocluster

We'll need a way for embedded microprocessors to easily talk to robocluster. Probably using JSON for object transport. Simple way to do this is have a hash table of callback functions that are indexed base on the "key" or "event" part of the JSON message (assuming messages are of the form: {'event': 'test_event', 'data': 'data_one'}) Assign an interupt to fire on Serial events, and call the necessary callback. Have a function for subscribing (add callback for an event), and publishing (pack data into JSON and send).

Update VESC firmware

There is a new version of the VESC firmware, and some of the commands have changed. It's not necessary, but there have been issues filed for the upstream PyVESC library about it, so it would be good to get our stuff up to date and reduce the need for legacy code.

Read arm joint positions

We have some absolute position encoders that will read the position of the joints. The VESC's handle the low level stuff, we just need to get the values back to the rover.

Read soil sample mass

Be able to read the mass of the soil sample using a load cell. Also usefull to tell if a sample was put into the science bin properly, or if the rover just dumped precious science all over its self.

  • Figure out a formula to map analog values from the sensor to grams
  • Calibration

Drive communication

  • Recieve commands from main rover to turn on on appropriate motors.
  • Detect free-spinning in the wheels (overcurrent), and send that to the main rover.

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.