Introducing Bebop

The following image shows the Parrot Bebop quadrotor craft, which will be discussed in this section. This quadrotor is a larger quadrotor with more advanced features than the Crazyflie. The Bebop gathers data from onboard sensors such as the three-axes accelerometer, gyroscope, magnetometer, ultrasound sensor and pressure sensor to provide optimal stable control for flight and agile maneuvers. This ability for stable flight allows the pilot to obtain quality video and images with the onboard camera.

Introducing Bebop

Bebop

Parrot is a company, with headquarters in Paris, France, that produces products such as the Bebop quadrotor. As of November 2016, there is now a second version of Bebop: the Bebop 2. The Bebop 2 is described in detail on the Parrot website at https://www.parrot.com/us/drones/parrot-bebop-2#parrot-bebop-2. Some differences between the Bebop 1 and Bebop 2 are identified in the following table:

Factors

Bebop 1

Bebop 2

Price

$399.99

$549.99

Battery life

11 minutes

25 minutes

Max horizontal speed

13 m/s

16 m/s

Max climbing speed

2.5 m/s

6 m/s

Signal range

up to 250 m

up to 300 m

GPS

12 satellites max

19 satellites max

Camera

14 megapixel; 180° fisheye

14 megapixel; 180° fisheye

(more tilted towards ground)

Video

3-axis full HD 1080p

3-axis full HD 1080p

Frame type

250 mm

290 mm

Overall dimensions

28 x 32 cm

32.8 x 38.2 cm

Propeller size

14 cm

15.2 cm

Weight

400 grams

500 grams

Colors

yellow, red, blue

red, white

Other features

 

LED tail light

Both versions of Bebop can be controlled by the Parrot Skycontroller or by using smartphones or tablets. Operation of the Skycontroller is described on the following site: http://blog.parrot.com/2014/12/15/how-to-pilot-skycontroller/.

Bebop has onboard sensors for autonomous flight through the use of GPS for guidance. The Bebop also has a forward-looking camera for aerial photography. The Wi-Fi communications module of Bebop allows both manual control and control with a ROS package called bebop_autonomy. The next section will concentrate on the use of the ROS software to control Bebop.

Tip

Important!

Before flying the Bebop or using the ROS interface, visit the Bebop website and download and install the latest firmware version for the Bebop.

The bebop_autonomy software is the ROS driver for Parrot Bebop 1 and Bebop 2 quadrotors based on the Parrot ARDrone SDK3 development kit. This driver was developed and is maintained at the Autonomy Lab of Simon Fraser University by Mani Monajjemi. We thank Mr. Monajjemi for his generous assistance in helping us prepare this section.

Loading bebop_autonomy software

The instructions for loading the ROS software and using it for Bebop are well described at:

The features to be incorporated into bebop_autonomy and the status of these features can be found in the documentation at https://media.readthedocs.org/pdf/bebop-autonomy/latest/bebop-autonomy.pdf. This document covers bebop_autonomy versions for Indigo, Jade, and Kinetic.

To load the bebop_autonomy software, first get the required Ubuntu packages with the following command:

$ sudo apt-get install build-essential python-rosdep python-catkin-tools

Update the system information on the newest versions of packages and their dependencies:

$ sudo apt-get update

Create the Bebop workspace bebop_ws and download software from GitHub:

$ mkdir -p ~/bebop_ws/src
$ cd ~/bebop_ws
$ catkin init
$ git clone https://github.com/AutonomyLab/bebop_autonomy.git src/bebop_autonomy

Use rosdep to install the bebop_autonomy package dependencies:

$ rosdep update
$ rosdep install --from-paths src -i

Then, build the workspace:

$ catkin build

Once the software is loaded and the files are built, add the following statement in the .bashrc file:

source ~/bebop_ws/devel/setup.bash

Also within the .bashrc file, verify that the ROS_MASTER_URI, the ROS_IP, and the ROS_HOSTNAME variables are not set.

Remember, adding the source statement to the .bashrc file will apply it to each new terminal window opened.

Also, check your ROS package path with the following command:

$ echo $ROS_PACKAGE_PATH

The path /home/<username>/bebop_ws/src should display as five paths on the screen:

/home/<username>/bebop_ws/src/bebop_autonomy/bebop_autonomy
/home/<username>/bebop_ws/src/bebop_autonomy/bebop_description
/home/<username>/bebop_ws/src/bebop_autonomy/bebop_msgs
/home/<username>/bebop_ws/src/bebop_autonomy/bebop_driver
/home/<username>/bebop_ws/src/bebop_autonomy/bebop_tools

The software download creates a number of packages that are used to control Bebop. The bebop_autonomy package is actually a metapackage with a package.xml file that lists four other packages, as follows:

  • bebop_description which contains the URDF and mesh files
  • bebop_driver which contains C++ code for the node bebop_driver_node
  • bebop_msgs which contains messages used with Bebop
  • bebop_tools which contains miscellaneous tools for Bebop

Note

Preparing to fly Bebop

Before flying Bebop, review the Bebop User's Guide available at http://www.parrot.com/usa/support/parrot-bebop-drone/.

Read the instructions in that document for the following points:

  • Assembling the Bebop quadrotor, charging the battery, and other preliminary matters
  • Pay attention to the section on Preflight Check, which includes many safety tips
  • Study the section on flying, which includes instructions for calibrating the magnetometer of the Bebop

Testing Bebop communications

After a preflight check and clearing the flying area of people and obstructions, power on Bebop and wait for several minutes.

Using the Systems Settings tab in the Ubuntu desktop, select Network and check your wireless connections to see whether your computer is communicating with Bebop. You should see the Bebop network BebopDrone-<xxxxxxx>. The numbers indicate the identification number of your Bebop. The IP address should be 192.168.42.1 for the Bebop as the Default Route.

Then, test the communications between the computer workstation and the Bebop by pinging the craft. From a terminal window, issue the ping command to the Bebop and wait for the response:

$ ping 192.168.42.1

Our output is as follows:

PING 192.168.42.1 (192.168.42.1) 56(84) bytes of data.
64 bytes from 192.168.42.1: icmp_seq=1 ttl=64 time=9.41ms
64 bytes from 192.168.42.1: icmp_seq=2 ttl=64 time=5.46ms

Flying Bebop using commands

Now, it is time to launch the bebop_driver node and use commands to perform a takeoff and landing. Launch Bebop with the following command:

$ roslaunch bebop_driver bebop_node.launch

Explore the nodes and topics:

$ rosnode list

The output should be as follows:

/bebop/bebop_driver
/bebop/robot_state_publisher
/rosout

Then, type the following command:

$ rostopic list

This will produce a long list, in which the following topics are of interest in getting Bebop to take off and land:

/bebop/takeoff
/bebop/land
/bebop/reset
/bebop/autoflight/navigate_home

Note that, in both lists, the namespace (ns) is bebop and the items are listed as /bebop/<node> or /bebop/<topic>.

Take off

Watch it fly. Bebop goes straight up 1 meter after you execute the following command:

$ rostopic pub /bebop/takeoff std_msgs/Empty --once

The output should be as follows:

publishing and latching message for 3.0 seconds

Landing

Bebop will land when you issue this command:

$ rostopic pub /bebop/land std_msgs/Empty --once

The output is as follows:

publishing and latching message for 3.0 seconds

There are many other options for the Bebop that are not covered here. Refer to the Bebop website and the instructions for the bebop_autonomy software previously listed to explore all of Bebop's functions.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.133.146.47