Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Unmanned Aerial Vehicle Pose-based Control

License

NotificationsYou must be signed in to change notification settings

filipdutescu/uavpc

Repository files navigation

Actions StatuscodecovGitHub release (latest by date)

UAVPC - Unmanned Aerial Vehicle Pose-based Control

A small utility intended to be used with a Raspberry Pi and MPU 6050 IMU. Its goalis to control the flight of a drone using hand gestures (made with the MPU 6050)and display its video feed. It can also detect poses in the video stream throughOpenPose.

The names comes from the initial goal, of using the body poses to control the flightof the drone, but due to the unreliable nature of the UDP protocol used in my droneto send the video stream, it was unreliable. This lead to changing it to use gesturesmade with the MPU 6050.

Features

  • Gesture recognition with the MPU 6050 using a Kalman filter. Supported gesturesinclude rotations around the X and Y axis of the IMU.
  • Keyboard commands (as seen in theuavpc::Joystick class) for:
    • Sending commands to the drone, to compensate lack of more gestures
    • Toggling on/off pose recognition
    • Toggling on/off video stream saving
  • Drone control using either commands or gestures.
    • Currently supported drones: DJI Tello (and any drone using the same API by usingthe existing classes).

Getting Started

These instructions will get you a copy of the project up and running on your localmachine for development and testing purposes.

Prerequisites

The project is meant to run on a Raspberry Pi, connected to a MPU 6050 IMU and aDJI Tello Drone. While not required, I found that using USB tethering on mysmartphone was a sufficient way to control the Raspberry Pi in a desktop mode(using VNC).

Note:You also need to be able to provideCMake a supportedgenerator.

Installing

It is fairly easy to install the project, all you need to do is clone or downloadit fromGitHub.

If you wish to clone the repository, rather than download it, you simply needto run:

git clone https://github.com/filipdutescu/uavpc.git

To install analready built project, you needto run theinstall target with CMake. For example:

cmake --build build --target install --config Release# a more general syntax for that command is:cmake --build<build_directory> --target install --config<desired_config>

or

make install

which will also build the project.

Building the project

To build the project, all you need to do,after correctlyinstalling the project, is run a similarCMake routineto the the one below:

mkdir build/&&cd build/cmake .. -DCMAKE_INSTALL_PREFIX=/absolute/path/to/custom/install/directorycmake --build. --target install

or

make release

Note:The customCMAKE_INSTALL_PREFIX can be omitted if you wish toinstall inthe default install location.

Generating the documentation

In order to generate documentation for the project, you need to configure the buildto use Doxygen. This is easily done, by modifying the workflow shown above as follows:

mkdir build/&&cd build/cmake .. -Duavpc_ENABLE_DOXYGEN=1 -DCMAKE_INSTALL_PREFIX=/absolute/path/to/custom/install/directorycmake --build. --target doxygen-docs

Note:This will generate adocs/ directory in theproject's root directory.

Running the tests

By default, the template usesCatch2 forunit testing. Unit testing can be disabled in the options, by setting theENABLE_UNIT_TESTING (fromcmake/StandardSettings.cmake) to be false. To runthe tests, simply use CTest, from the build directory, passing the desireconfiguration for which to run tests for. An example of this procedure is:

cd build# if not in the build directory alreadyctest -C Release# or `ctest -C Debug` or any other configuration you wish to test# you can also run tests with the `-VV` flag for a more verbose output (i.e.#Catch2 output as well)

To build and run tests you can also use:

maketest

Contributing

Please readCONTRIBUTING.md for details on our how you canbecome a contributor and the process for submitting pull requests to us.

Versioning

This project makes use ofSemVer for versioning. A list ofexisting versions can be found in theproject's releases.

Authors

License

This project is licensed under theApache 2.0- see theLICENSE file for details.


[8]ページ先頭

©2009-2025 Movatter.jp