diff --git a/contribute.md b/contribute.md index 782fa19..9c8fc29 100644 --- a/contribute.md +++ b/contribute.md @@ -1,80 +1,86 @@ --- layout: page title: Contribute sorted: 5 --- # Table of Contents {:.no_toc} * Do not remove this line (it will not be displayed) {:toc} *** # Merge Requests Kirogi's source code is [hosted on KDE's GitLab](https://invent.kde.org/kde/kirogi). You can fork and make merge requests via the website. We try our best to review submissions quickly, but have a little patience with our small team. 🙂 # Source Tree Layout Below is a list of directory paths in Kirogi's source tree and their purpose, to help you navigate our codebase. - `cmake/` - Additional CMake modules for dependency discovery. - `data/` - Metadata including the .desktop file, AppStream data and the application icon. - `platforms/android/` - Boilerplate and assets specific to the Android version, including the splash screen. - `src/` - The primary source code of the application, including the classic `main.cpp`. - `src/gstreamer/` - Helper code to integrate the GStreamer multimedia framework into the application. - `src/lib/` - The backend library used by the application, which can be built seperately and used by other applications as well. It has C++ and Qt Quick APIs and a plugin interface. - `src/plugins/` - Plugins implementing support for various vehicles. - `src/ui/` - The QML files implementing the application user interface. - `src/ui/assets/` - Static image assets used in the UI. - `src/ui/components/` - QML components used repeatedly throughout the UI. - `src/ui/helpers/` - Little helpers used internally by the QML components. # Build Instructions ## General Kirogi is a KDE application using KDE's standard CMake-based build system. KDE's [build documentation](https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source) applies to Kirogi, but here are some example build commands you can adapt to suit your needs: ``` cd kirogi mkdir build cd build cmake -DCMAKE_BUILD_TYPE=relwithdebinfo -DCMAKE_INSTALL_PREFIX= ../ make make install ``` Kirogi's build system supports building the backend library only if you're building a new application using its backend library. Check the top-level [`CMakeLists.txt`](https://invent.kde.org/kde/kirogi/blob/master/CMakeLists.txt) file for build options. +If you are including the [MAVLink](https://en.wikipedia.org/wiki/MAVLink) plugin for the build, then the CMake command would be: + +``` +cmake -DCMAKE_BUILD_TYPE=relwithdebinfo -DCMAKE_INSTALL_PREFIX= -DMAVLINK_INCLUDE_DIR ../ +``` + ## Android For local development builds targeting Android, we recommend the [KDE Android SDK Docker image](https://community.kde.org/Android/Environment_via_Container). Its pre-installed software and helper scripts make building Kirogi and its dependencies fast and easy. # Dependencies Kirogi is written in C++14 and QML. ## General Kirogi requires recent versions of Qt and some of the [KDE Frameworks](https://kde.org/products/frameworks/) libraries. For a complete list of dependencies, check the top-level [`CMakeLists.txt`](https://invent.kde.org/kde/kirogi/blob/master/CMakeLists.txt) file in the codebase, or just try to build the application and follow the instructions in the build output in case of missing dependencies. Kirogi also requires a recent version of the [GStreamer](https://gstreamer.freedesktop.org/) multimedia framework and in particular the `gstqmlgl` sink plugin in `gst-plugins-good`. ## Android On Android, Kirogi currently additionally depends on [QtZeroConf](https://github.com/jbagg/QtZeroConf) for mDNS-based vehicle discovery (desktop builds use [KDNSSD](https://api.kde.org/frameworks/kdnssd/html/index.html) instead). # License Kirogi's library in src/lib/ and bundled vehicle support plugins in src/plugins/ are licensed under LGPL v2.1 (or later), see COPYING.LIB. The frontend (UI and other business logic) is licensed under GPL v2 (or later), see COPYING. The app icon in data/icons/ is licensed under LGPL v2.1 (or later), see COPYING.LIB. The mascot artwork in src/ui/assets/ is licensed under CC-BY-SA 4.0, see COPYING.MASCOT. diff --git a/faq.md b/faq.md index f50914a..da2544b 100644 --- a/faq.md +++ b/faq.md @@ -1,94 +1,94 @@ --- layout: page title: FAQ sorted: 3 --- # Table of Contents {:.no_toc} * Do not remove this line (it will not be displayed) {:toc} *** # The Project ## How is Kirogi different from other ground control applications? Created from scratch in February 2019, Kirogi benefits from a lot of prior art. It aims to provide the following unique combination of features: * **End-user focus.** As a [KDE application](https://manifesto.kde.org/), Kirogi aims to be a polished experience that is fun and easy to use for novices and experts alike, with special emphasis on a premium direct control experience. * **Multi-vendor.** Kirogi aims to have wide out-of-the-box support for many vehicles by different manufacturers. Users should be able to use different vehicles without needing to switch ground control software. * **Highly portable.** Kirogi aims to support many different mobile and desktop platforms. Users should be able to switch platforms without needing to switch ground control software. * **Freedom.** Kirogi will always be freely-licensed. Users should have control over and be able to extend and modify their ground control on their own. * **Open governance.** Created and maintained by the [KDE community](https://manifesto.kde.org/), an organization with more than two decades of experience in hosting free software projects. ## What does the name mean? The Kirogi project was started in South Korea. Kirogi (written "기러기" in the native writing system) is the Korean word for wild geese. _Wild_ geese are known as expert flyers. Kirogi's mascot is a farm goose with an adventurous spirit, who flies just as well thanks to the use of superior technology. # Features ## When will Kirogi support my drone? The Kirogi project is still in its early stages. For now it supports the following drones: * Parrot Anafi * Parrot Bebop 2 * Ryze Tello -Additionally, support for the MAVLink protocol is in early development, enabling control of many drones natively speaking this protocol. To build with MAVLink support, the upstream library needs to be installed or the `MAVLINK_INCLUDE_DIR` environment variable defined. +Additionally, support for the MAVLink protocol is in early development, enabling control of many drones natively speaking this protocol. Support for additional vehicles, also by other manufacturers, is very much a goal, as well as support for the [MultiWii Serial Protocol (MSP)](http://www.multiwii.com/wiki/index.php?title=Multiwii_Serial_Protocol). If your vehicle is not on the list yet, check back later! Vehicle support is subject to availability for development and testing. If you are a manufacturer and would like to see Kirogi support your hardware, please [contact the board of directors of KDE e.V.](https://ev.kde.org/contact.php) for this and any other business inquiries. ## Can Kirogi download photos and videos from my drone? Not yet. This feature is considered high priority and will be added before version 1.0. ## Does Kirogi support mission planning and upload? Not yet. A mission planning mode is a future goal. ## Do I need a touchscreen to use Kirogi? A touchscreen is not required to use Kirogi. It has basic support for two-stick gamepad/joypad controllers (it was tested with an Xbox One controller). # Parrot Drones ## Does Kirogi support the Parrot Skycontroller peripherals? Not yet. There is basic support for two-stick gamepad/joypad controllers, however. ## I have a supported Parrot drone. Do I need the Parrot SDK to use Kirogi? The Parrot SDK is not required to use Kirogi. It contains its own implementation of the protocol used to operate Parrot brand drones. # Technology and License ## Does Kirogi support [MAVLink](https://en.wikipedia.org/wiki/MAVLink)? -Support for the MAVLink protocol is in early development, enabling control of many drones natively speaking this protocol. To build with MAVLink support, the upstream library needs to be installed or the `MAVLINK_INCLUDE_DIR` environment variable defined. +Support for the MAVLink protocol is in early development, enabling control of many drones natively speaking this protocol. To build with MAVLink support check [here](https://kirogi.org/contribute.html). ## What technology does Kirogi use? Kirogi is written in C++14 and QML. It uses the [Kirigami](https://www.kde.org/products/kirigami/) UI toolkit (part of [KDE Frameworks](https://www.kde.org/products/frameworks/)) and Qt Quick, supported on a diverse array of mobile and desktop platforms. ## What is the license? Kirogi's library in src/lib/ and bundled vehicle support plugins in src/plugins/ are licensed under LGPL v2.1 (or later), see COPYING.LIB. The frontend (UI and other business logic) is licensed under GPL v2 (or later), see COPYING. The app icon in data/icons/ is licensed under LGPL v2.1 (or later), see COPYING.LIB. -The mascot artwork in src/ui/assets/ is licensed under CC-BY-SA 4.0, see COPYING.MASCOT. \ No newline at end of file +The mascot artwork in src/ui/assets/ is licensed under CC-BY-SA 4.0, see COPYING.MASCOT.