Group Autonomy for Mobile Systems
Clone or download
jredmondson * Updated the namespaces that are generated by
* Updated dynamic_simulation.cpp to use new defaults for sending
Latest commit 33573d6 Nov 10, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Apply modifications to NoGraphviz doxy file Jul 2, 2018
installer * Fixed issue with deb_installer_ia64 and ld loading Aug 15, 2018
resources * Removed one of the #expands and the unnecessary variable expansion … Mar 26, 2018
src * Updated the namespaces that are generated by Nov 10, 2018
tests Ros2gams plugins (#62) Oct 24, 2018
.travis.yml Android Build Fixes (#61) Oct 22, 2018
BUILD Adding bazel build files Aug 21, 2018
LICENSE.txt * SIMS: Split Zone Coverage sims into zone_coverage_line, zone_covera… Feb 2, 2016 Update Aug 15, 2018
doxygen_help_gen.mpb * Initial commit of version 0.6.0 Mar 24, 2015
ros_lib.mpb first working prototype for rosbridge working in the direction from R… Jun 1, 2018
simulation.mpc Remove ACE dependency Jun 1, 2018
using_android.mpb Automated boost library for Android and simplified build process Jul 2, 2018
using_boost.mpb Ros2gams shield schema (#43) Sep 19, 2018
using_capnp.mpb Add generated types (#31) Aug 27, 2018
using_madara.mpb Add nothreadlocal flag Sep 5, 2018
using_nortti.mpb Add nortti MWC feature flag. When enabled, GAMS will avoid using type… Apr 17, 2018
using_ros.mpb Ros2gams shield schema (#50) Oct 2, 2018

Build Status Documentation Status Javadocs

About GAMS

The Group Autonomy for Mobile Systems (GAMS) project at Carnegie Mellon University is intended to provide a distributed operating environment for control of one or more unmanned autonomous systems (UAS). The repository is composed of C++, Java, MADARA, and some LUA bindings that enable a single person to control and understand information from a swarm of agents, robots, or UAS.

GAMS is an extension of an earlier project called SMASH.


See the instructions at for a list of methods for installing GAMS and its prerequisites. For Linux users, we have scripts in $GAMS_ROOT/scripts/linux that are useful for not only building but also getting the latest version of repositories. See the script in the linux directory for more information (pass help to it).

For Windows users, you will need to download the repositories for ACE, MADARA and GAMS along with whatever options you are wanting to compile in. Then, you can use the helpful base_build.bat script in %GAMS_ROOT%\scripts\windows to build GAMS and prerequisites. Pass help from command line to see options.

For the base_build scripts on Linux or Windows, you will need to at LEAST pass in "madara gams" in on a first build. After that, you can pick and choose what you want to update. Tests, vrep, and other options will need to be added by most users. There is a build_c++ script that wraps common options for most users.

Generating GAMS projects

We have a script called in $GAMS_ROOT/scripts/projects that is very useful for generating almost any kind of GAMS or MADARA project. See -h for usage information. The most common GAMS Project Configurator (GPC) usage is the --new-algorithm option and the many options for configuring a VREP simulation. Again, see the help information for specifics.

Compiling GAMS projects

After you've generated a project with the GPC, you should see two scripts in your project directory (action.bat|sh). The .bat file is used by Visual Studio users to compile GAMS projects. The .sh file is used by Linux g++ users to compile GAMS projects. Pass "help" to the script for usage information.


  1. Please see our helpful Wiki which include guides at:

  2. Please see our full c++ doxygen documentation at:

    Java docs are available here:

  3. Issues can be posted to our Issue system (which hasn't gotten any usage):

  4. The SEI at CMU created an Autonomy Tutorial Series that covers usage of GAMS to create multi-agent autonomy.

  5. If you are still having trouble, feel free to contact me directly at: