Mudanças entre as edições de "Construção de um Mapa usando o Pionner, JoyStick e Sensor Sick LMS"
Linha 1: | Linha 1: | ||
==Controle do Pionner com JoyStick== | ==Controle do Pionner com JoyStick== | ||
− | 1. Instale o pacote ROSARIA | + | 1. Instale o pacote ROSARIA: |
cd ~/catkin_ws/src | cd ~/catkin_ws/src | ||
git clone https://github.com/amor-ros-pkg/rosaria.git | git clone https://github.com/amor-ros-pkg/rosaria.git | ||
Linha 11: | Linha 11: | ||
catkin_make | catkin_make | ||
− | 3. Instale o pacote jstest-gtk | + | 3. Instale o pacote jstest-gtk: |
sudo apt-get install jstest-gtk | sudo apt-get install jstest-gtk | ||
Linha 27: | Linha 27: | ||
A saída do joystick aparecerá na tela. | A saída do joystick aparecerá na tela. | ||
− | 7. Instale o pacote joy | + | 7. Instale o pacote joy: |
sudo apt-get install ros-indigo-joy | sudo apt-get install ros-indigo-joy | ||
8. Para controlar o Pioneer: | 8. Para controlar o Pioneer: | ||
− | 8.1. | + | 8.1. Execute o mestre: |
roscore | roscore | ||
Linha 53: | Linha 53: | ||
Obs: Substitua ttyUSB* pela porta do Pioneer. | Obs: Substitua ttyUSB* pela porta do Pioneer. | ||
− | 8.7. Execute o ROSARIA: | + | 8.7. Execute o programa ROSARIA: |
rosrun rosaria RosAria | rosrun rosaria RosAria | ||
Linha 63: | Linha 63: | ||
catkin_create_pkg scripts_aux | catkin_create_pkg scripts_aux | ||
− | 8.9. Baixe o script auxiliar descrito abaixo para o diretório ~/catkin_make/src/scripts_aux | + | 8.9. Baixe o script auxiliar descrito abaixo para o diretório ~/catkin_make/src/scripts_aux: |
* RosAriaJoyTeleop.py: controla o Pioneer usando o joystick. | * RosAriaJoyTeleop.py: controla o Pioneer usando o joystick. | ||
− | + | Após baixá-lo, dê a ele permissão de execução: | |
cd ~/catkin_ws/src/scripts_aux | cd ~/catkin_ws/src/scripts_aux | ||
chmod 755 * | chmod 755 * | ||
− | 8. | + | 8.10. Construa os pacotes: |
cd ~/catkin_ws | cd ~/catkin_ws | ||
catkin_make | catkin_make | ||
− | 8.12.Em um novo terminal, execute o | + | 8.12.Em um novo terminal, execute o script RosAriaJoyTeleop.py: |
− | rosrun scripts_aux RosAriaJoyTeleop.py | + | rosrun scripts_aux RosAriaJoyTeleop.py |
== Construção do Log de Dados Capturados pelo Sensor Sick LMS == | == Construção do Log de Dados Capturados pelo Sensor Sick LMS == | ||
Linha 84: | Linha 84: | ||
sudo apt-get install ros-indigo-sicktoolbox-wrapper | sudo apt-get install ros-indigo-sicktoolbox-wrapper | ||
− | 2. Baixe os scripts auxiliares descritos abaixo para o diretório ~/catkin_make/src/scripts_aux | + | 2. Baixe os scripts auxiliares descritos abaixo para o diretório ~/catkin_make/src/scripts_aux: |
− | * RosAriaKeyTeleop.py: controla o Pioneer usando o teclado; | + | * RosAriaKeyTeleop.py: controla o Pioneer usando o teclado; |
* RosAriaLaserTf.py: publica a posição do sensor Sick LMS no Pioneer. | * RosAriaLaserTf.py: publica a posição do sensor Sick LMS no Pioneer. | ||
− | + | Após baixá-los, dê a eles permissão de execução: | |
cd ~/catkin_ws/src/scripts_aux | cd ~/catkin_ws/src/scripts_aux | ||
chmod 755 * | chmod 755 * | ||
− | + | 3. Construa os pacotes: | |
cd ~/catkin_ws | cd ~/catkin_ws | ||
catkin_make | catkin_make | ||
Linha 124: | Linha 124: | ||
sudo apt-get install ros-indigo-gazebo-ros-pkgs ros-indigo-gazebo-ros-control | sudo apt-get install ros-indigo-gazebo-ros-pkgs ros-indigo-gazebo-ros-control | ||
− | 2. Instale os pacotes ros-control e ros-controllers | + | 2. Instale os pacotes ros-control e ros-controllers: |
sudo apt-get install ros-indigo-ros-control ros-indigo-ros-controllers | sudo apt-get install ros-indigo-ros-control ros-indigo-ros-controllers | ||
− | 3. | + | 3. Baixe o arquivo descrito abaixo: |
− | * modeloCT7.zip: contém 3 | + | * modeloCT7.zip: contém 3 diretórios, cada qual contendo modelos 3D de malhas do segundo andar do Prédio CT-VII. |
+ | |||
+ | Após baixá-lo, descompacte-o e mova ou copie os diretórios resultantes para a pasta (oculta) de modelos do Gazebo: | ||
− | |||
unzip modeloCT7.zip -d modeloCT7 | unzip modeloCT7.zip -d modeloCT7 | ||
mv modeloCT7/* ~/.gazebo/models/ | mv modeloCT7/* ~/.gazebo/models/ | ||
− | + | 4. Baixe o arquivo descrito abaixo para o diretório catkin_ws/src: | |
* PioneerModel.zip: Pacotes com o modelo do pioneer utilizando o mapa do CT7 | * PioneerModel.zip: Pacotes com o modelo do pioneer utilizando o mapa do CT7 | ||
− | + | Após baixá-lo, descompacte-o e construa os pacotes: | |
cd ~/catkin_ws/src | cd ~/catkin_ws/src | ||
unzip PioneerModel.zip | unzip PioneerModel.zip | ||
Linha 146: | Linha 147: | ||
catkin_make | catkin_make | ||
− | + | 5. Baixe o pacote descrito abaixo para o diretório catkin_ws/src: | |
* p3dx_controller.zip: controla o Pioneer usando o teclado. | * p3dx_controller.zip: controla o Pioneer usando o teclado. | ||
Linha 158: | Linha 159: | ||
catkin_make | catkin_make | ||
− | + | 6. Crie um arquivo de log para armazenar os dados capturados pelo sensor Sick LMS: | |
roscore | roscore | ||
roslaunch p3dx_gazebo gazebo.launch | roslaunch p3dx_gazebo gazebo.launch |
Edição das 17h25min de 17 de setembro de 2015
Índice
Controle do Pionner com JoyStick
1. Instale o pacote ROSARIA:
cd ~/catkin_ws/src git clone https://github.com/amor-ros-pkg/rosaria.git
2. Instale as dependências:
rosdep update rosdep install rosaria cd ~/catkin_ws catkin_make
3. Instale o pacote jstest-gtk:
sudo apt-get install jstest-gtk
4. Identifique a porta atribuída ao joystick (e.g., js0). Para isso, liste o conteúdo do diretório /dev/input antes e depois de conectar o joystick:
ls /dev/input/
5. Libere o acesso à porta do joystick:
sudo chmod 777 /dev/input/js0
Obs: Substitua js0 pela porta do joystick.
6. Para testar o joystick:
sudo jstest /dev/input/js0
A saída do joystick aparecerá na tela.
7. Instale o pacote joy:
sudo apt-get install ros-indigo-joy
8. Para controlar o Pioneer:
8.1. Execute o mestre:
roscore
8.2. Conecte o joystick.
8.3. Em um novo terminal, configure os parâmetros do nó joy:
rosparam set joy_node/dev "/dev/input/js0"
8.4. Execute o nó joy:
rosrun joy joy_node
Para visualizar os dados enviados ao nó joy pelo joystick, execute em um novo terminal:
rostopic echo joy
8.5.Conecte o Pioneer.
8.6. Em um novo terminal, libere a porta atribuída ao Pioneer:
sudo chmod 777 /dev/ttyUSB*
Obs: Substitua ttyUSB* pela porta do Pioneer.
8.7. Execute o programa ROSARIA:
rosrun rosaria RosAria
Caso ocorra algum erro com a porta do Pioneer, execute:
rosrun rosaria RosAria _port:=/dev/ttyUSB*
8.8. Crie um pacote para scripts auxiliares:
cd ~/catkin_ws/src catkin_create_pkg scripts_aux
8.9. Baixe o script auxiliar descrito abaixo para o diretório ~/catkin_make/src/scripts_aux:
- RosAriaJoyTeleop.py: controla o Pioneer usando o joystick.
Após baixá-lo, dê a ele permissão de execução:
cd ~/catkin_ws/src/scripts_aux chmod 755 *
8.10. Construa os pacotes:
cd ~/catkin_ws catkin_make
8.12.Em um novo terminal, execute o script RosAriaJoyTeleop.py:
rosrun scripts_aux RosAriaJoyTeleop.py
Construção do Log de Dados Capturados pelo Sensor Sick LMS
1. Instale os pacotes sicktoolbox e sicktoolbox_wrapper:
sudo apt-get install ros-indigo-sicktoolbox sudo apt-get install ros-indigo-sicktoolbox-wrapper
2. Baixe os scripts auxiliares descritos abaixo para o diretório ~/catkin_make/src/scripts_aux:
- RosAriaKeyTeleop.py: controla o Pioneer usando o teclado;
- RosAriaLaserTf.py: publica a posição do sensor Sick LMS no Pioneer.
Após baixá-los, dê a eles permissão de execução:
cd ~/catkin_ws/src/scripts_aux chmod 755 *
3. Construa os pacotes:
cd ~/catkin_ws catkin_make
Construção do Log em um Ambiente Real
1. Crie um arquivo de log para armazenar os dados capturados pelo sensor Sick LMS:
sudo chmod 777 /dev/input/js0 sudo chmod 777 /dev/ttyUSB0 sudo chmod 777 /dev/ttyUSB1 roscore rosrun rosaria RosAria _port:=/dev/ttyUSB0 rosrun sicktoolbox_wrapper sicklms _port:=/dev/ttyUSB1 _baud=38400 rosrun scripts_aux RosAriaLaserTf.py rosparam set joy_node/dev "/dev/input/js0" rosrun joy joy_node rosrun scripts_aux RosAriaJoyTeleop.py cd "diretorio para armazenar o log" rosbag record -O log_map /scan /tf rosrun rviz rviz
Obs. 1: Nos comandos 1 e 8 acima, substitua js0 pela porta do joystick, ttyUSB0 pela porta do Pioneer e ttyUSB1 pela porta do sensor Sick LMS. Obs. 2: No comando 11 acima, substitua log_map pelo nome que queria dar ao arquivo de log. Obs. 3: O último comando executa o pacote rviz, uma ferramenta de visualização do ROS.
Construção do Mapa em um Ambiente Simulado
1. Instale o pacote gazebo-ros:
sudo apt-get install libsdformat1 libsdformat-dev sudo apt-get install ros-indigo-gazebo-ros-pkgs ros-indigo-gazebo-ros-control
2. Instale os pacotes ros-control e ros-controllers:
sudo apt-get install ros-indigo-ros-control ros-indigo-ros-controllers
3. Baixe o arquivo descrito abaixo:
- modeloCT7.zip: contém 3 diretórios, cada qual contendo modelos 3D de malhas do segundo andar do Prédio CT-VII.
Após baixá-lo, descompacte-o e mova ou copie os diretórios resultantes para a pasta (oculta) de modelos do Gazebo:
unzip modeloCT7.zip -d modeloCT7 mv modeloCT7/* ~/.gazebo/models/
4. Baixe o arquivo descrito abaixo para o diretório catkin_ws/src:
- PioneerModel.zip: Pacotes com o modelo do pioneer utilizando o mapa do CT7
Após baixá-lo, descompacte-o e construa os pacotes:
cd ~/catkin_ws/src unzip PioneerModel.zip cd .. catkin_make
5. Baixe o pacote descrito abaixo para o diretório catkin_ws/src:
- p3dx_controller.zip: controla o Pioneer usando o teclado.
Após baixá-lo, descompacte-o e construa os pacotes:
cd ~/catkin_ws/src unzip p3dx_controller.zip cd ~/catkin_ws/src/p3dx_controller/scripts chmod 755 * cd ~/catkin_ws catkin_make
6. Crie um arquivo de log para armazenar os dados capturados pelo sensor Sick LMS:
roscore roslaunch p3dx_gazebo gazebo.launch rosrun p3dx_controller move.py cd ~/bagfiles/ roslaunch p3dx_description rviz.launch rosbag record -O log_map /p3dx/laser/scan /tf
Criação do Mapa Usando o Pacote slam_gmapping
1. Instale o pacote slam_gmapping:
sudo apt-get install ros-indigo-slam-gmapping
2. Instale o pacote navigation:
sudo apt-get install ros-indigo-navigation
Obs: O pacote navigation contém o pacote map_server.
3. Execute o mestre, use o carimbo de tempo do log e execute o pacote slam_gmapping:
roscore rosparam set use_sim_time true rosrun gmapping slam_gmapping scan:=p3dx/laser/scan
4.Em um novo terminal, reproduza o log:
cd ~/bagfiles/ rosbag play --clock log_map.bag
5. Assim que a reprodução do log terminar, salve o mapa no disco. Para isso, entre no diretório no qual deseja salvar o mapa e execute:
rosrun map_server map_saver
Congratz! Você agora terá o mapa salvo como map.pgm.