Buscar

ROS Tutorial-final

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Tutorial ROS 
Elerson R. S. Santos 
Fabricio F. Carvalho 
Marcos Augusto M. Vieira 
Sumário 
• Introdução 
– Definição do ROS e histórico player 
• Organização do ROS 
– Conceitos, comandos básicos, utilização, logs e 
ferramentas gráficas 
• Funcionalidades Principais 
– Localização – AMCL, Navegaçao – move_base e 
SLAM - gmapping, karto 
 
 
2 
Sumário 
• Aplicações 
• Exercícios 
– Experimentos no TurtleSim 
– Experimentos no Stage utilizando Gmapping, 
move-base e AMCL. 
3 
O que é o ROS? 
• ROS é um framework para desenvolvimento 
de software para robôs, provendo uma 
funcionalidade parecida com um sistema 
operacional. 
– Ele provê um sistema de mensagens entre 
diferentes processos (Inter-Process 
Communication (IPC)). 
– ROS & ROS-Pkgs são criações da Willow 
Garage, Inc. 
4 
ROS 
• Dois conjuntos básicos: 
– ros: Sistema operacional 
– ros-pkg: Conjunto de pacotes providos por 
usuários 
5 
ROS 
• Plataformas: 
– Linux, MacOS e apoio parcial para Windows 
• Linguagens: 
– C/C++,python,octave,lisp,~java (rosjava) 
• Hardware: 
– Suporte para processadores com vários núcleos 
– Suporte à GPUs da NVidia 
• Rede: 
– TCP/IP 
6 
Histórico 
• “Sucessor” do Player/Stage 
– Muitos módulos do Player/Stage foram reescritos 
para o ROS 
• Desde 2008, desenvolvido pelo Willow 
Garage 
 
 
 
7 
Player/Stage/Gazebo 
• Player 
– Componente de software que provê uma 
poderosa e flexível interface para uma variedade 
de sensores e atuadores. 
• Stage 
– Simulador 2D de vários robôs 
• Gazebo 
– 3D, dinâmico, simulador de vários robôs 
8 8 
9 
Programando Robôs 
Câmera 
Laser 
Sonar 
Hodometria 
Motores 
Aplicação do Usuário 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Aquisição 
de dados 
dos sensores 
Geração do 
comando do 
motor 
PCI 
USB 
Serial 
… 
Serial 
Canbus 
… 
Planejador 
Desired 
Motion 
Player: servidor 
10 
Player / ROS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Camera 
Laser 
Sonar 
Hodometria 
Motores 
Aplicação do Usuário 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Aquisição 
de dados 
dos sensores 
Geração 
de Comando 
para o motor 
PCI 
USB 
Serial 
… 
Serial 
Canbus 
… 
Planejador 
Movimento 
Desejado 
10 
Modelo Cliente / Servidor 
Player / ROS 
 
 Device driver Interface 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Biblioteca 
do cliente 
para 
Player / ROS 
 
 
 
C/C++ 
C# 
Java 
Tcl 
Python 
Ruby 
Lisp 
Octave 
 
 
 
Aplicação 
do Usuário 
SICK 
LMS 200 
Pioneer 
SICK 
PLS 
Segway 
Khepera 
sicklms200 
sickpls 
p2os 
segwayrmp 
khepera 
laser 
laser 
position 
position 
position 
TCP/IP 
IPC 
11 
Abstração de Hardware 
Player / ROS 
Server 
Biblioteca 
do cliente 
para 
Player / ROS 
 
 
C/C++ 
C# 
Java 
Tcl 
Python 
Ruby 
Lisp 
Octave 
 
 
 
Robot 
Hardware 
Stage 
Simulator 
Gazebo 
Simulator 
Player / ROS 
Server 
Player / ROS 
Server 
12 
Aplicação 
do Usuário 
Comunicação 
13 
 
Biblioteca 
do cliente 
para 
Player / ROS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Aplicação 
do Usuário 
Servidor 
Player / ROS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Hardware 
do Robô 
Estabelece conexão 
 
 
Conecta no dispositivo(s) 
 
 
 
 
Dados de Sensor 
 
 
Comandos para os atuadores 
13 
Aplicações 
14 
Estudo de Caso 
• PR2 
15 
Estudo de Caso 
• Robôs 
16 
Player vs ROS 
17 
• Player foi projetado para ser simples e para 
plataformas não articuladas 
• ROS foi projetado pensando em plataformas 
complexas de manipulação 
• ROS facilita a utilização de multiprocessadores 
• Player 
– Oferece mais drivers implementados 
• ROS 
– Oferece mais implementações de algoritmos 
Por que utilizar um framework? 
18 
Instalando e configurando o 
ROS 
• Página para instalação do ROS: 
– http://www.ros.org/wiki/ROS/Installation 
• Seleciona sistemas operacional: 
– Ubuntu, Opensuse, Gentoo, Windows e MacOS 
• Configurando o ambiente 
– Caminho para as ferramentas do ROS, variáveis, 
etc. 
19 
Organização do ROS 
Sistema de arquivos 
• Package 
– Diretório com uma aplicação/executáveis do 
ROS 
• Stack 
– Diretório com um conjunto de packages 
20 
Organização do ROS 
Executáveis 
• Nodes 
• Topics 
• Services 
• Messages 
 
21 
Node 
• Executável do sistema 
• Comunicacão com outros nodes através de 
topics/services 
• Um sistema pode ser composto por vários 
nodes 
• Nodes são independentes 
 
22 
Topic 
• Método de utilizado para troca de mensagens 
entre os nodes 
• Publisher/Subscriber 
• Assíncrono 
• Um para muitos 
• Não adequado para request/reply 
23 
Services 
• Request/Reply 
• Com confirmação 
• Chamada remota de métodos 
• Um-para-Um 
 
24 
Message 
• Estrutura de dados das mensagens que são 
trocadas 
• Mensagens podem conter outras mensagens 
• Mensagens são composições 
– Inteiros, números de ponto flutuante, strings, 
outros. 
25 
Organização do ROS 
• Forma de grafo 
 
26 
ROS Master 
• O Master é o processo que estabelece 
comunicação entre os nodes 
• Um node que se comunicar com outro, 
primeiro faz essa requisição ao master 
• As mensagens são trocadas diretamente 
entre os nodes 
27 
Principais comandos ROS 
Sistema de arquivos 
• rospack/rosstack 
• Uma ferramenta para inspecionar packages/stacks 
• roscd 
• Muda para um diretório de algum package ou stack 
• rosls 
• Lista o conteúdo do diretório de um package ou stack 
• roscreate-pkg 
• Cria um novo pacote do ROS 
• roscreate-stack 
• Cria um novo stack do ROS 
 28 
Principais comandos ROS 
Sistema de arquivos 
• rosdep 
• Instala as dependências de um pacote do ROS 
• rosmake 
• Compila um pacote do ROS 
• roswtf 
• Mostra erros e avisos sobre sistema do ROS ou um 
arquivo launch 
• rxdeps 
• Mostra a estrutura e dependências de um package 
 
29 
Principais comandos ROS 
 Ferramentas 
• roscore 
• Necessário para que os Nodes, conectados ao 
servidor, se comuniquem. 
• rosmsg 
• Mostra as definições de estrutura de dados de um 
mensagem 
• rosrun 
• Permite a execução de um arquivo em um package 
arbitrário sem a necessidade de estar no diretório do 
arquivo 
30 
Principais comandos ROS 
 Ferramentas 
• rosnode 
• Mostra informações sobre os nodes para debug, 
incluindo publicações, subscrições e conexões 
• roslaunch 
• Inicia os nodes do ROS localmente e remotamente via 
SSH e define os parâmetros no servidor de parâmetros 
• rostopic 
• Mostra informações de debug sobre os topics do ROS, 
incluíndo publicadores, assinantes, taxa de publicação 
e mensages 
• rosparam 
• rosservice 
• rosbag 
31 
Principais comandos ROS 
 Ferramentas 
• rosparam 
• Ver e definir os parâmetros do ROS no servidor de 
parâmetros 
• rosservice 
• Listar e inquirir informação dos services no servidor do 
ROS 
• rosbag 
• Este é um conjunto de ferramente para gravar e 
reproduzir os topics do ROS 
 
32 
Principais comandos ROS 
 Ferramentas visuais - rxgraph 
• Visualizar a estrutura do nodes em execução 
33 
Principais comandos ROS 
 Ferramentas visuais - rviz 
• Visualizador3D 
• Visualização de dados como: 
– Mapas 
– Nuvens de pontos 
– Câmeras 
– Pose dos Robôs 
34 
Principais comandos ROS 
 Ferramentas visuais - rxbag 
• Gerenciar bags 
• Gravar bags 
• Pode mostrar imagens 
 
35 
Principais comandos ROS 
 Ferramentas visuais - rxconsole 
• Utilizado para debug dos nodes que estão 
sendo executados 
• Exibe mensagens que são enviadas ao 
rosout 
36 
Simulação - Stage 
• Simulador 2D 
• Open Source 
• Simulação com multirrobôs 
• Integrado com o ROS 
37 
Simulação - Gazebo 
• Simulador 3D 
• Open Source - WillowGarage 
• Simulação física realista 
• Robôs: 
– PR2 
– Pioneer2DX 
– Pioneer2AT 
– SegwayRMP 
38 
Funcionalidades Principais 
Localização 
• Adaptative Monte Carlo Localization – AMCL 
• D. Fox. Kld-sampling: Adaptive particle filters, 
2001. 
• Localização 
– Mapa 
– Hodometria 
– Leituras de um Laser 
• Distribuição probabilística sobre a localização do 
robô 
39 
Funcionalidades Principais 
Navegação 
• Localizar e planejar o movimento em um 
ambiente 
• Move_base 
• Navegação local 
– Espaço de percepção 
• Navegação global 
– Utilizando uma representação estática do ambiente 
 
40 
Funcionalidades Principais 
SLAM 
• Simultaneous localization and mapping 
• Mapear um ambiente ao mesmo tempo que se 
mantém localizado 
• Processos de mapeamento e localização 
inseparáveis 
• ROS 
• Gmapping 
• Karto 
42 
Aplicações 
Robôs roteadores 
• Conectar um conjunto de clientes em uma rede 
wireless 
– Exemplos de clientes: policiais e bombeiros 
– Robotic Communication Backbone,2012 
• ROS utilizado para: 
– Navegação e Localização 
43 
Aplicações 
Rede de nós sensores 
• Localização de nós sensores 
• Potência de sinal o único indicativo da posição 
dos senrores 
• Modelo gráfico probabilístico para a localização 
– Indoor wireless sensor localization using 
mobile robot and RSSI, 2012 
• ROS utilizado para: 
– Localização do robô 
44 
Aplicações 
Rede de nós sensores 
• Localização de nós sensores 
• Potência de sinal o único indicativo da posição 
dos senrores 
• Modelo gráfico probabilístico para a localização 
– Indoor wireless sensor localization using 
mobile robot and RSSI, 2012 
• ROS utilizado para: 
– Localização do robô 
45 
Aplicações 
Visão computacional 
• SLAM 3D em tempo Real 
‒ Real-time 3D visual SLAM with a hand-held 
RGB-D camera, 2011 
• Extração dos atributos dos objetos em um 
ambiente 
• Correspondência entre imagens feita utilizando 
RANSAC 
46 
Atividades Práticas- Turtlesim 
• Simulador para exercitar os conceitos básicos 
do ROS 
• Para inicializar o simulador 
– rosrun turtlesim turtlesim_node 
– rosrun turtlesim turtle_teleop_key 
• A partir desse ponto é possivel navegar com a 
tartaruga utilizando linha de comando 
47 
Atividades Práticas - Turtlesim 
• rxgraph 
• rostopic 
• rosservice 
• roslaunch 
48 
Simulação – Stage 
Criando um cenário 
• Definido em um arquivo texto 
• São definidos os objetos do ambiente: 
– Obstáculos 
– Robôs e seus sensores e atuadores 
• Instânciados os modelos 
 
49 
Simulação – Stage 
Criando um cenário 
• Sintaxe para definição de um modelo 
– define model_name model(# parameters) 
• Exemplo de um modelo para os obstáculos 
• define floorplan model( 
• color "gray30“ 
• boundary 0 
• laser_return 1 
• bitmap "simple.pgm" 
• size [31.100 26.600 0.500] 
• pose [47.343 39.697 0 0]) 
 
50 
Simulação – Stage 
Criando um cenário 
• Sintaxe para definição de um laser 
– define model_name ranger(# parameters) 
• Exemplo: 
• define topurg ranger( 
• sensor( range [ 0 10 ] fov 270.0 samples 1081 ) 
color "black" 
• size [ 0.050 0.050 0.100 ]) 
51 
Simulação – Stage 
Criando um cenário 
• Sintaxe para definição de um robô 
– define model_name position(# parameters) 
• Exemplo: define erratic position( 
• size [0.200 0.200 0.200] 
• origin [-0.050 0 0 0] 
• gui_nose 1 
• drive "diff" 
• topurg(pose [ 0.050 0 0 0 ]) ) 
52 
Simulação – Stage 
Criando um cenário 
• Instanciando os modelos: 
• resolution 0.02 
• interval_sim 100 
• window( size [ 745.000 448.000 ] rotate [ 0 -1.560 ] 
scale 21.642 ) 
• floorplan( pose [47.343 39.697 0 0]) 
• erratic( pose [ 17.507 15.365 0 0 ] name "era0" color 
"blue") 
53 
Simulação – Stage 
Executando o Stage no ROS 
• Para executar a simulação: 
– rosrun stage stageros simple.world 
• Para teleoperar o robô da simulação 
– rosrun teleop_twist_keyboard 
teleop_twist_keyboard.py 
 
 
54 
Atividades Práticas - SLAM 
• Criar uma mapa de um ambiente simulado no 
stage 
• 1º Inicialize o stage 
– roscore 
– rosrun stage stageros simple.world 
• 2º Algoritmo de SLAM 
rosrun gmapping gmapping scan:=base_scan 
55 
Atividades Práticas - SLAM 
• 3º Para navegar pelo ambiente 
– rosrun teleop_twist_keyboard 
teleop_twist_keyboard.py 
• 4º Inicialize o rviz 
– rosrun rviz rviz 
• 5º Para salvar o mapa 
– rosrun map_server map_saver 
56 
Atividades Práticas – Navegação 
• Navegação autônoma em um ambiente 
simulado. 
• 1º inicialize o stage 
– roscore 
– rosrun stage stageros simple.world 
• 2º inicialize servido de mapa 
– rosrun map_server map.yaml 
• 3º inicialize o amcl 
– roslaunch amcl amcl_diff.yaml 
57 
Atividades Práticas – Navegação 
• 4º Inicialização do move_base 
– roslaunch navegacao.yaml 
• 5º Inicialização do rviz 
– rosrun rviz rviz 
• Criando um launch para a navegação 
 
58 
Contatos 
 
Elerson 
elerson@dcc.ufmg.br 
Fabricio 
fabriciofc@dcc.ufmg.br 
Marcos 
mmvieira@dcc.ufmg.br 
59

Outros materiais