TODO - Create launch file - Create interfacing program - Read state - Nav Date - topic name: /ardrone/navdata - rosmsg: ardrone_autonomy/Navdata - IMU Data - topic name: /ardrone/imu - rosmsg: sensor_msgs/Imu - Mag Data - topic name: /ardrone/mag - romsg: geometry_msgs/Vector3Stamped - Reformat to Eigen Matrix State index map x_1: X x_2: Y x_3: Z x_4: Phi x_5: Theta x_6: Psi x_7: X dot x_8: Y dot x_9: Z dot x_10: Phi dot x_11: Theta dot x_12: Psi dot x_13: State dependent distrubances including aerodynamic nonlinearities for linear position[1] x_14: State dependent distrubances including aerodynamic nonlinearities for linear position[2] x_15: State dependent distrubances including aerodynamic nonlinearities for linear position[3] x_16: State dependent distrubances including aerodynamic nonlinearities for angular position[1] x_17: State dependent distrubances including aerodynamic nonlinearities for angular position[2] x_18: State dependent distrubances including aerodynamic nonlinearities for angular position[3] x_19: Sliding mode errors for linear position[1](Should be integration) x_20: Sliding mode errors for linear position[2] x_21: Sliding mode errors for linear position[3] x_22: Sliding mode errors for angular position[1] x_23: Sliding mode errors for angular position[2] x_24: Sliding mode errors for angular position[3] x_25-55: Weights for neural network in the form of a vector for the first neural network. Converted into a matrix later. The size is determined by the number of layers in the neural net. x_55-85: Weights for neural network in the form of a vector for the second neural network. Converted into a matrix later. The size is determined by the number of layers in the neural net. In the matlab code there are some state parameters that are used to build the actual state vector. As far as I can tell the actual plant information comes from 4 different varaibles: zeta, eta, zetadot, etadot. - Zeta: X: current x position Y: current y position Z: current z position - Eta: Theta: current pitch Phi: current roll Psi: current yaw - ZetaDot: X dot: current x velocity Y dot: current y veloctiy Z dot: current z velocity - EtaDot: Theta dot: Pitch angular velocity Phi dot: Roll angular velocity Psi dot: Yaw angular velocity These only account for 12 of the 23 other states. 11 states are unknown - process into controller - get output - send output as command velocity DEMO - Hold position: Move ardrone around and see if it comes back to it's original position. Plot - Position - Position error - Angular Position - Angular Position error