Difference between revisions of "MarioCL-Drone01"

From robotica.unileon.es
Jump to: navigation, search
m
m
 
Line 5: Line 5:
 
=Interfacing with AR.Drone=
 
=Interfacing with AR.Drone=
  
==Controlling the AR.Drone using the Wii-mote on '''ROS'''==
+
==Controlling the AR.Drone using the Wii-mote on ROS==
  
 
'''Requirements'''
 
'''Requirements'''

Latest revision as of 09:35, 25 June 2014

Overview

The current work with AR.Drone from Parrot consists on evaluating different ways to interface a PC with AR.Drone.

Interfacing with AR.Drone

Controlling the AR.Drone using the Wii-mote on ROS

Requirements

  • Download the Mobile Robotics Lab at SIUE repository [siue-ros-pkg]. This repository contains two packages ardrone_driver and ardrone_teleop which must to be installed in the stacks directory.


Procedure

  • Verify AR.Drone boot sequence is completed and we can observe green leds on the bottom.
  • Enable the WIFI connection with the AR.Drone.
  • Launching ROS kernel:
      :~$ roscore
  • Loading drone driver:
      :~$ rosrun ardrone_driver ardrone_driver

This command connects drone at localhost address.

  • Running the node to operate the drone
       :~$ rosrun ardrone_teleop ardrone_teleop.

In ardrone_driver directory we can find a script to launch both nodes, the driver and remote operating. To launch this script use:

       :~$ roslaunch <$ROS_ARDRONE_DRIVER_PATH>/ardrone_wiimote_teleop.launch
  • To use the wiimote, run the python script into the wiimote packages
       :~$ rosrun wiimote wiimote_node.py
  • Wiimote application is waiting to press buttons 1 and 2 during at least 6 seconds. Next image describes the control layout
Control layout.jpeg

ARDRone Driver Properties

TOPICS

To obtain the topic list for node use the followed command:

       :~$ rostopic list -v

The list of topic for ARDrone driver is:

Published topics:

       /ardrone/imu/data [sensor_msgs/Imu] 1 publisher
       /ardrone/state [ardrone_driver/ARDroneState] 1 publisher
       /cmd_vel [geometry_msgs/Twist] 1 publisher

Subscribed topics:

       /cmd_vel [geometry_msgs/Twist] 1 subscriber

MESSAGE

To obtain the message list for a topic (ex /cmd_vel) use the followed command:

       :~$ rostopic type /cmd_vel

The message list for topic is

       /ardrone/imu/data
               sensor_msgs/Imu
       /ardrone/state
               ardrone_driver/ARDroneState
       /cmd_vel
               geometry_msgs/Twist

SERVICE

To obtain the service list use the followed command:

       :~$ rosservice list

The service list for topic is

       /ardrone/imu/calibrate
       /ardrone/land
       /ardrone/reset
       /ardrone/takeoff
       /ardrone_teleop/get_loggers
       /ardrone_teleop/set_logger_level
       /driver_drone/get_loggers
       /driver_drone/set_logger_level
  • Finally the drone flying:

<wikiflv width="300" height="250" logo="true">/videos/Ar.drone.ros.flv</wikiflv>


Using URBI to monitor and control AR.Drone

URBI balltracking.png
  • Video trial:

<wikiflv width="300" height="250" logo="true">/videos/Ar.drone.urbi.flv</wikiflv>

Controlling drone with joystick or joypad using SDK Application

Requirements

  • There are some packages required to compile the SDK code.
       :~$ sudo apt-get install libgtk2.0-dev
       :~$ sudo apt-get install libsdl1.2-dev
       :~$ sudo apt-get install libiw-dev

Procedure

  • Download the SDK from the ARDrone development Wiki
  • Unpack to a folder of your choice
  • First we need to compile the base SDK.
       :~$ cd ARDroneAPI/ARDroneLib/Soft/Build
       :~$ make

and let it build. Within ARDroneLib there will now be a targets_versions folder with the compiled code.

  • Now we will compile the navigation example as it is the most verbose and has support for a PS3 controller o joystick
       :~$ cd ARDroneAPI/Examples/Linux/Navigation/Build
       :~$ make
       :~$ cd ARDroneAPI/ARDroneLib/Version/Release
  • Run the example
       :~$ ./ardrone_navigation
SDK application.png