Sign inSign up

felixfi/hippodrone

By felixfi

Updated almost 5 years ago

A complete drone Gazebo simulation with GenoM3 components, Fiacre, TINA, Hippo models.

Image
1

290

felixfi/hippodrone repository overview

The most updated version of this README is available here: https://redmine.laas.fr/projects/hippodrone/gollum/index

This container contains a complete simulation and control of a drone flying around. The drone is controlled with 5 GenoM3 components identical to the ones used on the real drones (nhfc, maneuver, pom, rotorcraft, optitrack). The simulation is done in Gazebo, with a plugin simulating the effects of the propellers velocity and resulting forces on the quadcopter.The simulation also provides mocaps and IMU data as to feed the GenoM3 components which localize the drone.

Prerequisites:

You need to have docker installed ;-)... but also gzclient (the gazebo client) as we run the Gazebo display on the host (version 9 or 11 seems to works fine).

How to run it:
Regular GenoM3 version

You need to open two terminals.

Terminal 1:

Enlarge the terminal as it will be split in 6 subpanes.

docker run -it --rm --name hippodrone felixfi/hippodrone:bionic

At the docker prompt type:

./start-simu-docker.sh

This will open a tmux multipane window containing the 5 GenoM3 components and an eltclsh window.

Terminal 2: Set two environment variables:

export GAZEBO_MASTER_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' hippodrone)

hippodrone is the name of the running container you launched in terminal 1

export GAZEBO_MASTER_URI=$GAZEBO_MASTER_IP:11345

then launch the gazebo client:

gzclient --verbose

The Gazebo window should show up with a quadcopter idle in the middle of the environment.

Back in Terminal 1

At the eltclsh > prompt in the bottom left pane type the three commands:

source start.tcl
init
setup

At this point the drone should start spinning its propellers and hoover a few centimeters above ground. Type:

fly_around

and it will fly to random positions in a 10x10x10 meter cube. When you have enough, you can break the fly_around with Ctrl-c and type land to get the drone to land. Then, kill the experiment with kill-all and exit the eltclsh pane/window with Ctrl-d.

Hippo version

This version runs the same experiment, except that instead of the 5 GenoM3 modules flying the drone, we now use their formal model in Fiacre with the Hippo engine.

After starting the docker as above, use the script ./start-simu-hippo-docker.sh instead of ./start-simu-docker.sh .

The setup is different, the top pane is the gzserver one, the middle pane is the hippo traces one, and the bottom pane is the eltclsh one.

The rest of the demo is the same.

Note in the Hippo window the messages you get due to temporal constraints being violated... This may vary a lot according to the CPU you have.

More information:

This experiment runs exactly the same on the real drones at LAAS in our flying arena.

The drone experiments: https://redmine.laas.fr/projects/drone-v-v/gollum/index

GenoM3: https://git.openrobots.org/projects/genom3

Fiacre: http://projects.laas.fr/fiacre/

Tina: http://projects.laas.fr/tina/

Hippo: http://projects.laas.fr/hippo/

A paper describing a similar experiment with an outdoor wheeled robot: https://hal.laas.fr/hal-03017661v4

Tag summary

Content type

Image

Digest

Size

629.9 MB

Last updated

almost 5 years ago

docker pull felixfi/hippodrone