Difference between revisions of "Bebop"

From PaparazziUAV
Jump to navigation Jump to search
Line 3: Line 3:
<div style="float: right; width: 40%">__TOC__</div>
<div style="float: right; width: 40%">__TOC__</div>


== Intro ==
 
= Introduction =


By default the [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is a Wifi controlled flying quadrotor, designed to be controlled with an Android or iOS device.  
By default the [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is a Wifi controlled flying quadrotor, designed to be controlled with an Android or iOS device.  
Line 9: Line 10:
'''No more restrictions''' as from now; with a few simple clicks you can '''run Paparazzi on the Bebop''' and have full autonomous flight and much more!
'''No more restrictions''' as from now; with a few simple clicks you can '''run Paparazzi on the Bebop''' and have full autonomous flight and much more!


== Getting started ==
= Getting started =


# Make sure you have the latest release version of Paparazzi installed.  
# Make sure you have the latest release version of Paparazzi installed.  
Line 21: Line 22:
Voila, you will get telemetry from the Bebop. Now it is up to you how and where to fly.
Voila, you will get telemetry from the Bebop. Now it is up to you how and where to fly.


== Features ==
= Features =
=== Connectivity ===
== Connectivity ==
* Wi-Fi antennas: MIMO dual-band with 2 double-set of dipole antennas for 2.4 and 5 GHz
* Wi-Fi antennas: MIMO dual-band with 2 double-set of dipole antennas for 2.4 and 5 GHz
* Sending power: Up to 26 dBm
* Sending power: Up to 26 dBm
* Signal range: N/A
* Signal range: N/A


=== Structure ===
== Structure ==
* 4 Brushless Outrunner motors
* 4 Brushless Outrunner motors
* Glass fiber reinforced (15%) ABS structure
* Glass fiber reinforced (15%) ABS structure
Line 34: Line 35:
* Anti-vibration bumpers
* Anti-vibration bumpers


=== Camera ===
== Camera ==
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor
* Video stabilization: Digital on 3-axes
* Video stabilization: Digital on 3-axes
Line 44: Line 45:
* Extended memory: Micro USB
* Extended memory: Micro USB


=== Battery ===
== Battery ==
* Lithium Polymer 1200 mAh
* Lithium Polymer 1200 mAh
* Flight time: Around 12 minutes
* Flight time: Around 12 minutes


=== Processor ===
== Processor ==
* Motherboard:
* Motherboard:
** Parrot P7 dual-core CPU Cortex 9
** Parrot P7 dual-core CPU Cortex 9
Line 55: Line 56:
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator


=== Sensors ===
== Sensors ==
* 3-axes magnetometer (AKM 8963)
* 3-axes magnetometer (AKM 8963)
* 3-axes gyroscope (MPU 6050)
* 3-axes gyroscope (MPU 6050)
Line 63: Line 64:
* Pressure sensor (MS 5607)
* Pressure sensor (MS 5607)


=== Geo-location ===
== Geo-location ==
* GNSS (GPS + GLONASS + Galileo, [http://www.furuno.com/en/products/gnss-module/GN-87 Furuno GN-87F])
* GNSS (GPS + GLONASS + Galileo, [http://www.furuno.com/en/products/gnss-module/GN-87 Furuno GN-87F])


=== Dimensions ===
== Dimensions ==
* 28x32x3.6cm without the hull
* 28x32x3.6cm without the hull
* 33x38x3.6cm with the hull
* 33x38x3.6cm with the hull


=== Weight ===
== Weight ==
* 380g without the hull
* 380g without the hull
* 400g with the hull
* 400g with the hull


=== OS/Software ===
== OS/Software ==
* Operating system: Linux (kernel 3.4.11 #3 SMP PREEMPT)
* Operating system: Linux (kernel 3.4.11 #3 SMP PREEMPT)
* glibc: (Sourcery CodeBench Lite 2012.03-57) 2.15
* glibc: (Sourcery CodeBench Lite 2012.03-57) 2.15
Line 80: Line 81:
* Developing: Open-source SDK (for interfacing with it from an offboard computer)
* Developing: Open-source SDK (for interfacing with it from an offboard computer)


== Pinout ==
= Pinout =
=== GPIO ===
== GPIO ==
* 6 Fans Enable
* 6 Fans Enable
* 9 WiFi Reset
* 9 WiFi Reset
Line 102: Line 103:
* 204 USB0 OC
* 204 USB0 OC


=== PWM ===
== PWM ==
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)
* 8 MPU6050 clock (31510ns period, 15258ns duty) Desired frequency is 32768kHz with 50% duty cycle (period=30517us). Period was set empirically to 31517 to get a 5ms data ready period. Desired frequency is slightly modified to synchronize camera and IMU
* 8 MPU6050 clock (31510ns period, 15258ns duty) Desired frequency is 32768kHz with 50% duty cycle (period=30517us). Period was set empirically to 31517 to get a 5ms data ready period. Desired frequency is slightly modified to synchronize camera and IMU
Line 108: Line 109:
* 11 Horizontal camera lock (77ns period = 13MHz)
* 11 Horizontal camera lock (77ns period = 13MHz)


=== I2C ===
== I2C ==
* I2C-0
* I2C-0
** FPGA
** FPGA
Line 122: Line 123:
** MPU6050    Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]
** MPU6050    Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]


=== SPI ===
== SPI ==
* spidev1.0 Sonar (Only data pin connected for generating pulses)
* spidev1.0 Sonar (Only data pin connected for generating pulses)


=== UART ===
== UART ==
* ttyPA1          GPS (Furuno GN-87F)
* ttyPA1          GPS (Furuno GN-87F)


=== Other ===
== Other ==
* /dev/hx280 Hantro (On2) Video encoder. Hantro chip video encoder used for the HCAM.
* /dev/hx280 Hantro (On2) Video encoder. Hantro chip video encoder used for the HCAM.
* /sys/bus/iio/devices/iio:device0 (p7mu-adc_2) Sonar ADC
* /sys/bus/iio/devices/iio:device0 (p7mu-adc_2) Sonar ADC


== Actuators ==
= Actuators =
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains custom made firmware(BLDC) by Parrot, which can be automatically updated using a bootloader in the ESC part of the mainboard.
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains custom made firmware(BLDC) by Parrot, which can be automatically updated using a bootloader in the ESC part of the mainboard.
The firmware from Parrot contains a nice closed loop RPM control, which is automatically tuned inside the factory.  
The firmware from Parrot contains a nice closed loop RPM control, which is automatically tuned inside the factory.  
Line 138: Line 139:
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.


== Programs ==
= Programs =
* /usr/bin/dragon-prog Main program that controls the drone
* /usr/bin/dragon-prog Main program that controls the drone
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon
Line 147: Line 148:
* config_mt9v117                              Configure the bottom camera
* config_mt9v117                              Configure the bottom camera


== Cross compiler ==
= Cross compiler =
For the Bebop you need to use a recent version GNU gcc-arm-linux-gnueabi (Ubuntu/Linaro 4.7.4-2ubuntu1) 4.7.4 provided with Ubuntu since 14.04 LTS.
For the Bebop you need to use a recent version GNU gcc-arm-linux-gnueabi (Ubuntu/Linaro 4.7.4-2ubuntu1) 4.7.4 provided with Ubuntu since 14.04 LTS.


Line 153: Line 154:
but if you [http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2012.03-57-arm-none-linux-gnueabi.bin insist] , feel <s>free</s> restricted.
but if you [http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2012.03-57-arm-none-linux-gnueabi.bin insist] , feel <s>free</s> restricted.


== Video ==
= Video =
Load the [http://docs.paparazziuav.org/latest/module__video_rtp_stream.html video_rtp_stream.xml] module. Receive the video stream with e.g. avplay:
Load the [http://docs.paparazziuav.org/latest/module__video_rtp_stream.html video_rtp_stream.xml] module. Receive the video stream with e.g. avplay:
  $ avplay -loglevel quiet -max_delay 50 -fflags nobuffer rtp://192.168.42.1:5000
  $ avplay -loglevel quiet -max_delay 50 -fflags nobuffer rtp://192.168.42.1:5000


==Troubleshoot==
= Tips & Tricks =


===Factory Reset===
== Factory Reset ==


You can reset the Parrot Bebop Drone to factory settings. You '''will''' loose all your photos and movies recorded on your Bebop.
You can reset the Parrot Bebop Drone to factory settings. You '''will''' loose all your photos and movies recorded on your Bebop.
Line 167: Line 168:
2) Wait... the LED will blink green and orange for a while, then lits up green. The Parrot Bebop Drone switches off automatically.
2) Wait... the LED will blink green and orange for a while, then lits up green. The Parrot Bebop Drone switches off automatically.
3) Done
3) Done
== Telnet ==
$ telente 192.168.42.1


[[Category:Autopilots]]
[[Category:Autopilots]]

Revision as of 17:33, 13 July 2015

Parrot Bebop


Introduction

By default the Bebop from Parrot is a Wifi controlled flying quadrotor, designed to be controlled with an Android or iOS device.

No more restrictions as from now; with a few simple clicks you can run Paparazzi on the Bebop and have full autonomous flight and much more!

Getting started

  1. Make sure you have the latest release version of Paparazzi installed.
  2. Power up your Bebop.
  3. Make a Wifi connection with your PC and the Bebop
  4. In the Paparazzi center choose "Bebop" in the airframe dropdown menu
  5. Press "Upload"
  6. Select the Bebop or ARdrone2 Flight in the session menu
  7. Press execute

Voila, you will get telemetry from the Bebop. Now it is up to you how and where to fly.

Features

Connectivity

  • Wi-Fi antennas: MIMO dual-band with 2 double-set of dipole antennas for 2.4 and 5 GHz
  • Sending power: Up to 26 dBm
  • Signal range: N/A

Structure

  • 4 Brushless Outrunner motors
  • Glass fiber reinforced (15%) ABS structure
  • High-resistance EPP outdoor hull: Clip and unclip easily to adapt to indoor and outdoor flight, protects the propellers against potential bumps, can be removed to reduce wind factor
  • Three-blade auto-block propellers in Polycarbonate with fast disassembly system
  • Anti-vibration bumpers

Camera

  • Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor
  • Video stabilization: Digital on 3-axes
  • Video definition: 1920x1080p (30fps)
  • Photo definition: 3800x3188 pixels
  • Video encoding: H264
  • Photo file format: RAW, DNG
  • Internal memory: Flash 8 GB
  • Extended memory: Micro USB

Battery

  • Lithium Polymer 1200 mAh
  • Flight time: Around 12 minutes

Processor

  • Motherboard:
    • Parrot P7 dual-core CPU Cortex 9
    • Quad core GPU
    • 8Gb flash memory
  • All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator

Sensors

  • 3-axes magnetometer (AKM 8963)
  • 3-axes gyroscope (MPU 6050)
  • 3-axes accelerometer (MPU 6050)
  • Optical-flow sensor (Fig.8): Vertical stabilization camera (Every 16 milliseconds, an image of the ground is taken and compared to the previous one to determine the speed of the Bebop Drone)
  • Ultrasound sensor (Analyzes the flight altitude up to 8 meters)
  • Pressure sensor (MS 5607)

Geo-location

Dimensions

  • 28x32x3.6cm without the hull
  • 33x38x3.6cm with the hull

Weight

  • 380g without the hull
  • 400g with the hull

OS/Software

  • Operating system: Linux (kernel 3.4.11 #3 SMP PREEMPT)
  • glibc: (Sourcery CodeBench Lite 2012.03-57) 2.15
  • libstdc++: GLIBCXX_3.4 - GLIBCXX_3.4.16
  • Developing: Open-source SDK (for interfacing with it from an offboard computer)

Pinout

GPIO

  • 6 Fans Enable
  • 9 WiFi Reset
  • 73 P7MU IRQ
  • 81 GPS Power Enable
  • 85 Fan Enable
  • 89 VCAM FSYNC gyro
  • 90 HCAM FSYNC gyro
  • 91 DRDY MPU6050
  • 124 Magneto interrupt
  • 128 (video) Slew rate??
  • 129 VCAM enable
  • 130 (video) Slew rate??
  • 132 HCAM enable
  • 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF
  • 200 US Pulse level
  • 201 On/Off button (default monitor to files running: /bin/onoffbutton)
  • 202 USB Host mode pin 3V3 (HOST_MODE_3V3)
  • 203 USB Host mode on
  • 204 USB0 OC

PWM

  • 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)
  • 8 MPU6050 clock (31510ns period, 15258ns duty) Desired frequency is 32768kHz with 50% duty cycle (period=30517us). Period was set empirically to 31517 to get a 5ms data ready period. Desired frequency is slightly modified to synchronize camera and IMU
  • 9 Vertical camera clock (23ns period = 43MHz)
  • 11 Horizontal camera lock (77ns period = 13MHz)

I2C

  • I2C-0
    • FPGA
    • P7MU
    • EEPROM Unknown EEPROM for Front camera calibration (addr 0x55)
    • MT9f002 CMOS Digital Image Sensor (1/2.3 inch 14Mp, front camera) MT9f002 (addr 0x10)
    • MT9v117 CMOS Digital Image Sensor (1/6 inch VGA, bottom camera) MT9v117 (addr 0x5d)
  • I2C-1
    • Cypress Motor Controller (Parrot BLDC) Bebop/BLDC (addr 0x08)
    • AKM8963 Magnetometer AK8963
    • MS5607 Barometer MS5607
  • I2C-2

SPI

  • spidev1.0 Sonar (Only data pin connected for generating pulses)

UART

  • ttyPA1 GPS (Furuno GN-87F)

Other

  • /dev/hx280 Hantro (On2) Video encoder. Hantro chip video encoder used for the HCAM.
  • /sys/bus/iio/devices/iio:device0 (p7mu-adc_2) Sonar ADC

Actuators

The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains custom made firmware(BLDC) by Parrot, which can be automatically updated using a bootloader in the ESC part of the mainboard. The firmware from Parrot contains a nice closed loop RPM control, which is automatically tuned inside the factory.

For more information about how to communicate with the BLDC look at Bebop/BLDC. Or take a look at the "bebop" actuator inside the airborne/boards/bebop/ folder.

Programs

  • /usr/bin/dragon-prog Main program that controls the drone
  • /bin/watchdog.sh Checks if Dragon is still running and reboots dragon
  • BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.
  • bcmwl Everything with wifi
  • diagnostic Outputs sensor diagnostic
  • mk3_camera_eeprom Reads the front camera EEPROM
  • config_mt9v117 Configure the bottom camera

Cross compiler

For the Bebop you need to use a recent version GNU gcc-arm-linux-gnueabi (Ubuntu/Linaro 4.7.4-2ubuntu1) 4.7.4 provided with Ubuntu since 14.04 LTS.

the past you could also crosscompile with Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Greedy Mentor Graphics, previously called codesourcery. However the open'ness there is nowhere to be found anymore, so we'll say "No thanks" to Codesourcery ,now Greedy Mentor" but if you insist , feel free restricted.

Video

Load the video_rtp_stream.xml module. Receive the video stream with e.g. avplay:

$ avplay -loglevel quiet -max_delay 50 -fflags nobuffer rtp://192.168.42.1:5000

Tips & Tricks

Factory Reset

You can reset the Parrot Bebop Drone to factory settings. You will loose all your photos and movies recorded on your Bebop.

Steps: 1) switch the Parrot Bebop Drone on and press the on/off button for 10 seconds. 2) Wait... the LED will blink green and orange for a while, then lits up green. The Parrot Bebop Drone switches off automatically. 3) Done

Telnet

$ telente 192.168.42.1