def updateRadar(self): # Taken from testDrawRadarOnMap.py fren = self.iren.GetRenderWindow().GetRenderers().GetFirstRenderer() t = self.start + self.step * self.count radar_data = loadRDR(self.rdr_pts[t])[0] if radar_data.shape[0] > 0: #Convert from radar to lidar ref-frame radar_data[:, :3] = calibrateRadarPts(radar_data[:, :3], self.radar_params) #Convert from lidar to IMU ref-frame radar_data[:, :3] = np.dot( self.lidar_params['T_from_l_to_i'][:3, :3], radar_data[:, :3].transpose()).transpose() h_radar_data = np.hstack( (radar_data[:, :3], np.ones((radar_data.shape[0], 1)))) radar_data[:, :3] = np.dot( self.imu_transforms[t], h_radar_data.transpose()).transpose()[:, :3] for i in xrange(len(self.radar_actors)): fren.RemoveActor(self.radar_actors[i]) self.radar_actors = [] self.radar_clouds = [] for i in xrange(radar_data.shape[0]): self.radar_clouds.append(VtkBoundingBox(radar_data[i, :])) (ax, ay, az) = euler_from_matrix(self.imu_transforms[t]) box = self.radar_clouds[i].get_vtk_box(rot=az * 180 / np.pi) self.radar_actors.append(box) fren.AddActor(self.radar_actors[i])
def updateRadar(self): # Taken from testDrawRadarOnMap.py fren = self.iren.GetRenderWindow().GetRenderers().GetFirstRenderer() t = self.start + self.step * self.count radar_data = loadRDR(self.rdr_pts[t])[0] if radar_data.shape[0] > 0: #Convert from radar to lidar ref-frame radar_data[:, :3] = calibrateRadarPts(radar_data[:, :3], self.radar_params) #Convert from lidar to IMU ref-frame radar_data[:, :3] = np.dot(self.lidar_params['T_from_l_to_i'][:3, :3], radar_data[:, :3].transpose()).transpose() h_radar_data = np.hstack((radar_data[:, :3], np.ones((radar_data.shape[0], 1)))) radar_data[:, :3] = np.dot(self.imu_transforms[t], h_radar_data.transpose()).transpose()[:, :3] for i in xrange(len(self.radar_actors)): fren.RemoveActor(self.radar_actors[i]) self.radar_actors = [] self.radar_clouds = [] for i in xrange(radar_data.shape[0]): self.radar_clouds.append(VtkBoundingBox(radar_data[i, :])) (ax, ay, az) = euler_from_matrix(self.imu_transforms[t]) box = self.radar_clouds[i].get_vtk_box(rot=az*180/np.pi) self.radar_actors.append(box) fren.AddActor(self.radar_actors[i])
radar_data = [] json_name = 'radar.json' json_radar_name = driverseat_run + json_name zip_radar_name = json_radar_name + '.zip' print driverseat_run if not os.path.isfile(json_radar_name): print '\tExporting ' + json_name radar_times = [ int(f.split('/')[-1][:-4]) for f in sorted(glob.glob(radar_folder + '*')) ] for i in xrange(0, gps_times_mk2.shape[0], sub_samp): radar_idx = mk2_to_radar(i, radar_times, gps_times_mk2) time = radar_times[radar_idx] radar_file = radar_folder + str(time) + '.rdr' rdr = loadRDR(radar_file) data = { time: { 'O': rdr[0].tolist(), 'T': rdr[1].tolist() } } radar_data.append(data) json.dump(radar_data, open(json_radar_name, 'w')) if not os.path.isfile(zip_radar_name): print '\tZipping...' data = '\n'.join( [x for x in open(json_radar_name, 'r').readlines()]) json_zip = ZipFile(zip_radar_name, 'w', ZIP_DEFLATED) json_zip.writestr(json_name, data)
run, 'mark1') _, gps_times_mk2 = get_transforms(remote_run, run, 'mark2') radar_data = [] json_name = 'radar.json' json_radar_name = driverseat_run + json_name zip_radar_name = json_radar_name + '.zip' print driverseat_run if not os.path.isfile(json_radar_name): print '\tExporting ' + json_name radar_times = [int(f.split('/')[-1][:-4]) for f in sorted(glob.glob(radar_folder + '*'))] for i in xrange(0, gps_times_mk2.shape[0], sub_samp): radar_idx = mk2_to_radar(i, radar_times, gps_times_mk2) time = radar_times[radar_idx] radar_file = radar_folder + str(time) + '.rdr' rdr = loadRDR(radar_file) data = {time:{'O':rdr[0].tolist(), 'T':rdr[1].tolist()}} radar_data.append(data) json.dump(radar_data, open(json_radar_name, 'w')) if not os.path.isfile(zip_radar_name): print '\tZipping...' data = '\n'.join([x for x in open(json_radar_name, 'r').readlines()]) json_zip = ZipFile(zip_radar_name, 'w', ZIP_DEFLATED) json_zip.writestr(json_name, data) json_zip.close() configurator.set('radar_json', True) if configurator.config['gps_json'] == False: