Preparing data

The object INGPS contain the multivariate trajectory information for three different tools:

navego : data coming from NAVEGO simulator

iexplorer : data coming from Interial Explorer Simulator

reference: GPS data (used for reference)

navego=read.delim("navego.txt",sep=' ',header=F)
reference=read.delim("reference.txt",sep=' ',header=F)
iexplorer=read.delim("iexplorer.txt",sep=' ',header=F)

INSGPS<-data.frame()
INSGPS<-cbind(tool=rep("iexplorer",nrow(iexplorer)),iexplorer)
INSGPS<-rbind(INSGPS,cbind(tool=rep("navego",nrow(navego)),navego))
INSGPS<-rbind(INSGPS,cbind(tool=rep("reference",nrow(reference)),reference))
names(INSGPS)=c("tool","ts","roll","pitch","yaw","lat","lon","h")

head(INSGPS[sample(1686),])
##           tool     ts         roll       pitch       yaw       lat
## 1441 reference 384075 -0.022552586 0.013376587  2.985842 0.7864510
## 958     navego 384154 -0.004957782 0.005607043 -2.620590 0.7864089
## 414  iexplorer 384172 -0.021081832 0.009470157  2.708177 0.7863899
## 1479 reference 384113 -0.020385097 0.015089837 -2.692576 0.7864112
## 47   iexplorer 383805  0.020196950 0.006955137  2.637679 0.7864874
## 503  iexplorer 384261 -0.051017719 0.008655088  2.601136 0.7863275
##            lon        h
## 1441 0.1336294 300.8800
## 958  0.1336105 302.2584
## 414  0.1335972 303.5350
## 1479 0.1336120 301.4520
## 47   0.1336545 300.6090
## 503  0.1336061 299.7510

Checking for statistical differences in both tools

For every tool (navego,iexplorer,reference), we uniformally and randomly collect 100 samples. Each sample consists of a fixed-length (about the 10 percent) window encompasing the same portion of the trajectory for the three tools. Then, RMSE is calculated for navego and iexplorer considering the reference GPS trajectory.

Results are presented for each variable in the data in the form of boxplot. Then, a student t-test is applied to check the statistical significance of the results

Comparing ROLL data distribution over the three trajectories

bwplot(roll~tool,data=INSGPS,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }
       )

Checking the statistical significant difference for RSME

t1<-INSGPS %>% filter(tool=="iexplorer") %>% select(roll)
t2<-INSGPS %>% filter(tool=="navego")  %>%select(roll)
t3<-INSGPS %>% filter(tool=="reference")  %>%select(roll)

results_iexplorer=as.data.frame(cbind(tool=rep("iexplorer"),calculate_rmse_sampling(t1,t3,windowsize = nrow(t1)*0.1, label = "iexplorer_roll" )))
results_navego=as.data.frame(cbind(tool=rep("navego"),calculate_rmse_sampling(t2,t3,windowsize = nrow(t1)*.01,label= "navego_roll" )))
results=rbind(results_iexplorer,results_navego)
results$rmse=as.numeric(as.character(results$rmse))

bwplot(rmse~tool,data=results,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }, main="RMSE distribution for Roll over 40 samples")

t.test(rmse~tool,data= results)
## 
##  Welch Two Sample t-test
## 
## data:  rmse by tool
## t = -8.3446, df = 113.83, p-value = 1.903e-13
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.0014033835 -0.0008648898
## sample estimates:
## mean in group iexplorer    mean in group navego 
##            0.0004846313            0.0016187679

Significant differences are observed between roll RMSE from Navego and Interial Explorer considering reference information

Comparing PITCH data distribution over the three trajectories

bwplot(pitch~tool,data=INSGPS,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }
       )

Checking the statistical significant difference for RSME

t1<-INSGPS %>% filter(tool=="iexplorer") %>% select(pitch)
t2<-INSGPS %>% filter(tool=="navego")  %>%select(pitch)
t3<-INSGPS %>% filter(tool=="reference")  %>%select(pitch)

results_iexplorer=as.data.frame(cbind(tool=rep("iexplorer"),calculate_rmse_sampling(t1,t3,windowsize = 50, label = "iexplorer_pitch" )))
results_navego=as.data.frame(cbind(tool=rep("navego"),calculate_rmse_sampling(t2,t3,windowsize = 50, label="navego_pitch" )))
results=rbind(results_iexplorer,results_navego)
results$rmse=as.numeric(as.character(results$rmse))

bwplot(rmse~tool,data=results,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }, main="RMSE distribution for Pitch over 40 samples")

t.test(rmse~tool,data= results)
## 
##  Welch Two Sample t-test
## 
## data:  rmse by tool
## t = -28.612, df = 152.73, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.004904952 -0.004271352
## sample estimates:
## mean in group iexplorer    mean in group navego 
##            0.0008872698            0.0054754217

Significant differences are observed between pitch RMSE from Navego and Interial Explorer considering reference information

Comparing YAW data distribution over the three trajectories

bwplot(yaw~tool,data=INSGPS,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }
       )

#wilcox.test(yaw~tool,data= INSGPS %>% filter(tool=='navego' | tool=='reference'))
#wilcox.test(yaw~tool,data= INSGPS %>% filter(tool=='iexplorer' | tool=='reference'))

Checking the statistical significant difference for RSME

t1<-INSGPS %>% filter(tool=="iexplorer") %>% select(yaw)
t2<-INSGPS %>% filter(tool=="navego")  %>%select(yaw)
t3<-INSGPS %>% filter(tool=="reference")  %>%select(yaw)

results_iexplorer=as.data.frame(cbind(tool=rep("iexplorer"),calculate_rmse_sampling(t1,t3,windowsize = 50,label="iexplorer_yaw" )))
results_navego=as.data.frame(cbind(tool=rep("navego"),calculate_rmse_sampling(t2,t3,windowsize = 50,label="navego_yaw" )))
results=rbind(results_iexplorer,results_navego)
results$rmse=as.numeric(as.character(results$rmse))

bwplot(rmse~tool,data=results,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }, main="RMSE distribution for Yaw over 40 samples")

t.test(rmse~tool,data= results)
## 
##  Welch Two Sample t-test
## 
## data:  rmse by tool
## t = -12.148, df = 108.32, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.01231822 -0.00886240
## sample estimates:
## mean in group iexplorer    mean in group navego 
##             0.002648414             0.013238721

Significant differences are observed between yaw RMSE from Navego and Interial Explorer considering reference information

Comparing LON data distribution over the three trajectories

bwplot(lon~tool,data=INSGPS,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }
       )

Checking the statistical significant difference for RSME

t1<-INSGPS %>% filter(tool=="iexplorer") %>% select(lon)
t2<-INSGPS %>% filter(tool=="navego")  %>%select(lon)
t3<-INSGPS %>% filter(tool=="reference")  %>%select(lon)

results_iexplorer=as.data.frame(cbind(tool=rep("iexplorer"),calculate_rmse_sampling(t1,t3,windowsize = 50, label="iexplorer_lon" )))
results_navego=as.data.frame(cbind(tool=rep("navego"),calculate_rmse_sampling(t2,t3,windowsize = 50, label="navego_lon" )))
results=rbind(results_iexplorer,results_navego)
results$rmse=as.numeric(as.character(results$rmse))

bwplot(rmse~tool,data=results,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }, main="RMSE distribution for LON over 40 samples")

t.test(rmse~tool,data= results)
## 
##  Welch Two Sample t-test
## 
## data:  rmse by tool
## t = -13.202, df = 154.91, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -1.881687e-07 -1.391864e-07
## sample estimates:
## mean in group iexplorer    mean in group navego 
##            6.459379e-08            2.282713e-07

Significant differences are observed between lon RMSE from Navego and Interial Explorer considering reference information

Comparing LAT data distribution over the three trajectories

bwplot(lat~tool,data=INSGPS,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }
       )

Checking the statistical significant difference for RSME

t1<-INSGPS %>% filter(tool=="iexplorer") %>% select(lat)
t2<-INSGPS %>% filter(tool=="navego")  %>%select(lat)
t3<-INSGPS %>% filter(tool=="reference")  %>%select(lat)

results_iexplorer=as.data.frame(cbind(tool=rep("iexplorer"),calculate_rmse_sampling(t1,t3,windowsize = 50, label="iexplorer_lat" )))
results_navego=as.data.frame(cbind(tool=rep("navego"),calculate_rmse_sampling(t2,t3,windowsize = 50, label='navego_lat' )))
results=rbind(results_iexplorer,results_navego)
results$rmse=as.numeric(as.character(results$rmse))

bwplot(rmse~tool,data=results,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }, main="RMSE distribution for Lat over 40 samples")

t.test(rmse~tool,data= results)
## 
##  Welch Two Sample t-test
## 
## data:  rmse by tool
## t = -0.94326, df = 142.55, p-value = 0.3471
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -4.619942e-08  1.635140e-08
## sample estimates:
## mean in group iexplorer    mean in group navego 
##            9.300805e-08            1.079321e-07

Significant differences are observed between lat RMSE from Navego and Interial Explorer considering reference information

Comparing H data distribution over the three trajectories

bwplot(h~tool,data=INSGPS,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }
       )

Checking the statistical significant difference for RSME

t1<-INSGPS %>% filter(tool=="iexplorer") %>% select(h)
t2<-INSGPS %>% filter(tool=="navego")  %>%select(h)
t3<-INSGPS %>% filter(tool=="reference")  %>%select(h)

results_iexplorer=as.data.frame(cbind(tool=rep("iexplorer"),calculate_rmse_sampling(t1,t3,windowsize = 50, label='iexplorer_h' )))
results_navego=as.data.frame(cbind(tool=rep("navego"),calculate_rmse_sampling(t2,t3,windowsize = 50, label='navego_h' )))
results=rbind(results_iexplorer,results_navego)
results$rmse=as.numeric(as.character(results$rmse))

bwplot(rmse~tool,data=results,panel = function(...) {
         panel.grid(h=-1, v = 1)
         panel.bwplot(...)
       }, main="RMSE distribution for H over 40 samples")

t.test(rmse~tool,data= results)
## 
##  Welch Two Sample t-test
## 
## data:  rmse by tool
## t = -4.1041, df = 161.36, p-value = 6.429e-05
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.4978508 -0.1743875
## sample estimates:
## mean in group iexplorer    mean in group navego 
##               0.5380259               0.8741451

Significant differences are observed between h RMSE from Navego and Interial Explorer considering reference information