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

Arduino向けスマート屋内ナビゲーションロボットキット

部品と材料

部品名数量備考
スマートモーターロボットカー バッテリーボックス シャーシキット DIY スピードエンコーダー Arduino用1
oblu - 屋内歩行者ナビゲーション用オープンソースIMU1
ハンダレスブレッドボード ハーフサイズ1
オス/メス ジャンパーワイヤー1
コンデンサ 1000 µF2
Texas Instruments デュアルHブリッジ モータードライバー L293D1
Arduino Mega 25601
単3形 2800mAh Ni-MH 充電池1

必要な工具と機器

アプリとオンラインサービス

プロジェクト概要

このプロジェクトは、GPSやWi-Fi、Bluetooth、地図、建物のレイアウト図を一切使わずに、ロボットを所定の経路に沿って高精度で移動させ、その実際の軌跡をリアルタイムで描画するものです。Bluetoothは、リアルタイム位置情報の無線送信用としてワイヤーの代替として使用します。

Arduino向けスマート屋内ナビゲーションロボットキット

背景

Arduinoベースのロボットで屋内ナビゲーションを実現する堅牢なソリューションを探していたところ、オープンソースIMUの「oblu」に注目しました。低コストでオープンソースであること、無料のAndroidアプリ「Xoblu」でリアルタイム位置追跡ができることが決め手となりました。ただし、obluの標準プログラムは「足取り型歩行者航法(PDR)」、つまり人間の歩行モデルに基づいています。人間が歩く際、足が地面に着いた瞬間は速度がゼロになるため、その「ステップ」を検出して誤差を補正し、高精度なトラッキングを実現しています。

そこで、「ロボットも同じように『移動→停止→移動→停止』を繰り返せば、obluのアルゴリズムがそのまま使えるのでは?」と考え、obluを採用してロボットとトラッキングシステムを組み立てました。

動作原理

ロボットはあらかじめプログラムされた経路に従って移動し、実際の移動情報をBluetooth経由でスマートフォンに送信してリアルタイム追跡を行います。

Arduino向けスマート屋内ナビゲーションロボットキット

経路は「直線セグメントの集合」として定義され、各セグメントは「長さ」と「前セグメントからの相対方位」で指定します。ロボットは「ストライド(歩幅)」と呼ばれる小区間ごとに移動し、各ストライド終了時にobluから「ストライド長」と「直線からの方位ズレ」を受け取り、Arduinoが即座に姿勢を補正します。路面の凹凸、重量バランス、モーターのばらつき、キャスターの向きなどで生じるズレを、歩くたびに修正するイメージです。

次のストライド長は、その直線セグメントの残り距離に応じて可変します。遠いときは大きく、ゴール付近では小さくなります。また、プログラム距離を超えて進んでしまった場合は後退して戻ります。

obluはArduinoとスマートフォン(Xobluアプリ)の両方に同時にデータを送信。Xoblu側で受信データから軌跡を再構成し、スマホ画面上でリアルタイム表示します。ロボットの移動はスタート/ストップ命令以外、遠隔操作ではありません。

Arduino向けスマート屋内ナビゲーションロボットキット

経路モデリング

ロボットを直線セグメントのみで歩かせるのが最も制御しやすいため、任意の経路を直線セグメントの組み合わせでモデル化します。下図は経路例と、その変位・方位での表現です。このデータをArduinoにプログラムします。

Arduino向けスマート屋内ナビゲーションロボットキット
Arduino向けスマート屋内ナビゲーションロボットキット

このように、直線セグメントの集合で表現できるあらゆる経路を定義・プログラム可能です。

回路組み立て

ハードウェアセクションを参照し、Arduino、oblu、モータードライバー、バッテリーパック間の電気接続を行ってください。

通信プロトコル

  1. ステップ1: XobluがobluにSTARTコマンドを送信
  2. ステップ2: obluがACKを返信
  3. ステップ3: obluが各ストライドごとに変位・方位データ(DATAパケット)をXobluへ送信(ゼロ速度=停止を検出するたび)
  4. ステップ4: XobluがDATAパケット受信ごとにACKを返信(ステップ3-4を繰り返し、STOPコマンド受信まで継続)
  5. ステップ5: STOP受信時 — (i) oblu内部処理停止 (ii) 全出力停止

詳細についてはobluのアプリケーションノートを参照してください。

oblu IMUの仕組み(参考)

obluの概要と、足取り型PDRセンサーの基本動作原理に関する参考資料です:

ご意見、ご提案、コメントをお待ちしています。どうぞよろしくお願いいたします!

コード

Arduinoベースのロボット制御コード

ロボットはプリプログラムされた経路に沿って移動し、現在座標をスマートフォンに送信してリアルタイム追跡を行います。
GitHubリポジトリ

回路図

Arduino向けスマート屋内ナビゲーションロボットキット

製造プロセス

  1. Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
  2. シンプルPiロボット - Raspberry Piで2WD自律ローバーを構築
  3. ArduinoとHC-SR04で作るサーボ駆動障害物回避ロボット
  4. Joy Robot: ArduinoとESP8266で作るスマートロボット
  5. Arduino UNOで作る完全自律ライントラッカーロボット ─ 入門に最適な自作キット
  6. Arduino Nanoで音声制御ロボットを自作
  7. PiBot:Arduino駆動の精密ピアノ演奏ロボット
  8. Arduino Mega 2560搭載 総合トレーニングキット – センサー、モーター、カスタムPCB完備
  9. 自律型ホームアシスタントロボット「O'nine」の構築 – ROS、Alexa、ロボットアーム完全ガイド
  10. 学校向けスマート体温監視システム: 正確、リアルタイム、安全
  11. DIY ハンドジェスチャー制御 Arduino ロボットアーム - ステップバイステップ構築ガイド