Nox:ROS搭載のSLAM対応家庭巡回ロボット
Noxは、ROS、Raspberry Pi、Arduinoベースの差動駆動ロボットで、Kinect 360を搭載しリアルタイムSLAMと障害物検知を行います。
当初はモジュラーベースとして構想されましたが、周囲の地図作成(gmapping使用)、自己位置推定、任意目標地点への衝突フリーパス計画が可能な完全自律プラットフォームへと拡張しました。
11.1VリチウムイオンバッテリーとBanggood製12V DCモーター(107rpm)2個で駆動。フロントパネルは着脱式で様々な長さのバッテリーに対応。バッテリーレベル表示で充電タイミングを通知。
モーターは十分な速度を出せますが、スムーズなナビゲーションのため精密なエンコーダーを優先しました。
シャーシはKinectをシームレスに統合できるよう設計。「Deus Ex」的な美学から着想した洗練された三角形フォルムを採用。徹底的なCAD調整でプロフェッショナルな仕上がりと配線管理性を両立。
ステータスLED(元旦のグロースティックから再利用)が視覚的手がかりを提供:速い3点滅でArduinoがROSマスター未接続を示し、呼吸パターンでアクティブナビゲーション中を表示、点滅速度がロボット速度に連動。
未接続点滅
アイドル点滅
構造
差動駆動で両モーターを共通軸に配置。木製ベースが2つのキャスターホイールで安定性を確保。後部にRaspberry Pi、Arduino、その他電子機器用の積層プレートを配置。
外装は手切り黒色プラスチックプレートで、将来的には3Dプリントで効率化予定。
ハードウェア
核心にはRaspberry Pi 3BがUbuntuとROSを稼働し、Wi-FiとSSHでリモート制御可能。ROSがオドメトリ、ナビゲーション計画、KinectデータによるSLAMを担当。PiからArduino Mega 2560へ速度指令を送り、Adafruitモーターシールド経由でPIDループ駆動。エンコーダーフィードバックをPiに返し正確なオドメトリを実現。
UnoとLeonardoを試した後、エンコーダー読み取りに十分なメモリと割り込みピンを持つMega 2560に決定。
Kinect 360はプロジェクトの中心:25ユーロの3Dカメラでgmapping用深度データを提供し、視覚、加速度計、マイクアレイも搭載し将来拡張に備えます。
電源管理は2つのDCコンバーターで:モーターは11.1Vバッテリー直結、Pi/Arduino/エンコーダーは5V、Kinectには安定化12Vを供給。
ソフトウェア
ROS Kineticで稼働。唯一のカスタムノードnox_controllerがモーター速度データからオドメトリを計算。運動学モデルは「On Differential Drive Robot Odometry with Application to Path Planning」に準拠。共分散行列を公開し将来のセンサーフュージョンに備えます。
モーター制御は現在直接PWMコマンド。PIDループは無効だが後でキャリブレーション予定。エンコーダーフィードバックのみで既に満足な速度制御が得られています。
詳細:Nox – 家庭巡回ロボット (ROS)
製造プロセス
- Raspberry Pi と Arduino を連携させてロボットを自作:ステップバイステップガイド
- Bridge Shield でスマートロボットを構築:Raspberry Pi と Arduino の統合
- DIY Wall-E 風 Raspberry Pi CD ボックスロボット
- ANDY – 多目的ヒューマノイドロボット
- ローリングアラームロボット:Raspberry Pi と Google カレンダーで動くスマートモバイル目覚ましシステム
- Arduinoで作るモーター駆動のマインクラフト クリーパー ロボット
- JQR四足歩行自律ロボット:自律ナビゲーションと救助向けDIY脚式ロボット
- アーキメデス:感情センシングAIロボットフクロウ
- EMAR Mini:Raspberry Pi 4搭載のコンパクト緊急支援オープンソースロボット
- Pythonで作るWi-Fi制御Raspberry Piロボット - ステップバイステップガイド
- Intellisaurus:歩くスマート恐竜ロボットを組み立てよう