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

DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

必要な部品と材料

部品名数量
Arduino UNO1
JLCPCB カスタムPCB1
サーボモーター MG996R6
5Vバッテリーパック1
PCA9685 8チャネル I2C サーボドライバー1
HC-05 Bluetoothモジュール2
A4988 ステッピングモータードライバー1
NEMA-17 ステッピングモーター1
ブレッドボード(汎用)1
IMU (6自由度)1
Arduino Nano R31
フレックスセンサー5

必要な工具

プロジェクト概要

人間のジェスチャーで制御するDIYロボットアームを紹介します。

『パシフィック・リム』や『アバター』などのSF映画では、人間の動きがロボットで拡張される様子が描かれています。これを小規模で実現してみようという試みです。

このロボットアームは、プログラミング制御に加え、ハンドジェスチャーで直感的に操作できます。
DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド アイアンマンのスーツのように、各イテレーションを「Mark」と呼称します。このプロトタイプはMARK 1です。
DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

概要

このチュートリアルでは、ロボットグローブを用いたハンドジェスチャー制御の6軸ロボットを構築します。ピンチ(つまむ動作)や手首の回転など、自然な人間のジェスチャーを模倣することで、ロボットアームの開閉や左右回転を直感的に操作できます。
DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

MARK 1 の特徴:

パーツリスト

DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

ロボットアームは完全カスタマイズ可能。購入も3Dプリントも可能です。3Dプリントの場合、Thingiverseの「Wonder Tiger」氏設計の6軸アームがおすすめ(グリッパー、ベース/ターンテーブル、コアアームの3パート)。プリント時間は最大40時間ですが、購入コストを大幅削減できます。

ロボットグローブ: Thingiverseの「Roman 13」氏設計STLファイルを使用。
DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド ※ 大きな手の場合は105%スケールでプリント推奨。作業用手袋でも代用可能です。

動作原理

DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

全体として、ロボットグローブからBluetoothで信号を送信し、サーボドライバーが受信して特定のサーボモーターを駆動します。複数のサーボとセンサーを追加することで、各モーターを個別制御可能です。
DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

ロボットアームを「複数のサーボモーターが協調して機能を実行するシステム」と捉え、ロボットグローブで制御します。グローブ側のArduinoがセンサーでジェスチャーを検知し、対応するサーボ角度値をBluetoothでアーム側Arduinoへ送信します。

使用センサー:

これらのセンサーでジェスチャー変化を検知し、特定の値をマッピングしてBluetooth経由でロボットアームのサーボモーターを制御します。十分なジェスチャーを割り当てれば、ロボットアームが「生きる」のです。
DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

ロボットアーム マッピングテーブル

グローブからアームへ送信される値のマッピング表(元記事参照)。各キーで機能を特徴付け(P=小指、L=右等)。大文字「F」はサーボモーターの逆回転方向を表します。

パーツ組み立て

DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

ロボットアーム組み立て

市販ロボットアームは高価なため、予算内で3Dプリントを選択。Thingiverseの「Wonder Tiger」設計をベースに、カスタマイズ(LED追加、カメラスタンドクランプ等)も容易です。プリントには最低40時間かかりますが、代替設計も多数存在します。

サーボモーターとドライバー

DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

理論上、複数のモーターをArduinoで協調制御可能。本プロジェクトではPCA9685サーボドライバーでMG996Rサーボを駆動します。
注意: 各モーターには外部電源を使用してください。Arduinoだけでは全モーター駆動不可。本プロジェクトでは5V 2200mAh RCバッテリーを使用。

Arduino配線図:
DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

ベース回転用 NEMA-17

アーム重量増加でMG996Rではベース回転トルク不足のため、高トルク・高精度のNEMA-17ステッピングモーターを採用。A4988ドライバーで制御。
DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド 完全な配線図は元記事参照。

回路実装

Bluetoothモジュールを含む全電子パーツの最終配線図:
DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド ペアリング手順は後述。

ヒューマンフレックスセンサー(グローブ側)

DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

3Dプリントのエクソスケルトンガントレットをグローブとして使用可能ですが、プロトタイピングには作業用手袋で十分です。

ロボットグローブ構成:

フレックスセンサーと加速度計のテスト用図:
DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド 重要: ロボットアームの精度はグローブ制御精度に依存します。ここをしっかり調整してください。

Bluetooth設定(マスター/スレーブ)

HC-05モジュールで通信。ボーレートは4800に設定。
ロボットグローブ側: HC-05 マスターモード
ロボットアーム側: HC-05 スレーブモード

Arduinoプログラミング

全コードはGitHubで公開: Arduino Robot Arm Repo

ロボットアーム側プログラミング

DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

HCPCA9685ライブラリ(サーボドライバー用)を使用し、複数サーボを1つのArduinoで制御。主要変数:

#include "HCPCA9685.h"
#define I2CAdd 0x40
HCPCA9685 HCPCA9685(I2CAdd);

const int servo_joint_L_parking_pos = 60;
int servo_joint_L_pos_increment = 20;
int servo_joint_L_parking_pos_i = servo_joint_L_parking_pos;
int servo_joint_L_min_pos = 10;
int servo_joint_L_max_pos = 180;

Bluetooth通信開始(ボーレート4800):

Serial.begin(4800);

loop()で常時シリアル受信チェック。データがあれば'state'変数に格納し、文字に応じてモーター駆動:

if (Serial.available() > 0) {
  state = Serial.read();
  Serial.print(state);
  // モーター機能コードブロック
}

例: 'S'受信でベース回転左、'f'でクロー下降等。ハードストップで最大角度超過を防止(ギア破損防止)。

フレックスセンサー側プログラミング

5センサー定義(小指A1、人差し指A2、親指A3、MPU6050×2はI2Cアドレス0x68/0x69)。送信間隔response_time=1000ms。センサー値読み取り、キャリブレーション(起動時1秒で上下限自動設定)、閾値超過で対応文字送信。

成果

DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド

物体把持・移動が可能な精度。複雑な物体操作や人間の器用さには及ばないが、MARK 1として意図通り動作。コード改良で精度向上可能。

GitHubリポジトリへの貢献歓迎: Arduino Robotic Arm Repo でオープンに発展させましょう!

次のステップ

MARK 1はここまで。興味があればPatreonで支援を。今後さらに改良版を公開予定。

3Dプリントファイル (Thingiverse)

回路図・リポジトリ

Robot Arm Git Repo

製造プロセス

  1. Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
  2. 自宅で作るDIY宿題自動筆記マシン:AxiDraw風ペンプロッターの自作ガイド
  3. Android加速度センサーで操作するラジコン車両:Raspberry Pi・Arduino・モーターシールド連携
  4. ArduinoとHC-SR04で作るサーボ駆動障害物回避ロボット
  5. Arduino UNOで作る完全自律ライントラッカーロボット ─ 入門に最適な自作キット
  6. Arduinoベースのヌンチャク操作6自由度ロボットアームキット
  7. Arduino Nanoで音声制御ロボットを自作
  8. Ethernet制御ロボットアーム - WIZ750SRとAndroidアプリでリモート操作
  9. MobBob:Arduino製ロボットをAndroidスマホでシームレスに制御
  10. PiBot:Arduino駆動の精密ピアノ演奏ロボット
  11. Arduino向けスマート屋内ナビゲーションロボットキット