- Python 2.7
- Matplotlib
- Criar uma pasta chamada "output" no path onde o código se encontra
-- Terminal
cd /path_to_the_code
mkdir output
vim /path_to/particlefiltersimple.py
world_size # tamanho do mapa (px)
num_of_particles # número de partículas no ambiente
num_obstacles # número de obstaculos (Fake)
steps # número de movimentos do robô
Para executar, basta adicionar ao terminal o comando
cd /path_to_the_code
python particlefiltersimple.py
Você podera acompanhar a atualização do filtro pela criação das imagens na pasta output. Veja o demo abaixo para um melhor entendimento
vim /path_to/pf_rmi_17.py
n_particles # número de partículas
linear_mov # movimentação linear (metros) para atualização do filtro
angular_mov # movimentação angular para atualização do filtro
laser_max_distance # leitura máxima do laser (metros)
rad # circunferência do filtro de partículas (metros)
--- Ruído
particle.x += d * (math.cos(particle.theta) + normal(0,0.01))
particle.y += d * (math.sin(particle.theta) + normal(0,0.01))
Pode-se alterar o nível de ruído das partículas alterando os valores da expressão acima. Basta alterar os valores dentro da função normal(0,0.01) para por ex. normal(0,0.1). Quanto maior o valor de saída, maior sera o nível de ruído da partícula
Especificamente neste exemplo usaremos o Turtlebot porém o código pode ser rodado com qualquer robô que tenha odômetria e um laser instalado
- Abra o terminal e inicie o Turtlebot em Stage Mode
roslaunch turtlebot_stage turtlebot_stage.lauch
- Dentro do Rviz adicione um novo PoseArray e preencha o tópico com
/particlecloud_rmi
- Abra o terminal e rode o arquivo pf_rmi_17.py
cd /path_to_your_folder/scripts/
python pf_rmi_17.py
CTRL+C para interromper a execução
- Insira goals no rviz (2D Nav Goal) para movimentar o robô, e veja o filtro de partículas se atualizando conforme o robô se movimenta
Dica: para uma melhor visualização deve-se remover o PoseArray AMCL carregado por default em Stage
Obs. O projeto está arquiteturado para ser rodado também diretamente no ROS via catkin. Apenas siga os passos do ROS catkin e cmake, conforme documentação do ROS Catkin
Aconselhável alterar a qualidade para HD 720p