Mudanças entre as edições de "Detalhamento"

De LCAD
Ir para: navegação, pesquisa
(Implementação do modelo probabilístico da pose do robô simulado (P(x|x_1,u)) no ExplorerSim)
Linha 5: Linha 5:
 
  _map.Add(-_state.X, _state.Y, (_state.Theta - 90), DistanceMeasurements.Length, DistanceMeasurements);
 
  _map.Add(-_state.X, _state.Y, (_state.Theta - 90), DistanceMeasurements.Length, DistanceMeasurements);
  
O vetor pose (_state.X, _state.Y, _state.Theta) (x no modelo probabilístico) neste ponto é preciso na simulação. Assim, o trabalho consiste em mostrar a imprecisão probabilística desta pose no mapa conforme os modelos e algortimos que estudamos. Os modelos e algoritmos a serem usados são:
+
O vetor pose (_state.X, _state.Y, _state.Theta) (x no modelo probabilístico) neste ponto é preciso na simulação. Assim, o trabalho consiste em mostrar a imprecisão probabilística desta pose no mapa conforme os modelos e algoritmos que estudamos. Os modelos e algoritmos a serem usados são:
  
 
# Sample Odometry Motion Model (Slide 25 do arquivo 2-motion-models.ppt - pegar versão atualizada no wiki)
 
# Sample Odometry Motion Model (Slide 25 do arquivo 2-motion-models.ppt - pegar versão atualizada no wiki)

Edição das 10h00min de 16 de maio de 2009

Implementação do modelo probabilístico da pose do robô simulado (P(x|x_1,u)) no ExplorerSim

Na função UpdateMap do ExplorerSim (ExplorerSim.cs), no final, o comando abaixo envia os dados do LRS para serem colocados no mapa:

_map.Add(-_state.X, _state.Y, (_state.Theta - 90), DistanceMeasurements.Length, DistanceMeasurements);

O vetor pose (_state.X, _state.Y, _state.Theta) (x no modelo probabilístico) neste ponto é preciso na simulação. Assim, o trabalho consiste em mostrar a imprecisão probabilística desta pose no mapa conforme os modelos e algoritmos que estudamos. Os modelos e algoritmos a serem usados são:

  1. Sample Odometry Motion Model (Slide 25 do arquivo 2-motion-models.ppt - pegar versão atualizada no wiki)
  2. Particle Filter Algorithm (Slide 16 do arquivo 4-particle-filters.ppt)

A idéia é produzir no mapa uma figura como a do slide 26 do arquivo 2-motion-models.ppt. Isso pode ser feito da seguinte forma:

  1. Criar uma arquivo à parte para suas implementações
  2. Neste arquivo, criar uma função que mantenha 500 particulas de pose (cada uma delas é um vetor pose) para cada posição que o robô ocupar
    1. Devem ser criadas 500 para a posição inicial, mais 500 para a posição após o primeiro movimento, mais 500 para o segundo movimento, etc.
    2. Ao final de cada movimento do robô, o novo conjunto de partículas deve ser gerado a partir do imediatamente anterior conforme o Particle Filter Algorithm
  3. Mostrar estas partículas no mapa do mesmo modo que é mostrado o robô, isto é, sem interferir com o algoritmo que usa o mapa (ver arquivo Mapper.cs, função Map)
    1. As partículas devem ser removidas no início da função Map e os pixels que eles sobrepuseram previamente devem ser restaurados
    2. Ao final da função Map, os pixels que as partículas vão sobrepor devem ser salvos e só então as partículas devem ser colocadas no mapa (ver arquivo Mapper.cs, função Map)

Trabalhem de modo a produzir código útil. Código incompleto é melhor do que zero código. Zero é péssimo!