Skip to content

ezesimeoni/RMI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RMI

* ParticleFilterSimple

Dependências

-- Terminal
cd /path_to_the_code
mkdir output

Variáveis que podem ser alteradas

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ô

Executando

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

Demo

* ParticleFilterROS

Dependências

Variáveis que podem ser alteradas

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

Executando

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

  1. Abra o terminal e inicie o Turtlebot em Stage Mode
roslaunch turtlebot_stage turtlebot_stage.lauch
  1. Dentro do Rviz adicione um novo PoseArray e preencha o tópico com
/particlecloud_rmi
  1. 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
  1. 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

Demos

Aconselhável alterar a qualidade para HD 720p

About

Robotica Móvel Inteligente

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published