Increased Autonomy For Quadrocopter Systems: Trajectory Generation, Fail-Safe Strategies And State Estimation