Skip to content
Parker Lusk edited this page Dec 20, 2017 · 1 revision

DesktopQuad Status

December 2017

The most recent push on the DesktopQuad was for the Autonomous Systems class, Winter 2017. For that class, I implemented Monte Carlo Localization with Devon Morris. Two motion models were developed:

  1. a stochastically-driven nearly-constant velocity (SDNCV) model with random acceleration processes
  2. a motion model that uses accelerometer and gyro measurements from an IMU (mechanized)

There are a number of tasks / questions that still exist:

  1. the measurement model is only using position and not orientation measurements. This is because (i) 3-dimensional probability space is easier to work in without underflow than 6-dimensional space; (ii) orientation updates were making the estimate jump around; (iii) the code can be optimized to make the angle conversion quicker (i.e., pass a preprocessed measurement to each particle instead of the raw measurement); (iv) even though we use quaternions in the motion model propagation step, we convert the quaternion to Euler angles in this step -- look into the way the MEKF is formulated for a potentially more elegant solution.
  2. the IMU motion model never seemed to work as well as it should -- I have some unresolved misunderstandings here. It seemed that the IMU propagation model did not track as well as it should. Additionally, when the quad would roll or pitch to move, the propagation would cause the particles to move in the correct direction, but also down. I added a velocity damping term on the particles to help mitigate this.
  3. I'm not sure (never was able to test because lack of a good ROSflight port) if MCL is better than just the low rate ArUco marker map estimate.
  4. Look into using a non-linear complementary filter for attitude and then feeding that into a cascaded LTV Kalman filter for estimate position.
  5. Compare with a rather vanilla EKF
  6. I was using the old C port of ROSflight to run on the BetaFPV F3 flight controller; upgrade the C++ ROSflight and add support for the on board Taranis RX.
  7. Clean up the state plotter -- abstract out into a package/classes.
  8. Investigate why ArUco estimate seemed coupled to yaw -- is it because there is a slight offset from camera to body? This was mostly noticeable in simulation with ground truth.
  9. Figure out flying in sim with the ROSflight sil.
Clone this wiki locally