Comparative Study of Twin Delayed DDPG (TD3) and Soft Actor-Critic (SAC) for Autonomous Drone Navigation
This project aims to develop and compare the performance of Twin Delayed DDPG (TD3) and Soft Actor-Critic (SAC) algorithms for autonomous drone navigation. The evaluation will focus on navigation efficiency, obstacle avoidance, and learning efficiency in simulated environments using ROS2 and Gazebo.
For a detailed overview of the project, including background information, methodology, and repository structure, please refer to the Project Overview document.
Autonomous-Drone-Navigation-TD3-vs-SAC/
├── data/ # Data collected during simulations
├── docs/ # Documentation and project reports
├── envs/ # Gazebo environment files and configurations
├── models/ # Trained DRL models (PPO and SAC)
├── notebooks/ # Jupyter notebooks for analysis
├── scripts/ # Python scripts for training and evaluation
│ ├── td3/ # PPO related scripts
│ ├── sac/ # SAC related scripts
├── src/ # Source code for ROS packages and other implementations
├── tests/ # Test scripts and validation cases
├── README.md # Project overview and setup instructions
├── LICENSE # License information
└── .gitignore # Files and directories to ignore in git
- Ubuntu 22.04
- Git
- Python 3.8+
- pip (Python package installer)
- ROS2 Humble
- Gazebo (compatible with ROS2 Humble, typically Gazebo 11 or newer)
- ArduPilot
- Cube Orange
- Raspberry Pi 5
- MAVROS
- QGroundControl (QGC)
- NumPy
- Stable Baselines3
- Gym
- Matplotlib (for plotting and visualization)
- pandas (for data analysis)
- Jupyter Notebook (for interactive development)
- Colcon (ROS2 build tool)
- Wget (for downloading dependencies)
- curl (for downloading dependencies)
-
Install ROS2 Humble
-
Install Gazebo `
-
Install MAVROS
-
Clone and Set Up ArduPilot with Gazebo for Simulation
-
Set Up the Environment for Gazebo Models and Plugins
-
Install Python Libraries
-
Install QGroundControl
-
Start the Gazebo Simulation
sim_vehicle.py -v ArduCopter -f gazebo-iris --console --map
-
Launch MAVROS
ros2 launch mavros mavros.launch.py
-
Train the TD3 Model
-
Evaluate the TD3 Model
-
Train the SAC Model
-
Evaluate the SAC Model
Please see the CONTRIBUTING.md file for guidelines on how to contribute to this project.
This project is licensed under the MIT License.
For any questions or issues, please open an issue on the GitHub repository or contact the project maintainer.