Having received many positive emails about my Extended Kalman Filter Tutorial, I wanted to see whether I could write my own general-purpose EKF from scratch, suitable for running on a microcontroller like Arduino, Teensy, and the STM32 platform used on today's popular flight controllers (Pixhawk, Naze, CC3D). I…Continue
Following on the work described in an earlier post, we wanted to build an inexpensive quadcopter that could be controlled by an onboard ODROID U-3 single-board computer.
We were happy with the Naze32 / Baseflight / Multiwii Serial Protocol, but were delighted to discover the new…Continue
After we demoed a little five-channel "AutoPylot" program on a Naze32 with ODROID companion board, our friends at A2USA, Inc . asked us whether we could do the same for the Pixhawk that they use for flying their big birds. We started modifying…Continue
This video shows an ODROID U-3 single-board computer running a Python program that talks to a an AcroNaze32 flight controller (FC) over USB. The Python program uses MSPPG, our Multiwii Serial Protocol Parser Generator library, to serialize up/down/up/down MSP_SET_RAW_RC messages to the FC. By polling the incoming R/C receiver channels…Continue
As shown in this video, I connected the UART of an Acro Naze32 flight controller to an Arduino Mega, and used the pitch values (pitch, get it?) from the IMU to modify the pitch of a buzzer.
You can download the code for this example from …Continue
For a final project in a robotics class, I suggested that a few students try implementing their own version of a parser-generator program like pymavlink. The students built a simple Python-based system in a few days, which parsed JSON message specifications and generated Python code to parse and serialize a simple…
My students and I like to write MAV applications in Python, and we were disappointed in that Google does not provide an interactive map-visualization API in that language. So we wrote one ourselves, which we call GooMPy.
GooMPy provides a Python…Continue
I needed an easy way to access data from the MaxBotix ultrasonic sensors using Python, so I wrote this little package, which you can download from github. It runs on Windows, Linux, and OS X in Python…Continue
Added by Simon D. Levy on December 14, 2014 at 6:30pm — No Comments
In working with autopilot systems like OpenPilot and Pixhawk I have frequently come across references to something called an Extended Kalman Filter (EKF). Googling this term led me to several different web pages and reference papers, most of which I found too difficult to follow. So…Continue
This video shows recent work by Washington and Lee undergraduate student Shannon Nollet: a simple Kalman filter being applied to the a simulated noisy GPS signal in PyQuadSim (http://home.wlu.edu/~levys/software/pyquadsim/), a Python quadrotor simulator. The yellow plot is the original, noisy simulated GPS…Continue
This shaky little video shows me debugging an app with Android Studio over a wireless connection to my Samsung Galaxy S4. The app, DroidPlanner, connects to a 3DRobotics Iris over a 915 MHz radio plugged into the Galaxy's micro USB port, making the USB unavailable for debugging. Thanks to these instructions:
This video shows automated Hover-In-Place (HIP) using the PyQuadSim Python Quadrotor Simulator with OpenCV for optical flow. This setup allows us to prototype HIP and other optical-flow-based algorithms for use with an actual optical-flow sensor like the PX4Flow.
The quadrotor is being flown over a simulated concrete floor using a FrSky R/C transmitter,…
I needed an easy way to access data from the PX4Flow sensor using Python, so I wrote this little package, which you can download from github. It runs on Windows, Linux, and OS X in Python 2 and 3. As with the other Python…Continue
PyQuadSim is a Python program that allows you to fly a simulated quadrotor miniature aerial vehicle (MAV) from a variety of controllers (joystick, R/C transmitter, PS3 controller).
You can modify the source code to add new sensors and other features, as well as configuring the simulated environment for different kinds of…Continue