public VTOLUAV() // Constructor -> Is Called when the Object is created { // 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); }