Menu

ForDevelopers

Anonymous

For Developers

This is the main page for ODTBX development.

This part of the OD Toolbox Wiki is meant to hold most items that would interest a developer but not an end-user.

Project Management

Project management items that are configuration-controlled in Git can be found via the SourceForge repository viewer. The [RepositoryInstructions] has information on how to check this out.

Current Status

Release 6.5 occurred on Nov 27, 2013. The largest change is the full abstraction of link budget capabilities and implementation of them back into gpsmeas, gsmeas, and tdrssmeas_basic. In addition, the TDRSS measurement function was simplified to only include geometric computations.

Releases

Release 6.0 occurred on May 31, 2013. All estimators now take separate truth and estimated odtbxOptions structures for consistency with other estimator inputs. The CIO transform (Dr. Abel Brown) was added. The Measurement Scheduling GUI can now import dynargs from the workspace.

Release 5.5 occurred on December 18, 2012. The biggest addition was the meas_sched GUI tool. This allows users to schedule ground station measurements via a user-friendly MATLAB GUI. Two new tutorials were added (pancake_tutorial and batch_3gs_tutorial), a hyperbolic orbit b-plane calculation function was added, and the ODTBX Options structure now supports particles.

Release 5.0 occurred on September 5, 2012. The regression testing framework was overhauled for more consistent test naming. Several estimator and measurement functions were updated, clock error models were added, and nbodypm was updated with point-mass dynamics equations.

Release 4.5 occurred in early May of 2011. Significant enhancements were mainly in the measurement modeling areas, such as the new opnavmeas and upgraded gpsmeas. A new set of capabilities for GPS antenna link budget modeling and analysis was added. Quaternion functions and fgprop were added as well.

ODTBX Release 4.0 occurred on November 30, 2010. This release improved estimation capabilities in several estimators, added a smoother to estsrif, and included a new version of MICE.

ODTBX Release 3.5 occurred on May 28, 2010. This release added the Square Root Estimation Filter,estsrif and a separate linear covariance analysis function lincov_kf, and had improvements to estseq, ground stations, jatDCM, as well as other general improvments.

ODTBX Release 3.0.2 occurred on April 14th, 2010. There was very little content or functional difference from 3.0.

ODTBX Release 3.0.1 occurred on Jan. 13th, 2010. This release was the first release made under the NOSA license. There was very little content or functional difference from 3.0.

ODTBX Release 3.0 occurred on Nov. 27th, 2009, marking the end of Increment 8. This release was not made under the NOSA license.

Prior Increments that went into Release 3.0 were:

Future Development Plans

TBD

Requirements

The OD Toolbox requirements are currently stored in multiple places:

These requirements documents will need to be merged and scrubbed until they properly represent the current system requirements set. This merge work is TBD.

Development Processes

Regular Meetings and Events

The Configuration Control Board (CCB) holds regular meetings to review and action issues in Mantis. The Minutes (and ArchivedMinutes) are available.

Weekly status reports are available for this project.

Each increment of development has a prototype demonstration for eliciting feedback during development. (Some increments, such as Increment 7.5, are short and the demonstration is waived in the interests of further development progress. Increment 8 had no demonstration due to contract changes/extensions and planning.)

Process Documentation

[IssueProcess] holds the current description of the issue process from reporting through closing. This is of interest to end users, developers, and project management.

[OdToolBoxQa] has the current OD Toolbox Quality Assurance (QA) documents and process. Currently this process isn't utilized as much as we would like due to resource limitations.

[RepositoryInstructions] describes the Subversion repositories and their contents.

The feature-driven development process is an overview of a good method towards development of a single feature, or issue. It is a basic boiler-plate process developers should follow when working on issues.

[OdtbxTestingProcess] describes running OD Toolbox validation and regression tests as a developer. It also describes guidelines for creating a test for new functionality and how the automated regression tests run.

[OdtbxCheckInProcess] is the guide for checking changes back into the Subversion repositories during development.

There currently is no guide for branching and merging conventions on this project. (Fortunately there hasn't been much branching and merging, but when it occurred it was significant.) Whenever a guide is created it should cover: when to branch (or when not to) and how to perform the branch (with examples). It should also cover the critical information the developer should track while on a branch and the recommended merge process and coordination that should happen to avoid problems.

[OdtbxReleaseProcess] describes how to create and deliver an OD Toolbox release. This also includes information about the IzPack installer.

Design & Implementation

Information on design and implementation of ODTBX is at [DesignImpl].

The [IncrementSix] page holds information used during that development.

Development guides:

  • [OdtbxLicensing] describes the license header that should accompany any publicly-distributed ODTBX file. All developers should do this.
  • [QaCodingStandards] describes the coding standards that we would like to apply to ODTBX development. It includes information on the standard MATLAB function header so that your function can be included with ODTBX. It includes a help example. All developers should do this.
  • [MatlabJatAdaptor] has information on the ODTBX-JAT MATLAB interface functions.
  • [MatlabJavaInterface] has information on using and debugging Java code and MATLAB code at the same time.
  • [MatlabToolbox] has notes on how to create a toolbox in Matlab that is accessed through the Matlab Help Browser.
  • The ODTBX MOM page has information on the ODTBX Measurement Object Model.

Tools & Environment Setup

This section contains information on the development tools used for OD Toolbox development and how to set up your development environment on each tool.
(Details on the development processes, or what to do with these tools, are found in the process descriptions, above.)

Tools

  • Git is a distributed version control system (DVCS). It is the source control tool used by the OD Toolbox project. Any Git client can be used. Git is new, and so GUI clients are still under development, but the Git DVCS is quickly becoming a Subversion-replacing standard. It is often packaged with Linux operating system distributions, as well as MacOS X (as a part of the XCode Command Line Tools). Some clients are:
  • The ODTBX Git Repository is described on the [RepositoryInstructions] page
  • The JAT Subversion Repository is described on the [RepositoryInstructions] page
  • MATLAB R2012a or later is required.
    • Optional Toolboxes:
    • Certain ODTBX functions may utilize the Statistics Toolbox for extra functionality if it is present.
    • estbat.m, estseq.m, and estspf.m can utilize the Parallel Computing Toolbox for parallel computation support of Monte Carlo runs
    • Note, there is no requirement that end-users should have these toolboxes installed. Testing and validation should exercise both environments.
    • As of September 2012 (Release 5.0):
    • Nightly regression testing is performed with MATLAB R2012a with the Statistics Toolbox and Parallel Computing Toolbox.
    • Regular development is performed with MATLAB R2012a with and without these toolboxes.
  • A Java Runtime Environment (JRE) is required for running OD Toolbox. A minimum of Java SE (Standard Edition) 5 (1.5) is required and MATLAB R2007+ meets this requirement.
    • To check the JRE in MATLAB, type ver in the MATLAB command window to see the version.
  • Developers will need a Java Development Kit (JDK).
    • Eclipse is the preferred Java IDE used by OD Toolbox developers, but any Java IDE is fine.
    • Any Eclipse after about 3.2 should work. (As of September 2012, Eclipse v4.2, Juno is the current release.) Since JAT is Java SE code, you don't have to get the larger package for Java EE development. Get the Eclipse IDE for Java Developers or Eclipse Classic.
  • !IzPack is a cross-platform Java-based application that creates installation packages. Documentation, configuration file information, and examples are found here. We're currently using version 4.3.3.
    • Note that with Windows Vista the security model makes installation a little special. Just double-clicking and launching the IzPack-install-<version>.jar file may start to work but it will usually error before completion. Instead, open a console window with "Run as Administrator" so you have administrative privileges. Then cd over to the install .jar file directory and run
      java -jar IzPack-install-<version>.jar
      

This will cause the installer to run with the proper permissions to install on Vista.
* The [IzPackTips] page has additional details on using the IzPack tool to create installers and debugging the produced installers.
* MICE is the Matlab version of the NAIF Spice Toolkit.
* Documentation for the MATLAB version is found at http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/MATLAB/index.html.
* While you can download and use your own MICE tool, however ODTBX distributes MICE with some additional files. See [DistributingMice] for more details.
* Apache Maven is used to automatically build JAT prior to running each night's regression test.
* Developers don't need to download and install Maven as part of their development environment if they are using an IDE like Eclipse.

Environment Setup

To set up your environment for ODTBX development, perform these instructions (in order):

Instructions and a description of the automated regression test setup are at the [OdtbxTestingProcess] page.

Servers

The [RegressionServer] page captures some information on the ODTBX regression testing server.


Navigation

Mantis - The issue tracking system

WikiStart - Go back to OD Toolbox Home


Related

Wiki: DesignImpl
Wiki: DistributingMice
Wiki: EclipseSetup
Wiki: Home
Wiki: IncrementSix
Wiki: IssueProcess
Wiki: IzPackTips
Wiki: LLA2ecef
Wiki: MatlabEnvSetup
Wiki: MatlabJatAdaptor
Wiki: MatlabJavaInterface
Wiki: MatlabToolbox
Wiki: Minutes
Wiki: Minutes20091201
Wiki: OdToolBoxQa
Wiki: OdToolBoxReqts
Wiki: OdtbxCheckInProcess
Wiki: OdtbxDemos
Wiki: OdtbxFeatureDrivenDevProcess
Wiki: OdtbxLicensing
Wiki: OdtbxReleaseProcess
Wiki: OdtbxRequirements
Wiki: OdtbxTestingProcess
Wiki: PlottingUiRequirements
Wiki: QaCodingStandards
Wiki: RegressionServer
Wiki: RepositoryInstructions
Wiki: convertTime
Wiki: createJATWorld
Wiki: getIERSTimes
Wiki: getIndex
Wiki: jatDCM
Wiki: jatIonoDelayModel
Wiki: jatRK8
Wiki: mJD2JD

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.