Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)

Компоненты и материалы

Arduino UNO 1
Роботизированная рука Arduino Braccio 1
Odroid XU4 (одинкплатный компьютер) 1
EasyDriver (драйвер шагового двигателя) 1
Шаговый двигатель 1
L298 Motor Driver 1
DC-моторы 4
IMU GY-85 1
Меканум-колёса (комплект) 1
USB-хаб 5V 1
Microsoft Kinect Sensor 1
V-Slot линейные рельсы (OpenBuilds) 2
V-Slot гантри-пластины 1
Комплект колёс V-Slot 4
Трапецеидальный винт 0.8 м 1
Муфта валов 6→8 мм 1
Подшипниковый узел 8 мм 1
Пружинистый провод 1.2 м 1
Конечный выключатель 1
BEC 5V 1
DC-DC преобразователь (регулируемый) 2
Аккумулятор 12V 5000 мАч 1

Приложения и сервисы

Amazon Alexa Skills Kit
AWS Lambda
ROS (Robot Operating System)
PubNub Publish/Subscribe API

О проекте

1. Введение

Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)

Познакомьтесь с **O'nine** — персональным домашним роботом-компаньоном. Он перемещается, подбирает объекты, следит за домом. Благодаря Alexa понимает голос и выполняет задачи (например, кормит рыб).

Проект расширяет возможности Alexa, предоставляя масштабируемую открытую робототехническую платформу для динамических задач в умном доме. Сейчас для каждой функции нужен отдельный девайс. O'nine делает решение мобильным: вместо микроконтроллеров в каждой комнате — один робот.

Видео: O'nine кормит рыб (таймлапс и полная версия). Встроенная камера позволяет проверить ребёнка или дверь.

Это руководство: сборка робота + создание Alexa Skill для автономных задач.

2. Высокоуровневая архитектура

Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
  1. Amazon Echo Dot слушает команду.
  2. Кастомный Alexa Skill определяет Intent.
  3. AWS Lambda получает запрос и публикует в PubNub MQTT брокер.
  4. O'nine подписан на брокер — получает данные.
  5. O'nine автономно выполняет задачу.

3. Аппаратная часть

3.1 База робота

Схема перевода команд скорости из ROS Navigation Stack в движение моторов. Прошивка включает PID-регулятор с обратной связью от энкодеров.

Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)

Шасси — переработанная жестяная банка от А4 бумаги. Можно использовать любой пластиковый контейнер.

Подробнее о DIY ROS-роботах: проект Linorobot.

3.2 Вертикальный лифт (родитель манипулятора)

Управляет подъёмом руки. Переводит целевую высоту от MoveIt в шаги шагового двигателя. Открытая система: текущая высота = количество шагов × расстояние на шаг. Микроконтроллер также ретранслирует команды от MoveIt к контроллеру руки.

Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)

Спиральный кабель: Tx/Rx для сериалки между лифтом и рукой + 12V питание руки.

3.3 Контроллер роботизированной руки (дочерний)

После сборки руки и установки шилда на Arduino Uno. Принимает по сериалке массив целевых углов суставов, управляет сервоприводами.

Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)

3.4 Интеграция всех схем

Финальная схема соединения всех цепей с распределением питания:

Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)

4. Программное обеспечение

Требуется две Linux-машины (Ubuntu 14.04/16.04): разработческая (MoveIt, Rviz) и робот (ARM board, навигация, драйверы).

ROS-совместимые платы (желательно 2 ГБ RAM).

4.1 Установка ROS

git clone https://github.com/linorobot/rosme
cd rosme
./install

Инсталлятор сам определит ОС и архитектуру.

4.2 Установка ROS-пакетов

4.2.1 На машине разработки:

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 Linorobot на компьютере робота (база):

git clone https://github.com/linorobot/lino_install
cd lino_install
./install mecanum kinect

Устанавливает прошивку базы, навигацию, драйверы сенсоров.

4.2.3 Пакет O'nine на обеих машинах:

cd
git clone https://github.com/grassjelly/onine_install
cd onine_install
./install

Прошивка руки, кинематический решатель, автономные задачи O'nine.

4.2.4 alexa_tasker:

cd ~/onine_ws/src
git clone https://github.com/grassjelly/onine_alexa
cd ..
catkin_make

MQTT-клиент (PubNub) + NodeJS-приложение для AWS Lambda (запаковывается в zip).

5. Настройка ПО

5.1 Создание Alexa Skill

  1. Регистрация в Alexa Developer Console → «Start a Skill».
  2. Skill Type: Custom Interaction Model. Name: имя навыка. Invocation Name: слово-активатор.
  3. Interaction Model: Intent Schema из schema.json, Sample Utterances из utterances.txt.
  4. Configuration: AWS Lambda ARN (получите на следующем шаге).
  5. Testing: введите фразу, проверьте Service Response.

5.2 Создание Lambda-функции

  1. AWS Lambda Console → Create Function.
  2. Runtime: NodeJS 4.3. Role: lambda_basic_execution.
  3. Trigger: Alexa Skills Kit → введите Skill ID.
  4. Code: вставьте PubNub ключи в ~/onine_ws/src/onine_alexa/lambda/app, соберите zip: npm install && ./zipme. Загрузите .zip в Lambda.

5.3 PubNub аккаунт

  1. Регистрация → Create New App → сохраните Publish/Subscribe Keys.
  2. Вставьте ключи в код (см. 5.2.4 и 5.4.3).

5.4 Pushover уведомления (фото на телефон)

  1. Регистрация в Pushover → запишите User Key.
  2. Create Application → API Token.
  3. Вставьте токен и ключ в скрипт snaptask O'nine.

5.5 Прошивка микроконтроллеров

5.5.1 uDev правила — статические имена портов для roslaunch.

rosrun lino_udev lino_udev.py

Подключите Teensy базы → имя «linobase». Teensy лифта → «oninearm». Сохраните (Ctrl+C), скопируйте в /etc/udev/rules.d/58-lino.rules, перезапустите udev, проверьте ls /dev/linobase и ls /dev/oninearm.

5.5.2 Прошивка базы: настройте параметры (диаметр колес, PPR энкодеров) → roscd linorobot/firmware/teensy && platformio run --target upload

5.5.3 Прошивка лифта: cd ... && platformio run --target upload

5.5.4 Прошивка контроллера руки (Arduino Uno): cd ... && platformio run --target upload. После загрузки отключите Uno — данные идут через Teensy лифта.

5.6 Правка кода Linorobot

В bringup.launch добавьте ноду rosserial для oninearm и robot_state_publisher с URDF O'nine.

Измените static_transform_publisher для виртуального фрейма laser (Kinect → 2D laser scan).

Замените pointcloud_to_laserscan ноду.

Замените base_link на base_footprint в: amcl.launch, slam.launch, global/local_costmap_params.yaml, lino_base_node.cpp (строки 90, 111).

Пересоберите: cd ~/linorobot_ws && catkin_make

5.7 Детектор объектов (AR-теги)

Для pick-and-place используются AR-теги (2×2 см). Распечатайте изображение ниже, наклейте на объект. Библиотека: ar_track_alvar. Альтернативы: find_object_2d, tabletop_object_detector.

Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)

6. Запуск демо

Настройте сеть (ROS network tutorial).

6.1 Создание карты

На роботе: терминал 1 — roslaunch linorobot bringup.launch, терминал 2 — roslaunch linorobot slam.launch.

На dev-машине: терминал 1 — rosrun teleop_twist_keyboard teleop_twist_keyboard.py, терминал 2 — roscd lino_visualize/rviz && rviz -d slam.rviz.

Управляйте клавиатурой, строя карту в Rviz.

Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)

Сохраните карту: rosrun map_server map_saver -f ~/linorobot_ws/src/linorobot/maps/map. Проверьте map.pgm и map.yaml. В navigate.launch замените 'house.yaml' на 'map.yaml'.

6.2 Координаты целей

Для навигации нужны координаты точек задач.

SSH на робот: roslaunch linorobot bringup.launch + roslaunch linorobot navigate.launch.

На dev-машине: Rviz с navigate.rviz, терминал: rostopic echo move_base_simple/goal.

В Rviz кликните точку ~1 м от цели, перетащите в сторону ориентации робота (1 клетка = 1 м²).

Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)

Скопируйте координаты, отредактируйте onine/onine_apps/scripts/fishtask.py (Point и Quaternion).

6.3 Запуск O'nine

  1. Dev-машина: roscore.
  2. 3 терминала → SSH на робот.
  3. Терминал 1: roslaunch linorobot bringup.launch (драйверы базы и руки).
  4. Терминал 2: roslaunch linorobot navigate.launch (навигация).
  5. Терминал 3: roslaunch onine_apps ar_tracker.launch (детектор объектов).
  6. Dev-машина: терминал 1 — roslaunch onine_moveit_config demo.launch (MoveIt + Rviz).
  7. Терминал 2: rosrun onine_alexa alexa_tasker.py (PubNub клиент, ждёт голосовые команды).
  8. В Rviz: «2D Pose Estimate» — кликните примерное положение робота и направление.
  9. Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
  10. Готово! Говорите с Alexa — O'nine выполняет задачи.

7. Планы на будущее

7.1 Gazebo симуляция

Модель для тестов без железа — чистый софт для Alexa Skill.

7.2 Мощнее вычислительная платформа

Был Jetson TK1 (хорош для CV), заменил на Odroid XU4 (5V, компактнее). Гляжу на Rock64 (4 ГБ RAM) для одновременного запуска большего числа приложений. Сейчас часть нагрузки на ноутбук по Ethernet.

Код

O'nine Software

Робототехнический код: автономная навигация, кинематический решатель, высокоуровневые скрипты pick-and-place.
https://github.com/grassjelly/onine

Alexa–Robot интеграция

Lambda App (NodeJS), Robot Tasker (PubNub-клиент, запускает скрипты по команде Alexa).
https://github.com/grassjelly/onine_alexa

Robot Base (Linorobot)

Open Source ROS-совместимые роботы — низкобюджетная платформа для студентов и исследователей.
https://github.com/linorobot/linorobot

Схемы

Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt) Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt) Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt) Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)

Производственный процесс

  1. Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
  2. JQR Четвероногий автономный робот: DIY шагающий робот для автономной навигации и спасения
  3. Simple Pi Robot — Сборка 2WD автономного ровера на Raspberry Pi
  4. Сборка домашней машины для написания домашних заданий (плоттер-писатель)
  5. Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
  6. Автономный линий-следующий робот на Arduino UNO
  7. Голосовой робот на Arduino Nano: Управление речью через Bluetooth
  8. Учебный стенд Arduino Mega 2560: сенсоры, моторы, дисплеи и собственная PCB
  9. DIY манипулятор, управляемый жестами руки: пошаговая сборка на Arduino
  10. Набор для создания робота с умной внутренней навигацией на базе Arduino