mirror of
https://github.com/Mobile-Robotics-W20-Team-9/polex.git
synced 2025-08-25 16:42:45 +00:00
Fix Errors & Parameterize File Paths
- Update gitignore to exclude vscode files - Parameterize hardcoded file paths - Comment out references to pgf image and latex dependency - Allow pickle in numpy.load - Add TODO comments for where settings need to be changed - Explicitly set visualization to False - Change pytorch device from cuda to cpu
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,6 @@
|
||||
# Ignore vscode settings
|
||||
.vscode
|
||||
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
|
@@ -21,13 +21,17 @@ import particlefilter
|
||||
import poles
|
||||
import pynclt
|
||||
import util
|
||||
import sys
|
||||
|
||||
|
||||
plt.rcParams['text.latex.preamble']=[r'\usepackage{lmodern}']
|
||||
params = {'text.usetex': True,
|
||||
'font.size': 16,
|
||||
'font.family': 'lmodern',
|
||||
'text.latex.unicode': True}
|
||||
# plt.rcParams['text.latex.preamble']=[r'\usepackage{lmodern}']
|
||||
# params = {'text.usetex': True,
|
||||
# 'font.size': 16,
|
||||
# 'font.family': 'lmodern',
|
||||
# 'text.latex.unicode': True}
|
||||
|
||||
# TODO: UPDATE THIS!
|
||||
localization_name_start = 'localization_3_6_7_2020-04'
|
||||
|
||||
mapextent = np.array([30.0, 30.0, 5.0])
|
||||
mapsize = np.full(3, 0.2)
|
||||
@@ -151,7 +155,7 @@ def save_global_map():
|
||||
poleparams[ci, :-1], axis=0, weights=poleparams[ci, -1])])
|
||||
scores.append(np.mean(poleparams[ci, -1]))
|
||||
clustermeans = np.hstack([clustermeans, np.array(scores).reshape([-1, 1])])
|
||||
globalmapfile = os.path.join('nclt', get_globalmapname() + '.npz')
|
||||
globalmapfile = os.path.join(pynclt.resultdir, get_globalmapname() + '.npz')
|
||||
np.savez(globalmapfile,
|
||||
polemeans=clustermeans, mapfactors=mapfactors, mappos=globalmappos)
|
||||
plot_global_map(globalmapfile)
|
||||
@@ -161,12 +165,12 @@ def plot_global_map(globalmapfile):
|
||||
data = np.load(globalmapfile)
|
||||
x, y = data['polemeans'][:, :2].T
|
||||
plt.clf()
|
||||
plt.rcParams.update(params)
|
||||
# plt.rcParams.update(params)
|
||||
plt.scatter(x, y, s=1, c='b', marker='.')
|
||||
plt.xlabel('x [m]')
|
||||
plt.ylabel('y [m]')
|
||||
plt.savefig(globalmapfile[:-4] + '.svg')
|
||||
plt.savefig(globalmapfile[:-4] + '.pgf')
|
||||
# plt.savefig(globalmapfile[:-4] + '.pgf')
|
||||
print(data['mapfactors'])
|
||||
|
||||
|
||||
@@ -222,7 +226,7 @@ def save_local_maps(sessionname, visualize=False):
|
||||
|
||||
|
||||
def view_local_maps(sessionname):
|
||||
sessiondir = os.path.join('nclt', sessionname)
|
||||
sessiondir = os.path.join(pynclt.resultdir, sessionname)
|
||||
session = pynclt.session(sessionname)
|
||||
maps = np.load(os.path.join(sessiondir, get_localmapfile()))['maps']
|
||||
for i, map in enumerate(maps):
|
||||
@@ -254,14 +258,14 @@ def view_local_maps(sessionname):
|
||||
|
||||
|
||||
def evaluate_matches():
|
||||
mapdata = np.load(os.path.join('nclt', get_globalmapname() + '.npz'))
|
||||
mapdata = np.load(os.path.join(pynclt.resultdir, get_globalmapname() + '.npz'))
|
||||
polemap = mapdata['polemeans'][:, :2]
|
||||
kdtree = scipy.spatial.cKDTree(polemap[:, :2], leafsize=10)
|
||||
maxdist = 0.5
|
||||
n_matches = np.zeros(len(pynclt.sessions))
|
||||
n_all = np.zeros(len(pynclt.sessions))
|
||||
for i, sessionname in enumerate(pynclt.sessions):
|
||||
sessiondir = os.path.join('nclt', sessionname)
|
||||
sessiondir = os.path.join(pynclt.resultdir, sessionname)
|
||||
session = pynclt.session(sessionname)
|
||||
maps = np.load(os.path.join(sessiondir, get_localmapfile()))['maps']
|
||||
for map in maps:
|
||||
@@ -285,11 +289,11 @@ def evaluate_matches():
|
||||
|
||||
def localize(sessionname, visualize=False):
|
||||
print(sessionname)
|
||||
mapdata = np.load(os.path.join('nclt', get_globalmapname() + '.npz'))
|
||||
mapdata = np.load(os.path.join(pynclt.resultdir, get_globalmapname() + '.npz'))
|
||||
polemap = mapdata['polemeans'][:, :2]
|
||||
polevar = 1.50
|
||||
session = pynclt.session(sessionname)
|
||||
locdata = np.load(os.path.join(session.dir, get_localmapfile()))['maps']
|
||||
locdata = np.load(os.path.join(session.dir, get_localmapfile()), allow_pickle=True)['maps']
|
||||
polepos_m = []
|
||||
polepos_w = []
|
||||
for i in range(len(locdata)):
|
||||
@@ -419,18 +423,18 @@ def plot_trajectories():
|
||||
trajectorydir = os.path.join(
|
||||
pynclt.resultdir, 'trajectories_est_{:.0f}_{:.0f}_{:.0f}'.format(
|
||||
n_mapdetections, 10 * poles.minscore, poles.polesides[-1]))
|
||||
pgfdir = os.path.join(trajectorydir, 'pgf')
|
||||
# pgfdir = os.path.join(trajectorydir, 'pgf')
|
||||
util.makedirs(trajectorydir)
|
||||
util.makedirs(pgfdir)
|
||||
mapdata = np.load(os.path.join('nclt', get_globalmapname() + '.npz'))
|
||||
# util.makedirs(pgfdir)
|
||||
mapdata = np.load(os.path.join(pynclt.resultdir, get_globalmapname() + '.npz'))
|
||||
polemap = mapdata['polemeans']
|
||||
plt.rcParams.update(params)
|
||||
# plt.rcParams.update(params)
|
||||
for sessionname in pynclt.sessions:
|
||||
try:
|
||||
session = pynclt.session(sessionname)
|
||||
files = [file for file \
|
||||
in os.listdir(os.path.join(pynclt.resultdir, sessionname)) \
|
||||
if file.startswith('localization_3_6_7_2019-07')]
|
||||
if file.startswith(localization_name_start)]
|
||||
# if file.startswith(get_locfileprefix())]
|
||||
for file in files:
|
||||
T_w_r_est = np.load(os.path.join(
|
||||
@@ -447,7 +451,7 @@ def plot_trajectories():
|
||||
bottom=0.13, top=0.98, left=0.145, right=0.98)
|
||||
filename = sessionname + file[18:-4]
|
||||
plt.savefig(os.path.join(trajectorydir, filename + '.svg'))
|
||||
plt.savefig(os.path.join(pgfdir, filename + '.pgf'))
|
||||
# plt.savefig(os.path.join(pgfdir, filename + '.pgf'))
|
||||
except:
|
||||
pass
|
||||
|
||||
@@ -457,7 +461,7 @@ def evaluate():
|
||||
for sessionname in pynclt.sessions:
|
||||
files = [file for file \
|
||||
in os.listdir(os.path.join(pynclt.resultdir, sessionname)) \
|
||||
if file.startswith('localization_3_6_7_2019-07')]
|
||||
if file.startswith(localization_name_start)]
|
||||
# if file.startswith(get_locfileprefix())]
|
||||
files.sort()
|
||||
session = pynclt.session(sessionname)
|
||||
@@ -497,7 +501,7 @@ def evaluate():
|
||||
'angerror': angerror, 'angrmse': angrmse, 'T_gt_est': T_gt_est})
|
||||
np.savez(os.path.join(pynclt.resultdir, get_evalfile()), stats=stats)
|
||||
|
||||
mapdata = np.load(os.path.join('nclt', get_globalmapname() + '.npz'))
|
||||
mapdata = np.load(os.path.join(pynclt.resultdir, get_globalmapname() + '.npz'))
|
||||
print('session \t f\te_pos \trmse_pos \te_ang \te_rmse')
|
||||
row = '{session} \t{f} \t{poserror} \t{posrmse} \t{angerror} \t{angrmse}'
|
||||
for i, stat in enumerate(stats):
|
||||
@@ -514,8 +518,11 @@ if __name__ == '__main__':
|
||||
poles.minscore = 0.6
|
||||
poles.polesides = range(1, 7+1)
|
||||
save_global_map()
|
||||
session = '2012-01-08'
|
||||
# TODO: Change this to the session you want to find trajectory for
|
||||
session = '2012-01-15'
|
||||
save_local_maps(session)
|
||||
localize(session)
|
||||
# Set visualization to False
|
||||
localize(session, False)
|
||||
plot_trajectories()
|
||||
evaluate()
|
||||
|
@@ -7,7 +7,7 @@ import skimage.measure
|
||||
import torch
|
||||
|
||||
|
||||
device = torch.device('cuda')
|
||||
device = torch.device('cpu')
|
||||
polesides = range(1, 5+1)
|
||||
minscore = 0.6
|
||||
minheight = 1.0
|
||||
|
@@ -19,39 +19,42 @@ T_w_o[:3, :3] = [[0, 1, 0], [1, 0, 0], [0, 0, -1]]
|
||||
T_o_w = util.invert_ht(T_w_o)
|
||||
eulerdef = 'sxyz'
|
||||
|
||||
# TODO: Modify these for your workspace
|
||||
csvdelimiter = ','
|
||||
datadir = '/mnt/c/Users/SabrinaB/Desktop/nclt'
|
||||
resultdir = 'nclt'
|
||||
datadir = '/app/dataset/data/'
|
||||
resultdir = '/app/dataset/nclt'
|
||||
snapshotfile = 'snapshot.npz'
|
||||
sessionfile = 'sessiondata.npz'
|
||||
# TODO: Comment out the sessions you are not using
|
||||
sessions = [
|
||||
#'2012-01-08',
|
||||
'2012-01-08',
|
||||
'2012-01-15',
|
||||
#'2012-01-22',
|
||||
#'2012-02-02',
|
||||
#'2012-02-04',
|
||||
#'2012-02-05',
|
||||
#'2012-02-12',
|
||||
#'2012-02-18',
|
||||
#'2012-02-19',
|
||||
#'2012-03-17',
|
||||
#'2012-03-25',
|
||||
#'2012-03-31',
|
||||
#'2012-04-29',
|
||||
#'2012-05-11',
|
||||
#'2012-05-26',
|
||||
#'2012-06-15',
|
||||
#'2012-08-04',
|
||||
#'2012-08-20',
|
||||
#'2012-09-28',
|
||||
#'2012-10-28',
|
||||
#'2012-11-04',
|
||||
#'2012-11-16',
|
||||
#'2012-11-17',
|
||||
#'2012-12-01',
|
||||
#'2013-01-10',
|
||||
#'2013-02-23',
|
||||
'2013-04-05']
|
||||
'2012-01-22',
|
||||
'2012-02-02',
|
||||
'2012-02-04',
|
||||
'2012-02-05',
|
||||
'2012-02-12',
|
||||
'2012-02-18',
|
||||
'2012-02-19',
|
||||
'2012-03-17',
|
||||
'2012-03-25',
|
||||
'2012-03-31',
|
||||
'2012-04-29',
|
||||
'2012-05-11',
|
||||
'2012-05-26',
|
||||
'2012-06-15',
|
||||
'2012-08-04',
|
||||
'2012-08-20',
|
||||
'2012-09-28',
|
||||
'2012-10-28',
|
||||
'2012-11-04',
|
||||
'2012-11-16',
|
||||
'2012-11-17',
|
||||
'2012-12-01',
|
||||
'2013-01-10',
|
||||
'2013-02-23',
|
||||
'2013-04-05'
|
||||
]
|
||||
|
||||
|
||||
lat0 = np.radians(42.293227)
|
||||
|
Reference in New Issue
Block a user