def reset(self):
        self.img_map = cv2.imread(self.map_path, cv2.IMREAD_GRAYSCALE)
        self.env = gslam.SingleBotLaser2DGrid((0, 0, 0), self.img_map,
                                              self.bot_param)
        temp = self.SearchPos(self.goal_dist, self.img_map)
        self.env.setPose(temp)
        self.traj = [temp]

        self.path = [self.env.pose]
        self.nav_pos = self.SearchPos(self.goal_dist * 2, self.img_map)
        self.map = gslam.GridMap(self.map_param, gsize=self.grid_size)

        self.sensor_data = self.env.scan()
        info_gain = SensorMapping(self.map, self.env.pose, self.bot_param,
                                  self.sensor_data['data'], self.grid_size)

        fsize = self.obs_size
        self.obs = self.map.getObserv(self.env.pose[0:2], self.env.pose[2],
                                      int(fsize / 2), int(fsize / 2)).reshape(
                                          [fsize, fsize, 1])
        self.dist = np.abs(self.env.pose[0] -
                           self.nav_pos[0]) + np.abs(self.env.pose[1] -
                                                     self.nav_pos[1])
        sdata = np.array(self.sensor_data['data'],
                         dtype=np.float32) / self.bot_param['max_dist']
        return {
            "map": self.obs,
            "sensor": sdata,
            "goal": self.getRelPos(),
            "info_gain": info_gain
        }
}
pyparam = [
    params['sensor_size'], params['start_angle'], params['end_angle'],
    params['max_dist']
]
im = cv2.imread('map_01.png', cv2.IMREAD_GRAYSCALE)
print(im)
bot = gslam.SingleBotLaser2DGrid((120.0, 80.0, 180.0), im, params)
#bot.pose = (140.0, 80.0)
pose = bot.pose
print(pose)
scan = bot.scan()
img = Viewer.DrawEnv(im, 1.0, pose, scan['data'], pyparam)
cv2.imshow('env', img)

grid = gslam.GridMap([0.4, -0.4, 5.0, -5.0], 2)
pf_size = 5
pf = gslam.ParticleFilter(pose, params, grid, pf_size)
traj = pf.getParticle(0).getTraj().copy()
print(traj)
traj_truth = [(120.0, 80.0, 180.0)]
timestemp = 0
pf.markParticles(0)
print("Rec: ")
for i in range(pf_size):
    print(pf.getParticle(i).getIdRecord())
# Main Loop
while (1):
    # Input Control
    action = -1
    action0 = -1