Quadrotor RTOS

I have a RTOS based quadrotor framework put together and will soon have a controller up and going in the very near future. So far here is what I have functional:

  • PWM input bus library: Reads in all RF receiver PWM inputs in a single bus command instead of creating multiple PwmIn objects. This will be used to determine the input yaw, pitch, roll, throttle values for the controller.
  • PWM output bus library: Similar to the PWM input bus. It just writes all PWM outputs to the ESCs in a single bus command. These pulse widths will be determined by the controller of choice's output.
  • ArduIMU V3 Read Library: I am using a ArduIMU V3 with FreeIMU code uploaded to it. There are some minor mods to the FreeIMU code to include a simple yaw, pitch, roll output to the serial, which is what is being used to get yaw, pitch, roll values into the Mbed. The ypr values will be input into the controller to determine the error for control.

I tested that these libraries are functional by echoing the PWMs from the Rx to the ESC's through the mbed. The reads and writes were ran on periodic threads running @ 50ms while the IMU was also being read in every 200ms. Nothing appeared to be slipping but I didn't have the opportunity to test it on a scope yet. Ideally when I get to building the controller I will optimize these timings much better.

More info to come shortly. I will try to keep this updated.


Please log in to post comments.