Notes from brainstorming sess November 23rd, 2010
Performance goals:
- reliability = moving and kind of sailing
- navigation accuracy
- speed of boat
- collision avoidance (comes after sailing, avoid gps locations, computer vision, radar, interrupts porcupine); think about this for next year
A Testing/Sim program would look like..
- data in, results out
- helps to tune algorithm of sailing for efficiency
- see if servos turn (a way to test before water testing) when they get different data, the way we would expect them to
- rejecting data properly? watch servos (ie if we tip the boat to 45 degrees)
- order of testing: code-hardware-land-water
- fake data -> replace data input functions: (wind = fan, compass = turn it)
- look for errors
Correct logic includes..
- heel of boat -> rudder and sail correction
- direction of wind vs boat ->sail correct, polar plot course selection
- irons avoidance -> check speed before tacking
- roll tacking
Considerations when coding:
- Delay of code
- accuracy of data
- correct factors/ equations to account for environment
Checking data:
- change checks (ie is this number DRASTICALLY different, if so it's probably garbage)
- change checks rely on previous values
- $(format); does the data fulfill this? and satisfy it's checksum?
- averaging data can give a more accurate picture, but -> erase average when appropriate (ie after a tack, the old compass average should immediately be thrown out)
- how fast can we collect data to average
Other priorities:
- interrupts
- simulation
- shore interactions->do this in 'delays', varying need, test mode, enough to find errors, dump data on finding error, zigbee delay? send basic status + variable + data
In conclusion, Tasks to work on
- digital pins, RCmode in code
- interrupts list
- timers - use for functions which take unknown time sensors
- wind sensor absolute/relative
- future - collisions
- what's limiting data collection speed. -> don't call function unnecessarily. (timer/check data change)
- interrupts for arduino - RCmode -> pins, timers, turn on/off
- serial buffer, flushing