ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Getting started in the world of drone programming

asked 2017-03-16 10:12:49 -0600

sep_vanmarcke gravatar image

Hey guys, I'am new in this site but i think i will pretty active in the next few months! My idea is program a drone so that it follows objects alone. I have some programming experience but i don't yet have a drone. I know that the Parrot drones can be programmed with ROS and i get the idea that people who get into this projects follow that path, i'am i correct? I found out recently that it's also possible to program DJI drones, how does that work?

I need the drone to have around 30 minutes of battery(ideally more, but if not possible that will do). The camera needs to be decent as well and i would also like the drone to be robust. (not fun burning $$).

So based on the above what drone would you recommend me, and how should i tackle this? (i'am thinking i need to study computer vision and learn to use OpenCV, what more?)

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2017-03-16 20:24:24 -0600

If you are new to drone programming, I would recommend you to start out with a simulator (unless you have many $$ to burn).

There is some options out there using the Gazebo simulator, check this video: it contains instructions on how to get it running in Ubuntu 14.04 and ROS Indigo:

(I reproduce the instructions here just for reference):

 -----------Install Ros indigo, Gazebo, Tum Simulator---------------

" Before install ROS and GAZEBO Ubuntu, you should install UBUNTU 14.0 in your machine " 

1. Install Git
- sudo apt-get install git

3. Instal ROS-GAZEBO
you can follow the instruction how to install of ROS 

4. Install Tum Simulator
- You can follow the instruction in or..

1. Create a workspace for the simulator

mkdir -p ~/tum_simulator_ws/src
cd ~/tum_simulator_ws/src
2. Download dependencies

git clone # The AR.Drone ROS driver
git clone
cd ..
rosdep install --from-paths src --ignore-src --rosdistro indigo -y
3. Build the simulator

4. Source the environment

source devel/setup.bash
How to run a simulation:

1. Run a simulation by executing a launch file in cvg_sim_gazebo package:

roslaunch cvg_sim_gazebo ardrone_testworld.launch
edit flag offensive delete link more


I will give that a go for the moment.

sep_vanmarcke gravatar image sep_vanmarcke  ( 2017-03-17 06:02:50 -0600 )edit

Excuse me, is it works with the latest ROS version(melodic)?.

Manu gravatar image Manu  ( 2019-02-04 12:56:09 -0600 )edit

I haven't tried it myself, why don't you give it a try?

Martin Peris gravatar image Martin Peris  ( 2019-02-27 18:05:47 -0600 )edit

answered 2017-07-04 07:01:19 -0600

updated 2017-10-09 07:40:30 -0600

Hello sep_vanmarcke,

You can use the SJTU_DRONE simulation, it's available here in this link:

Basically, this simulation provides to you the following features:

Sensor topics

forward looking camera : /drone/front_camera/image_raw

downward looking camera: /drone/down_camera/image_raw

sonar data: /drone/sonar

laser range data: /drone/laser

If you want a tutorial, there's this video to follow and see it working:

It presents the basics of a gazebo parrot ardrone simulation. You'll be able to program and send high level commands to the robot in a few minutes.

It's using RDS, but if you want to have it in your own machine, you can clone here:

Clone, install the dependencies and compile it.

It's using ROS indigo and gazebo 7.

Some features of the simulation:

Takeoff and Landing topics:

/drone/takeoff (std_msgs/Empty)

/drone/land (std_msgs/Empty)

Topics to switch between control modes:

/drone/posctrl (std_msgs/Bool)

/drone/velctrl (std_msgs/Bool)

Velocity or position commands:

/cmd_vel (geometry_msgs/Twist)

I hope it can help you!

edit flag offensive delete link more


As it is, this answer isn't very useful. Link only answers don't actually answer the question, they only tell the asker to go somewhere else. This answer would be greatly improved by putting the steps/code from the video in the answer.

jayess gravatar image jayess  ( 2017-07-31 11:04:24 -0600 )edit

Thanks for the feedback, I've improved the answer to give the same instructions there're in the video.

marcoarruda gravatar image marcoarruda  ( 2017-10-09 07:43:01 -0600 )edit

answered 2017-10-17 21:18:47 -0600

pavankumarbn gravatar image

updated 2018-12-18 02:33:05 -0600

Hello All!

I am also working with Drone Parrot 2.0 and my objective is to control drone using GUI and path planning functionality to cover autonomous flight using ROS and Python.

I have pushed the current status of the work to GIT. You may access if required as well please update if you can able do changes to it.

Here is the link of the repository:

it includes some unwanted files and code you can only concentrate on and files.

As of now, the current status is that

  1. You can control the drone with functionalities Take-Off, Land, Turn and Linear movements through GUI.

  2. You can also see trajectory based autonomous flight (Straight Line, Square, Rectangle, Triangle, Circle) to achieve information is fed through files.

  3. allows you to control drone using the keyboard.

  4. Dynamically NavData is also getting updated on GUI.

Screenshot -( )

Special Thanks to TUM and GAI_Tech!

WIth Regards, Pavan

edit flag offensive delete link more


Can you please update your answer with the relevant steps vs providing a link to the github repo and decription?

jayess gravatar image jayess  ( 2019-01-05 12:14:29 -0600 )edit

Question Tools



Asked: 2017-03-16 10:11:54 -0600

Seen: 5,142 times

Last updated: Dec 18 '18