Queen's Mostly Autonomous Sailboat Team Wiki
Register
Advertisement

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
Advertisement