AMD Pervasive AI Developer Contest向けて、ロボットカーを自作しました。
主にタミヤのパーツを使うことで、改造・拡張しやすいようにしています。
電源からアクチュエータ、またカメラの搭載を紹介していきます。
360°カメラを搭載したロボットカーを自作してみた
360°カメラを搭載したロボットカーを作成しました。
AMD Pervasive AI Developer Contestに向けて自作しました。
コントローラのKR260をロボットカーに組み込むことも可能です。
メインの360°カメラ以外にもアームやタイヤ駆動のモータが搭載されています。
2個のDCモータを制御して、ロボットカーは前進・後進・回転できます
1個のDCモータを制御して、アームを閉じたり開いたりできます。
今回はロボットカー・アームの構造含めて紹介します。
DCモータ動作をさせて、ロボットカーとアームの動作まで紹介します。
モータの電源としては、「KR260の5V」「外部の5V」のどちらでも使えるようにしています。
ロボットカーの本体・アーム、また360°カメラの設置方法を紹介していきます。
主なパーツリスト
主なパーツとしては下記です。
- 360°カメラ…RICOH THETA V
- メインボード…AMD KRIA KR260
- モータドライバ基板…自作のDRV8833搭載基板
- デバッグ基板…自作のSW/LED基板
- モータ…DCモータ
- ロボット本体…TAMIYAギアボックス・フレームを改造
他予備・追加的なパーツとしては下記です
- デバッグ用コントローラ… エレコム ワイヤレスゲームパッド
- 追加フレーム…TAMIYA ユニバーサルプレート・アーム
- 追加タイヤ…TAMIYA オフロードタイヤ
詳細の部品表に関しては下記GitHubに記載しています。
360°カメラ(RICOH THETA)
使用した360°カメラはRICOHのTHETA Vです。
色々なAPI・ライブラリが公開されており、使いやすい360°カメラです。
接続方法もUSBやBluetoothなどあります。
THETA Vを選んだ理由は下記記事でも紹介しています。
RICOHのTHETA Xではなく、THETA Vを購入した理由

今回はロボットに搭載していますが、普通に三脚にも設置できます。
Micro USBケーブルを接続しながら使うには、1/4インチの長めボルトを利用すれば可能です。
ルータやニッパーを使って、フレームに穴をあけて固定できるようにしました。
THETAの下からUSBケーブルを挿すことが可能となります。
ロボットカーのタイヤ駆動機構
ロボットカー本体の駆動方法に関しては、DCモータを2個使っています。
ギアボックスを使って、車体を動かせるパワーを出せるようにしています。
更にギアボックスをトルク増やすために追加購入しています。
KR260を搭載する場合の追加フレームです。
支えとなるボールキャスターとリアタイヤが搭載されています。
こちらにはモータ動力は無く、ロボットカー本体に引かれて動く形になります。
ロボットカー本体と簡単に接続できる構成を取っています。
KR260のPMODコネクタから、モータドライバ経由でDCモータに接続しています。
ロボットカーのアームの機構
ロボットカーのアームの駆動に関しては、DCモータ1個とギアボックスを使っています。
モータが回ることでピストン運動になり、アームが閉じたり空いたりします。
コントローラーを使っての駆動テスト
ゲームコントローラーを使ってのKR260からの駆動テストは下記記事で紹介しています。

ロボットカーのテスト動作
ロボットカーのテスト動画です。
このテストではKR260とロボットはハーネスで接続しています。
また電源も外部バッテリの5Vを使用しています。
KR260を搭載したロボットカーのテスト動作
今回は下記のようにKR260を搭載した形で、ロボットカーとしても動かしていきます。
テスト的にゲームコントローラーから制御します。
テスト動画は下記となります。
最初にボールをロボットカーに渡します。
ロボットカーのアームを制御することで、ボールをリフトアップさせています。
ボールを自由に持ち運びすることが可能です。
モータの電源はKR260にある5V電源を利用しています。
電源ICを確認すると連続定格としては1Aまで流すことができるピンとなっています。
モータカーのタイヤを駆動させて、ボールを運んだりしています。
またアームを再度駆動させて、ボールをリフトダウンさせることも可能です。
360°物体検出+ROS2への出力のテスト
単純にロボットを動かすだけではなく、KR260に物体検出とROS2の出力も加えていきます。
KR260での360°物体検出に関しては下記記事で紹介しています。
360 Live Streaming で物体検出。KR260+PYNQ-DPU編

またROS2出力に関しては下記記事で紹介しています。

周辺にボールを配置した状態での動作テスト
テスト動画です。ロボットを動かしつつ、360°物体検出+ROS2出力ができています。
他のテスト動画です。
この場合は、近くにボールだけでなくペットボトルも置いた状態でテストしました。
別のテスト動画です。広い教室の環境でテストした例です
人の手を追跡するテスト
コントローラーからだけでなく、物体検出した情報から自動で動くテストもしてみました。
テスト動画は下記です。
人の手を検出して、その方向へ回転している動作が確認できます。
まとめ
ロボットカーを制作して、360°物体検出ロボットを制御することが出来ました。
360 Live Streaming での物体検出、ROS2のマーカ出力をしました。
そして、ロボット動作と一緒に実行できています。
今回のKR260で実施した内容は、下記記事で紹介したテストの一部です。

コメント