LRAUV  revA
Control and Timing Requirements

Allow the core vehicle control and navigation loop period to be changed.

The vehicle control loop (start time) must be accurate to within 10 ms

  • Supervisor::Supervisor() sets process priority to -20 to meet this requirement
  • Todo:
    Need to do profile testing to verify this requirement has been met

Allow science data acquisition to occur asynchronous to core vehicle control

  • Awaiting implementation of science sensor serial electronics
  • Todo:
    Modify ReadSensor to allow asynchronous reads

Allow science data acquisition to occur at a variable loop period

  • Todo:
    Modify ReadSensor to allow variable loop periods.

Allow science data acquisition to be triggered by some state change

  • i.e. going through a depth, etc.
  • Allowed by applying When and While constructs to the ReadSensor behavior/command

Vehicle attitude/navigation/control software must be tolerant to the presence/absence of sensors

  • i.e. turning off sensors (for low power) and should be able to handle the on/off transients without incident.
  • InternalSim may provide missing sensor readings for short periods of time during on/off transients.
  • Todo:
    Need to test this.

It must be possible to control (in code) how the time tag for a particular piece of data is selected.

  • i.e. timestamp when sent to log vs. when measurement was actually made
  • DataWriter::write and DataWriter::writeWithAccuracy meet this requirement

Time values must be stored to at least millisecond resolution, with the option for less resolution.

  • Default is to store data with 1 microsecond resolution, as coded in implementations of LogEntry::Read and LogEntry::write
  • Todo:
    Implement 1 millisecond optional resolution to save log space

Time of last update for every data value must be available.