COSM

Overview

Core Swarm (COSM) is a middleware-esque library providing:

  • A Platform Abstraction Layer (PAL): A common API to different platforms (ARgoS, ROS, etc) which client applications can write to.

  • A Hardware Abstraction Layer (HAL): A common API to different agent/robot types which client applications to write to.

  • A collection of reusable algorithms and scaffolding to maximize reuse across multi-agent system projects and reduce development time. High level summaries of COSM’s main modules providing reusable (but not necessarily generic functionality in MAS projects) are below; for full details see the API.

    • Artificial potential fields for navigation and flocking: cosm::apf2D.

    • Platform Abstraction Layer (PAL): cosm::pal.

    • Hardware Abstraction Layer (HAL): cosm::hal.

    • Task allocation. Various methods from the swarm robotics literature, most of which do not require communication.

    • Flocking. Also metrics and collectors. cosm::flocking and cosm::spatial::strategy::flocking.

    • Common agent subsystems: cosm::subsystem

      • Sensing and Actuation (SAA)

      • Perception

    • Foraging: block distribution, block motion, injection of perfect information about blocks and caches. Metrics and collectors. cosm::foraging.

    • General kinematics definitions for interfacing with ROS and other platforms: cosm::kin.

    • Convergence measurements of different types; metrics and collectors. cosm::convergence.

    • Injection of environmental and population dynamics; metrics and collectors. cosm::tv.

    • Simple management of arena state via grid: cosm::arena.

Currently Supported Platforms

Currently Supported Robots

Turtlebot3 (ROS)marXbot (ARGoS)IRIDIA Drone (ARGoS)
John Harwell
John Harwell
Researcher and Engineer

Experienced embedded systems engineer whose research interests include multi-agent modeling and behaviors, swarm intelligence, bio-inspired algorithms and multi-robot systems, and computational optimization.