// Constructor -> Is Called when the Object is created public VTOLUAV() { // When the Object is loaded from the sd card this method will not be called joystick.values.Add(phi_rolerate); joystick.values.Add(theta_rolerate); joystick.values.Add(psi_rolerate); joystick.values.Add(throttle); uavData.Add(joystick); //Factor = new UAVParameter ("Factory", 10, 0, 1000, 0); // Factor for Mixers //uavData.Add (Factor); lagesensor = new AHRS ("lagesensor", UsbHelper.GetDevicPathebyClass ("AHRS")); uavData.Add (lagesensor); ////gpsempfänger = new GPS ("gpsempfänger", UsbHelper.GetDevicPathebyClass ("GPS"), 38400); ////uavData.Add (gpsempfänger); ////empfängerusb = new UAVJoystick ("empfängerusb", "", new IntPtr ()); ////uavData.Add (empfängerusb); // Servo Initialisierung servo1 = new PWM("servo1", 0, null, 1); //("Name", startwert, "null"=ausgabegerät_maestro, Kanal am Maestro) uavData.Add(servo1); servo1["LowLimit"].DoubleValue = -80; servo1["Neutral"].DoubleValue = 0; servo1["HighLimit"].DoubleValue = 80; servo1["Invert"].IntValue = 0; servo2 = new PWM ("servo2", 0, null, 2); uavData.Add (servo2); servo2 ["LowLimit"].DoubleValue = -80; servo2 ["Neutral"].DoubleValue = 0; servo2 ["HighLimit"].DoubleValue = 80; servo2 ["Invert"].IntValue = 0; servo3 = new PWM ("servo3", 90, null, 3); uavData.Add (servo3); servo3 ["LowLimit"].DoubleValue = -100; servo3 ["Neutral"].DoubleValue = 0; servo3 ["HighLimit"].DoubleValue = 100; servo3 ["Invert"].IntValue = 1; servo4 = new PWM ("servo4", 90, null, 4); uavData.Add (servo4); servo4 ["LowLimit"].DoubleValue = -100; servo4 ["Neutral"].DoubleValue = 0; servo4 ["HighLimit"].DoubleValue = 100; servo4 ["Invert"].IntValue = 1; servo5 = new PWM ("servo5", 0, null, 5); uavData.Add (servo5); servo5 ["LowLimit"].DoubleValue = -100; servo5 ["Neutral"].DoubleValue = 0; servo5 ["HighLimit"].DoubleValue = 100; servo5 ["Invert"].IntValue = 0; //// PID CONFIG kp_Höhe = new UAVParameter("kp_Höhe", 5, 0, 10, 0); kd_Höhe = new UAVParameter("kd_Höhe", 0, 0, 10, 0); ki_Höhe = new UAVParameter("ki_Höhe", 0, 0, 10, 0); uavData.Add(kp_Höhe); uavData.Add(kd_Höhe); uavData.Add(ki_Höhe); kp_Quer = new UAVParameter("kp_Quer", 5, 1, 10, 0); kd_Quer = new UAVParameter("kd_Quer", 0, 1, 10, 0); ki_Quer = new UAVParameter("ki_Quer", 0, 1, 10, 0); uavData.Add(kp_Quer); uavData.Add(kd_Quer); uavData.Add(ki_Quer); kp_Seite = new UAVParameter("kp_Seite", 5, 0, 10, 0); kd_Seite = new UAVParameter("kd_Seite", 0, 0, 10, 0); ki_Seite = new UAVParameter("ki_Seite", 0, 0, 10, 0); uavData.Add(kp_Seite); uavData.Add(kd_Seite); uavData.Add(ki_Seite); sp_Höhe = new UAVParameter("Höhe_SP", 0, -90, 90, 10); sp_Quer = new UAVParameter("Quer_SP", 0, -180, 180, 10); sp_Seite = new UAVParameter("Seite_SP", 0, -180, 180, 10); uavData.Add(sp_Höhe); uavData.Add(sp_Quer); uavData.Add(sp_Seite); PID_Out_Höhe = new UAVParameter("PID_Out_Höhe", 0, -100, 100, 0); PID_Out_Quer = new UAVParameter("PID_Out_Quer", 0, -100, 100, 0); PID_Out_Seite = new UAVParameter("PID_Out_Seite", 0, -100, 100, 0); uavData.Add(PID_Out_Höhe); uavData.Add(PID_Out_Quer); uavData.Add(PID_Out_Seite); }
// Constructor -> Is Called when the Object is created public VTOLUAV() { // When the Object is loaded from the sd card this method will not be called uavData.Add(totalpidgain); joystick.values.Add(phi_rolerate); joystick.values.Add(theta_rolerate); joystick.values.Add(psi_rolerate); joystick.values.Add(throttle); uavData.Add(joystick); lagesensor = new AHRS ("lagesensor", UsbHelper.GetDevicPathebyClass ("AHRS")); lagesensor["cursettings"].Value = "371,376,379,17,-127,-87"; uavData.Add (lagesensor); gpsempfänger = new GPS ("gpsempfänger", UsbHelper.GetDevicPathebyClass ("GPS"), 38400); uavData.Add (gpsempfänger); // empfängerusb = new UAVJoystick ("empfängerusb", "", new IntPtr ()); //uavData.Add (empfängerusb); watch.Start(); // Servo Initialisierung servo1 = new PWM ("servo1", 0, null, 1); //("Name", startwert, "null"=ausgabegerät_maestro, Kanal am Maestro) uavData.Add (servo1); servo1 ["LowLimit"].DoubleValue = -100; servo1 ["Neutral"].DoubleValue = 0; servo1 ["HighLimit"].DoubleValue = 100; servo1 ["Invert"].IntValue = 0; servo1.SetHomePosition(0); servo2 = new PWM ("servo2", 0, null, 2); uavData.Add (servo2); servo2 ["LowLimit"].DoubleValue = -100; servo2 ["Neutral"].DoubleValue = 0; servo2 ["HighLimit"].DoubleValue = 100; servo2 ["Invert"].IntValue = 0; servo2.SetHomePosition(0); servo3 = new PWM ("servo3", 100, null, 3); uavData.Add (servo3); servo3 ["LowLimit"].DoubleValue = -80; servo3 ["Neutral"].DoubleValue = 0; servo3 ["HighLimit"].DoubleValue = 80; servo3 ["Invert"].IntValue = 1; servo3.SetHomePosition(100); servo4 = new PWM ("servo4", 100, null, 4); uavData.Add (servo4); servo4 ["LowLimit"].DoubleValue = -80; servo4 ["Neutral"].DoubleValue = 0; servo4 ["HighLimit"].DoubleValue = 80; servo4 ["Invert"].IntValue = 1; servo4.SetHomePosition(100); servo5 = new PWM ("servo5", -80, null, 5); uavData.Add (servo5); servo5 ["LowLimit"].DoubleValue = -100; servo5 ["Neutral"].DoubleValue = 0; servo5 ["HighLimit"].DoubleValue = 100; servo5 ["Invert"].IntValue = 0; servo5.SetHomePosition(-80); servo6 = new PWM ("servo6", -80, null, 6); uavData.Add (servo6); servo6 ["LowLimit"].DoubleValue = -100; servo6 ["Neutral"].DoubleValue = 0; servo6 ["HighLimit"].DoubleValue = 100; servo6 ["Invert"].IntValue = 0; servo6.SetHomePosition(-80); // PID CONFIG -------------------------------------- kp_Höhe = new UAVParameter ("kp_Höhe", 7 , 0, 10, 0);//Sinnvoll=1Höhe = new UAVParameter ("kp_Höhe", 1, max, min, updaterate) kd_Höhe = new UAVParameter ("kd_Höhe", 10 , -10, 10, 0);//Sinnvoll=-3 Achtung aus irgend einem Grund negativ !!! ki_Höhe = new UAVParameter ("ki_Höhe", 0 , 0, 10, 0);//Sinnvoll=1 ks_Höhe = new UAVParameter ("ks_Höhe", 0.0, 0, 10, 0);//Sinnvoll=0.2 lp_Höhe = new UAVParameter ("lp_Höhe", 1 , 0, 10, 0); ld_Höhe = new UAVParameter ("ld_Höhe", 1 , 0, 10, 0); li_Höhe = new UAVParameter ("li_Höhe", 1 , 0, 10, 0); ls_Höhe = new UAVParameter ("ls_Höhe", 0.2 , 0, 10, 0); uavData.Add (kp_Höhe); uavData.Add (kd_Höhe); uavData.Add (ki_Höhe); uavData.Add (ks_Höhe); uavData.Add (lp_Höhe); uavData.Add (ld_Höhe); uavData.Add (li_Höhe); uavData.Add (ls_Höhe); //---------------------------------------------------- kp_Quer = new UAVParameter ("kp_Quer", 5 , 0, 10, 0);//Sinnvoll=1 kd_Quer = new UAVParameter ("kd_Quer", 5 , 0, 10, 0);//Sinnvoll=3 ki_Quer = new UAVParameter ("ki_Quer", 0 , 0, 10, 0);//Sinnvoll=1 ks_Quer = new UAVParameter ("ks_Quer", 0.0, 0, 10, 0);//Sinnvoll=0.2 lp_Quer = new UAVParameter ("lp_Quer", 1 , 0, 10, 0); ld_Quer = new UAVParameter ("ld_Quer", 1 , 0, 10, 0); li_Quer = new UAVParameter ("li_Quer", 1 , 0, 10, 0); ls_Quer = new UAVParameter ("ls_Quer", 0.2 , 0, 10, 0); uavData.Add (kp_Quer); uavData.Add (kd_Quer); uavData.Add (ki_Quer); uavData.Add (ks_Quer); uavData.Add (lp_Quer); uavData.Add (ld_Quer); uavData.Add (li_Quer); uavData.Add (ls_Quer); //---------------------------------------------------- kp_Seite = new UAVParameter ("kp_Seite", -3 , -10, 10, 0); kd_Seite = new UAVParameter ("kd_Seite", 6 , -10, 10, 0); ki_Seite = new UAVParameter ("ki_Seite", 0 , -10, 10, 0); ks_Seite = new UAVParameter ("ks_Seite", 0 , -10, 10, 0); lp_Seite = new UAVParameter ("lp_Seite", 0.5 , 0, 10, 0); ld_Seite = new UAVParameter ("ld_Seite", 0.5 , 0, 10, 0); li_Seite = new UAVParameter ("li_Seite", 1 , 0, 10, 0); ls_Seite = new UAVParameter ("ls_Seite", 0 , 0, 10, 0); uavData.Add (kp_Seite); uavData.Add (kd_Seite); uavData.Add (ki_Seite); uavData.Add (ks_Seite); uavData.Add (lp_Seite); uavData.Add (ld_Seite); uavData.Add (li_Seite); uavData.Add (ls_Seite); //---------------------------------------------------- sp_Höhe = new UAVParameter ("Höhe_SP" , 0, -90, 90, 10); sp_Quer = new UAVParameter ("Quer_SP" , 0, -180, 180, 10); sp_Seite = new UAVParameter ("Seite_SP", 0, -180, 180, 10); uavData.Add (sp_Höhe); uavData.Add (sp_Quer); uavData.Add (sp_Seite); output_Höhe = new UAVParameter("PID_Out_Höhe" ,0,-100,100,0); output_Quer = new UAVParameter("PID_Out_Quer" ,0,-100,100,0); output_Seite = new UAVParameter("PID_Out_Seite",0,-100,100,0); uavData.Add(output_Höhe); uavData.Add(output_Quer); uavData.Add(output_Seite); SteuerMotorLeistung = new UAVParameter("SteuerMotorLeistung",0,0,100,0); HauptMotorLeistung = new UAVParameter("HauptMotorLeistung",-80,-100,100,0); HauptMotorDiff = new UAVParameter("HauptMotorDiff",0,-20,20,0); uavData.Add(SteuerMotorLeistung); uavData.Add(HauptMotorLeistung); uavData.Add(HauptMotorDiff); NewSeitePV = new UAVParameter("NewSeitePV",0,-180,180,0); uavData.Add(NewSeitePV); uavData.Add(output_Höhe); }