Mudança de projeto no Sirius Educational Center

O primeiro turno do projeto no Sirius Educational Center está chegando ao fim . Geralmente, são realizadas mudanças educacionais aqui, nas quais os alunos se preparam para as olimpíadas de nível russo e mundial. Por exemplo, uma equipe de matemáticos realizou campos de treinamento em Sirius antes da Olimpíada Mundial . Está planejado no futuro tornar este local um dos principais centros de atração para jovens talentosos para uma maior integração em projetos de alta tecnologia que estão na conta especial do estado.

Equipe da Universidade ITMOAlém de ampla participação em projetos relacionados à nanotecnologia, trabalhou com alunos de escolas em vários projetos robóticos. Nosso grupo era formado por 19 alunos e 3 professores. Com antecedência, determinamos as tecnologias básicas e os recursos de design que serão implementados durante o projeto. Alguns projetos estão focados na automação de certos processos, e outros possuem um componente visual mais criativo. Como base para a criação de robôs, foi decidido usar o designer robótico TRIC . Exemplos de uso desse construtor já foram publicados aqui .



Desde o início, tentamos dividir os alunos em grupos de acordo com as habilidades de programação e design. Para organizar o trabalho, usamos o sistema de gerenciamento de projetos do Trello . Como foram alocadas duas semanas e meia para trabalhar em projetos, o restante foi para eventos organizacionais e de entretenimento, e havia um número limitado de tarefas, Trello ficou muito feliz conosco. A cada três dias nos reuníamos com os caras e definíamos tarefas para um novo sprint. Isso não quer dizer que isso foi feito de acordo com todos os cânones do desenvolvimento em empresas sérias, mas conseguimos introduzir os caras no básico do gerenciamento de projetos. Em seguida, vamos diretamente aos projetos.

O primeiro projeto envolve a interação humano-robô, tanto do ponto de vista do design da aparência atraente do robô quanto do ponto de vista da comunicação com uma pessoa e da manutenção da atenção. Primeiro, os caras descobriram usando a tecnologia de reconhecimento de fala. O Yandex SpeechKit foi usado para isso , o que permite, via solicitação http, receber em variantes de resposta do texto reconhecido, em ordem decrescente de probabilidade de reconhecimento correto. No próprio controlador TRIC, existe um sistema unix, e os desenvolvedores forneceram ao sistema a capacidade de converter texto em fala. Para isso , um sintetizador de fala eSpeak está instalado no sistema , que expressa o texto desejado.
O programa principal foi implementado no Qt Script no sistema TRIK Studiosuportado pelos desenvolvedores do designer, e a parte com a transferência do arquivo de áudio para os servidores Yandex é implementada por meio de um script bash. Portanto, é necessário transferir informações do espaço de trabalho linux para a área de memória do programa Qt Script, isso foi feito através de um arquivo adicional. Em geral, o robô pode gravar sua fala, enviar um arquivo para reconhecimento e pronunciar frases registradas em um banco de dados comum de solicitações e respostas, ou executar determinadas ações.

Em seguida, a tarefa era programar os movimentos do robô. O robô vira os olhos para o interlocutor, atraindo sua atenção. Por comando de voz, o robô pode pegar objetos usando o manipulador. O robô possui dois controladores a bordo: o primeiro controla o movimento das rodas, obtém informações de microfones e sensores; o segundo transmite a imagem de vídeo da câmera, controla o movimento do manipulador e dos olhos, acende a faixa de LEDs durante a pronúncia do texto. Existem muitas tarefas de sincronizar o trabalho de programas em diferentes controladores, enquanto todas as partes do projeto são conectadas umas às outras via TCP / IP. Por exemplo, em um bloco, a pronúncia do texto deve ser acompanhada de animação da boca e, no outro, a faixa de LED deve acender.

A visão técnica do robô é transferida para um computador separado, onde o OpenCV é usado para isso. Primeiro, a imagem é binarizada, o gradiente é determinado, os contornos aninhados são excluídos e os objetos são selecionados por dimensões e áreas geométricas. Isso permite determinar a posição dos objetos na mesa, enviar um robô para eles e agarrá-los com um manipulador. Todas as tarefas descritas são resolvidas em vários dispositivos, os caras em pleno crescimento enfrentaram a interação da rede e lidaram com êxito com essa tarefa. A apresentação do projeto pode ser vista aqui .



O segundo projeto é um robô apagando do quadro. Neste projeto, temos um quadro de marcadores e um robô de duas rodas que podem ser movidos nele. O primeiro robô puxa e fica em frente ao tabuleiro. Há uma câmera, cuja imagem é transmitida via TRIC para um computador, onde a imagem é processada e a localização do robô e sua finalidade são determinadas. O robô tem marcas laranja e amarelas para determinar a localização do robô. Primeiro, selecionamos todos os pixels amarelos e laranja na imagem, após o que determinamos as maiores áreas contínuas dessas cores e encontramos seus centros pelos quais podemos determinar as coordenadas e o ângulo de rotação do robô. Em seguida, encontre as imagens do Laplaciano e deixe apenas as áreas vermelhas e vermelhas que precisam ser limpas. Percorrendo toda a imagem novamenteencontramos o ponto mais próximo do robô, que se torna o alvo.

Somente a distância e o ângulo entre o percurso do robô e a direção do alvo são enviados para o robô apagando do quadro. A partir desses valores, as ações de controle dos motores são calculadas e o robô se move em direção ao alvo.



Este projeto também inclui um polidor de robôs. Ao receber uma mensagem do primeiro robô, ele avança uma distância predeterminada e se move ao longo de uma área predeterminada, girando um elemento de limpeza por baixo. No final do tempo, o robô começa a girar em torno de seu eixo e procura uma marca laranja. Após encontrar, ele começa a se mover na direção da marca, até ocupar uma área significativa na imagem da câmera. Nesse caso, o processamento da imagem é realizado completamente no robô, ele recebe apenas um comando de partida. A apresentação do projeto pode ser vista no link e mais trabalhos em vídeo.



O terceiro projeto refere-se à automação de vagas de estacionamento. O objetivo era criar um protótipo de estacionamento público automatizado no centro de negócios. Dois carros com tração nas quatro rodas foram montados, o edifício foi erguido e os lugares de estacionamento com marcas (círculos pretos). O sistema de estacionamento consistia em um controlador, webcams e uma barreira conectada a ele.

O controlador possui um núcleo DSP projetado para processar áudio e vídeo a bordo, mas como os participantes do projeto não possuíam experiência em programação para os controladores, decidiu-se simplesmente transmitir o vídeo e processar o estado no estacionamento de um computador.

Para determinar os lugares de estacionamento gratuitos, a imagem foi binarizada, os contornos foram selecionados e os elementos em excesso foram descartados ao longo do raio do círculo. A última etapa foi agrupar com numeração.

Como resultado, o sistema de trabalho ficou assim: o
carro dirige até a barreira, envia uma solicitação ao servidor, que, por sua vez, retorna o número do espaço livre mais próximo e também informa ao sistema de estacionamento que é necessário elevar a barreira. Além disso, o carro, tendo o número do espaço de estacionamento, se move ao longo do caminho gravado. A apresentação do projeto pode ser vista aqui .

Todos os códigos-fonte dos programas são publicados no github .



Em geral, tudo saiu muito bem. Os alunos pediam o tempo todo para ficar mais tempo e trabalhar mais no projeto, o que indica o interesse dos alunos em robótica.

Todos os projetos de turnos foram divididos em engenharia, onde foram realizados trabalhos sobre a implementação de um projeto específico e pesquisa, onde dados sobre vários fenômenos foram coletados e analisados. Na minha opinião, na avaliação final vale a pena separar essas áreas, é difícil comparar a análise do estado do rio Mzymta e da tabela inteligente. Para pesquisa, um formato de apresentação e pôster é mais adequado e, para projetos, um formato de exibição com estandes é melhor.

Aqueles que desejam participar dessas mudanças devem ficar intrigados com um estudo minucioso preliminar da área em que desejam participar. Para fazer isso, há um grande número de cursos de vídeo-aulas e outros materiais que o acompanham. Aprenda a usar vários sistemas de gerenciamento de projetos (você pode começar com o que usamos ) e sistemas de controle de versão.

Muito obrigado a todos os participantes desta mudança, seus organizadores e professores. Espero estar aqui mais de uma vez!

Source: https://habr.com/ru/post/pt396233/


All Articles