Difference between revisions of "Ap.parrot minidrone"

From PaparazziUAV
Jump to navigation Jump to search
Line 86: Line 86:
= 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 via a Bluetooth connection. Both have the possibility to transfer files through FTP and execute programs over telnet.  
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.
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 ==
== Pre steps ==


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


===4x Button press===
===4x Button press===
Line 97: Line 97:
[[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]]
[[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]]


After the drone is fully started, on e.g. the Blaze visible by '''green''' LED's, then press the small on/off button four times (4x) in succession  
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.
Note that it will take a while before the Connection is ready.
=====Disable 4x buttonpress====
Always 4x pressing the button after a battery swap is not ideal. It is possible to disable this and automatically be able to have a connection. It is tested and work but a description or better automatic flag is nit the work an will be added to this wiki and the sourceode


== Connect with USB ==
== Connect with USB ==
Line 111: Line 115:
=== Using '''blueman''' tool (tested with Ubuntu 16.04) ===
=== Using '''blueman''' tool (tested with Ubuntu 16.04) ===


* Install '''blueman'''
* Install '''blueman''' via:
 
   sudo apt install blueman
   sudo apt install blueman


* Turn on your minidrone
* Power up your Minidrone
* Enable bluetooth on your computer (can be done from blueman applet if present)
* 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
* Scan or select your Minidrone from the list of the peripheral
[[File:Blueman_swing_1.png|400px|thumb|right|Blueman: peripherals list]]
[[File:Blueman_swing_1.png|400px|thumb|right|Blueman: peripherals list]]
* Configure this peripheral and select the "network access point" connection type
* Configure this peripheral and select the "network access point" connection type
[[File:Blueman_swing_2.png|400px|thumb|right|Blueman: type of connection]]
[[File:Blueman_swing_2.png|400px|thumb|right|Blueman: type of connection]]
* A new network connection should appear
* A new network connection should appear
  % ifconfig bnep0
* 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   
   bnep0    Link encap:Ethernet  HWaddr 5c:e0:c5:63:8e:5d   
             inet adr:192.168.4.2  Bcast:192.168.4.255  Masque:255.255.255.0
             inet adr:192.168.4.2  Bcast:192.168.4.255  Masque:255.255.255.0
             ...
             ...
* The minidrone has the IP '''192.168.4.1''', connect with telnet via:
* The minidrone has the IP '''192.168.3.1''', connect over bluetooth network with telnet via:
  telnet 192.168.4.1
 
  telnet 192.168.3.1
 
(With an USB the connection is via 192.168.4.1)


=== Older Ubuntu versions using the '''pand''' tool ===
=== 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"
Line 150: Line 164:
=Airframe=
=Airframe=


At the moment, only the Swing airframe is supported and an example file is available:
At the moment, the Swing and Mambo airframes are supported and an example airframe is available. Choose Parrot_Mambo or Parrot_Swing
https://github.com/paparazzi/paparazzi/blob/master/conf/airframes/examples/swing.xml
 
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 ==
== Power button ==


Once the Paparazzi autopilot is running, the original Parrot software is stopped, keeping the network connection opened. 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.
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. 160x120 pixels.
All minidrones have a camera which can be used for various purposes. 640x480 pixels.


Note that a cam module fir Paparazz is not written. Feel free to help out:
Note that a camera module for Paparazz is not create yet. Feel free to help out:


This will give a base
This will give a base to start debugging and reversing
https://github.com/Parrot-Developers/swing-opensource/blob/master/sources/yavta-unknown/yavta-unknown/yavta.c
https://github.com/Parrot-Developers/swing-opensource/blob/master/sources/yavta-unknown/yavta-unknown/yavta.c


Line 194: Line 209:
Some links that might be helpful for developers or otherwise
Some links that might be helpful for developers or otherwise


*  
*
*
*


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

Revision as of 02:17, 5 October 2017

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.

NOTE: This page is a work in progress (WIP) and partly will not reflect the current state of Paparazzi and will contain major errors. Till the end of December 2017 this page will have greatly improved. If you can help, yes, please help out, if not... hope that other are willing to spend their time on improving support.

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 a Paparazzi autopilotcode, one wil not have wireless telemetry. Discussion are opened with Parrot to distribute the alternate firmware or integrate the modification to the standard one. The supported models are:

Tested and basics working

  • Swing
    Parrot Swing

Tested and basics working but not in master yet as of 20171003

  • Mambo
    • Parrot MAMBO

Soon:

  • Spider
    • Parrot Rolling Spider

Maybe:

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

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 maydiffer.

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

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

  • Ultrasonic sensor (not supported yet)

Info below is for developers and when it is working can be removed from here

/dev/ultra_snd

  • Vertical camera (not supported yet)

Info below is for developers and when it is working can be removed from here

Genesys chip

$ yavta -c -f YUYV -s 640x480 /dev/video0


Battery

Parrot Minidrone Battery
  • Swappable: Yes
  • Type: Lithium-polymer 1s
  • Capacity: 550mAh
  • Charging time: about 25 minutes
  • Compatibility: Parrot 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.

=Disable 4x buttonpress

Always 4x pressing the button after a battery swap is not ideal. It is possible to disable this and automatically be able to have a connection. It is tested and work but a description or better automatic flag is nit the work an will be added to this wiki and the sourceode

Connect with USB

  • Switch on your Minidrone
  • Plug in a micro-usb cable from your Drone to the computer
  • A new network device will show up
  • Connect with 192.168.2.1 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.4.2  Bcast:192.168.4.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 Paparazz is not create yet. Feel free to help out:

This will give a base to start debugging and reversing https://github.com/Parrot-Developers/swing-opensource/blob/master/sources/yavta-unknown/yavta-unknown/yavta.c

yavta can already be run on the drone with e.g.

yavta -c -f YUYV -s 640x480 /dev/video0

Optic Flow

Using the Optic flow module 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}

Links

Some links that might be helpful for developers or otherwise