Skip to content

Roadmap

Vinícius do Carmo Melício edited this page Feb 24, 2023 · 3 revisions

Phase 1: Unit Testing Framework

The goal of this phase is to create a unit testing framework that will be used to test the implementation of the estimation algorithms.

Tasks

  1. Define assertion functions that test a specific condition and either pass or fail the test. Use the following functions:

    • assertTrue(condition): Passes the test if the condition is true, fails otherwise.
    • assertFalse(condition): Passes the test if the condition is false, fails otherwise.
    • assertEquals(expected, actual): Passes the test if the expected and actual values are equal, fails otherwise.
  2. Define a Test class that is inherited by other classes. The Test class should have the following methods:

    • setUp(): A method that is called before each test method to initialize any objects or data structures required for the test.
    • tearDown(): A method that is called after each test method to clean up any resources allocated during the test.
    • runTest(): The method that actually performs the test.
  3. Define a TestSuite class for storing instances of classes inherited from the Test class. The TestSuite class should have the following methods:

    • addTest(test): A method that adds a test to the suite.
    • runTests(): A method that runs all the tests in the suite.
  4. Define a testRunner() function that runs all the tests defined in the TestSuite. It should call each test method and report the results of each test.

  5. Define reporting functions to report the results of the tests. Use the following function for now:

    • consoleReport(suite): A method that writes the results of the tests to the console. It could print the name of each test and whether it passed or failed.

Phase 2: Matrix Class

The goal of this phase is to create a Matrix class that will be used in the implementation of the estimation algorithms.

Tasks

  1. Implement the Matrix class with the following operations:

    • Addition and subtraction of matrices
    • Scalar multiplication of matrices
    • Matrix multiplication
    • Transpose of a matrix
    • Determinant of a matrix
    • Inverse of a matrix
  2. Write tests for the Matrix class using the unit testing framework to ensure it works as expected.

Phase 3: Kalman Filter Class

The goal of this phase is to implement the Kalman filter using the Matrix class.

Tasks

  1. Implement the Kalman filter with the following methods:

    • initialize(state, covariance): A method to set the initial state and covariance.
    • predict(): A method to predict the next state and covariance.
    • update(measurement): A method to update the state and covariance using measurements.
  2. Write unit tests for the Kalman filter to ensure it works as expected.

Future Phases

In future phases, we will implement other filters and methods.

Clone this wiki locally