Difference between revisions of "Ap.parrot minidrone"

From PaparazziUAV
Jump to navigation Jump to search
 
(55 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Intro =
= Intro =


Originally the [http://www.parrot.com/usa/products/rolling-spider/ Rolling Spider] from [http://www.parrot.com/ Parrot] is a Bluetooth controlled flying quadrotor, designed to be controlled with an Android or iOS device.  
[[File:Parrot_blaze_overview.jpg|300px|frameless|thumb|none|Parrot Blaze]]
Not any more: With a few simple clicks you can run Paparazzi on the Rollinspider, Swat and Blaze.
 
Without Paparazzi the Parrot Minidrones are nice small flying quadrotor that can be flown over a Bluetooth connection with an Android or iOS device. But there it stops...
Not any more: With a few simple clicks you can run Paparazzi on you Minidrone and let it perform whatever you wan it to. Well that is the intend, volunteers are hard at work to make it a reality.
 
Although there are various different Parrot minidrones, the base of all the drones is the same. that is why you see all this info on just one page.


Note that information this page also can be use to connect to a Parrot Swat and Blaze. Where you read "Rolling Spider" read it then as "Swat" or "Blaze"
Also where there is '''RS_''' in the text replace with '''Swat_''' or '''Blaze_'''
= Supported Minidrones =
= Supported Minidrones =


Paparazzi testflown with:
Paparazzi have been tested with the special EDU [https://github.com/Parrot-Developers/MinidronesEdu/tree/master/mambo-2.6.11 | Firmware v2.6.11]. The original firmware doesn't allow bluetooth network connections. Although one can upload


- None yet with new firmware as on 20170719. Soon more. The TU Delft has various Minidrones. X-Wing, RollingSpider, Swat, Blaz
Supported models are:


* Spider
* Swing [[File:SWING.png|400px|frameless|thumb|right|Parrot Swing]]
** Parrot Rolling Spider
* Mambo
* Mambo
** Parrot MAMBO
* Parrot Rolling Spider
* Swing
 
** Parrot SWING
Tested and basics working. Note that the support did not (yet) land up in master branch sourcecode as of 20190223. A pullrequest is made, so me changes need to be added but we are getting close as developers scrape some leftover time...
 
'''Not''' supported:
 
* Airborne Night
* Airborne Night
** Parrot Airborne Night Maclane
** Parrot Airborne Night Maclane
Line 26: Line 29:
** Parrot Airborne Cargo Travis
** Parrot Airborne Cargo Travis


The Jumping Sumo and Hydrofoil extention, while Paparazzi likely can run on those, since they cannot fly there are no plans for testing or support. If you have on and teste it, make a pull request with any improvments you made, welcomed.
The '''Not''' is since these airframes cannot create a IP network over bluetooth (no BNEP interface) by default. While it is possible from a hardware component perspective, setup and drivers are not in default firmware.
If one has time to hack it in, great. Or if Parrot would provide an firmware with this option, nice, but don't count on it. One could still try to hack a Mambo firmware on the Airborne Night types somehow.
Note that Paparazzi does run on these if upload over USB network, but no bluetooth telemetry. A 100% GPS or vision based flight belongs to the possibilities if you fancy that, no need for a connection...
But either you add an external GPS or make good vision modules. All in all to much effort compared to benefit.
 
The Jumping Sumo and the Hydrofoil extension, while Paparazzi likely can run on those, since they cannot fly there are no plans for testing or support. If you have one and tested it with Paparazzi, great! Please make a pull request with any improvements you made, you're welcome.
 
= Notes =


This article assumes that you have already installed Paprazzi software on you local development PC. Used is Ubuntu 16.04. older version have different Bluetooth support, instructions there may differ.
= Features =
= Features =


Line 36: Line 48:
== Sensors ==
== Sensors ==


* Ultrasonic sensor
=== Accelometer and gyroscope ===
 
* 3-axis gyroscope and 3-axis accelerometer (MPU 6050)
* 3-axis gyroscope and 3-axis accelerometer (MPU 6050)
* Vertical camera  
 
* Pressure sensor
=== Pressure sensor ===
 
Air Pressure is available and gives valid presure ABI message output, a better integration into the code is worked on (MS5607)
 
=== Ranging ===
 
Ultra sonic bottom sensor
 
* Sonar not fully working yet...developer work is ongoing, we had sensor readings as of 20171025, still needs quite some work, but we will get there 99% sure
 
=== Vertical camera ===
 
Vertical camera
 
* A development branch now got the first imagery out of the camera, hurray. Needs TLC and fix timing issues, but camera use is proven possible.
 
Note that when connected to USB camera is disabled so use a bluetooth connection to telnet and debug and develop in
 
Device /dev/video0 opened.
Device `USB2.0 Camera' on `usb-p6i-ehci.0-1.1' is a video capture device.
- Available formats:
        Format 0: YUYV (56595559)
        Type: Video capture (1)
        Name: YUV 4:2:2 (YUYV)
        Frame size: 640x480 (1/30)
        Frame size: 160x120 (1/60)
        Frame size: 80x60 (1/60)
 
        Format 1: MJPEG (47504a4d)
        Type: Video capture (1)
        Name: MJPEG
        Frame size: 640x480 (1/30)


== Battery ==
== Battery ==
Lithium-Polymer and removable
Lasts up 8 min (6 min with wheels) and full recharge in 90 min


[[File:parrot_minidrone_1s_battery.jpg|300px|frameless|thumb|none|Parrot Minidrone Battery]]
* Swappable: Yes
* Type: Lithium-polymer 1s
* Capacity: 550mAh
* Charging time: about 25 minutes
* Compatibility: Parrot Mambo, Swing Jumping Night, Jumping Race, Airborne Night, Airborne Cargo and Hydrofoil


= How to connect =
= How to connect =


There are two ways to connect to the Rolling Spider with Paparazzi. The first one is an USB cable and the second one is Bluetooth (4.0 or normal). Both have the possibility to connect as WiFi access point and transfer files through FTP and execute programs over telnet. But be warned that connecting over USB disables the vertical camera, as it uses the same USB bus. Also note that if the /data/video folder does not exist on the Rolling Spider, both FTP and consequently any attempt to upload will fail. This is a simple fix by telnetting in and making the /data/video folder.
There are two ways to connect a Parrot Minidrone  with Paparazzi. The first one is an USB cable and the second one is via a Bluetooth connection. Both have the possibility to transfer files through FTP and execute programs over telnet.  
Note that connecting over USB '''disables''' the vertical camera, as it uses the same USB bus. Also free flight with USB attached is not ideal.
 
== Pre steps ==
 
Latest Parrot firmware needs some button pressing action before we can start using the connection in combination with Paparzzzi


== Connect with USB ==
===4x Button press===


* Set the Rolling spider on
[[File:Parrot_blaze_onoff_button_02.jpg|400px|frameless|border|thumb|Parrot Blaze on/off button location]] [[File:Parrot_blaze_onoff_button_01.jpg|400px|frameless|border|thumb|Parrot Blaze on/off button location bottom view]]
* Just plug in a micro-usb cable from your drone to the computer
 
After the drone is fully started, on e.g. the Mambo visible by '''green''' LED's, then press the small on/off button four times (4x) in succession
Note that it will take a while before the Connection is ready.
 
====Automatic====
 
Always 4x pressing the button after a battery swap is not ideal. It is possible to disable this behaviour and automatically be able to telnet into the device. It is tested and work but a description or better automatic flag is in the works and will be added to this wiki and the sourceode.
 
== Connect via USB ==
 
* Plug in a micro-usb cable from your Drone to the computer
* Switch on your Minidrone
* A new network device will show up
* A new network device will show up
* Connect with '''192.168.2.1''' through ftp or telnet
* Connect with '''192.168.2.1''', or '''192.168.4.1''' depending on your firmware, through ftp or telnet


== Connect via Bluetooth ==
== Connect via Bluetooth ==


* Turn on minidrone
=== Using '''blueman''' tool (tested with Ubuntu 16.04) ===
* Make sure you have bluetooth enabled on your computer
 
* Install '''blueman''' via:
 
  sudo apt install blueman
 
* Power up your Minidrone
* Enable bluetooth on your computer, this can be done from blueman applet if present
* Scan or select your Minidrone from the list of the peripheral
[[File:Blueman_swing_1.png|400px|thumb|right|Blueman: peripherals list]]
* Configure this peripheral and select the "network access point" connection type
[[File:Blueman_swing_2.png|400px|thumb|right|Blueman: type of connection]]
* A new network connection should appear
* To test go to your terminal and execute this line:
 
  ifconfig bnep0
 
Result something like this:
 
  bnep0    Link encap:Ethernet  HWaddr 5c:e0:c5:63:8e:5d 
            inet adr:192.168.3.2  Bcast:192.168.3.255  Masque:255.255.255.0
            ...
* The minidrone has the IP '''192.168.3.1''', connect over bluetooth network with telnet via:
 
telnet 192.168.3.1
 
(With an USB the connection is via 192.168.4.1)
 
=== Older Ubuntu versions using the '''pand''' tool ===


* Execute "hcitool scan" and look for the mac address of the "RS_...." device. (If you cannot find it look at [[#Setup normal Bluetooth]])
* Execute "hcitool scan" and look for the mac address of the "RS_...." device. (If you cannot find it look at [[#Setup normal Bluetooth]])
* Install the bluez-utils package (if not installed) with "sudo apt-get install bluez-utils"
* Install the bluez-utils package (if not installed) with "sudo apt-get install bluez-utils"
* Execute "sudo pand --connect <MAC address> -dGN -n", to connect to the bluetooth of the drone. *
* Execute "sudo pand --connect <MAC address> -dGN -n", to connect to the bluetooth of the drone. *
* Execute "sudo ifconfig bnep0 192.168.1.2 up", to setup the ethernet device over bluetooth. *
* Execute "sudo ifconfig bnep0 192.168.2.3 up", to setup the ethernet device over bluetooth. *
* Connect with '''192.168.1.1''' through ftp or telnet
* Connect with the drone with telnet via:
 
telnet 192.168.2.1
<nowiki>*</nowiki> This has to be done everytime you reboot the drone
 
-- Note --
* You will need to enable the actuators by telnetting to the drone and typing: gpio 39 -d lo 0
* After uploading Paparazzi, you have to start it manually via telnet.
* Go to /data/video and type ./ap.elf


=== Setup normal Bluetooth ===
=== Setup normal Bluetooth ===
 
'''This part doesn't seem to be needed anymore!!!'''
* First connect over Bluetooth 4.0 or USB to the drone as described above
* First connect over Bluetooth 4.0 or USB to the drone as described above
* Connect with telnet to the drone. (telnet 192.168.*.1)
* Connect with telnet to the drone. (telnet 192.168.*.1)
Line 82: Line 168:
* Now change the "BLEproxy" to "BLEproxy --normalbt"
* Now change the "BLEproxy" to "BLEproxy --normalbt"
* Reboot your drone by executing: "reboot". (This makes sure the filesystem is saved)
* Reboot your drone by executing: "reboot". (This makes sure the filesystem is saved)
== Upload Paprazzi ==
If you do have a connection, press the upload button in the Paparazzi center


=Airframe=
=Airframe=


A Parrot minidrone eample  airframe is in the works... The code is not yet available in Paparazzi Mater. For the Time being, progress here. As soon as testflights are performed a pull request will be made and example in the Main Paparazzi repository
At the moment, the Swing and Mambo airframes are supported and an example airframe is available. Choose Parrot_Mambo or Parrot_Swing
 
Note that while the Swing is a transitional airframe a full transistional configuration is not yet available but worked on to make it a reality soon.
 
== Power button ==
 
Once the Paparazzi autopilot is running, the original Parrot software is stopped, but keeping the network connection open. A side effect is that the power button needs to be managed by Paparazzi as well. When pressing it, the board will reboot, restarting immediately with the original software. Pressing again the button will stop the minidrone.


== Bottom camera ==
== Bottom camera ==


All minidrones have a camera which can be used for various purposes
All minidrones have a camera which can be used for various purposes. 640x480 pixels.
Note that a camera module for Paparazzi is not created yet. Feel free to help out.


=== Optic Flow ===
=== Optic Flow ===
Using the Optic flow module and the bottom camera the Drone should be able to hover still.


== Extend Hardware ==
== Extend Hardware ==


=== GPS ===
=== GPS + Magneto ===


An GPS connected to the USB port, while possible, never done yet.
An GPS + Magneto module with I2C out connected to the USB port with a FTDI FT232H to [http://www.ftdichip.com/Support/SoftwareExamples/MPSSE/FTCI2C.htm| 12C adapter]] board, while possible, not done yet. Work is on its way to test it.


=== Serial ===
=== Serial ===
Line 103: Line 202:
XBee and Si10xx based modems
XBee and Si10xx based modems


By using external modems it is possible to exten the range of the drones.
By using external modems via an USB to serial adapter it would be possible to extend the telemetry range of the drones.


=== Micro laser range ring ===
=== Micro laser range ring ===


A TU Delft project makes it possible to fly autonomous inside a building using micro laser rangers. See {TODO}
A TU Delft project is in the works to make it possible to fly autonomous inside a building using micro laser rangers. See here... {TODO}
 
= External power =
 
Sometimes when developing it wouldbe niceto have your done on all day. Although standing still the batter last long an alternative would be good.
 
One can modify an exiting battery. not for the faint, of heart. but that is just what was done
 
{TODO} describe process an add picture
 
Power added via USB externally sadly disables the camera even if only usb GND and + are connected, but needs more investigation.


= Links =
= Links =


Some links that might be helpful for developers or otherwhise
Some links that might be helpful for developers or otherwise


*
*
 
*
*


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

Latest revision as of 07:56, 23 February 2019

Intro

Parrot Blaze

Without Paparazzi the Parrot Minidrones are nice small flying quadrotor that can be flown over a Bluetooth connection with an Android or iOS device. But there it stops... Not any more: With a few simple clicks you can run Paparazzi on you Minidrone and let it perform whatever you wan it to. Well that is the intend, volunteers are hard at work to make it a reality.

Although there are various different Parrot minidrones, the base of all the drones is the same. that is why you see all this info on just one page.

Supported Minidrones

Paparazzi have been tested with the special EDU | Firmware v2.6.11. The original firmware doesn't allow bluetooth network connections. Although one can upload

Supported models are:

  • Swing
    Parrot Swing
  • Mambo
  • Parrot Rolling Spider

Tested and basics working. Note that the support did not (yet) land up in master branch sourcecode as of 20190223. A pullrequest is made, so me changes need to be added but we are getting close as developers scrape some leftover time...

Not supported:

  • Airborne Night
    • Parrot Airborne Night Maclane
    • Parrot Airborne Night Blaze
    • Parrot Airborne Night Swat
  • Airborne Cargo
    • Parrot Airborne Cargo Travis

The Not is since these airframes cannot create a IP network over bluetooth (no BNEP interface) by default. While it is possible from a hardware component perspective, setup and drivers are not in default firmware. If one has time to hack it in, great. Or if Parrot would provide an firmware with this option, nice, but don't count on it. One could still try to hack a Mambo firmware on the Airborne Night types somehow. Note that Paparazzi does run on these if upload over USB network, but no bluetooth telemetry. A 100% GPS or vision based flight belongs to the possibilities if you fancy that, no need for a connection... But either you add an external GPS or make good vision modules. All in all to much effort compared to benefit.

The Jumping Sumo and the Hydrofoil extension, while Paparazzi likely can run on those, since they cannot fly there are no plans for testing or support. If you have one and tested it with Paparazzi, great! Please make a pull request with any improvements you made, you're welcome.

Notes

This article assumes that you have already installed Paprazzi software on you local development PC. Used is Ubuntu 16.04. older version have different Bluetooth support, instructions there may differ.

Features

Connectivity

The minidrones have a Bluetooth Smart technology, Bluetooth V4.0 BLE device. Communication over older 2.0 bluetooth also possible after making some configuration changes on the Minidrone. Paparazzi can do this for you automatically

Sensors

Accelometer and gyroscope

  • 3-axis gyroscope and 3-axis accelerometer (MPU 6050)

Pressure sensor

Air Pressure is available and gives valid presure ABI message output, a better integration into the code is worked on (MS5607)

Ranging

Ultra sonic bottom sensor

  • Sonar not fully working yet...developer work is ongoing, we had sensor readings as of 20171025, still needs quite some work, but we will get there 99% sure

Vertical camera

Vertical camera

  • A development branch now got the first imagery out of the camera, hurray. Needs TLC and fix timing issues, but camera use is proven possible.

Note that when connected to USB camera is disabled so use a bluetooth connection to telnet and debug and develop in

Device /dev/video0 opened.
Device `USB2.0 Camera' on `usb-p6i-ehci.0-1.1' is a video capture device.
- Available formats:
       Format 0: YUYV (56595559)
       Type: Video capture (1)
       Name: YUV 4:2:2 (YUYV)
       Frame size: 640x480 (1/30)
       Frame size: 160x120 (1/60)
       Frame size: 80x60 (1/60)
       Format 1: MJPEG (47504a4d)
       Type: Video capture (1)
       Name: MJPEG
       Frame size: 640x480 (1/30)

Battery

Parrot Minidrone Battery
  • Swappable: Yes
  • Type: Lithium-polymer 1s
  • Capacity: 550mAh
  • Charging time: about 25 minutes
  • Compatibility: Parrot Mambo, Swing Jumping Night, Jumping Race, Airborne Night, Airborne Cargo and Hydrofoil

How to connect

There are two ways to connect a Parrot Minidrone with Paparazzi. The first one is an USB cable and the second one is via a Bluetooth connection. Both have the possibility to transfer files through FTP and execute programs over telnet. Note that connecting over USB disables the vertical camera, as it uses the same USB bus. Also free flight with USB attached is not ideal.

Pre steps

Latest Parrot firmware needs some button pressing action before we can start using the connection in combination with Paparzzzi

4x Button press

Parrot Blaze on/off button location Parrot Blaze on/off button location bottom view

After the drone is fully started, on e.g. the Mambo visible by green LED's, then press the small on/off button four times (4x) in succession Note that it will take a while before the Connection is ready.

Automatic

Always 4x pressing the button after a battery swap is not ideal. It is possible to disable this behaviour and automatically be able to telnet into the device. It is tested and work but a description or better automatic flag is in the works and will be added to this wiki and the sourceode.

Connect via USB

  • Plug in a micro-usb cable from your Drone to the computer
  • Switch on your Minidrone
  • A new network device will show up
  • Connect with 192.168.2.1, or 192.168.4.1 depending on your firmware, through ftp or telnet

Connect via Bluetooth

Using blueman tool (tested with Ubuntu 16.04)

  • Install blueman via:
 sudo apt install blueman
  • Power up your Minidrone
  • Enable bluetooth on your computer, this can be done from blueman applet if present
  • Scan or select your Minidrone from the list of the peripheral
Blueman: peripherals list
  • Configure this peripheral and select the "network access point" connection type
Blueman: type of connection
  • A new network connection should appear
  • To test go to your terminal and execute this line:
  ifconfig bnep0

Result something like this:

 bnep0     Link encap:Ethernet  HWaddr 5c:e0:c5:63:8e:5d  
           inet adr:192.168.3.2  Bcast:192.168.3.255  Masque:255.255.255.0
           ...
  • The minidrone has the IP 192.168.3.1, connect over bluetooth network with telnet via:
telnet 192.168.3.1

(With an USB the connection is via 192.168.4.1)

Older Ubuntu versions using the pand tool

  • Execute "hcitool scan" and look for the mac address of the "RS_...." device. (If you cannot find it look at #Setup normal Bluetooth)
  • Install the bluez-utils package (if not installed) with "sudo apt-get install bluez-utils"
  • Execute "sudo pand --connect <MAC address> -dGN -n", to connect to the bluetooth of the drone. *
  • Execute "sudo ifconfig bnep0 192.168.2.3 up", to setup the ethernet device over bluetooth. *
  • Connect with the drone with telnet via:
telnet 192.168.2.1

Setup normal Bluetooth

This part doesn't seem to be needed anymore!!!

  • First connect over Bluetooth 4.0 or USB to the drone as described above
  • Connect with telnet to the drone. (telnet 192.168.*.1)
  • Open the "/etc/init.d/rcS" file and search for the line with "BLEproxy". (vi /etc/init.d/rcS)
  • Now change the "BLEproxy" to "BLEproxy --normalbt"
  • Reboot your drone by executing: "reboot". (This makes sure the filesystem is saved)

Upload Paprazzi

If you do have a connection, press the upload button in the Paparazzi center

Airframe

At the moment, the Swing and Mambo airframes are supported and an example airframe is available. Choose Parrot_Mambo or Parrot_Swing

Note that while the Swing is a transitional airframe a full transistional configuration is not yet available but worked on to make it a reality soon.

Power button

Once the Paparazzi autopilot is running, the original Parrot software is stopped, but keeping the network connection open. A side effect is that the power button needs to be managed by Paparazzi as well. When pressing it, the board will reboot, restarting immediately with the original software. Pressing again the button will stop the minidrone.

Bottom camera

All minidrones have a camera which can be used for various purposes. 640x480 pixels. Note that a camera module for Paparazzi is not created yet. Feel free to help out.

Optic Flow

Using the Optic flow module and the bottom camera the Drone should be able to hover still.

Extend Hardware

GPS + Magneto

An GPS + Magneto module with I2C out connected to the USB port with a FTDI FT232H to 12C adapter] board, while possible, not done yet. Work is on its way to test it.

Serial

XBee and Si10xx based modems

By using external modems via an USB to serial adapter it would be possible to extend the telemetry range of the drones.

Micro laser range ring

A TU Delft project is in the works to make it possible to fly autonomous inside a building using micro laser rangers. See here... {TODO}

External power

Sometimes when developing it wouldbe niceto have your done on all day. Although standing still the batter last long an alternative would be good.

One can modify an exiting battery. not for the faint, of heart. but that is just what was done

{TODO} describe process an add picture

Power added via USB externally sadly disables the camera even if only usb GND and + are connected, but needs more investigation.

Links

Some links that might be helpful for developers or otherwise