O ROS é uma estrutura(framework) de software flexível e de código aberto para programação de robôs. O ROS fornece uma camada de abstração de hardware, na qual os desenvolvedores podem criar aplicativos de robótica sem se preocupar com o hardware subjacente. O ROS também fornece diferentes ferramentas de software para
visualizar e depurar dados do robô.
3. INICIAÇÃO A
ROBÓTICA
O ROS é uma estrutura(framework) de software
flexível e de código aberto para programação de
robôs. O ROS fornece uma camada de abstração
de hardware, na qual os desenvolvedores podem
criar aplicativos de robótica sem se preocupar
com o hardware subjacente. O ROS também
fornece diferentes ferramentas de software para
visualizar e depurar dados do robô.
4. O que você precisa aprender para programar
um robô com ROS?
Primeiro, você precisará aprender alguns
conceitos básicos. Por exemplo, você não
pode aprender a correr antes de saber
andar.
INICIAÇÃO A
ROBÓTICA
5. O que você precisa aprender para programar
um robô com ROS?
Em segundo lugar, você precisa saber
sobre os tópicos. Os tópicos são,
provavelmente, a parte mais importante do
ROS, então você precisará aprendê-los
com cuidado.
INICIAÇÃO A
ROBÓTICA
6. O que você precisa aprender para programar
um robô com ROS?
O ROS trata quase todas as suas comunicações por
meio de tópicos. Sistemas de comunicação ainda mais
complexos, como serviços ou ações, dependem, no
final, de tópicos. Por meio de tópicos ROS, você poderá
se comunicar com seu robô para fazê-lo se mover, ler
as leituras do sensor do seu robô e muito mais.
INICIAÇÃO A
ROBÓTICA
7. O que é programação de robôs?
Um robô é uma máquina com sensores,
atuadores (motores) e uma unidade de
computação que se comporta com base
nos controles do usuário ou pode tomar
suas próprias decisões com base nas
entradas dos sensores.
INICIAÇÃO A
ROBÓTICA
13. O que é programação de robôs?
A programação de robôs é um subconjunto da
programação de computadores. A diferença entre a
programação do robô e a programação convencional
são os dispositivos de entrada e saída. Os dispositivos
de entrada incluem sensores de robô, pendentes de
instrução e telas sensíveis ao toque, e os dispositivos
de saída incluem telas de LCD e atuadores.
INICIAÇÃO A
ROBÓTICA
14. Recursos necessários para a programação um robô:
● Threading:
● Programação orientada a objetos de alto nível:
● Controle de dispositivo de baixo nível:
● Facilidade de prototipagem:
● Comunicação entre processos:
● Atuação:
● Suporte da comunidade:
● Disponibilidade de bibliotecas de terceiros:
● Suporte de estrutura de software de robótica existente:
INICIAÇÃO A
ROBÓTICA
15. Recursos necessários para a programação um robô:
● Threading:
● Programação orientada a objetos de alto nível:
● Controle de dispositivo de baixo nível:
● Facilidade de prototipagem:
● Comunicação entre processos:
● Atuação:
● Suporte da comunidade:
● Disponibilidade de bibliotecas de terceiros:
● Suporte de estrutura de software de robótica existente:
INICIAÇÃO A
ROBÓTICA
17. Conceitos do ROS
● Nó: Um nó(node) consiste em um executável que utiliza o ROS para realizar a
comunicação com outros nó(node).
● Menssagens: Tipos de dados no ROS usados quando se publica ou sobrescreve
de tópico.
● Tópicos: Nós(node) podem publicar menssagens em tópicos assim como podem
subescrever menssagens de tópicos.
● Master: Service de gerenciamento do sistema do ROS (ex: ajuda os nós a se
encontrarem no sistema.)
● rosout: Equivalente do ROS ao stdout/stderr
● roscore: Comando para inicializar o Master + rosout + servidor de parâmetros . É
um dos comandos para inializar o "sistema" do ROS.
INICIAÇÃO A
ROBÓTICA
18. Conceitos de Computação ROS
Nós ROS (ROS node): Processo que usa APIs ROS para realizar cálculos.
Mestre ROS (ROS master): Um programa intermediário que conecta nós ROS node.
Servidor de parâmetros ROS(ROS parameter server): Um programa que normalmente é executado juntamente com o
mestre ROS. O usuário pode armazenar vários parâmetros ou valores neste servidor e todos os nós pode acessá-lo. O
usuário pode definir a privacidade do parâmetro também. Se for um parâmetro público, todos os nós têm Acesso; se for
privado, apenas um nó específico pode acessar
o parâmetro.
Tópicos do ROS: Barramentos nomeados nos quais os nós do ROS podem envie uma mensagem. Um nó pode publicar ou
assinar qualquer número de tópicos.
Mensagem ROS: As mensagens estão basicamente indo através do tópico. Existem mensagens existentes baseadas em
tipos de dados primitivos, e os usuários podem escrever seus próprios mensagens.
Serviço ROS: Já vimos tópicos ROS, que é ter um mecanismo de publicação e assinatura. O serviço ROS possui um
mecanismo de solicitação/resposta. Um serviço call é uma função, que pode chamar sempre que um nó cliente envia um
pedido. O nó que cria uma chamada de serviço é chamado de nó do servidor e que chama o serviço é chamado nó cliente.
ROS bags: Um método útil para salvar e reproduzir ROS tópicos. Também útil para registrar os dados de um robô para
processá-lo mais tarde.
19. roscore é o comando para inicializar o
Master e deve ser a primeira coisa a ser
inicializada no ROS
Comando no terminal:
$ roscore
INICIAÇÃO A
ROBÓTICA
21. O comando rosnode mostra as
informações dos nós(nodes) que estão
rodando. O comando rosnode list lista
os nós(nodes) que estão ativos no
momento.
$ rosnode list
INICIAÇÃO A
ROBÓTICA
22. rosnode ping test connectivity to node
rosnode list list active nodes
rosnode info print information about node
rosnode machine list nodes running on a particular
machine or list machines
rosnode kill kill a running node
rosnode cleanup purge registration information of
unreachable nodes
23. O comando rosnode info
retorna informações sobre um nó
(nodes) específico.
$ rosnode info /rosout
INICIAÇÃO A
ROBÓTICA
24. A ferramenta rostopic permite obter
informações sobre os tópicos ROS.
Você pode usar a opção de ajuda para obter
os subcomandos disponíveis para rostopic
$ rostopic -h
INICIAÇÃO A
ROBÓTICA
25. rostopic list retorna uma lista de
todos os tópicos atualmente
inscritos e publicados.
$ rostopic list -h
INICIAÇÃO A
ROBÓTICA
26. rostopic echo mostra os dados
publicados em um tópico.
rostopic echo [topic]
INICIAÇÃO A
ROBÓTICA