Code Monkey home page Code Monkey logo

bcit-sailbot's People

Contributors

mattnite avatar terrycalderbank avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

peterino2

bcit-sailbot's Issues

Develope Control Module for the Mechanical System

Design Control algorithms to be implemented in C++ code on an RPi. This is simply the early revision of the whole control system, it will be needed for manual testing of the mechanical design. Sail positioning will be automated, the input to the control loop will simply be a scalar value denoting throttle level. The rudders will be under manual control.

Sail Simulation

User-Story
As a developer I need the sail component of the simulation to realistically model the sailbot.

Acceptance Criteria
The sail will have an adjustable wind response characteristic. This will be an input file to the simulation and in order for the task to be accepted, it must pass one or several test benches.

Definition of Done
Once it passes the acceptance criteria.

Create Linear Actuator Control Server Front End

Create a server using ZeroMQ that is initialized on the command line with a single argument for the port number. It will give appropriate error messages on failure. Valid messages to the server will be strings representing integers 0 to 100. The server will convert the string to an integer and reply with an acknowledge message. Again, appropriate error messages for invalid input is required.

Simulation Input/Output

User-Story
As a developer I need the simulation to have an input/output format in order to run large numbers of tests.

Acceptance Criteria
In order for this to be accepted, the simulation program would undergo several simple test benches.

** Definition of Done**
This task will be complete when the program passes the testbenches.

Sailbot Simulation Program

This program is a tool for testing and evaluating different pathfinding methods. Finish for first sprint.

Fix Sailbot Simulation C++ Classes

User-Story
As a developer I need the C++ classes made for the simulation program to work correctly in order for the simulation to operate at all.

Acceptance Criteria
Classes must pass one or several test benches to ensure that they meet spec.

Definition of Done
This issue is done once the classes pass the test bench. No further work needed

Design Power Supply System

The main components for this part of the project are solar panels, batteries, and some sort of regulation circuit for the charging and discharging of the batteries. High efficiency will be vital in the long distance race.

Source a Controller and Receiver for Manual Control

I believe we are going to want something that operates in the 2.4GHz band, we need to make sure that whatever we get is compatible with American Radio spectrum regulations. We need one on/off switch, a throttle, and a joystick for turning.

Sourcing a GPS Module

We need to figure out how accurate of a GPS Sensor we can get, and what sort of cost are we going to pay for that accuracy?

Source Linear Actuators

We will need two linear actuators to control the sailbot, one for the rudder, and the other for the wingsail. Linear actuators were chosen over other methods because they mechanically lock while no power is applied.

Requirements/Important Characteristics:
- IP67 (can be submerged in water)
- stroke length
- Voltage: 12V
- Static and Dynamic Load

You will have to communicate with mechanical team members in order to determine some of the above requirements. The two linear actuators do not need to be the same.

Orange ball detection

Write a generalized program that finds the position of an orange circle on the screen. First validate with still images and then work up to video. Do also take note that the bouys are not perfectly circular:

image

Get team onto Github

Make sure all the team members have github accounts and are added as collaborators.

Design Rudders

Depends on outcome of Issue #7. Probably best if we have the ability to switch out the keels and rudders.

Design Prototype Wing Sail

This is for the stage 1 prototype, this prototype needs to be inexpensive and relatively easy to build. We need to figure out how we are going to actuate it without using too much power, and without motions that may cause damage in the long term (no jerking movements).

Source Camera for Vision System

Look into camera's that will be suitable for the sailbot. High quality web cams might be a good option here, but I am not sure how controllable they are, where it might be a good idea to have manual control in certain cases. I will give you an OV7670 breakout board, however this might not be suitable. Another option here is to use a PI Zero to do our CV processing and communicate with the Beaglebone over Etherenet. This way we open up our options to the PI camera market which is quite large.

Decide between Mono-hull and Catamaran

Reasons for choosing Catamaran:

  • Decrease surface drag
  • Increase Stability
  • Increase Maneuverability

Reasons for choosing Mono-Hull:

  • Simpler construction

I am in favor of a Catamaran style design. Manufacturing is slightly more difficult but the performance would definitely be worth it. I'd like to hear what you guys have to say, and some more perceived pros and cons for either hull type.

Decide between Traditional Sail or Wingsail

So one option we have, as advised by Craig is that we can use a wingsail instead of a traditional sail:

https://en.wikipedia.org/wiki/Wingsail

A wingsail would provide better performance than a traditional sail as it has a better lift to drag ratio and it would be much simpler to control. Although extra work must be put into the design, we will end up with an overall simpler and more robust design. One sailbot that has traveled from San Francisco to Hawaii uses one:

http://saildrone.com/

As an example, we would be able to eliminate most of the propulsion by simply straightening the wingsail. This could prove useful in improving the maneuverability and stopping power of the Sailbot.

Create Testing Apparatus for Vision System

In order to test an implement a 2-camera vision system that will have depth perception, we will need:

  • 2x4 - approximately 1 meter across
  • Raspberry Pi
  • Two webcams
  • 9 axis IMU

Create Kalman Server

Use the ZeroMQ Library to create a server for the kalman filter. This program will be given the ports for the GPS and IMU servers and sample readings from them for the operation of the kalman filter. It will then simply serve requests with the current approximated position.

You can use the C++ 11 standard chrono header for controlling time intervals.

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.