Franz Heubach

The IVER3 autonomous underwater vehicle diving, from the perspective of being underwater.

DRDC Collaborative Autonomous Framework

Defence Research and Development Canada (DRDC) develops and delivers new technical solutions and advice to the Department of National Defence (DND), the Canadian Armed Forces (CAF), other federal departments, and the safety and security communities. DRDC works with partners in academia, government and industry and with Canada’s allies.

The DRDC Collaborative Autonomous Framework (DCAF) is a cross-domain collaborative robotics framework. The framework provides the commonality between autonomy behaviours in-air, on-surface, and underwater. The Intelligent Systems Laboratory (ISL) at Dalhousie University was awarded the contract to develop DCAF as part of a multi-year contract with DRDC.

At the beginning of the project I wrote the proposal for standard operating procedures (SOP) for code base development in line with the data-security requirements of the client. This proposal was accepted and avoided potential severe limitations on developer tools and developer flexibility. I implemented the SOPs using a local instance of a GitLab server as an alternative to GitHub. Developers were able to used encrypted virtual machines as an alternative to a dedicated development machine.

As the project progressed I suggested and began the implementation of full source-code driven documentation. The project relied heavily on the Robot Operating System (ROS), a middleware built on top of the Data Distribution Service (DDS) standard. DDS is a networking middleware for message handling in distributed applications. The source-code driven documentation was implemented using Doxygen, the standard for generating documentation from annotated C++ source files.

I became one of the main contributors to the code base, developing the vehicle behaviour arbitration service, and multiple vehicle survivablity behaviours. These services where implemented using publish-subscribe, client-service, and action data messaging patterns supported by the ROS middleware.

Verification of vehicle behaviours were performed using a Hardware in the Loop (HITL) simulator. This enables vehicle systems integration, and vehicle behaviours response testing before more expensive in-water testing is started. The developed services were then containerized using Docker to ease repeatable deployment on the test vehicle. I supported the containerization process as the developer with the most previous experience with Docker.

Finally, DCAF was deployed on the IVER3 autonomous underwater vehicle for in-water testing. I lead one of the days on the water for vehicle testing. After in-water testing was completed the current project stage was accepted as meeting and exceeding contractual agreements. DCAF is set to become the standard collaborative robotics platform for the Canadian military for mine counter-measures.

During my contract I learned a lot about the process of testing a distributed system, integrating source code onto a different vehicle running its own hardware, and reinforced my belief of rigorous testing, and being prepared with multiple fall-backs in case of unforeseen problems. I really enjoyed the time on the water. It was really satisfying to see the results of all the programming and integration work pay off.

Technologies used

  • Python
  • C++
  • ROS
  • Docker
  • Doxygen
  • CMake