def createAUV(X0): auv = AUV(T, delta, X0, DW, U) for i in range(0, accuracy.size): ph = PhiBounds[i, :] th = ThetaBounds[i, :] PhiGrad = np.append(np.arange(ph[0], ph[1], (ph[1] - ph[0]) / NBeams), ph[1]) ThetaGrad = np.append( np.arange(th[0], th[1], (th[1] - th[0]) / NBeams), th[1]) auv.addsensor(accuracy[i], PhiGrad / 180.0 * np.pi, ThetaGrad / 180.0 * np.pi, seabed, estimateslope=True) return auv
def createAUV(X0): auv = AUV(T, delta, X0, DW, U) # if the prediction is intended to be by virtue of the system, then the following loop has to be commented # for i in range(0, accuracy.size): # ph = PhiBounds[i,:] # th = ThetaBounds[i,:] # PhiGrad = np.append(np.arange(ph[0], ph[1], (ph[1] - ph[0]) / NBeams), ph[1]) # ThetaGrad = np.append(np.arange(th[0], th[1], (th[1] - th[0]) / NBeams), th[1]) # auv.addsensor(accuracy[i], PhiGrad / 180.0 * np.pi, ThetaGrad / 180.0 * np.pi, seabed, estimateslope = True) return auv
X0 = [ 0.001 + 0.1 * np.random.normal(0, 1), -0.0002 + 0.1 * np.random.normal(0, 1), -10.0003 + 0.1 * np.random.normal(0, 1) ] #DW = [0.05,0.05,0.05] DW = [0.0, 0.0, 0.0] U = lambda t: np.pi * np.array([ 1 / 100.0 * np.cos(1.0 * np.pi * t / T), 1 / 3.0 * np.cos(4.0 * np.pi * t / T) ]) v = 2.0 # 5.0 seabed = Profile() estimateslope = False auv = AUV(T, delta, X0, DW, U, v) test = TestEnvironment(T, delta, NBeams, accuracy, PhiBounds, ThetaBounds, auv, seabed, estimateslope) test.run() test.plotspeed([0, 0, 0], 'D:\\projects.git\\NavigationResearch\\results\\slope_known\\') test.plot3Dtrajectory( [0], 'D:\\projects.git\\NavigationResearch\\results\\slope_known\\') test.plottrajectory( 'D:\\projects.git\\NavigationResearch\\results\\slope_known\\') estimateslope = True auv = AUV(T, delta, X0, DW, U, v) test = TestEnvironment(T, delta, NBeams, accuracy, PhiBounds, ThetaBounds, auv, seabed, estimateslope) test.run() test.plotspeed(