Instalação e execução
Nesta seção, você pode conferir as instruções para instalar e executar cada uma das partes do sistema da solução desenvolvidas até a sprint 3.
Movimentação do robô via aplicação WEB
Pré-requisitos
- 
ROS2 instalado no sistema operacional (Linux Ubuntu) da Raspberry do Turtlebot 3 e do computador usado para operá-lo remotamente
 - 
Pacote ROS do Turtlebot 3 instalado no sistema operacional (Linux Ubuntu) da Raspberry do Turtlebot 3 e do computador usado para operá-lo remotamente
 - 
Raspberry do Turtlebot 3 e computador usado para operá-lo remotamente conectados na mesma rede wi-fi
 - 
Git instalado no computador usado para operar o robô remotamente
 - 
Pacote ROSBridge do Turtlebot 3 instalado no sistema operacional (Linux Ubuntu) da Raspberry do Turtlebot 3 e do computador usado para operá-lo remotamente
 - 
Node.js atualizado no sistema operacional (Linux Ubuntu) da Raspberry do Turtlebot 3
 
Comunicação via SSH
Passo a passo
- No sistema operacional da Raspberry contida no Turtlebot 3 a ser controlado, abra uma janela de terminal e digite os seguintes comandos para encontrar o IP do Turtlebot 3 dado pela rede:
 
    ip addr
Copie o número registrado em Wlan que vem antes da "/" (exemplo: 10.128.0.30). Esse será o IP que será utilizado para comunicação do robô para a aplicação WEB.
- Na mesma janela de terminal, digite os seguintes comandos para instalar o pacote responsável por iniciar um servidor SSH e executá-lo.
 
    sudo apt install openssh-server
    sudo systemctl enable ssh
    sudo ufw allow ssh
    sudo systemctl start ssh
- No sistema operacional do computador que será utilizado para controlar o robô de maneira remota, abra uma janela de terminal e digite o seguinte comando:
 
    ssh user@server
No comando acima, user é o nome de usuário do sistema operacional da Raspberry do Turtlebot 3 e server é o ip copiado do passo 1. Caso você esteja usando o Turtlebot 3 do grupo 5, o comando a ser digitado nessa etapa será ssh sugarz3ro@IpCopiado .
- 
Digite a senha de usuário que será solicitada pelo terminal.
 - 
Com o ssh conectado, digite os seguintes comandos para limitar a comunicação via ROS a um domínio com ID 5 dentro da rede:
 
    echo 'export ROS_DOMAIN_ID=5' >> ~/.bashrc
    source ~/.bashrc
- Com o ssh conectado, clone o repositório do projeto no diretório de sua preferência através dos comandos:
 
    git clone https://github.com/Inteli-College/2024-1B-T08-EC06-G05.git
- Na mesma janela de terminal, altere o IP em dois scripts: 
rosbridge_movement.jsxecamera.jsxCom os comandos abaixo: 
    cd 2024-1B-T08-EC06-G05/src/frontend/src/components/camera
    nvim camera.jsx
    cd ..
    cd rosbridge_movement/
    nvim rosbridge_movement/
Para mudar o IP, após realizar o comando nvim nos dois casos terá uma parte do script como mostrado abaixo. Basta mudar o número contido no url para o IP copiado no passo 1.
    ros.current = new ROSLIB.Ros({
      url: 'ws://10.128.0.30:9090'
    });
- Na mesma janela do terminal, digite o seguinte comando para iniciar a comunicação entre a Raspberry e o microcontrolador do robô, bem como torná-lo apto a receber comandos de movimentação remotamente:
 
    ros2 launch turtlebot3_bringup robot.launch.py
- Em outra janela de terminal, ainda conectado no ssh, digite o seguinte comando para iniciar o ROSBridge para estabelecer a comunicação entre o robô e a aplicação WEB:
 
    ros2 launch rosbridge_server rosbridge_websocket_launch.xml
- Em outra janela de terminal, ainda conectado no ssh, digite os seguintes comandos partindo da raiz do projeto para transmitir as informações da câmera:
 
    cd src/workspace/src/SugarZ3ro_pkg/SugarZ3ro_pkg/
    python3 sender.py
- Em outra janela de terminal, desconectado do ssh, digite os seguintes comandos a partir da raiz do projeto para ir até a pasta do frontend e iniciar a aplicação WEB, que já contará com a movimentação do robô e o sistema de segurança integrados:
 
    cd 2024-1B-T08-EC06-G05/src/frontend
    npm run dev
Movimentação do robô via script Python (Caso de emergência)
Pré-requisitos
- 
ROS2 instalado no sistema operacional (Linux Ubuntu) da Raspberry do Turtlebot 3 e do computador usado para operá-lo remotamente
 - 
Pacote ROS do Turtlebot 3 instalado no sistema operacional (Linux Ubuntu) da Raspberry do Turtlebot 3 e do computador usado para operá-lo remotamente
 - 
Raspberry do Turtlebot 3 e computador usado para operá-lo remotamente conectados na mesma rede wi-fi
 - 
Git instalado no computador usado para operar o robô remotamente
 
Comunicação via rede local
Passo a passo
- No sistema operacional da Raspberry contida no Turtlebot 3 a ser controlado, abra uma janela de terminal e digite os seguintes comandos para limitar a comunicação via ROS a um domínio com ID 5 dentro da rede:
 
echo 'export ROS_DOMAIN_ID=5' >> ~/.bashrc
source ~/.bashrc
- Na mesma janela de terminal, digite o seguinte comando para iniciar a comunicação entre a Raspberry e o microcontrolador do robô, bem como torná-lo apto a receber comandos de movimentação remotamente:
 
ros2 launch turtlebot3_bringup robot.launch.py
- No sistema operacional do computador que será utilizado para controlar o robô de maneira remota, abra uma janela de terminal no diretório de sua preferência e clone o repositório através do seguinte comando:
 
git clone https://github.com/Inteli-College/2024-1B-T08-EC06-G05.git
- Na mesma janela de terminal, digite os seguintes comandos para iniciar o build do workspace:
 
cd 2024-1B-T08-EC06-G05/src/workspace
colcon build
- Na mesma janela de terminal, digite o seguinte comando para habilitar o uso do pacote criado pela equipe SugarZ3ro:
 
source install/local_setup.bash
- Na mesma janela de terminal, digite os seguintes comandos para limitar a comunicação via ROS a um domínio com ID 5 dentro da rede:
 
echo 'export ROS_DOMAIN_ID=5' >> ~/.bashrc
source ~/.bashrc
- Por fim, na mesma janela de terminal, digite o seguinte comando para executar o script responsável por inicializar a CLI para controle de movimentação do robô:
 
ros2 run SugarZ3ro_pkg start_moving
Comunicação via SSH
Passo a passo
- 
Siga o passo 1 do tutorial para comunicação via rede local.
 - 
No sistema operacional da Raspberry do Turtlebot 3, abra uma janela de terminal e clone e dê build no repositório do projeto no diretório de sua preferência através dos comandos:
 
git clone https://github.com/Inteli-College/2024-1B-T08-EC06-G05.git
cd 2024-1B-T08-EC06-G05/src/workspace
colcon build
- Na mesma janela de terminal, digite os seguintes comandos para instalar o pacote responsável por iniciar um servidor SSH e executá-lo.
 
sudo apt install openssh-server
sudo systemctl enable ssh
sudo ufw allow ssh
sudo systemctl start ssh
- Na mesma janela de terminal, digite o seguinte comando para iniciar a comunicação entre a Raspberry e o microcontrolador do robô, bem como torná-lo apto a receber comandos de movimentação remotamente:
 
ros2 launch turtlebot3_bringup robot.launch.py
- No sistema operacional do computador que será utilizado para controlar o robô de maneira remota, abra uma janela de terminal e digite o seguinte comando:
 
ssh user@server
No comando acima, user é o nome de usuário do sistema operacional da Raspberry do Turtlebot 3 e server é o ip desta. Caso você esteja usando o Turtlebot 3 do grupo 5, o comando a ser digitado nessa etapa será ssh sugarz3ro@10.128.0.8 .
- 
Digite a senha de usuário que será solicitada pelo terminal.
 - 
Por fim, adentre o diretório no qual você clonou o reposit ório do projeto (no passo 2) e digite os seguintes comandos para executar a CLI de movimentação do robô:
 
cd src/workspace
source install/local_setup.bash
ros2 run SugarZ3ro_pkg start_moving
Como instalar o TinyDB
Para realizar a instalação do TinyDB, é sugerido o uso de um ambiente virtual pelos seguintes comandos:
Verifique se você está na raiz do projeto
- python3 -m venv venv
 
Este comando vai criar um ambiente virtual na pasta venv
É necessário ativar o ambiente virtual com o seguinte comando:
- source venv/bin/activate
 
Após a ativação do venv, deve-se instalar o TinyDB com o comando pip install tinydb