O que esperar
Sumário
O objetivo deste livro é fornecer uma visão geral integrada dos conceitos e técnicas que você precisará conhecer para escrever o software ROS. Esse objetivo coloca algumas restrições importantes ao conteúdo do livro.
- Isto não é uma introdução à programação. Nós não discutiremos conceitos de programação Básica com grande detalhe. Este livro assume que você já estudou C++ numa profundidade suficiente para ler, escrever e entender códigos nessa linguagem.
- Isto não é um manual de referência. Há muita informação detalhada sobre ROS, incluindo tanto tutoriais como um material de referência exaustivo disponível online. Este livro não faz nenhuma tentativa de substituir esses recursos. Em vez disso, nós apresentamos um selecionado de características do ROS que, na visão do autor, representa um ponto de partida útil para a utilização do ROS.
- Isto não é um livro texto em algoritmos robóticos. O estudo de robôs, especialmente o estudo de algoritmos para o controle de robôs autônomos, pode ser bastante fascinante. Uma impressionante variedade de algoritmos têm sido desenvolvida para várias partes desse problema. Este livro não lhe ensinará nenhum desses algoritmos2. Nosso foco é em uma ferramenta específica, chamada ROS, que pode facilitar a implementação e o teste destes algoritmos.
Capítulos e dependências
A Figura 1.1 mostra a organização deste livro. Os capítulos são mostrados em retângulos; as setas mostram a maior dependência entre eles. Deve ser bastante razoável ler este livro em qualquer ordem que segue essas restrições.
Figura 1.1: Dependência entre os capítulos.
Público alvo
Este livro deve ser útil tanto para estudantes de cursos de robótica como para pesquisadores ou hobbistas que querem começar rapidamente com ROS. Nós assumiremos que esses leitores estão confortáveis com Linux (incluindo tarefas como utilizar linhas de comando, instalar software, editar pastas, e definir variáveis de ambiente), são familiarizados com C++, e querem escrever softwares para controlar robôs. Geralmente, vamos assumir que você está usando Ubuntu Linux 14.04 (a versão mais recente que é, até esse escrito, suportada oficialmente) e o bash shell
. No entanto, existem relativamente poucos casos onde essas escolhas são importantes; outras distribuições Linux (Especialmente as baseadas em pacotes deb
) e outras shells não serão normalmente problemáticas.
2 . . . mas você deverá aprender eles de qualquer forma.