Introdução » Histórico » Versão 10
André Vidal, 03/11/2021 18:15 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 | 10 | André Vidal | No momento, o projeto do robô se dedica a completar as duas primeiras modalidades descritas. A intel é decisivamente atuante em ambas as modalidade. |
10 | !main corrida drawio.png! |
||
11 | 6 | André Vidal | 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 | 10 | André Vidal | O códigos atuais visam a implementação do seguinte diagrama de estados: |
21 | !main corrida drawio.png! |
||
22 | !main obstaculo drawio.png! |
||
23 | Tive problemas para inserir no corpo do texto, mas é possivel visualizá-los no anexo. Embora não mostrado, entre cada transição de estado e na tirada de fotos o robô passa pelo modo parar a fim de que a imagem não trema ou que o robô se desequilibre na mudança de estados. |
||
24 | 7 | André Vidal | |
25 | 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. |
||
26 | 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. |
||
27 | |||
28 | h2. Metas |
||
29 | |||
30 | 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. |