Skip to main content

pyparrot

Python interface for Parrot Drones

pyparrot was designed and implemented by Dr. Amy McGovern to program Parrot Mambo and Parrot Bebop 2 drones using python. This interface was developed to teach K-20 STEM concepts (programming, math, and more) by programming a drone to fly autonomously. Anyone can use it who is interested in autonomous drone programming!

Installation, Quick-start, Documentation, FAQs

Extensive documentation is available at https://pyparrot.readthedocs.io

Setup

uv sync                  # Anafi / Bebop (wifi)
uv sync --extra vision   # + DroneVision GUI
uv sync --extra mambo    # + Mambo / Swing (BLE, Linux only)

Mambo BLE additionally requires:

sudo apt install libglib2.0-dev libbluetooth-dev bluez build-essential
sudo setcap 'cap_net_raw,cap_net_admin+eip' $(find .venv -name bluepy-helper -print -quit)

Major updates and releases:

  • 10/16/2019: Version 1.5.21: Several fixes submitted by users merged into the main branch.
  • 07/05/2019: Version 1.5.20: One more fix to the new DroneVisionGUI to fix invalid image crashes
  • 06/20/2019: Version 1.5.19: Updated the new DroneVisionGUI to not segfault with invalid images
  • 06/20/2019: Version 1.5.18 Added the ability for DroneVisionGUI to have two windows, one for video and one for user images. Note that the initial geometry isn't quite right but resizing the window makes it work.
  • 04/17/2019: Updated documentation to include workshop slides from April 2019 workshop. Restructured coursework directory to contain AI projects and workshop slides.
  • 03/13/2019: Version 1.5.17: Required PCMD commands to be ints (PR from daanzu)
  • 03/12/2019: Version 1.5.16: Added a disco fix (PR from proff) and fixed IP address fix (PR from daanzu)
  • 03/03/2019: Version 1.5.15: Added disco into wifi connected devices (thank you proff for the PR)
  • 03/02/2019: Version 1.5.14: Fixed ffmpeg vision bug where it wasn't properly killing the ffmpeg subprocess
  • 03/02/2019: Version 1.5.13: Added removal of old files in images directory by default to ffmpeg vision (can turn it off with a parameter)
  • 02/19/2019: Version 1.5.12: Added pull request of wificonnection parameters and added ability to specify IP address (default uses mDNS still)
  • 01/25/2019: Version 1.5.11: Added an example of using a cv2.namedWindow to show two vision windows (but it has issues on mac os 10.14 because it isn't a main thread)
  • 10/29/2018: Version 1.5.10: Updated the groundcam to not break on disconnect with BLE. Also have updated documentation with slides from workshop and windows FAQs.
  • 10/21/2018: Version 1.5.9: Fixed the wifiConnection without mDNS to work for Bebop (mDNS still works on bebop!). Verified that mambo and bebop work now with latest firmware.
  • 10/19/2018: Version 1.5.8: Parrot broke mDNS in firmware 3.0.26 (and ftp is still broken). Disabled the groundcam and hard-coded the IP address and ports for the mambo. Long term we want mDNS back. tested backwards compatiblity on older firmware and it works.
  • 10/13/2018: Version 1.5.7: Parrot released a security update/firmware upgrade to 3.0.25 that breaks ftp login for Mambo. pyparrot now allows the mambo to still connect without errors but the groundcam will not work until we hear from parrot. Also added example for joystick for the parrot swing from victor804
  • 10/05/2018: Version 1.5.6: Removed a bug in the library on pypi where an old file was hanging around
  • 09/19/2018: Version 1.5.5: Added joystink demo for swing (thanks Victor804)
  • 09/06/2018: Version 1.5.4: Removed wait in indoor mode for bebop 1
  • 09/06/2018: Version 1.5.3: Added indoor mode for bebop 1
  • 8/30/2018: Version 1.5.2: Updated camera pan_tilt for Bebop 1 (thanks Victor804)
  • 8/21/2018: Version 1.5.1: fixed small fix for typo in minidrones (for swing)
  • 8/18/2018: Version 1.5.0: major update to suppport parrot swing drones (thank you Victor804). This does break a small backwards compatibility in that you need to import Mambo from Minidrone instead of Mambo. Everything else remains the same.
  • 8/9/2018: Version 1.4.31: hard-coded name for vision stream on windows
  • 8/9/2018: Version 1.4.30: fixed vision bug in windows using VLC (tempfile issues) and also made fps a parameter for VLC vision
  • 7/16/2018: Version 1.4.29: added bebop user sensor callback function to match mambo
  • 7/15/2018: Version 1.4.28: added bebop battery state to default state variables (was in the dictionary only before)
  • 7/13/2018: Version 1.4.27: updated Mambo() initialization to not require address for wifi mode and also updated groundcam demo for Mambo
  • 7/12/2018: Version 1.4.26: added new Bebop commands (mostly setting max limits for the bebop)
  • 7/11/2018: Version 1.4.25: fixed groundcam pictures for Mambo
  • 7/8/2018: Version 1.4.24: switched tempfile to back to NamedTemporaryFile in DroneVisionGUI due to OS incompatibilities
  • 7/8/2018: Version 1.4.23: switched tempfile to SpooledTemporaryFile in DroneVisionGUI to make it faster (uses memory instead of disk)
  • 7/6/2018: Version 1.4.22: Added a wait in flat_trim for Bebop until it is received (optional)
  • 7/5/2018: Version 1.4.21: Added max_tilt and max_altitude to the Bebop commands.
  • 7/4/2018: Version 1.4.20: While move_relative is implemented, it seems to have a firmware bug so DO NOT USE.
  • 7/4/2018: Version 1.4.19: Added move_relative command to the Bebop API. For now, only dx, dy, and dradians should be used as there seems to be a bug internal to the firmware on dz.
  • 6/17/2018: Version 1.4.18 Added landed button status to the Drone Vision GUI for safety in user code
  • 6/16/2018: Version 1.4.17 Added flat trim to mambo also
  • 6/16/2018: Version 1.4.16 Added flat trim to bebop
  • 6/15/2018: Version 1.4.15 Removed a stray print, updated documentation, cast turn_degrees arguments to an int in Mambo.
  • 6/11/2018: Version 1.4.14 Added bebop sdp file to the release on pip
  • 6/7/2018: Version 1.4.13 Fixed duration in PCMD to use milliseconds instead of integer seconds
  • 6/7/2018: Version 1.4.12 Added an option to fly_direct to allow the command to be sent once
  • 6/6/2018: Version 1.4.11 Fixed a stray import statment not fixed from the move to pip
  • 5/31/2018: Version 1.4.10 Documentation updated significantly and moved to readthedocs
  • 5/30/2018: Version 1.4.7 and 1.4.8 and 1.4.9 fixed scripts location to release find_mambo script and added readthedocs documents
  • 5/29/2018: Version 1.4.6 Accepted fixes for Bebop 1 compatibility
  • 5/28/2018: Version 1.4.5 Fixed imports for new pypi structure and added xml files to pypi.
  • 5/25/2018: Version 1.4.3. Uploaded to pypi so pyparrot can now be installed directory from pip. Updated documentation for new vision.
  • 5/23/2018: Updated function (contributed) to download pictures from Mambo's downward facing camera.
  • 3/25/2018: Added DroneVisionGUI which is a version of the vision that shows the video stream (for Bebop or Mambo) in real time.
  • 2/22/2018: Version 1.3.2. Updated DroneVision to make the vision processing faster. Interface changed to only have the user call open_vision and close_vision (and not start_video_buffering)
  • 2/10/2018: Version 1.3.1. Updated DroneVision to work on Windows.
  • 2/8/2018: Version 1.3. Vision is working for both the Mambo and Bebop in a general interface called DroneVision. Major documenation updates as well.
  • 2/6/2018: Updated Mambo to add speed settings for tilt & vertical. Needed for class.
  • 2/4/2018: Unofficial updates to add ffmpeg support to the vision (will make an official release with examples soon)
  • 12/09/2017: Version 1.2. Mambo now gives estimated orientation using quaternions. Bebop now streams vision, which is accessible via VLC or other video clients. Coming soon: opencv hooks into the vision.
  • 12/02/2017: Version 1.1. Fixed sensors with multiple values for Mambo and Bebop.
  • 11/26/2017: Initial release, version 1.0. Working wifi and BLE for Mambo, initial flight for Bebop.

Programming and using your drones responsibly

It is your job to program and use your drones responsibly! We are not responsible for any losses or damages of your drones or injuries. Please fly safely and obey all laws.

Metadata

Release files for pyparrot-sdk 1.5.25

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyparrot-sdk 1.5.25
File Size Uploaded
pyparrot_sdk-1.5.25.tar.gz 600.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyparrot-sdk 1.5.25
File Interpreter ABI Platform
pyparrot_sdk-1.5.25-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / pyparrot_sdk-1.5.25.tar.gz

Download URL pyparrot_sdk-1.5.25.tar.gz
Size 600.5 kB
Tags Source
SHA-256 checksum
How to use checksums
dd180ca401fe8a6f1155c25cd8354fff03619d092c46c531f4f234e1c2673894
BLAKE2b-256 checksum
How to use checksums
7fc50df02a305a2d741765487bda86d4d9b090773700c313dde70f2946bb2684
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / pyparrot_sdk-1.5.25-py3-none-any.whl

Download URL pyparrot_sdk-1.5.25-py3-none-any.whl
Size 639.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6879ee184a9675c7b6af759b3daa898216089043c71c858e0a5a2e5ac565c066
BLAKE2b-256 checksum
How to use checksums
70ed7004502d6af90bfe77d8a6267c0e285b7ceb6a440888a64d64944ce61182
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

1.5.25 This release

2 release files

1.5.24

2 release files

1.5.22

2 release files

1.5.21

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page