O ambiente de desenvolvimento proposto no fluxograma é cuidadosamente estruturado para oferecer uma plataforma eficiente e organizada para o desenvolvimento de projetos utilizando ROS 2 Humble dentro de containers Docker. Através de uma combinação de scripts automatizados, arquivos de configuração e uma imagem Docker personalizada, este ambiente garante que todas as dependências e ferramentas necessárias estejam prontas para uso, independentemente do sistema operacional do desenvolvedor.
A estrutura proposta do Ambiente de Denvolvimento inicia-se com a pasta ****LabRoM_Dinamica_de_Sistemas_Roboticos
, este é o diretório raiz do projeto, o nome pode mudar, é de livre escolha. Ele contém todos os arquivos e subdiretórios necessários para configurar e rodar o ambiente de desenvolvimento e simulação com ROS 2 utilizando Docker. Todo o conteúdo do projeto, incluindo scripts, Dockerfile, configurações, e o workspace do ROS 2, reside dentro deste diretório.
graph TD;
A[LabRoM_Dinamica_de_Sistemas_Roboticos] --> B[docker]
B --> D[ROS_humble.dockerfile]
B --> E[config]
B --> F[scripts]
E --> G[bashrc]
E --> H[entrypoint.sh]
F --> I[build.sh]
F --> J[run.sh]
A[LabRoM_Dinamica_de_Sistemas_Roboticos] --> C[ros2_ws]
Docker
Este diretório contém arquivos e scripts específicos para a configuração e construção da imagem Docker. O objetivo do diretório é centralizar tudo o que é necessário para criar o ambiente Docker, que será usado para rodar o ROS 2. Dentro dele, encontramos o Dockerfile, arquivos de configuração como .bashrc
e entrypoint.sh
, e scripts auxiliares.
Dockerkfile: ROS_humble.dockerfile
Este é o Dockerfile utilizado para construir a imagem Docker baseada no ROS 2 Humble. Ele contém instruções para o Docker sobre como configurar o sistema dentro do container. O Dockerfile especifica a imagem base (ROS 2 Humble), instala dependências, cria um usuário não-root, e copia scripts e configurações para dentro da imagem, preparando o ambiente ROS 2.
Função detalhada:
Pasta: config
Este diretório armazena arquivos de configuração que serão copiados para dentro do container durante a construção da imagem Docker. Ele centraliza as configurações do ambiente de shell e do ponto de entrada do container, garantindo que o ambiente esteja pronto para o desenvolvimento com ROS 2.
bashrc
O arquivo .bashrc
, localizado dentro do diretório config
, é um script que é executado toda vez que você inicia uma nova sessão de shell interativo. Ele é utilizado para configurar o ambiente do usuário, carregando variáveis de ambiente, alias, funções personalizadas, entre outros. No contexto de um container Docker, ele garante que todas as ferramentas e variáveis necessárias estejam prontas sempre que você abre um terminal dentro do container.
Função detalhada:
entrypoint.sh
O script entrypoint.sh
, também localizado no diretório config
, é o ponto de entrada do container. Ele é executado automaticamente toda vez que o container é iniciado. Sua função é configurar o ambiente global do container, garantir que os diretórios necessários existam, e preparar o container para rodar comandos ROS 2.
Função detalhada:
Resumo da Diferença: O .bashrc
é focado em preparar o ambiente para uma sessão de terminal interativa, enquanto o entrypoint.sh
prepara o container como um todo para ser usado, sendo executado assim que o container inicia.
Pasta: scripts
Este diretório contém scripts auxiliares que automatizam o processo de construção e execução do container Docker. Ele ajuda a manter o projeto organizado e simplifica as operações repetitivas como construir a imagem e rodar o container.
Script: build.sh
O script build.sh
, dentro do diretório scripts
, é responsável por automatizar o processo de construção da imagem Docker. Ele verifica se o usuário está no diretório correto e executa o comando docker build
com as opções apropriadas para criar a imagem Docker a partir do Dockerfile.
Função detalhada:
Script: run.sh
O script run.sh
, também no diretório scripts
, é utilizado para rodar o container Docker criado. Ele configura as opções de execução, como o uso de GPU (se disponível), mapeamento de volumes, e inicializa o container com as variáveis e permissões necessárias para rodar aplicações ROS 2.
Função detalhada:
ros2_ws
O diretório ros2_ws
é o workspace do ROS 2, onde todo o código-fonte, pacotes, e arquivos de configuração específicos do ROS 2 são armazenados. Ele é mapeado para dentro do container Docker para que o desenvolvedor possa acessar e modificar os pacotes ROS 2 sem precisar reconstruir a imagem Docker.
Função detalhada: