2.1.- Gazebo Models
2.2.- Gazebo Quadrotor Controller
2.3.- Gazebo Patches
4.- Thanks to...
Here you can find some information of the files provides to get a Quadrotor Simulator working on Gazebo.
You can find three groups of files:
1.- Gazebo models of the quadrotor and several worlds to make test.
2.- The Gazebo-Controller of the Quadrotor, that implements the dynamic model of Samir Bouabdallah (discussed on his tesis,
a very good work) to simulate the flight of the Quadrotor
3.- Patches for the Gazebo 0.10.0 core needes to get the Controller working
The Gazebo version used is 0.10.0
2.1.- Gazebo models:
On quadrotors_models.tar.gz you can find three differents Gazebo world:
quadrotor_caidalibre.world: it's a simple demostration of the physics engine, ODE used by Gazebo. You can see
how a quadrotors fall due to gravity force.
quadrotor.world: it's a simple world with a quadrotor. The idea is to see how you can connect with it using
QuadrotorSim, the Qt application that uses libgazebo to connect with the simulator
quadrotor_multiples.world: A world with to quadrotor. Used to see how you can work with multiples UAV.
2.2.- Gazebo Quadrotor Controller:
Controller Class implements the dynamic model developed by Samir Bouabdallah on his tesis. I use the force balance to
get the forces and torques applied to the quadrotor. This forces are calculated based on angular velocity of each rotors.
When I get the forces, I apply to the quadrotor using the Gazebo - Physics Engine.
I need to make little changes on the Gazebo core (on ODE component) in order to apply properly the forces.
2.3.- Gazebo Patches:
I need to make little changes on Gazebo Core:
-I need to add a new data structure to communicate with the Quadrotor Controller, and build it in libgazebo.
-I need to add a function to apply a certain force to a body in Gazebo. The actual function on Gazebo to set
forces, makes a sumatory of forces, I mean, add forces on each iteration. I develop a method to set the total
force applied, without sum.
-I need to add new functions on libgazebo to get the position, velocities and accelerations of a body (not a model)
in order to build a loopback to control the quadrotor.
It is a simple application on Qt, that uses libgazebo to communicate with the simulator. It implements several loopbacks
controllers (based on Lyapunov or PID) thanks to Samir tesis.
It read the data of a camera attached to the quadrotor con Gazebo, and the position, velocities, acceleration or forces too.
It is an example of how to interact with Gazebo-Quadrotor Simulator.
4.- Thanks to...:
Thanks to Samir Bouabdallah for his tesis and theory about Quadrotor model flight.
Thanks to Marco Cognetti who provides me the Gazebo model of the quadrotor, and several good indications to build the
Thanks to Andreas Bresser of his good ideas over Quadrotor.
2010. - A. David Pinelo Moruno