Skip to content

Fast drone with Gazebo simulator

pasanci edited this page Jul 31, 2020 · 3 revisions

This project uses a motion controller that provides high speed. The motion controller is based on Model Prediction Control (MPC). In this project, two different missions are included:

  • Basic mission: A basic mission (formulated in a Python file) that executes simple movements.
  • Teleoperation: An execution where the user teleoperates the drone using the keyboard.

1. Basic mission

To execute this mission, perform the following steps:

  • Change directory to this project:

      $ cd $AEROSTACK_STACK/projects/fast_drone_gazebo
    
  • Execute the script that launches Gazebo:

      $ ./launcher_gazebo.sh
    
  • Wait until the following window is presented:

  • Open a new terminal and change directory to the project:

      $ cd $AEROSTACK_STACK/projects/fast_drone_gazebo
    
  • Execute the script that launches the Aerostack components for this project:

      $ ./main_launcher_mission.sh
    
  • Execute the following command to run the mission (this command executes the mission defined in configs/mission/mission.py):

      $ rosservice call /drone111/python_based_mission_interpreter_process/start
    

The following video illustrates how to launch the project:

Launch

The following video shows the mission execution:

Launch

2. Teleoperation

Perform the following steps:

  • Change directory to this project:

      $ cd $AEROSTACK_STACK/projects/fast_drone_gazebo
    
  • Execute the script that launches Gazebo:

      $ ./launcher_gazebo.sh
    
  • Wait until the Gazebo window is presented.

  • Open a new terminal and change directory to the project:

      $ cd $AEROSTACK_STACK/projects/fast_drone_gazebo
    
  • Execute the script that launches the Aerostack components for this project:

      $ ./main_launcher_teleoperation.sh
    
  • Click on the window corresponding to the keyboard teleoperation interface and teleoperate the drone using the appropriate keys.

This interface is shown below.

  • To stop the processes execute the following script:

      $ ./stop.sh
    
  • To close the inactive terminals:

      $ killall bash
    
Clone this wiki locally