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) |
---|---|---|