Beispiel #1
0
 def __init__(self, ax, global_map, particle_list, target_particles=300,  draw_max=2000, resample_period=10):
     self.ax = ax
     self.draw_max = draw_max
     self.global_map = global_map
     self.particle_list = particle_list
     mcl.draw_map_state(global_map, particle_list, ax=self.ax, draw_max=self.draw_max)
     self.i = 1
     self.target_particles = target_particles
     self.resample_period = resample_period
Beispiel #2
0
 def update(self, message):
     if self.i % self.resample_period == 0:# Resample and plot state
         self.particle_list = mcl.mcl_update(self.particle_list, message, resample=True,
                                             target_particles=self.target_particles) # Update
         plt.cla()        
         mcl.draw_map_state(self.global_map, self.particle_list, self.ax, draw_max=self.draw_max)
         #print(pd.Series([p.weight for p in self.particle_list]).describe())
     else: # Just update particle weights / locations - do not resample
         self.particle_list = mcl.mcl_update(self.particle_list, message, 
                                             target_particles=self.target_particles) # Update
     self.i += 1
Beispiel #3
0
 def __init__(self,
              ax,
              global_map,
              particle_list,
              target_particles=300,
              draw_max=2000,
              resample_period=10):
     self.ax = ax
     self.draw_max = draw_max
     self.global_map = global_map
     self.particle_list = particle_list
     mcl.draw_map_state(global_map,
                        particle_list,
                        ax=self.ax,
                        draw_max=self.draw_max)
     self.i = 1
     self.target_particles = target_particles
     self.resample_period = resample_period
Beispiel #4
0
 def update(self, message):
     if self.i % self.resample_period == 0:  # Resample and plot state
         self.particle_list = mcl.mcl_update(
             self.particle_list,
             message,
             resample=True,
             target_particles=self.target_particles)  # Update
         plt.cla()
         mcl.draw_map_state(self.global_map,
                            self.particle_list,
                            self.ax,
                            draw_max=self.draw_max)
         #print(pd.Series([p.weight for p in self.particle_list]).describe())
     else:  # Just update particle weights / locations - do not resample
         self.particle_list = mcl.mcl_update(
             self.particle_list,
             message,
             target_particles=self.target_particles)  # Update
     self.i += 1