webotsmultiagentenv

This is an Webots environment with omnidirectional-robots for testing algorithms

https://github.com/gy2256/webotsmultiagentenv

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

This is an Webots environment with omnidirectional-robots for testing algorithms

Basic Info
  • Host: GitHub
  • Owner: gy2256
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 155 KB
Statistics
  • Stars: 6
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 1
Created about 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

webotsMultiAgentEnv

DOI

Demonstration

https://youtu.be/FuiIKco8w7E

Please consider citing this work if you find it helpful. All support is appreciated. @software{Yang_Webots_Multi-agent_Environment_2023, author = {Yang, Guang}, doi = {10.5281/zenodo.8287825}, month = aug, title = {{Webots Multi-agent Environment}}, url = {https://github.com/gy2256/webotsMultiAgentEnv}, version = {0.0.1}, year = {2023} }

This is a Webots environment with omnidirectional robots for testing algorithms. The environment contains four robots that each can take into a list of waypoints in x and y coordinates. The program then takes into the desired speed (target_speed), calculates the corresponding velocity profile, and generates a state reference for each MPC controller to track. The MPC implementation is in controllers/supervisorcontroller/MPCcontroller.py.

Dependencies (tested)

Webots 2023a (Download: https://cyberbotics.com/#download) python: "3.10.12" cvxpy: "1.3.2" numpy: "1.24.4"

Robot Design

There are in total of four omnidirectional robots in the simulation world. Each robot runs its own controller (controllers/drivemyrobot/drivemyrobot.py, let's call this a local controller), and it contains a GPS, transmitter, and receiver. The local controller takes in velocity commands through the receiver (in String format) and sends out its own position, velocity through the transmitter. Note the channel for the receiver and transmitter are unique to each robot. The local controller also has a function that computes the inverse kinematics, such that the received velocity commands can be computed to generate speed for each wheel. This part of the code should not be changed.

The supervisor controller (controllers/supervisorcontroller/supervisorcontroller.py) is in charge of performing centralized control among all robots. It listens to all robots' state information through receivers (with different channels) and broadcasts velocity commands through transmitters (also with different channels). You can change agentcmdvel in supervisor_controller.py to control the robots.

How to run environment

  1. Navigate to worlds
  2. Double click empty.wbt
  3. Press play button in Webots

Owner

  • Name: Guang
  • Login: gy2256
  • Kind: user

Robotics Researcher

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Yang"
  given-names: "Guang"
  orcid: "https://orcid.org/0000-0003-1181-4862"

title: "Webots Multi-agents Environment"
version: 0.0.1
doi: 10.5281/zenodo.8287825
date-released: 2023-08-27
url: "https://github.com/gy2256/webotsMultiAgentEnv"

GitHub Events

Total
  • Watch event: 1
  • Push event: 1
Last Year
  • Watch event: 1
  • Push event: 1