webotsmultiagentenv
This is an Webots environment with omnidirectional-robots for testing algorithms
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
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
Metadata Files
README.md
webotsMultiAgentEnv
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
- Navigate to worlds
- Double click empty.wbt
- Press play button in Webots
Owner
- Name: Guang
- Login: gy2256
- Kind: user
- Repositories: 2
- Profile: https://github.com/gy2256
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