Skip to content

Project Abstract: Software for Mobile Mapping using Unmanned Ground Vehicles

sh2fong edited this page Mar 3, 2019 · 1 revision

Abstract

The Structural Dynamics Identification and Control Lab (SDIC) research group is currently in the process of developing software for mobile mapping using unmanned ground vehicles. Our course project aims to build upon on this work with three main thrusts: the definition of an optimal development workflow, revisiting of existing code, and continual development.

1) Development workflow:

The existing development workflow contains several issues which inhibits productivity and collaboration. A lack of a unified repository and standardized styling or coding conventions often results in inconsistencies during the collaboration process. Furthermore, the lack of a formal code review process and unit testing makes it difficult to ensure a specified level of quality and reliability is met.

The goal is to define a development workflow that facilitates ease of collaboration while achieving a desired level of consistency and quality. Our proposed development workflow plans to employ methods such as continuous integration to streamline collaborative effort, and best practices such as code review and unit testing to ensure that codes are consistent while meeting a specified level of quality across all modules. Specific tasks include:

  • Migration of all personal repositories into a centralized location (i.e., organization on Github);
  • Formalization of how members within the organization will interact with each repository during development (e.g., branching for feature development, required code review for pulling to master, etc.);* Implementation of continuous integration using Travis CI ;
  • Development of formatting guidelines and associated checks in CI;
  • Implementation of static analysis checks in CI;
  • Development of rules for code documentation (i.e., support for automatic generation with doxygen).

The above tasks will be implemented on a test repository to validate that each component is functioning as intended as well as to decide on specific requirements for checks (e.g., hard vs. soft requirements for automatic PR checks).

2) Existing code:

In conjunction with the task of defining a new development workflow, existing code will be revisited in order to implement the previously defined features, once they have been validated on the test repository. Core components that would benefit from unit testing will be identified. In addition, areas in which refactoring could facilitate future development will be identified and addressed (e.g., moving useful functionality into a common library, following common code conventions, etc.).

3) Continued development:

In tandem with tasks 1 and 2, the group will continue working on developing mapping software. Specifically, the development of a 3D mapping and map processing stack will be the primary focus over the course of this term. Specific tasks in relation to this include:

  • Integration of online and offline SLAM modules:
    • EKF SLAM
    • Graph SLAM
    • GPU SLAM
  • Continued development on offline SLAM:
    • Addition of LOAM scan matching
    • Addition of LOAM odometry factors to graph
    • Addition of IMU pre-integration
    • Addition of visual odometry
  • Creation of point cloud colourization module
    • Utilization of point cloud projection
    • Utilization of ray-tracing
  • Creation of defect mapping module
    • Projection of image masks to point clouds
    • Creation of point cloud defect layers
  • Creation of online map viewing module
Clone this wiki locally