/// <summary> /// Input manager that includes a single VIVE Tracker as sensor and a linear kinematic synergy as reference generator. /// </summary> /// <param name="sensorManager">The VIVE Tracker object to be used as sensor.</param> /// <param name="xBar">The initial condition for the references.</param> /// <param name="xMin">The lower limits for the references.</param> /// <param name="xMax">The upper limits for the references.</param> public KinematicVIVEInputManager(VIVETrackerManager sensorManager, float[] xBar, float[] xMin, float[] xMax, float[] theta, float[] thetaMin, float[] thetaMax) { if (sensorManager == null) { throw new System.ArgumentNullException("The provided sensor manager is empty."); } this.sensorManager = sensorManager; // Create a custom KSRG referenceGenerator = new LinearKinematicSynergy(xBar, xMin, xMax, theta, thetaMin, thetaMax); }
/// <summary> /// Input manager that includes a single VIVE Tracker as sensor and a linear kinematic synergy as reference generator. /// </summary> /// <param name="sensorManager">The VIVE Tracker object to be used as sensor.</param> public KinematicVIVEInputManager(VIVETrackerManager sensorManager) { if (sensorManager == null) { throw new System.ArgumentNullException("The provided sensor manager is empty."); } this.sensorManager = sensorManager; // Create a single DOF KSRG float[] xBar = { 0.0f }; float[] xMin = { -5.0f }; float[] xMax = { 145.0f }; float[] theta = { 1.0f }; float[] thetaMin = { 0.8f }; float[] thetaMax = { 2.4f }; referenceGenerator = new LinearKinematicSynergy(xBar, xMin, xMax, theta, thetaMin, thetaMax); }