O que é robo alive lagarto
É um projeto de robótica inspirado na locomoção de lagartos, geralmente implementado com microcontroladores Arduino ou ESP32, motores RC servos e um framework de controle baseado em osciladores neurais centrais (CPGs). A ideia principal é fazer o robô andar de forma biomimética sem precisar de modelos dinâmicos complexos. Você conecta os servos, carrega o sketch e vê o bicho se mexendo.
Como configurar robo alive lagarto no seu setup
Eu comecei a brincar com isso há uns três anos, montando um protótipo com 8 patas usando servos MG996R. O esquema básico é: cada perna tem um CPG que gera um padrão sinusoidal, e você acopla os osciladores entre si para sincronizar as pernas vizinhas. No Arduino, a implementação típica usa timers ou uma função de atualização rodando em loop com delta-time. O problema é que a maioria dos tutoriais na internet pula a parte do mapeamento de fase, e aí o robô termina virando um carrinho que sacode como um barata apavorada. O que eu fiz foi ajustar manualmente os offsets de fase entre as pernas, usando uma tabela simples de 4 grupos de marcha (walk gait). Cada grupo tem um offset de pi/2 em relação ao anterior. A velocidade de locomoção vem da frequência base do oscilador, que você controla com um potenciômetro ou um signal PWM de entrada. Na prática, eu configurei um input analógico que varia a frequência de 0.5 Hz a 5 Hz, o que cobria desde um arrastar lento até um trote razoavelmente estável.
Uma coisa que ninguém menciona nos tutoriais é o problema do sagamento dos servos sob carga. Quando o robô apoia o peso no prato, os servos deixo perdendo passos ou vibrando, e o padrão CPG fica instável. A solução que funcionou pra mim foi adicionar um termistor perto do bloco de servos e fazer compensação de corrente no firmware — basicamente, ele detecta queda de tensão e aumenta o duty cycle nos servos das pernas de suporte. Com isso, a estabilidade melhorou bastante, principalmente em superfícies irregulares.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Vantagens e limitações reais
O CPG é elegante porque evita modelos de dinâmica inversa pesados. Para um robô rápido de baixo custo, isso é ótimo. Mas tem um ponto cego importante: o sistema não se adapta bem a terrenos muito irregulares sem sensores externos. Eu testei com um sensor de força em cada pata, mas o overhead de processamento no Arduino Mega era grande demais. Migrar pro ESP32 resolveu, mas aí tive que lidar com timing issues de float em double precisão que não existiam no AVR. Outro problema comum é a energia. Cada servo MG996R puxa cerca de 1A em stall, e num robô de 8 patas você precisa de uma fonte que suporte picos de 4A a 6V. Bateria de polímero de lítio de 2S com BMS adequado é o mínimo viável. Eu já queimei dois ESCs barato por subestimar o pico de corrente na partida. Recomendo usar um regulador de 6V com capacitor de bulk de pelo menos 1000µF próximo ao bloco de servos.
Se o seu objetivo é apenas aprender o conceito, um protótipo de 4 patas com servos mais leves (como o MG90S) e alimentação por USB funciona perfeitamente. Se quiser algo mais robusto, considere usar um controlador DSP ou um Raspberry Pi Pico com library de CPG otimizada para ponto fixo.
Dica prática para debug
Use um serial plotter. Gravar os valores dos osciladores no monitor serial a 115200 baud e plotar em tempo real mostra exatamente onde o acoplamento está falhando. Eu identifiquei assim um caso em que duas pernas do mesmo lado entravam em ressonância e geravam vibração excessiva. Ajustei o coeficiente de acoplamento de 0.3 pra 0.15 e o problema sumiu. Não existe um repositório único com tudo pronto. Os códigos disponíveis no GitHub variam muito em qualidade. Eu recomendo partir de uma implementação base simples, como a do projeto CPG Locomotion do usuário tetsutogawa, e ir adaptando. Não tente copiar e colar códigos complexos sem entender primeiro como os osciladores se conectam.