Overview of the Swarm Autonomy Toolbox


Maintained by: mikerb@mit.edu         Get PDF


src: project-pavlab/memos/memo_swarm_overview


1  Overview
2  Summary of Swarm Autonomy Toolbox Modules
     2.1 Software Libraries
     2.2 Swarm Toolbox Applications

1   Overview


The Swarm Autonomy toolbox is comprised of roughly four components, (a) support for decentralized decision-making via auction behaviors, (b) distributed coverage algorithms based on Voronoi decompositions, (c) dynamic linear convoying, and (d) inter-vehicle messaging strategies and mult-vehicle simulations of degraded messaging schemes.

The Swarm Autonomy Toolbox is a codebase that leverages and augments the MOOS-IvP open source autonomy project as depicted in Figure 1.1.

Figure 1.1: MOOS-IvP and Toolbox Extensions: The MOOS-IvP autonomy architecture is comprised of the MOOS middleware and IvP Helm autonomy architecture. The toolbox extensions provide extensive capabilities layered on top of the open source core codebase.

The extensive core data structure libraries, simulation tools, visualization tools, and post-mission analysis tools of the current open source project has enabled rapid development in the four core areas of the Swarm Autonomy Toolbox. These four areas are discussed in the next four sections.

2   Summary of Swarm Autonomy Toolbox Modules


The Swarm Autonomy Toolbox to-date consists of 9 software libraries, and 10 software applications. Using the sloccount software analysis tool, this represents 17,600 logical lines of code, 3.9 work-years of development, with an estimated $525,000 cost of development based on $56.2K/yr developer salary.

2.1   Software Libraries    [top]


  • lib_bhv_muster: The Mustering behavior.
  • lib_bhv_convoy: The Convoying behavior.
  • lib_bhv_anderson: The Anderson Turn behavior used in convoying missions to alter the ordering of vehicles.
  • lib_bhv_task_convoy: The TaskConvoy behavior for conducting inter-vehicle auctions to decide convoy ordering.
  • lib_bhv_task_muster: The TaskMuster behavior for conducting inter-vehicle auctions when transitioning from convoying to mustering.
  • lib_bhv_task_waypt: The TaskWaypoint behavior for conducting inter-vehicle auctions to decide a lead vehicle when a group of vehicles is tasked with commencing a convoy mission phase.
  • lib_helmtask: A library of core data structures for implementing helm task, and IvP Task behaviors.
  • lib_voronoi: A library of core data structures for the Voronoi family of algorithms.
  • lib_behavior_voronoi: The general Voronoi behavior for distributed coverage.

2.2   Swarm Toolbox Applications    [top]


  • pEncircle: An app running on each vehicle involved in an encircling mission.
  • pEvalConvoy: An app running on a vehicle participating in a convoy mission for evaluation local performance metrics.
  • uFldConvoyEval: An app running on the shoreside during a convoy mission for evaluation of group convoy metrics.
  • pMediator: An app for monitoring outgoing and incoming inter-vehicle messages, repeating if necessary.
  • pTaskManager: The app running on each vehicle that receives incoming tasks, and posts events for spawning task behaviors.
  • uFldTaskMonitor: A shoreside utility for monitoring tasks generated and distributed to a field of vehicles.
  • uFldVoronoi: A shoreside tool for calculating the Voronoi partition of multiple deployed vehicles.
  • voiview: An engineering application for testing different variations of Lloyd's algorithm.
  • alogmtask: A post-mission analysis tool for analyzing the sequences of events, task, and bids involved in an auction.
  • pProxonoi: An app for calculating the local Voronoi cell to support Voronoi coverage missions.

Page built from LaTeX source using texwiki, developed at MIT. Errata to issues@moos-ivp.org. Get PDF