Skip to main content

A problem suite focused on evaluating the ability of autonomous agents to develop emergent communication strategies in cooperative navigation tasks

Project description

Cooperative Navigation Suite: A Testbed for Emergent Communication in Asymmetric Multi-Agent Systems

Overview

conav_suite is a research platform for studying emergent communication protocols in cooperative multi-agent systems. Built as an extension of the Multi-Agent Particle Environment (MPE) from the Farama Foundation, conav_suite provides a flexible testbed for developing and evaluating communication strategies between agents with asymmetric information.

Key Features:

  • Asymmetric Information : Aerial agents with global vision and ground agents with local perception
  • Diverse Scenarios : Eight unique problem configurations with varying obstacle arrangements
  • Dynamic Environments : Configurable obstacle placements and agent/goal positions
  • Communication Challenge : No predefined communication protocol—agents must develop their own language
  • PettingZoo Compatible : Follows the PettingZoo API for easy integration

Environment Description

In conav_suite, agents must navigate to goal positions while avoiding obstacles. The core challenge emerges from the asymmetric information structure:

  • Aerial Agent : Has global visibility of all obstacles (both large and small)
  • Ground Agent : Can only perceive small obstacles in its vicinity

Large obstacles are constrained to specific regions defined by each problem instance, while small obstacles can appear anywhere in the environment. Start and goal positions are placed outside the large obstacle regions.

The aerial agent must develop effective communication strategies to guide the ground agent safely to its goal, without a pre-defined communication protocol.

Research Motivation

conav_suite draws inspiration from the Lewis Signaling Game , a game-theoretic framework for studying the emergence of communication. The environment serves as a testbed for several open research questions:

  • How do agents develop communication protocols without pre-defined structures?
  • What makes communication efficient in asymmetric information settings?
  • How do different environmental configurations affect emergent communication?
  • Can agents develop context-dependent language and high-level directives?

These questions have applications in robotics, autonomous systems coordination, human-AI interaction, and fundamental understanding of communication emergence.

Installation

From PyPI

pip install conav-suite

From Source

git clone https://github.com/ethanmclark1/conav_suite.git
cd conav_suite
pip install -e .

Dependencies

Required packages are automatically installed with the above methods, but can also be installed manually:

conda env create -f environment.yml

Usage

Basic Example

import conav_suite

# Create environment
env = conav_suite.env()

# Reset environment with a specific problem instance
env.reset(options={'problem_instance': 'bisect'})

# Get initial observation
observation, reward, termination, truncation, info = env.last()

# Take a step in the environment
action = env.action_space(env.agent_selection).sample()  # Replace with your agent's policy
env.step(action)

# Close environment when done
env.close()

Problem Instances

conav_suite offers eight distinct problem configurations that define constraint regions for large obstacle placement:

Problem Instance Visualization
bisect 1691433763627
circle 1691433778699
corners  1691433832902
cross 1691433961564
staggered 1691433856331
quarters 1691433864962
stellaris 1691433878432
scatter 1691433899914

Note: The red regions in these visualizations represent areas where large obstacles can appear. Agents, goals, and small obstacles can be placed in any non-red area. This creates distinct navigational challenges across different problem instances, as the aerial agent must effectively communicate the locations of large obstacles (which only it can see) to the ground agent.

API Reference

conav_suite follows the PettingZoo API. Here are the key components:

Environment Creation

env = conav_suite.env()

Environment Configuration Options

env = conav_suite.env(
    num_agents=1,                  # Number of ground agents
    num_large_obstacles=4,         # Number of large obstacles
    large_obstacle_radius=0.05,    # Size of large obstacles
    num_small_obstacles=10,        # Number of small obstacles
    small_obstacle_radius=0.02,    # Size of small obstacles
    render_mode=None,              # None, "human", or "rgb_array"
    max_cycles=100                 # Maximum steps per episode
)

Agent Observations

  • Ground Agent : Position (2), goal position (2), other agent positions (2 × num_agents-1), small obstacle positions (2 × num_small_obstacles)
  • Aerial Agent : Full state observation of all entities

For more details, refer to the PettingZoo API documentation.

Contributing

We welcome contributions to conav_suite! You can contribute in several ways:

  • Bug Reports : If you discover a bug, please submit a report via the issues tab with a detailed description and, if possible, a code sample.
  • Feature Requests : Have ideas to improve conav_suite? Post your suggestions in the issues tab with a detailed explanation.
  • Pull Requests : Made enhancements? Submit a pull request! We appreciate all help to make conav_suite better.

Support

If you encounter issues or have questions, please:

  1. Create an issue in the GitHub repository
  2. Contact me directly at eclark715@gmail.com

License

conav_suite is open-source software licensed under the MIT license.

Related Work

Our environment builds upon these foundational works:

@article{lowe2017multi,
  title={Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments},
  author={Lowe, Ryan and Wu, Yi and Tamar, Aviv and Harb, Jean and Abbeel, Pieter and Mordatch, Igor},
  journal={Neural Information Processing Systems (NIPS)},
  year={2017}
}

@article{mordatch2017emergence,
  title={Emergence of Grounded Compositional Language in Multi-Agent Populations},
  author={Mordatch, Igor and Abbeel, Pieter},
  journal={arXiv preprint arXiv:1703.04908},
  year={2017}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

conav_suite-0.0.2.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

conav_suite-0.0.2-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file conav_suite-0.0.2.tar.gz.

File metadata

  • Download URL: conav_suite-0.0.2.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for conav_suite-0.0.2.tar.gz
Algorithm Hash digest
SHA256 c8766dc750d4aa2707dd2ceade60bf4c9834ba17ccfee628d17fb3afd2f2af16
MD5 7630648f98783ddc715a5b7e6e66d69e
BLAKE2b-256 5aa1a7598b7945a1ded698b347063b4b2b482059fd66994ff6cbc3d7fa6be8a4

See more details on using hashes here.

File details

Details for the file conav_suite-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: conav_suite-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for conav_suite-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a7dbedf6189b3430484067995f50531804852436302d29af934adfe4864545f8
MD5 6a52f727f383d06e63686e588042a5e7
BLAKE2b-256 f6c6aad995bf2bc2c13f0f19867bfb3f58e2f99e9418bf1c09f289de5c568feb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page