MarioCL-Drone01
Contents
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
- Install [ROS]
- 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
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
- 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