Beispiel #1
0
 public void SetUp()
 {
     this.accDistType          = new Mock <Normal>(1);
     this.oriDistType          = new Mock <Normal>(1);
     this.source               = new IMUSource(this.accDistType.Object, this.oriDistType.Object, this.bufferSize, new Vector3(new float[] { 0, 0, 0 }));
     this.zeroOrientation      = new Vector3(0, 0, 0);
     this.standardAcceleration = new Vector3(1, 2, 3);
 }
Beispiel #2
0
        public void GetLastVelocityNoDataTest()
        {
            Vector3 v0 = new Vector3(1, 2, 3);

            this.source = new IMUSource(this.accDistType.Object, this.oriDistType.Object, 5, new Vector3(0, 0, 0), v0);
            Measurement <Vector3> res = this.source.GetLastVelocity();

            this.AssertVectorAreEqual(v0, res.Data);
        }
Beispiel #3
0
        public void VelocityCorrectStdTest()
        {
            this.source = new IMUSource(new Normal(1), new Normal(1), 5);
            Vector3 acc0 = new Vector3(0, 0, 0);
            Vector3 acc1 = new Vector3(1, 2, 3);

            this.source.AddMeasurements(0, acc0, this.zeroOrientation);
            this.source.AddMeasurements(1000, acc1, this.zeroOrientation);
            Measurement <Vector3> res = this.source.GetLastVelocity();

            Assert.AreEqual(1, ((Normal)res.DistributionType).Stddev, 0.0001);
        }
Beispiel #4
0
        public void GetLastVelocityBufferLimitReached()
        {
            this.source = new IMUSource(this.accDistType.Object, this.oriDistType.Object, 3, new Vector3(0, 0, 0));
            Vector3 v0 = new Vector3(0, 0, 0);
            Vector3 v1 = new Vector3(1, 1, 1);

            this.source.AddMeasurements(0, v0, this.zeroOrientation);
            this.source.AddMeasurements(1000, v1, this.zeroOrientation);
            this.source.AddMeasurements(2000, v0, this.zeroOrientation);
            this.source.AddMeasurements(3000, v1, this.zeroOrientation);
            this.source.AddMeasurements(4000, v0, this.zeroOrientation);
            Measurement <Vector3> res = this.source.GetLastVelocity();

            this.AssertVectorAreEqual(new Vector3(2, 2, 2), res.Data);
            Assert.AreEqual(4000, res.TimeStamp);
        }
Beispiel #5
0
        public void GetLastOrientationBufferLimitReached()
        {
            this.source = new IMUSource(this.accDistType.Object, this.oriDistType.Object, 3, new Vector3(0, 0, 0));
            Vector3 v0 = new Vector3(0, 0, 0);
            Vector3 v1 = new Vector3(1, 1, 1);
            Vector3 v2 = new Vector3(2, 2, 2);
            Vector3 v3 = new Vector3(3, 3, 3);
            Vector3 v4 = new Vector3(4, 4, 4);

            this.source.AddMeasurements(0, v0, v0);
            this.source.AddMeasurements(1, v0, v1);
            this.source.AddMeasurements(2, v0, v2);
            this.source.AddMeasurements(3, v0, v3);
            this.source.AddMeasurements(4, v0, v4);
            Measurement <Vector3> res = this.source.GetLastOrientation();

            this.AssertVectorAreEqual(v4, res.Data);
            Assert.AreEqual(4, res.TimeStamp);
        }
Beispiel #6
0
        public void TestGetDataClosestTo()
        {
            this.source = new IMUSource(this.accDistType.Object, this.oriDistType.Object, 10, new Vector3(new float[] { 0, 0, 0 }));
            this.source.AddMeasurements(1, new Vector3(1, 1, 1), new Vector3(0, 0, 0));
            this.source.AddMeasurements(1, new Vector3(1, 1, 1), new Vector3(0, 0, 0));
            this.source.AddMeasurements(10, new Vector3(2, 2, 2), new Vector3(10, 10, 10));
            this.source.AddMeasurements(10, new Vector3(2, 2, 2), new Vector3(10, 10, 10));
            this.source.AddMeasurements(19, new Vector3(3, 3, 3), new Vector3(20, 20, 20));
            this.source.AddMeasurements(19, new Vector3(3, 3, 3), new Vector3(20, 20, 20));
            this.source.AddMeasurements(25, new Vector3(4, 4, 4), new Vector3(30, 30, 30));
            this.source.AddMeasurements(25, new Vector3(4, 4, 4), new Vector3(30, 30, 30));

            List <Measurement <Vector3> > resacc = this.source.GetAccelerationClosestTo(11, 10);
            List <Measurement <Vector3> > resvel = this.source.GetVelocityClosestTo(15, 10);
            List <Measurement <Vector3> > resori = this.source.GetOrientationClosestTo(21, 10);

            Assert.AreEqual(new[] { 10, 10 }, resacc.Select <Measurement <Vector3>, float>(m => m.TimeStamp).ToArray());
            Assert.AreEqual(new[] { 19, 19 }, resvel.Select <Measurement <Vector3>, float>(m => m.TimeStamp).ToArray());
            Assert.AreEqual(new[] { 19, 19 }, resori.Select <Measurement <Vector3>, float>(m => m.TimeStamp).ToArray());
        }
Beispiel #7
0
 public void ZeroBufferSizeInitTest()
 {
     this.source = new IMUSource(this.accDistType.Object, this.oriDistType.Object, 0);
     Assert.AreEqual(this.classDefaultBufferSize, this.source.GetMeasurementBufferSize());
 }
Beispiel #8
0
 /// <summary>
 ///   Method called when creating a UserController.
 /// </summary>
 public override void Init()
 {
     this.imuSource = new IMUSource(new Normal(this.accelerationStd), new Normal(this.orientationStd), this.bufferSize, new Vector3(-0.3213f, -9.81f + 0.0435f, -0.1763f));
 }