Robô Assistente Doméstico Autônomo: Lista Completa de Peças e Guia de Configuração
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino UNO | 1 |
| Braço Robótico Arduino Braccio | 1 |
| Odroid XU4 | 1 |
| Driver de Motor de Passo EasyDriver | 1 |
| Motor de Passo | 1 |
| Driver de Motor L298 | 1 |
| Motor DC (genérico) | 4 |
| IMU GY-85 | 1 |
| Rodas Mecanum | 1 set |
| Hub USB 5V | 1 |
| Sensor Microsoft Kinect | 1 |
| Trilho Linear V-Slot (OpenBuilds) | 2 |
| Placas Gantry V-Slot (OpenBuilds) | 1 |
| Kit Roda V Sólida (OpenBuilds) | 4 |
| Fuso Trapezoidal Acme 0,8 m | 1 |
| Acoplador Eixo 6mm a 8mm | 1 |
| Suporte Rolamento 8mm | 1 |
| Fio de Mola 1,2 m | 1 |
| Fim de Curso (Limit Switch) | 1 |
| BEC 5V | 1 |
| Conversor DC-DC Variável | 2 |
| Bateria Recarregável 12V 5000 mAh | 1 |
Aplicativos e Serviços Online
- Amazon Alexa Skills Kit
- AWS Lambda
- ROS (Robot Operating System)
- PubNub Publish/Subscribe API
Sobre o Projeto
1. Introdução


Conheça o O'nine! Um companheiro robótico doméstico pessoal que se move, pega objetos e cuida da casa. Graças à Alexa, o O'nine ouve você e executa tarefas programadas, como alimentar seus peixes.
Este projeto estende as capacidades da Alexa fornecendo uma plataforma robótica escalável e aberta para tarefas dinâmicas em casa inteligente. Soluções atuais exigem rigs personalizados para funções específicas. O O'nine visa preencher essa lacuna, minimizando hardware e usando robótica como alternativa. A ideia é criar uma plataforma de prova de tecnologia para testar a viabilidade de robôs como componente de automação residencial.
Vídeo do O'nine alimentando peixes (Time-Lapse e versão completa).
Quer verificar o bebê ou quem está na porta? O'nine tem câmera embutida para tirar fotos.
Este tutorial ensina como construir o robô e criar uma Alexa Skill para comandar tarefas autônomas.
2. Arquitetura de Alto Nível

Resumo da integração O'nine-Alexa:
- Amazon Echo Dot escuta comando de voz.
- Custom Alexa Skill detecta Intenção.
- AWS Lambda recebe requisição e publica no broker MQTT PubNub.
- O'nine recebe dados assinando o broker MQTT.
- O'nine executa tarefa requerida autonomamente.
3. Hardware
3.1 Base do Robô

O circuito traduz comandos de velocidade da ROS Navigation Stack em movimentos dos motores. Firmware inclui controlador PID para manter velocidade usando feedback dos encoders.

Chassi é uma lata de papel A4 reciclada. Pode usar caixa plástica velha.
Veja meu projeto Linorobot para tutorial completo de robôs DIY compatíveis com ROS.
3.2 Circuito de Elevação Vertical (Braço Pai)

Controla elevação vertical do braço, traduzindo altura requerida pelo MoveIt em passos do motor de passo. Sistema open-loop calcula altura atual correlacionando passos em milímetros. O microcontrolador também repassa dados do MoveIt para o braço robótico montado na plataforma móvel.

Cabo espiral abriga fios Tx/Rx para comunicação serial entre circuito de elevação e controlador do braço, e alimentação +12V DC para o braço.
3.3 Controlador do Braço Robótico (Braço Filho)

Comunica-se com o braço pai via serial. Recebe array de ângulos requeridos para cada junta e atua nos servomotores.

3.4 Integração de Todos os Circuitos

Diagrama mostra como conectar todos os circuitos e alimentar cada um.
4. Software
Requer duas máquinas Linux (Ubuntu 14.04 ou 16.04): uma para desenvolvimento (MoveIt, Rviz) e outra (ARM board) para navegação do robô e drivers de hardware/sensores.
Placas ROS suportadas: aqui (preferencialmente 2GB RAM).
4.1 Instalação ROS
git clone https://github.com/linorobot/rosme
cd rosme
./install
Instalador detecta OS e arquitetura automaticamente.
4.2 Instalação de Pacotes ROS
4.2.1 Máquina de desenvolvimento:
cd ~/catkin_ws/src
git clone https://github.com/linorobot/lino_pid
git clone https://github.com/linorobot/lino_msgs
git clone https://github.com/linorobot/lino_visualize
cd .. && catkin_make
4.2.2 Computador do robô (base):
git clone https://github.com/linorobot/lino_install
cd lino_install
./install mecanum kinect
Instala firmware da base, software de navegação, drivers de hardware/sensores.
4.2.3 Pacote O'nine (em ambas máquinas):
cd
git clone https://github.com/grassjelly/onine_install
cd onine_install
./install
Instala firmware do braço, solucionador de cinemática, tarefas autônomas do O'nine.
4.2.4 Alexa Tasker:
cd ~/onine_ws/src
git clone https://github.com/grassjelly/onine_alexa
cd ..
catkin_make
Baixa cliente MQTT que liga O'nine e Alexa. Contém app NodeJS para zip e upload no AWS Lambda.
5. Configuração do Software
5.1 Configurando Alexa Skill
Passos detalhados: criar conta desenvolvedor Alexa, criar Skill, modelo de interação personalizado, schema JSON e utterances do GitHub, configurar ARN do Lambda, testar.
5.2 Configurando Lambda Function
Criar conta AWS Lambda, criar função NodeJS 4.3, role lambda_basic_execution, adicionar trigger Alexa Skills Kit, inserir Skill ID, fazer upload do zip gerado com npm install && ./zipme no diretório lambda/app.
5.3 Criando Conta PubNub
Criar conta, novo App, registrar chaves publish/subscribe, inserir no código.
5.4 Notificações Pushover
O'nine usa Pushover para enviar fotos ao celular. Criar conta, app, registrar user key e API token, inserir no script 'snaptask'.
5.5 Instalando Firmwares
5.5.1 Regras uDev: Executar rosrun lino_udev lino_udev.py, plugar Teensy da base → nome "linobase", Teensy da elevação → "oninearm". Salvar (CTRL+C), copiar para /etc/udev/rules.d/58-lino.rules, reiniciar udev, confirmar com ls /dev/linobase e ls /dev/oninearm.
5.5.2 Firmware base do robô: Configurar especificações (diâmetro roda, PPR encoder, etc.), plugar Teensy, roscd linorobot/firmware/teensy && platformio run --target upload.
5.5.3 Firmware elevação vertical: cd ... && platformio run --target upload.
5.5.4 Firmware controlador do braço: Plugar Arduino Uno, platformio run --target upload. Desplugue após upload (dados passam pelo Teensy da elevação).
5.6 Editando Códigos Linorobot
Modificar bringup.launch para adicionar nó serial para elevação e URDF do O'nine. Ajustar frame de referência de base_link para base_footprint em vários arquivos. Recompilar: cd ~/linorobot_ws && catkin_make.
5.7 Configurando Detector de Objetos
O'nine usa AR tags para distinguir objetos em tarefas pick-and-place. Imprima a tag (2cm x 2cm) e cole no objeto. Percepção via ar_track_alvar. Alternativas: find_object_2d, tabletop_object_detector.
6. Rodando a Demonstração
Configure rede ROS antes de iniciar.
6.1 Criando o Mapa
No computador do robô: roslaunch linorobot bringup.launch e roslaunch linorobot slam.launch.
No computador de desenvolvimento: rosrun teleop_twist_keyboard teleop_twist_keyboard.py e roscd lino_visualize/rviz && rviz -d slam.rviz.
Dirija o robô pela área a mapear. Salve mapa: rosrun map_server map_saver -f ~/linorobot_ws/src/linorobot/maps/map. Altere navigate.launch para carregar map.yaml.
6.2 Obtendo Coordenadas de Objetivo
SSH no robô, rode bringup.launch e navigate.launch. No PC dev: rviz -d navigate.rviz e rostopic echo move_base_simple/goal. No Rviz, clique no ponto ~1m do local da tarefa e arraste para orientação. Copie coordenadas e edite onine/onine_apps/scripts/fishtask.py.
6.3 Rodando O'nine
- PC dev:
roscore - 3 terminais SSH no robô:
roslaunch linorobot bringup.launch,roslaunch linorobot navigate.launch,roslaunch onine_apps ar_tracker.launch - PC dev:
roslaunch onine_moveit_config demo.launch(MoveIt + Rviz) - PC dev:
rosrun onine_alexa alexa_tasker.py(cliente PubNub) - No Rviz: clique "2D Pose Estimate", clique local aproximado do robô e arraste para heading atual.
- Pronto! Comande a Alexa para pedir tarefas ao O'nine.
7. Trabalhos Futuros
- Modelo de simulação Gazebo para testar sem hardware.
- Mais poder computacional: migrar de Odroid XU4 para Rock64 (4GB RAM) para rodar mais apps concurrentemente.
Código e Repositórios
- Software O'nine: Navegação autônoma, solucionador cinemática, scripts pick-and-place. GitHub
- Integração Alexa-Robô: Lambda App (NodeJS), Robot Tasker (cliente PubNub). GitHub
- Base do Robô (Linorobot): Suite de robôs ROS open-source de baixo custo. GitHub
Esquemáticos




Processo de manufatura
- Construa um Robô Raspberry Pi Controlado por Bluetooth com Feedback de Áudio
- JQR Quadrúpede Autônomo: Robô de Pernas DIY para Navegação e Resgate Autônomos
- Simple Pi Robot – Construa Rover Autônomo 2-WD com Raspberry Pi
- Construa Sua Própria Máquina de Escrever Deveres de Casa (Plotter de Caneta) em Casa
- Robô Desviador de Obstáculos com Servo: Construa com Arduino e HC-SR04
- Criar Robô Seguidor de Linha Autônomo com Arduino UNO
- Construa um Robô Controlado por Voz com Arduino Nano
- Kit de Treinamento Arduino Completo com Mega 2560, Sensores, Motores e PCB Personalizada
- Braço Robótico Arduino Controlado por Gestos Manuais – Construção Passo a Passo
- Kit de Robô de Navegação Interna Inteligente para Projetos Arduino