工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

自律型ホームアシスタントロボット「O'nine」の構築 – ROS、Alexa、ロボットアーム完全ガイド

必要な部品と材料

部品数量備考
Arduino UNO1ロボットアーム制御用
Arduino Braccioロボットアーム15自由度+グリッパー
Odroid XU4(または同等SBC)1ROSナビゲーション・ビジョン処理用
SparkFun EasyDriver1垂直リフト用ステッピングモータードライバー
ステッピングモーター1アーム垂直移動用
L298 モータードライバー1メカナムホイール駆動用
DCモーター(エンコーダー付)4メカナム駆動用
GY-85 IMU(9軸)1姿勢推定用
メカナムホイールセット1全方向移動
Microsoft Kinect v11深度センサー(ROS対応)
V-Slotリニアレール、ガントリープレート、Vホイール等1式垂直リフト機構用(OpenBuilds互換)
台形ネジ(0.8m)、カップラー、ベアリングブラケット各1リフト駆動用
リミットスイッチ、スプリングワイヤー各1原点復帰・ケーブルガイド
5V BEC、DC-DCコンバーター、12V 5000mAhバッテリー1式電源系

ソフトウェア・サービス

プロジェクト概要

「O'nine(オーナイン)」は、家の中を自律移動し、アームで物を掴み、Alexaの音声指令でタスクを実行するパーソナルホームロボットです。ROSベースのナビゲーション、MoveItによるアーム運動計画、Alexa-PubNub-ROSの連携で「魚に餌をやって」「赤ちゃんを見て」等の動的タスクを実行します。

自律型ホームアシスタントロボット「O nine」の構築 – ROS、Alexa、ロボットアーム完全ガイド

システムアーキテクチャ

  1. Amazon Echo Dotが音声コマンドを受信
  2. カスタムAlexaスキルがIntentを検出
  3. AWS LambdaがPubNub MQTTブローカーにメッセージ送信
  4. O'nine(Odroid XU4)がMQTT購読し、ROSアクションを実行
  5. ナビゲーション→アーム制御→把持→戻る、を自律遂行
自律型ホームアシスタントロボット「O nine」の構築 – ROS、Alexa、ロボットアーム完全ガイド

ハードウェア構成(3サブシステム)

1. ロボットベース(メカナム駆動)

2. 垂直リフト(アーム親システム)

3. ロボットアームコントローラー(アーム子システム)

ソフトウェアセットアップ(Ubuntu 16.04/18.04 × 2台構成)

ROSインストール

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

必要パッケージ

# 開発機(MoveIt, RViz用)
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

# ロボット機(ベース)
git clone https://github.com/linorobot/lino_install
cd lino_install && ./install mecanum kinect

# O'nine専用パッケージ(両機)
git clone https://github.com/grassjelly/onine_install
cd onine_install && ./install

# Alexa連携
cd ~/onine_ws/src
git clone https://github.com/grassjelly/onine_alexa
cd .. && catkin_make

Alexaスキル作成手順

  1. Alexa Developer Consoleでスキル作成(カスタム対話モデル)
  2. Intent Schema(schema.json)とSample Utterances(utterances.txt)をGitHubからコピー
  3. AWS Lambda関数作成(Node.js 4.3+)、PubNubキーを環境変数に設定
  4. Lambda ARNをAlexaスキルのエンドポイントに登録

PubNub・Pushover設定

uDevルール(シリアルポート固定)

rosrun lino_udev lino_udev.py
# Teensy(ベース) → linobase
# Teensy(リフト) → oninearm
sudo cp 58-lino.rules /etc/udev/rules.d/
sudo service udev reload && sudo service udev restart

ファームウェア書き込み

# ベース
roscd linorobot/firmware/teensy && platformio run --target upload
# リフト
cd onine_firmware/lift && platformio run --target upload
# アーム
cd onine_firmware/arm && platformio run --target upload

デモ実行手順

1. マップ作成

# ロボット機
roslaunch linorobot bringup.launch
roslaunch linorobot slam.launch
# 開発機
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
roscd lino_visualize/rviz && rviz -d slam.rviz
# 手動走行でマッピング後
rosrun map_server map_saver -f ~/linorobot_ws/src/linorobot/maps/map

2. 目標座標取得

roslaunch linorobot navigate.launch
# RVizで "2D Nav Goal" をクリック→ドラッグ
rostopic echo move_base_simple/goal
# 座標を fishtask.py の目標ポーズに反映

3. 通常運用

# 開発機
roscore
roslaunch onine_moveit_config demo.launch
rosrun onine_alexa alexa_tasker.py
# ロボット機(SSH×3端末)
roslaunch linorobot bringup.launch
roslaunch linorobot navigate.launch
roslaunch onine_apps ar_tracker.launch
# RVizで "2D Pose Estimate" で自己位置合わせ後、Alexaに話しかけ

今後の展望

関連リポジトリ

製造プロセス

  1. Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
  2. JQR四足歩行自律ロボット:自律ナビゲーションと救助向けDIY脚式ロボット
  3. シンプルPiロボット - Raspberry Piで2WD自律ローバーを構築
  4. 自宅で作るDIY宿題自動筆記マシン:AxiDraw風ペンプロッターの自作ガイド
  5. ArduinoとHC-SR04で作るサーボ駆動障害物回避ロボット
  6. Arduino UNOで作る完全自律ライントラッカーロボット ─ 入門に最適な自作キット
  7. Arduino Nanoで音声制御ロボットを自作
  8. Arduino Mega 2560搭載 総合トレーニングキット – センサー、モーター、カスタムPCB完備
  9. DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド
  10. 4輪ArduinoロボットをDabbleアプリでBluetooth制御しよう
  11. Arduino向けスマート屋内ナビゲーションロボットキット