Índice:
- Etapa 1: Conhecimento básico
- Etapa 2: Adquirindo os materiais necessários
- Etapa 3: como funciona
- Etapa 4: Configurando o MQTT Broker
- Etapa 5: Instalando o Kinect SDK V1.8
- Etapa 6: instalando o Python V2.7
- Etapa 7: codificação
Vídeo: Robô Nao que imita movimentos usando Kinect: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Neste instrutível, explicarei como deixamos um robô Nao imitar nossos movimentos usando um sensor Kinect. O objetivo real do projeto é uma finalidade educacional: um professor tem a capacidade de gravar certos conjuntos de movimentos (por exemplo, uma dança) e pode usar essas gravações para permitir que as crianças em sala de aula imitem o robô. Ao passar por todo esse passo a passo instrutível, você deve ser capaz de recriar totalmente este projeto.
Este é um projeto relacionado à escola (NMCT @ Howest, Kortrijk).
Etapa 1: Conhecimento básico
Para recriar este projeto, você deve possuir alguns conhecimentos básicos:
- Conhecimento básico de python
- Conhecimento básico de C # (WPF)
- Conhecimento básico de trigonometria
- Conhecimento sobre como configurar MQTT em um framboesa pi
Etapa 2: Adquirindo os materiais necessários
Materiais necessários para este projeto:
- Raspberry Pi
- Sensor Kinect v1.8 (Xbox 360)
- Robô Nao ou robô virutal (Choregraph)
Etapa 3: como funciona
Um sensor kinect é conectado a um computador que executa o aplicativo WPF. O aplicativo WPF envia dados para o aplicativo Python (robô) usando MQTT. Os arquivos locais são salvos se o usuário assim o desejar.
Explicação detalhada:
Antes de iniciarmos a gravação, o usuário deve inserir o endereço IP do broker MQTT. Além disso, também precisamos do tópico sobre o qual queremos publicar os dados. Depois de clicar em iniciar, o aplicativo verificará se foi possível estabelecer uma conexão com o corretor e nos dará um feedback. Verificar se um tópico existe não é possível, então você é totalmente responsável por ele. Quando ambas as entradas estiverem OK, o aplicativo começará a enviar dados (coordenadas x, y e z de cada junta) do esqueleto que está sendo rastreado para o tópico no broker MQTT.
Como o robô está conectado ao mesmo broker MQTT e inscrito no mesmo tópico (isso também deve ser inserido no aplicativo Python), o aplicativo Python agora receberá os dados do aplicativo WPF. Usando trigonometria e algoritmos auto-escritos, convertemos as coordenadas em ângulos e radianos, que usamos para girar os motores dentro do robô em tempo real.
Quando o usuário termina a gravação, ele pressiona o botão parar. Agora o usuário recebe um pop-up perguntando se deseja salvar a gravação. Quando o usuário clica em cancelar, tudo é reiniciado (os dados são perdidos) e uma nova gravação pode ser iniciada. Se o usuário deseja salvar a gravação, deve inserir um título e clicar em 'salvar'. Ao clicar em 'salvar', todos os dados adquiridos são gravados em um arquivo local usando a entrada do título como nome do arquivo. O arquivo também é adicionado à visualização em lista no lado direito da tela. Dessa forma, após clicar duas vezes na nova entrada no listview, o arquivo é lido e enviado ao broker MQTT. Conseqüentemente, o robô executará a gravação.
Etapa 4: Configurando o MQTT Broker
Para a comunicação entre o kinect (projeto WPF) e o robô (projeto Python) usamos o MQTT. O MQTT consiste em um corretor (um computador Linux no qual o software mqtt (por exemplo, Mosquitto)) está sendo executado e um tópico no qual os clientes podem se inscrever (eles recebem uma mensagem do tópico) e publicar (eles postam uma mensagem sobre o tópico).
Para configurar o broker MQTT, basta fazer o download desta imagem jessie inteira. Esta é uma instalação limpa para o Raspberry Pi com um corretor MQTT nele. O assunto é "/ Sandro".
Etapa 5: Instalando o Kinect SDK V1.8
Para que o kinect funcione no seu computador, você deve instalar o SDK do Microsoft Kinect.
Você pode baixá-lo aqui:
www.microsoft.com/en-us/download/details.a…
Etapa 6: instalando o Python V2.7
O robô funciona com o framework NaoQi, este framework está disponível apenas para python 2.7 (NÃO 3.x), então verifique qual versão do python você instalou.
Você pode baixar o python 2.7 aqui:
www.python.org/downloads/release/python-27…
Etapa 7: codificação
Github:
Notas:
- Codificação com o kinect: primeiro você procura o kinect conectado. Depois de salvar isso dentro de uma propriedade, habilitamos o fluxo de cor e esqueleto no kinect. Colorstream é o vídeo ao vivo, enquanto skeletonstream significa que o esqueleto da pessoa na frente da câmera será exibido. O fluxo de cores não é realmente necessário para fazer este projeto funcionar, nós apenas o habilitamos porque o mapeamento de bitmap do fluxo de esqueleto para o fluxo de cores parece ótimo!
- Na realidade, é o esqueleto que faz o trabalho. Ativar o esqueleto significa que o esqueleto da pessoa está sendo rastreado. Deste esqueleto você recebe todos os tipos de informações, por exemplo. orientações ósseas, informações sobre as articulações, … A chave do nosso projeto eram as informações sobre as articulações. Usando as coordenadas x-y e z de cada uma das juntas do esqueleto rastreado, sabíamos que poderíamos fazer o robô se mover. Portanto, a cada 0,8 segundos (usando um cronômetro), publicamos as coordenadas x, y e z de cada uma das juntas para o corretor mqtt.
- Como o projeto python tem uma subscrição no corretor mqtt, agora podemos acessar os dados dentro deste projeto. Dentro de cada junta do robô há dois motores. Esses motores não podem ser dirigidos apenas usando as coordenadas x, y e z diretamente. Então, usando trigonometria e algum bom senso, convertemos as coordenadas x, y e z das articulações em ângulos subestáveis para robôs.
Então, basicamente a cada 0,8 segundos, o projeto WPF publica as coordenadas x, y e z de cada uma das juntas. Consequentemente, dentro do projeto python esses coordiantes são convertidos em ângulos, que são então enviados para os motores correspondentes do robô.
Recomendado:
DIY -- Como fazer um robô aranha que pode ser controlado usando um smartphone usando o Arduino Uno: 6 etapas
DIY || Como fazer um robô aranha que pode ser controlado com smartphone usando o Arduino Uno: Ao fazer um robô aranha, pode-se aprender muitas coisas sobre robótica. Como fazer robôs é divertido e também desafiador. Neste vídeo vamos mostrar a vocês como fazer um robô aranha, que podemos operar usando nosso smartphone (Androi
Braço robótico impresso em 3D Moslty que imita o controlador de fantoches: 11 etapas (com imagens)
Braço robótico impresso em 3D Moslty que imita o controlador de fantoches: Eu sou um estudante de engenharia mecânica da Índia e este é o meu projeto de graduação. Este projeto está focado no desenvolvimento de um braço robótico de baixo custo que é principalmente impresso em 3D e tem 5 DOFs com 2 dedos garra. O braço robótico é controlado com
Chapéu, não chapéu - um chapéu para pessoas que realmente não usam chapéus, mas gostariam de ter um chapéu Experiência: 8 etapas
Chapéu, não chapéu - um chapéu para pessoas que realmente não usam chapéus, mas gostariam de ter um chapéu Experiência: Sempre desejei ser uma pessoa que gostava de chapéus, mas nunca encontrei um chapéu que funcionasse para mim. Este " Chapéu, não chapéu " ou fascinator, como é chamado, é uma solução crocante para o meu problema de chapéu em que eu poderia participar do Kentucky Derby, vacu
Movimentos de cópia do robô Nao por meio da câmera Xbox Kinect: 4 etapas
Robô Nao copiando movimentos por meio da câmera Kinect do Xbox: como um projeto em nossa aula de Ciência da Computação no colégio (Porter Gaud), eu (Legare Walpole) e outro aluno (Martin Lautenschlager) decidimos pegar um robô humanóide Nao para imitar nossos movimentos. uma câmera cinética do Xbox. Durante meses, nenhum profissional
RC Rover controlado por gestos, movimentos e Joyestick: 8 etapas
RC Rover Controlado por Gestos Movimentos e Joyestick: RC Rover é um projeto de Robótica que visa melhorar o controle do rover através do uso de radiofrequência e da interação do movimento do rover com o movimento da mão usando a unidade inercial (MPU6050), mas também o controle desta Rover com um Joyestik. Tudo