Sobre
Esse tópico aborda a framework do nosso software para o NAO. Os capítulos passam por diversos aspectos numa abordagem "de cima para baixo" com uma visão geral, depois detalhando cada parte do sistema. Aqui está uma lista dos capítulos:
- Estrutura de diretórios: Explica a estutura de pastas do repositorio.
 - Entry Point: Inicia a abordagem top-down do sistema, explicando o ponto de entrada do programa na função 
main. - Runtime: Como a runtime faz a conexão entre os módulos do sistema?
 - Cyclers: O que são os cyclers (ciclos de execução) e como eles rodam os diferentes nós?
 - Nós: O que são os nós e como eles são implementados?
 - Bases de dados e Tipos: Como os dados são compartilhados entre cyclers e a framework?
 - Parâmetros: Como os parâmetros são passados para os nós pela framework?
 - Comunicação: Do que se trata e como é feita a comunicação entre framework e nós?
 - Interface com Hardware: Como o hardware é abstraído para a framework?
 - Comunicação entre threads: Quais conceitos existem para permitir uma comunicação thread-safe entre os subcomponentes?
 - Filtragem: Como a filtragem de dados é feita na framework e como ela se comporta num software multi-thread?
 - Macros: Quais macros são usadas para facilitar o desenvolvimento e como eles funcionam?
 - Tratamento de erros: Como a framework lida com erros e exceções, e como devo implementar?
 
A framework provê os principais aspectos necessários para o desenvolvimento de um software para o NAO. Ele tem uma arquitetura modular que permite facil desenvolvimento e substituição de nós. A framework consiste de quatro componentes fundamentais:
- Runtime: Encapsula todos os subcomponentes, instanciando e inicializando eles.
 - Interface com Hardware: Abstrai o hardware do NAO, permitindo a comunicação com os sensores e atuadores.
 - Cyclers: Cicla entre os nós, processa dados do hardware e gera saídas.
 - Comunicação: Permite a comunicação entre o framework e outros recursos, como arquivos, nós e redes.
 
