Índice:
- Etapa 1: construir seu Hawking Bot
- Passo 2:
- Etapa 3: faça seus próprios sons Hawking
- Etapa 4: dicas e truques
- Etapa 5: sugestões de melhorias, atualizações e ideias para o futuro
Vídeo: Hawking Bot: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
O Hawking Bot é um projeto Lego MINDSTORMS EV3 inspirado no falecido Stephen Hawking. Stephen Hawking tinha um bom senso de humor, então tenho certeza de que ele teria aprovado este projeto. O Hawking Bot pode navegar ao redor de obstáculos e responder a movimentos e, em seguida, profere uma das famosas frases de efeito de Stephen Hawking e se move na direção do objeto em movimento. Ele usa o sensor ultrassônico que faz a varredura do ambiente com um movimento de varredura da cabeça.
Etapa 1: construir seu Hawking Bot
Todas as peças necessárias estão no conjunto básico EV3 Lego MINDSTORMS, com exceção do sensor ultrassônico (seus olhos), que deve ser adquirido separadamente.
Passo 2:
O código para o Hawking Bot é todo escrito em python 3. Um arquivo de imagem inicializável para executar python em um ambiente Debian Linux no Hawking Bot pode ser baixado do site ev3dev. O código para executar o Hawking Bot pode ser baixado aqui. Todo o código está contido em um arquivo de classe para que você possa usar os métodos existentes ou até mesmo modificá-los, se desejar.
Assista a este vídeo com instruções detalhadas sobre como configurar o Debian Linux e Python3 em seu robô. Embora seja especificamente para uma configuração de Mac, ainda será útil para obter uma compreensão geral do processo. Esse trabalho está em andamento. O sensor ultrassônico às vezes não é confiável e isso requer um código mais inteligente para detectar 'outliers'. Eu gostaria de ver contribuições de outras pessoas para tornar o código mais eficiente e menos sujeito a erros.
Etapa 3: faça seus próprios sons Hawking
OK, agora você quer algumas citações famosas ou apenas algumas declarações simples do Prof Hawking. Existem toneladas de vídeos onde você pode ouvi-lo falar e, em seguida, há suas palestras que são um tesouro de sabedoria e frases de efeito úteis.
Você precisa de um programa como o Audacity, que funciona em muitas plataformas para selecionar e cortar suas frases de efeito favoritas.
Salve sua frase de efeito como um arquivo wav mono como SH6, SH7,… SH11, SH12 e assim por diante.
Abaixo você encontra alguns exemplos que criei de acordo com o método acima.
Etapa 4: dicas e truques
O Hawking Bot vem com um módulo de autoverificação para garantir que todos os cabos estejam conectados e que a bateria seja suficiente. Conexões soltas, ausentes ou mesmo danificadas podem ocorrer facilmente. Portanto, este módulo é muito útil. O método 'checkConnection' verifica apenas se há uma conexão elétrica. Você ainda deve garantir que os motores estejam conectados à porta correta.
O movimento da cabeça deslizante é essencial para o Hawking Bot examinar seu terreno e encontrar o caminho desobstruído mais longo à frente. Os cabos precisam de espaço suficiente para acomodar os movimentos da cabeça; portanto, é aconselhável amarrá-los como mostrado na fotografia.
O Hawking Bot funciona melhor com obstáculos grandes e em uma superfície plana e lisa. Os tapetes são mais desafiadores para os motores e pode ser necessário ajustar as configurações para ajustar o comportamento para diferentes superfícies.
O Hawking Bot não é de forma alguma perfeito e este é um protótipo que se beneficiará de novas melhorias. O código está totalmente comentado e deve ser fácil para você descobrir o que os vários métodos fazem. Vários bits foram comentados com #, se você remover o # antes de 'imprimir', o programa em execução mostrará as várias leituras e cálculos do sensor.
Etapa 5: sugestões de melhorias, atualizações e ideias para o futuro
Agora que você construiu seu robô com sucesso, você deseja levá-lo para o próximo nível. Você pode melhorar o método MotionDetector. Agora, com frequência, a leitura é errada. Você pode ver as leituras reais descomentando disA e disB (na parte inferior do bloco do método). A leitura errada geralmente se destaca de outras leituras, então você pode escrever um algoritmo para impedir o robô de responder a uma leitura errada.
Talvez você queira assumir o controle total do robô e apenas controlar remotamente suas várias funções. Você poderia fazer isso via Bluetooth e escrever um programa Android para se comunicar com o robô. No entanto, uma abordagem muito mais fácil seria encontrar um lugar para o sensor infravermelho assumir o controle do Hawking Bot.
Que tal fazer o robô aprender sobre seu ambiente? Isso poderia ser realizado com uma abordagem de k-vizinho mais próximo ou possivelmente uma rede neural. O bloco EV3 tem poder de processamento limitado, embora suporte Numpy. Uma alternativa seria um BrickPi que permitiria a você executar uma biblioteca de IA como o Tensorflow, mas a intenção deste guia era usar o kit Lego EV3 MINDSTORMS sem a necessidade de comprar muitas peças adicionais caras além do sensor ultrassônico.
No entanto, a abordagem de aprendizagem de reinfocamento de k-vizinhos mais próximos deve funcionar no bloco EV3 e este é o algoritmo sugerido. Deixo para você encontrar uma implementação funcional ou identificar quaisquer problemas:
Aprendizagem por reforço para Hawking Bot
A ideia é que as 7 leituras USS sejam codificadas em um vetor e os últimos 10 swoops da cabeça sejam usados para criar um vetor sequencial de 70 entradas. As primeiras leituras estão incompletas, portanto, serão preenchidas com zeros. Cada entrada contém o valor da distância do USS. Este é o vetor de estado s. O sistema permite 1000 entradas. Depois disso, a entrada mais antiga será substituída e as entradas de idade para cada par s-r serão reduzidas em um.
O bot não deve ficar a menos de 10 cm de um objeto. Isso cria uma recompensa negativa. Pela simplicidade; as boas ações são recompensadas com 1 e as ruins com 0. Efetivamente, isso cria uma probabilidade de recompensa para cada combinação de ação-estado. Usaremos recompensas com desconto e política gananciosa de epsilon.
Isso cria 3 grandes tabelas de estados de recompensa (s-r) para todas as três ações à direita, em frente e à esquerda - pode ser possível ter velocidades rápidas e lentas para cada ação. Teríamos então 6 ações e 6 tabelas s-r de pesquisa.
Cada vez que um novo estado é registrado, ele é comparado às tabelas, a distância euclidiana (ou medida semelhante) é usada para encontrar o vizinho mais próximo. Isso não será classificado, mas um limite t é definido para aceitar o estado como muito semelhante, sobrescrever o estado existente e atualizar para a recompensa mais alta e realizar a ação associada a. Se não for semelhante (d> t), insira um novo par s-r para cada ação a. Se houver empate entre as ações de para s-r (todas têm a mesma recompensa), escolha aleatoriamente, mas isso não é comum e pode ser omitido.
t terá que ser determinado experimentalmente, se t for muito pequeno estados semelhantes serão ignorados e cada estado será visto como único. Um t muito grande significa que mesmo estados bastante diferentes são agrupados, o que pode afetar a capacidade de escolher boas ações. Pode ser possível usar métodos estatísticos para determinar o melhor t.
A tabela é semelhante a esta: Entrada Não - Vetor de estado - recompensa pela ação 1 - recompensa pela ação 2 - recompensa pela ação 3.
Acho que a implementação real será complicada, mas deve ser feita com esforço. Boa sorte!
Recomendado:
Bot do Telegram com NodeMCU (ESP8266): 3 etapas
Bot do Telegram com NodeMCU (ESP8266): Precisa de um bot para dar notificações de seu sistema? ou fazer algo apenas enviando uma mensagem? O Telegram Bot é a sua solução! Neste tutorial, usarei o Telegram Web e o BotFather para fazer o meu bot
T2 - o bot de chá -Tea Brewing Made Easy: 4 etapas
T2 - o bot de chá -Tea Brewing Made Easy: O bot de chá foi feito para ajudar o usuário a preparar seu chá no tempo de preparo recomendado. Um dos objetivos do design era mantê-lo simples. Um ESP8266 é programado com um servidor web para controlar um servo motor. O ESP8266 Web Server é responsivo a dispositivos móveis e
Construa a interface do computador de Stephen Hawking em apenas Rs.1000 (15 $) usando o Arduino: 5 etapas
Construa a interface do computador de Stephen Hawking em apenas Rs.1000 (15 $) usando o Arduino: tudo começou com a pergunta " Como o Stephen Hawking fala? &Quot;, depois de ler sobre seu sistema de computador, ocorreu-me que deveria fornecer um mais barato versão do sistema sem comprometer muito dos recursos. Este aparelho
Bot de desenho de linha BT criado para o lixo - Meu bot: 13 etapas (com imagens)
Lixo construído BT Line Drawing Bot - Meu Bot: Hai amigos, depois de um longo intervalo de cerca de 6 meses, aqui estou eu com um novo projeto. Até a conclusão de Cute Drawing Buddy V1, SCARA Robot - Arduino eu planejo um outro robô de desenho, o objetivo principal é cobrir um grande espaço para desenho. Braços robóticos tão fixos c
Hawking 7dBi Wifi Antenna Free Boost: 4 etapas
Hawking 7dBi Wifi Antenna Free Boost: descobri que a Hawking 7dBi Wifi Antenna tem uma falha. Ao remover a falha, obtive um aumento de sinal GRATUITO. O número de peça da antena é HAI7SIP. Antes dessa modificação, eu tinha uma barra de sinal que às vezes caía e morria completamente. Depois de