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.jsx
ecamera.jsx
Com 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