{"id":19428298,"url":"https://github.com/computationalcore/backyard-flyer","last_synced_at":"2026-06-12T18:32:05.355Z","repository":{"id":92677511,"uuid":"326262050","full_name":"computationalcore/backyard-flyer","owner":"computationalcore","description":null,"archived":false,"fork":false,"pushed_at":"2021-01-04T06:00:36.000Z","size":48,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-17T18:25:54.764Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/computationalcore.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-02T20:06:25.000Z","updated_at":"2021-01-04T15:53:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"7f6f26cd-7442-477e-909c-aee2f90f3763","html_url":"https://github.com/computationalcore/backyard-flyer","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/computationalcore/backyard-flyer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/computationalcore%2Fbackyard-flyer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/computationalcore%2Fbackyard-flyer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/computationalcore%2Fbackyard-flyer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/computationalcore%2Fbackyard-flyer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/computationalcore","download_url":"https://codeload.github.com/computationalcore/backyard-flyer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/computationalcore%2Fbackyard-flyer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34258366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T14:14:54.980Z","updated_at":"2026-06-12T18:32:05.338Z","avatar_url":"https://github.com/computationalcore.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backyard Flyer Project\nThis is a demonstration of a flight board computer program for a drone developed with python. It controls the drone to autonomously take off, fly on a geometrically predetermined path and land in a simulated backyard environment.\n\nIt is possible to choose between 3 shapes, square triangle or circle, and control its side / radius.\n\nIt controls a quadcopter autonomously in the [Udacity's Drone Simulator](https://github.com/udacity/FCND-Simulator-Releases/releases) by sending commands and receiving incoming data from the drone and acting as the flight computer, using event-driven programming. \n\nThe python code here is similar to how the drone would be controlled from a ground station computer or an onboard flight computer. \nSince communication with the drone is done using MAVLink, this code is also suitable for controlling a PX4 quadcopter autopilot (or any drone that implemented MAVLink) with very few modifications.\n\nThis project is a programming assignment of the [Udacity's Flying Car and Autonomous Flight Engineer](https://www.udacity.com/course/flying-car-nanodegree--nd787) Nanodegree.\n\n[![](http://img.youtube.com/vi/njCfDpufhRI/0.jpg)](https://www.youtube.com/watch?v=njCfDpufhRI \"Fall Detection\")\n\n[Watch Video](https://www.youtube.com/watch?v=njCfDpufhRI)\n\n## Prerequisites\n\n### Step 1: Download the Simulator\nIf you haven't already, download the version of the simulator that's appropriate for your operating system [from this repository](https://github.com/udacity/FCND-Simulator-Releases/releases).\n\n### Step 2: Set up your Python Environment\n\nIf you haven't already, set up your Python environment and get all the relevant packages installed using Anaconda following instructions bellow:\n\n- Download [miniconda](https://conda.io/miniconda.html) and then install by opening the file/app that you download.\n\n- Clone the starter kit\n```sh\ngit clone https://github.com/computationalcore/backyard-flyer\n```\n- Enter into the starter kit directory\n```sh\ncd FCND-Term1-Starter-Kit\n```\nNote: If you have a windows machine, you must rename meta_windows_patch.yml to meta.yml as well.\n\n- Create the miniconda environment (this can take several minutes due to the large number of installs required):\n```sh\nconda env create -f environment.yml\n```\n- Activate the Conda Environment (this step is needed ANYTIME you want to work in this environment) \n```sh\nsource activate fcnd\n```\n\n## Installing and Run\n\nAfter activate the project start environment go the previous folder.\n```sh\ncd ../\n```\n\n### Clone this Repository\n```sh\ngit clone https://github.com/computationalcore/backyard-flyer\n```\n\n### Enter project folder\n```sh\ncd backyard-flyer\n```\n\n### Run\n\nOpen the simulator and select \"BACKYARD FLYER\" (indicated in the arrow)\n\n![](assets/sim.jpg)\n\nRun the program\n```sh\npython backyard_flyer.py \n```\n\nThe simulated drone should start engine, autonomously fly a 10 meter box at a 3 meter altitude and stop.\n\n\n## Usage\n\nIt is possible to change the geometric shape the drone will follow. Possible\nvalues are circle, triangle and square. The default value is square.\n\nIt is also possible to define the base size, in meters, of the geometric shape of the path that the drone will follow. For the square and triangle (which is actually an equilateral triangle), this is the size of the side, for the circle, this is the radius. The minimum allowed value is 2.0 and the maximum is 30.0. The default value is 10.\n\nTo see more usage options just run:  ```python backyard_flyer.py -h```\n\n```sh\n$ python backyard_flyer.py -h                                    \nusage: backyard_flyer.py [-h] [-p PORT] [--host HOST] [-g GEOMETRIC_SHAPE]\n                         [-s GEOMETRIC_SIZE]\n\nThis program takes off a drone, flies it on a predetermined geometric path\nautonomously and lands it, in a simulated backyard environment. The simulator\nprogram must be open and running the Backyard Flyer simulation.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -p PORT, --port PORT  Port number\n  --host HOST           host address, i.e. '127.0.0.1'\n  -g GEOMETRIC_SHAPE, --geometric-shape GEOMETRIC_SHAPE\n        The geometric shape the drone will follow. Possible\n        values are circle, triangle and square. The default\n        value is square.\n  -s GEOMETRIC_SIZE, --size GEOMETRIC_SIZE\n        The base size, in meters, of the geometric shape the\n        drone will follow. For square and triangle (which is\n        actually an equilateral triangle) this is the side\n        size, for the circle this is the radius. The minimum\n        allowed value is 2.0 and maximum is 30.0. The default\n        value is 10.\n```\n\nFor example, to flight a circle of radius of 8 meters just run:\n```sh\n$ python backyard_flyer.py -g circle -s 8\n```\n\nor\n\n```sh\n$ python backyard_flyer.py --geometric-shape circle --size 8\n```\n\n## Authors\nVin Busquet\n* [https://github.com/computationalcore](https://github.com/computationalcore)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n## Changelog\n\nFor details, check out [CHANGELOG.md](CHANGELOG.md).\n## Acknowledgments\n* [Flying Car and Autonomous Flight Engineer](https://www.udacity.com/course/flying-car-nanodegree--nd787)\n* [Udacity](https://www.udacity.com/)\n* [Adrien Perkins](https://github.com/adrnp)\n* [Nicholas Roy](https://aeroastro.mit.edu/nicholas-roy)\n* [Dominique Luna](https://github.com/domluna)\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomputationalcore%2Fbackyard-flyer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomputationalcore%2Fbackyard-flyer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomputationalcore%2Fbackyard-flyer/lists"}