-
Notifications
You must be signed in to change notification settings - Fork 0
pt_BR:Home
Este projeto usa gestos para controlar uma garra robótica. Os gestos podem ser capturados por uma câmera web. Outras formas de obter imagens, como um telefone android, podem eventualmente ser utilizadas também. Os gestos capturados são classificados em comandos básicos, e então transmitidos para uma placa de prototipagem Arduino via serial USB, e finalmente traduzidos em ações. O reconhecimento de gestos é treinado por uma rede neural de aprendizagem profunda (deep learning). O modelo resultante é utilizado para prever o significado de um gesto.
Para executar a totalidade deste projeto, os usuários vão, sem sombra de dúvidas, precisar de alguns materiais (ou peças equivalentes):
- placa de prototipagem Arduino (por exemplo Uno, Leonardo, etc)
- cabo USB para a placa Arduino.
- placa de prototipagem (protoboard).
- alguns jumpers M-M. (pelo menos uns 16)
- Garra robótica completa com 4 servo motores (movimentos: esquerda, direita, frente, trás, acima, abaixo, pegar, largar).
- Fonte de alimentação externa com saída de 5 volts e 2,5 amperes.
- Computador de mesa (com pelo menos um i3 de 5ª geração ou equivalente)
- Câmera web externa (que seja decente)
| material | imagem |
|---|---|
| Arduino Uno | ![]() |
| cabo USB Arduino | ![]() |
| placa de prototipagem | ![]() |
| jumpers | ![]() |
| garra robótica | ![]() |
| fonte externa | ![]() |
| computador | ![]() |
| câmera web | ![]() |
Os usuários são incentivados a instalar o anaconda. A versão com python 3.x é a recomendada, pois o código python utilizado é para a versão 3, e com certeza existem diferenças para o código do python 2.x. Eu acredito que o código pode ser adaptado para python 2.x, mas isto com certeza exige um trabalho considerável.
Com anaconda instalado, pode ser criado um ambiente (environment) (se você é iniciante em python/anaconda, pode aprender sobre eles aqui ). O ambiente (environment) pode ser criado utilizando o arquivo duo_ml.yml, que pode ser obtido na raiz deste repositório.
Mais uma vez, se você é iniciante em anaconda pode aprender como criar um ambiente (environment) a partir de um arquivo aqui. Note que ao criar e depois utilizar o ambiente vai instalar todos os pacotes de código nas versões corretas (ou seja, as utilizadas originalmente). Portanto, qualquer tentativa de instalar diretamente pacotes de código pode quebrar o código do projeto. Isto deve ser suficiente para rodar o código python do projeto.
Os usuários devem instalar também um Arduino IDE.
Finalmente, os usuários devem clonar este repositório (alguém lendo este documento, deve pelo menos conhecer algo sobre github. Existem instruções no site github sobre como clonar um projeto).
Existe um vídeo bastante rudimentar do projeto em ação no youtube. Clique na imagem abaixo para assistir.
São utilizados três cadernos jupyter (jupyter notebook), cada um executando uma das fases do projeto, e que podem ser obtidos no diretório raiz deste repositório:
- 01_captureAndSaveGestures_roboticGripper.ipynb
- 02_trainModel_roboticGripper.ipynb
- 03_operation_roboticGripper.ipynb
Afinal, o projeto requer pelo menos três fases distintas:
- Captura dos gestos (rotulados) para uso futuro em aprendizagem supervisionada.
- Treinamento de um modelo utilizando rede neural de aprendizagem profunda (deep learning) construída com Keras/TensorFlow. Atenção, no site referenciado existem instruções para instalação do Keras, mas a princípio elas devem ser desconsideradas: Ao construir e utilizar o ambiente duo_ml a partir do arquivo Duo_ml.yml, todos os pacotes necessários ao projeto, inclusive Keras/Tensorflow, vão ser instalados na versão correta. O site oficial do Keras fica aqui
- Utilize o modelo treinado para prever comandos e operar a garra robótica.
Bom divertimento!
©Duodécimo, December, 2017.








