Este repositório contém um código para controlar um anel de LEDs WS2812 (NeoPixel) com base em mensagens de emoções recebidas via ROS (Robot Operating System). O projeto utiliza a biblioteca Adafruit NeoPixel para manipulação dos LEDs e integra a comunicação ROS para receber e processar as mensagens de emoções. Ademais, o projeto foi criado para trabalhar em conjunto com o projeto Display Emotions a fim de desenvolver a representação das emoções do robô Apollo do laboratório LASER.
- Controle de LEDs WS2812: Configura e controla um anel de 16 LEDs WS2812.
- Integração com ROS: Recebe mensagens de emoções através do ROS e altera as cores dos LEDs conforme a emoção recebida.
- Mapeamento de Emoções para Cores: Define um mapeamento de 24 emoções para cores RGB específicas baseadas na roda das emoções de Plutchik.
- Adafruit NeoPixel Library - Documentação
- ROS (Robot Operating System) - Documentação
- rosserial_arduino - Documentação
Clone o repositório
https://github.com/GabrielSpdf/Apollo-Heart.git
roslaunch display_emotions display_emotions.launch
rosrun rosserial_python serial_node.py /dev/ttyACM0
Note
Substitua /dev/ttyACM0 pela porta USB onde seu dispositivo está conectado.
rostopic pub /utbots/display_emotions/emotion std_msgs/String "data: 'joy'"
A seguir está a demonstração do uso do projeto com as emoções TRUST e RAGE, respectivamente:
No momento em que a face do robô muda de cor, a cor do coração deveria acompanhar essa mudança.
A fim de melhorar a aparência e a ideia do coração em estado de repouso, seria ideal adicionar uma pulsação da cor do coração tal como o coração na realidade.
É imprescindível que, tal como a face do robô transiciona entre as cores de acordo com a roda das emoções de Plutchik, o coração deveria também transicionar entre as cores.
Note
Na pasta do projeto, existe um arquivo chamado for_future, o qual foi deixado como base para implementar a transição entre as cores.