Skip to content

ohanoch/MSS_drone_tag_project

Repository files navigation

FLYING AR-DRONE USING TAGS

ABOUT

The goal of this project is to have an AR-Drone fly and obtain instructions from markers (aka tags) on the wall in order to direct it. The code is built in such a way that the movement is not hard coded, but the instruction of each tag is - thus you can change the placements of the tags on the walls and without changing the code the drone should change its movement accordingly.

In order to obtain this goal we use ROS Kinetic in addition to some open-source github repositories. Tested on Ubuntu 16.04.

NOTE: The main package with my code is drone_application. Other packages included here are packages which I used and may have edited slightly, thus it may be easier to just copy them from here rather than copy the original repositories and try to edit them to what I have.

Preperation Instructions

Running Instructions

  • Real Drone:

    • Connecting to drone:
      roslaunch drone_application launch_drone.launch
    • Starting ar_track_alvar:
      roslaunch drone_application pr2_indiv_no_kinect_edited.launch
    • View drone camera output in real time:
      rosrun image_view image_view image:=/ardrone/front/image_raw
    • Run code and create log file:
      rosrun drone_application real_drone_flight.py | tee ~/catkin_ws/src/drone_application/logs/real_drone_flight_$(date +%Y%m%d%H%M%S).log
    • NOTE: In order to debug effectivly I found it useful to have a screen capture program (like "Simple Screen Recorder") capture the screen with the code running aswell as the drone camera image.
    • Kill switch in case something goes wrong:
      rostopic pub -1 /ardrone/land std_msgs/Empty
  • Gazeebo Simulator:

    • Run simulator: roslaunch drone_application test_simulator_tags4.launch
    • View drone camera output in real time:
      rosrun image_view image_view image:=/ardrone/front/image_raw
    • Run code and create log file: rosrun drone_application real_drone_flight.py | tee ~/catkin_ws/src/drone_application/logs/simulator_drone_flight_$(date +%Y%m%d%H%M%S).log

Editing code and testing

  • You can use markerTester2.py to be able to pick up the drone and point at the tags and see the values that ar_track_alvar gives you while the drone captures the tags in different positions. To run markerTester2.py use:
    rosrun drone_application markerTester.py

  • It was convenient for me to do this while haveing the drone camera output viewed on my pc and using a screen capturing tool to see the output of markerTester2.py side by side with what the camera sees

Useful Sources

Licenses

This Project is released under GPL v.3 which can be found in the license file.

Different reposetories used in this project have different open-source licenses and should be checked in the repositories themselves. As of writing this readme file the following licenses apply:

  • tum simulator: "We release our code under the BSD license. However, as we strongly build upon Gazebo and HectorSLAM, corresponding licenses apply as well. "

  • gazebo_models: Apache License

  • ar_track_alvar: LGPL-2.1

  • ardrone_autonomy: BSD License

Credits

Made by Or Hanoch
Project Manager: Shunmuga Pillay
Professional Adviser: Pravesh Ranchod

About

Flying drone and movement according to tags

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published