Monday, September 15, 2014

Software architecture




Resources used for this research:


ROS: http://www.ros.org/

Crazyflie node: https://github.com/jlamyi/crazyflie

Crazyflie pc client: https://github.com/bitcraze/crazyflie-clients-python (x-mode is not supported in this version)

Crazyflie firmware: 



Monday, September 1, 2014

Vertical fly test

Goal: To make crazyflie to fly straight vertically with different thrust values

      Crazyflie was tested with default firmware, and below data are initial test parameters

Test vehical: crazyflie-ch10
PID control parameters:

#define PID_ROLL_RATE_KP  70.0
#define PID_ROLL_RATE_KI  0.0
#define PID_ROLL_RATE_KD  0.0
#define PID_ROLL_RATE_INTEGRATION_LIMIT    100.0

#define PID_PITCH_RATE_KP  70.0
#define PID_PITCH_RATE_KI  0.0
#define PID_PITCH_RATE_KD  0.0
#define PID_PITCH_RATE_INTEGRATION_LIMIT   100.0

#define PID_YAW_RATE_KP  50.0
#define PID_YAW_RATE_KI  25.0
#define PID_YAW_RATE_KD  0.0
#define PID_YAW_RATE_INTEGRATION_LIMIT     500.0

#define PID_ROLL_KP  3.5
#define PID_ROLL_KI  2.0
#define PID_ROLL_KD  0.0
#define PID_ROLL_INTEGRATION_LIMIT    20.0

#define PID_PITCH_KP  3.5
#define PID_PITCH_KI  2.0
#define PID_PITCH_KD  0.0
#define PID_PITCH_INTEGRATION_LIMIT   20.0

#define PID_YAW_KP  0.0
#define PID_YAW_KI  0.0
#define PID_YAW_KD  0.0
#define PID_YAW_INTEGRATION_LIMIT     360.0


#define DEFAULT_PID_INTEGRATION_LIMIT  5000.0


Thrust = 59000 (Crazyflie accelerates from 41000 to 59000 at 6 seconds):




   When thrust = 60000, data above shows that pitch has an error of  <1 degree, and roll has an error of <1.5 degrees. Crazyflie keeps flying straight vertically with thrust = 60000.


Thrust = 50000:




       When thrust = 50000, Crazyfile is unstable, and flies over different positions. Pitch has an error of 7.7 degrees at most, and roll maintains an error of <2 degrees.


Thrust = 41000:


      It is hard to collect valid data for this test since it crashes very soon after it takes off and reaches 41000