# Using an Xbox controller to fly a Quadrocopter

So I have a quadrocopter, it does come with a remote but I intend to run certain modifications to the copter, like installing a camera, a mechanical manipulator, and other random modifications. The remote that comes with the copter isn't flexible enough to help with such functions and plus it lacks any more buttons.

I was wondering if I could somehow program the quadrocopter to respond to my Xbox controller. I was planning on using my laptop's Bluetooth connection to talk to copter. The Xbox controller which is connected to the computer would be then used to control the quadrocopter. So my question is, how exactly do I program the controller? How do I go about making all of this possible?

I understand this question is really vague and that there are too many options out there, but I do need help figuring this out.

• We use playstation controllers to control all our laptops. This is perfectly plausible. – Josh Vander Hook Apr 29 '13 at 13:21
• Bluetooth range is the main limiting factor here. – Octopus Apr 29 '13 at 19:40

Yes, in general this idea is perfectly plausible. However the method is going to be specific to your setup. I.e. the operating system you are using on your control computer and the onboard controller that you are employing. In our lab we use an Ardupilot Mega as our onboard controller for some of our quadrotors. To solve this problem I used the Linux joystick API to acquire the data from the Xbox controller (or a PS3 controller for that matter). I can then send this data to an Arduino that I have used to replace the RC receiver or I can send it directly to the Ardupilot via Xbee using the Mavlink protocol. If you can provide more detail about your setup then I may be able to provide a more detailed response.

This is easy actually!

1. (ROS + Joy package) -- http://www.ros.org

2. XBee (as mentioned by @DaemonMaker)

3. A simple program that takes the joy_node publications and sends them out over XBee. This could be as simple as rostopic echo /joy >> /dev/ttyS0 or such, depending on how much control you have over the receiving end.

Note: We use playstation controllers on all our robots. Highly recommended.

Xbox and PS3 controllers are very versatile, it is true, but don't forget about range.

Bluetooth was only intended for short range operations out to about 10m (33ft.) for class 2 devices (xbox and ps3 controllers have class 2 transmitters) and 100m(330ft) for class 1 devices. Flying devices could most certainly go beyond that very quickly and you will risk losing control.

You're better off using an RC radio. Even though they use the same part of the RF spectrum (2.4GHz), RC radios typically have more power and are good for a couple of miles in good weather. You can get RC controllers with 8 channels and more, thereby offering greater flexibility of number of controlled devices.

I know it's not software out of the box but if you are into programming, I suggest you to look into the gaming library GLFW3. It's the best library that is used in games and OpenGL, and you have many functions for controlling all input devices. It also has bindings for your favorite language probably

I found a web site that uses wifi if that would help with the quadcopter. endurance-rc.com They have some neat applications. I've put in an inquiry through their email chain.