mattnite / bcit-sailbot Goto Github PK
View Code? Open in Web Editor NEWBCIT Sailbot Project
Home Page: http://bcit-sailbot.ca
License: GNU General Public License v3.0
BCIT Sailbot Project
Home Page: http://bcit-sailbot.ca
License: GNU General Public License v3.0
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.
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 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.
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.
This program is a tool for testing and evaluating different pathfinding methods. Finish for first sprint.
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
Hey @lowkin18 check out this camera:
http://www.robotshop.com/ca/en/blackbird-2-3d-fpv-camera.html
Would that Nvidia card you mentioned be able to use this guy/
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.
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.
software and hardware required to drive linear actuators
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?
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.
Make sure all the team members have github accounts and are added as collaborators.
This will be the hull to be used at competition.
So another thing we can add that makes design a bit more complex, but would give us an incredible performance boost would be hydrofoils. They lift the boat out of the water so that we can decrease drag and therefore increase our max speed. Here is a video:
Depends on outcome of Issue #7. Probably best if we have the ability to switch out the keels and rudders.
Build hull from plywood and fiberglass for the stage 1 prototype.
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).
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.
Reasons for using a Catamaran:
Reasons for choosing Catamaran:
Reasons for choosing Mono-Hull:
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.
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:
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.
In order to test an implement a 2-camera vision system that will have depth perception, we will need:
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.