This repo contains ROS2 packages for Multi-Agent Reinforcement Learning (MARL) development on simulated and real Turtlebots.
The main motivation behind this repo is to implement multi-agent exploration on turtlebots using RL.
This includes a custom sim environment built from scratch and uses slam_toolbox for SLAM.
Many of the packages here that handle the integration of simulation, sensing, controls etc. have been adapted from my other repo where I built all of this from scratch to implement my version of Extended Kalman-Filter feature-based SLAM on a real turtlebot: https://github.com/ME495-Navigation/slam-project-GogiPuttar
This repository consists of several ROS2 packages
nuturtle_description- 3D models of the nuturtle for simulation and visualization.turtlelib- CMake Library with functions for control and SLAM of a differential drive robot
nusim- Loads the world consisting of the robot, arena and obstacles, and simulates the robot motion, control and sensors, akin to a real robot.nuturtle_control- Handles the control and sensing related to the wheels of the robotnuslam- Performs EKF SLAM using the turtlelbot
multisim- Generates and simulates exploration environments with multiple robots. (TODO)multicontrol- Controls multiple robots. (TODO)multislam- Usesslam_toolboxfor multi-agent centralized SLAM. (TODO)multiRL- Uses RL for multi-agent exploration. (TODO)