Controlling a drone with brain control. Aka awakening the force, or telekinesis.
Note: works on OSX
- Put on your Emotiv headset and ensure it's connected
- Open the project in XCode (
open OSX_Project/MentalCommand/MentalCommand.xcodeproj
) and hit CMD + R to build and run
- Git clone this directory, then navigate to it in your terminal
- Run
sudo pip install -r requirements.txt
to install dependencies - Run
python setup.py install
to install local dependencies - Turn on Solo and controller, and connect your computer to its Wifi
- Run
python drone-control.py
- Install solo-cli with
pip install -UI git+https://github.com/3drobotics/solo-cli
(you may need sudo for pip installs) - Install virtualenv with
pip install virtualenv
- Git clone this directory, then navigate to it in your terminal
- Run
sudo pip install -r requirements.txt
to install dependencies - Run
python setup.py install
to install local dependencies
Get one here
- Run
solo script pack
while connected to the internet to bundle your script - Turn on your Solo and connect to its Wifi from your computer
- Run
solo script run <myscript.py>
Try out the DroneDirect repo and ensure you can talk to/direct a Solo from there.
The template.py
file in the Examples folder is a great place to start. Run it locally, and put some commands in the "your code here" section.
If you're looking for commands, they're well documented in dronedirect/init.py of this repo.
We used this Emotiv Objective-C Example
This tutorial for the Python side makes this pretty easy. Test server/client to make sure it works, then integrate the client side into the main Python code.
We then sent actions over the server-side UDS from the Mac app (Emotiv-side) packaged as JSON, and parsed the incoming JSON into actions on the client (drone) side.
- Solo Developer Guide
- DroneDirect repo
- About Unix Domain Sockets (UDS)
- Emotiv Community SDK
- Emotiv Objective-C Example
Much of the drone control piece of this project is adapted from DroneDirect: https://github.com/djnugent/dronedirect