Projeto

Geral

Perfil

Ações

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

« Anterior | Revisão 7/10 (diff) | Próximo »
André Vidal, 30/08/2021 08:17 h


Introdução

Projeto Humanoide RoboIME 2020/2021

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.

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.

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.

Noções sobre o hardware

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.

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).

Noções sobre o software

Para a modalidade de desvio de obstáculos, códigos atuais visam a implementação do seguinte diagrama de estados:

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.
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.

Metas

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.

Atualizado por André Vidalmais de 3 anos · 7 revisões