Skip to content
James Edmondson edited this page Apr 3, 2020 · 7 revisions

TOOL DEPRECATED

As for 3.3.0, this tool and associated features are deprecated. We specifically removed this due to complications with Boost long term support and the requirement of boost filesystem, which was causing issues with moving to UE4 as a simulation environment for GAMS. If you are interested in this feature, let us know, and we will try to prioritize its reinclusion. However, there is no planned resurrection for this tool at the moment.

This tool lives in v3.2.3, at the latest.


The Madara Bundler

To aid in transferring files between robotic agents, especially mission forensics, MADARA includes a specification for a bundle format that may contain numerous KBs, STKs, media files, documentation, binaries, scripts, and any other number of files that you may want to transfer as a single file. We base our bundle format on the Frictionless Data Format. Mabundle is available in the master branch.


Table of Contents


Main Features

The mabundle command-line interpreter is a full-featured process with interactive help (-h | --help). It includes the following capabilities:

  1. Configuration of sources and contributors to the bundle
  2. Configuration of name, description, version, and other meta data
  3. Automatic generation of creation timestamps and unique bundle ids
  4. Automatic configuration of data resources within standard directories
  5. Automatic tagging of STK start and end timestamps, size, and CRC hash codes for data resources
  6. Automatic generation of a standard manifest file for the bundle

There are dozens of command-line options above-and-beyond those listed above. These are just some of the major ones that may help with debugging. See -h and --help for more options


Standard

The tool and bundling approach adheres to the following directory conventions and naming standards:

Madara Bundle Specification


Command Line Arguments

options:
  [-ac|--contributor json] json of contributor info
  [-as|--source json]      json of source of resources
  [-d|--dest-path path]    directory to generate manifest to
  [-e|--description text]  description of bundle contents
  [-h|--help]              print help menu (i.e., this menu)
  [-k|--keyword word]      a keyword to associate with the bundle
  [-l|--license json]      json of a license
  [-s|--source-path path]  directory to read files from
  [-t|--title title]       the manifest title
  [-v|--version MAJ.MIN.REV] sets version to MAJOR.MINOR.REV

Example Usage

As an example of using most of the command line arguments, consider the following:

$MADARA_ROOT/bin/mabundle -ac "{ \"email\" : \"james.edmondson@shield.ai\", \"title\" : \"James Edmondson\", \"role\" : \"Senior Principal Research Scientist\", \"organization\" : \"Shield AI\" }" -as "{ \"email\" : \"david.kyle@shield.ai\", \"title\" : \"David Kyle\" }" -k "experiments" -k "outdoors" -k "search" -t "Demonstration for Navy Seals" -v 0.0.1 -n "new_bundle" -l "{ \"name\" : \"shield-ai-1.0.0\", \"title\" : \"Shield AI Proprietary License\" }" --description "Contains raw STKs and logs from experiments and demos performed over 1 week at the Navy Seal training grounds."