Projeto

Geral

Perfil

Introdução » Histórico » Versão 7

André Vidal, 30/08/2021 08:17 h

1 1 Henrique Wanner Antunes Silvério de Sousa
h1. Introdução
2
3 6 André Vidal
h2. Projeto Humanoide RoboIME 2020/2021
4 1 Henrique Wanner Antunes Silvério de Sousa
5 7 André Vidal
O objetivo da intel do humanoide é prover a inteligência necessária para um robô que possui algumas características mecânicas de um humano possa cumprir certas tarefas. As características mecânicas  principais são ele ser bípede e dever obedecer certas proporções entre as pernas e as demais partes. As regras detalhadas sobre a pista, os obstáculos e as proporções do robô se encontram no pdf em anexo.
6 1 Henrique Wanner Antunes Silvério de Sousa
7 7 André Vidal
Há 3 desafios possíveis: percorrer uma pista sem obstáculos, percorrer uma pista com obstáculos no menor tempo possível, e percorrer uma pista com um degrau, sendo o desempate a máxima distancia conseguida no caso de o robô não concluir a pista e o tempo que levou. Caso o robô cometa alguma infração, como sair das margens da pista, ele pode recomeçar, não sendo infinitas o número de tentativas. Em 2020 e em 2021 as tomadas que serviam para efeito de premiação eram filmadas ao vivo.
8 1 Henrique Wanner Antunes Silvério de Sousa
9 7 André Vidal
No momento, o projeto do robô se dedica a completar as duas primeiras modalidades descritas. A intel é decisivamente atuante na segunda modalidade, sendo cogitadas aplicações também para a primeira, que no momento não se encontra implementada.
10 6 André Vidal
11
h2. Noções sobre o hardware
12
13 7 André Vidal
Os códigos são rodados em uma RaspiberryPI 4, que roda o SO Linux. O controle dos motores é feito por uma outra placa, a myRIO, que recebe da Raspberry um char respectivo ao estado desejado (andar em frente, parar, girar) através de comunicação serial e faz com que os motores realizem os movimentos necessários. Esse sinal é fornecido rodando um script em Python. A ideia inicial era o código ser feito em C++, porém isso não foi feito com a justificativa de no momento a velocidade de execução ser satisfatória e ser mais fácil encontrar documentação das bibliotecas utilizadas em Python.
14 6 André Vidal
15
16 7 André Vidal
O programa pode trabalhar com o feedback de 3 sensores, que ficam localizados na cabeça. Eles são uma câmera, um giroscópio (MPU9250), e um sensor de distância(TF Mini Lidar). O sensor lidar fornece a distância ao objeto mais próximo localizado a frente do robô, enquanto o giroscópio pode funcionar como bussola (ele informa a inclinação referente a qualquer ângulo tridimensional, mas no momento queremos saber apenas a inclinação no plano do chão).
17 1 Henrique Wanner Antunes Silvério de Sousa
18
h2. Noções sobre o software
19
20 7 André Vidal
Para a modalidade de desvio de obstáculos, códigos atuais visam a implementação do seguinte diagrama de estados:
21 1 Henrique Wanner Antunes Silvério de Sousa
!picture957-1.png!
22 7 André Vidal
23
Nele, as ramificações de verificar se há obstáculo são feitas antes das de corrigir direção. Esses processos são feitos usados estruturas de decisão padrão, cujo a lógica foi feita manualmente sem nenhum uso de machine learning (uma das metas para o futuro). Para a extração de informações uteis das imagens foi utilizada a biblioteca OpenCV.
24
Não está feito um diagrama de estados para a função de andar e linha reta, embora possa ser derivável do acima (nenhum obstáculo será detectado). Não é descartada a criação de diagramas de estados que implementem estratégias diferentes. O código atual ainda não foi testado com o robô em movimento independente, portanto provavelmente ele sofrerá alguns ajustes. 
25
26
h2. Metas
27
28
As metas principais para esse ano de 2021 é gerar uma documentação satisfatória e tutoriais para todo o projeto e garantir que os programas forneçam feedbacks adequados a myRIO para o desvio de obstáculos e para o alinhamento na pista. Para o futuro, as metas são a implementação de aprendizado de máquina com as imagens a fim de obter a direção para a qual desviar, gerar o código para a implementação da terceira tarefa - a de subir degrais -, e, com menos prioridade, começar a trabalhar com vídeo para facilitar o debug em tempo real.