Designing & Implementing an Optimal Control System of an Overactuated Hexacopter with Co-axial Tilt-Rotors for Efficient Omnidirectional Flight in Simulation(Gazebo) using ROS & Python. Learning about dynamics of a basic UAV and further implementing that knowledge in understanding the various dynamics of our system.
Drone aviation is an emerging industry with possible applications in agriculture, healthcare, e-commerce as well as traffic control. We were interesting in getting first hand experience in Dynamics of a UAV to get a firm grasp on the principles needed to work with drones in the future.
Extending the maneuverability of unmanned areal vehicles promises to yield a considerable increase in the areas in which these systems can be used. Some such applications are the performance of more complicated inspection tasks and the generation of complex uninterrupted movements of an attached camera. In our project, we our designing and implementing a control system for a novel aerial platform that combines the advantages of existing multi-rotor systems with the agility of omnidirectionally controllable platforms. We are using a hexacopter with co-axial tiltable rotors(omav) allowing the system to decouple the control of position and orientation.
This project involves understanding key concepts of Dynamics of UAVs, Modern Robotics, Control Systems, ROS, Gazebo which is essential knowledge to understand and work in the field of Robotics
Our full project report can be found here
Brief Presentation can be found here
Detailed Presentation can be found here
- To learn about different control systems
- Understanding Dynamics of a UAV and of our system(omav)
- Design a Control System for our model(omav)which is a model of hexacopter modelled by ETH-Zürich
- Implementing the Control System in Simulation(Gazebo)
- ROS Noetic
- Gazebo
- Python 3
- Modern Robotics
- Control Systems
👨💻Eklavya-Copter-Control
┣ 📂assets # Installation.md & all reference gifs, images
┣ 📂report # Project Report & Presentation
┣ 📂rotors_comm # msg files for WindSpeed
┣ 📂rotos_description # All urdfs and meshes
┃ ┣ 📂meshes
┃ ┣ 📂urdf
┃ ┃ ┗ 🗃️omav.xacro # Drone Model
┃ ┣ 🗃️CMakeLists.txt
┃ ┗ 🗃️package.xml
┣ 📂rotors_gazebo # Launch Files, World Files & other Gazebo resources
┃ ┣ 📂launch
┃ ┃ ┗ 🗃️mav.launch # Main Launch File
┃ ┣ 📂models
┃ ┣ 📂resource
┃ ┣ 📂worlds
┃ ┃ ┗ 🗃️basic.world # World used in Gazebo
┃ ┣ 🗃️CMakeLists.txt
┃ ┗ 🗃️package.xml
┣ 📂rotors_gazebo_plugins # All Gazebo Plugins
┣ 📂scripts # Controller Python Scripts
┃ ┣🗃️control_omav.py # Main Controller Script
┃ ┣🗃️pid_omav.py
┃ ┣🗃️force_desired.py
┃ ┣🗃️moment_desired.py
┃ ┣🗃️moment_force_allocation.py
┃ ┣🗃️speed.py
┃ ┗🗃️takeoff.py # Drone Testing Script
┣ 🗃️LICENSE
┣ 🗃️README.md
┣ 🗃️dependencies.rosinstall
┣ 🗃️rotors_demos.rosinstall
┣ 🗃️rotors_hil.rosinstall
┗ 🗃️rotors_minimal.rosinstall
- Ubuntu 20.04
- ROS Noetic
- Gazebo Sim
- It is recommended to install Gazebo along with ROS and not seperately
Installation Guide For Forkers
Installation Guide For beginners
Open two terminal windows and run the following commands
- Terminal 1
source ~/catkin_ws/devel/setup.bash
roslaunch rotors_gazebo mav.launch mav_name:=omav
- Terminal 2
source ~/catkin_ws/devel/setup.bash
cd ~/Eklavya-Copter-Control/scripts
chmod +x .
python3 control_omav.py
Control System Controller and Sensor Readings, Reference Data Flowchart Simplified code structure
Designing & Implementing an Optimal Control System of an Overactuated Hexa-copter with Co-axial Tilt-Rotors for Efficient Omnidirectional Flight in Simulation(Gazebo) using ROS & Python. Learning about the dynamics of a basic UAV and further implementing that knowledge in understanding the various dynamics of our system.
- Designing Optimal Control System for Position Control using PID Algorithm
- Designing Optimal Control System for Attitude Control
- Implementing Control System with PID Tuning in Simulation(Gazebo) for reaching arbitrary altitude
- Implementing Control System with PID Tuning in Simulation(Gazebo) for reaching Co-ordinates in free space
- Implementing Control System with Tuning in Simulation(Gazebo) with decoupled Position and Orientation
- Improve Tuning, Control Algorithm for Efficient, Accurate, Stable and Fast Flight with decoupled Position and Orientation
- Achieve Stable Flight in presence of external disturbances like Wind,...
- Exploring different Control Systems & Approaches to improve performance of system
- Implement obstacle avoidance
- SRA VJTI Eklavya 2022
- ETH-Zürich : ethz-asl/rotors_simulator Repository for the plugins as well as the model of the drone.
- Tim Wescott for the paper PID without PhD which was extremely illuminating for beginners in PID
- Our mentors Sagar Chotalia, Jash Shah and Ayush Kaura for their guidance throughout the whole project
@Inbook{Furrer2016,
author="Furrer, Fadri
and Burri, Michael
and Achtelik, Markus
and Siegwart, Roland",
editor="Koubaa, Anis",
chapter="RotorS---A Modular Gazebo MAV Simulator Framework",
title="Robot Operating System (ROS): The Complete Reference (Volume 1)",
year="2016",
publisher="Springer International Publishing",
address="Cham",
pages="595--625",
isbn="978-3-319-26054-9",
doi="10.1007/978-3-319-26054-9_23",
url="http://dx.doi.org/10.1007/978-3-319-26054-9_23"
}