ハードウェアからサーバ・アプリまでワンストップで開発

VR徘徊を動かすにあたって、PoCに使うハードウェアとフレームワークについて考えます。

まずはPoCなのでサクサクと出来ることを第一に考えます。

ハードウェア

現アプローチのVR徘徊は「台車に棒が立ってるもの」です。

ここで主要なハードウェアは

  • 双眼カメラ
  • 台車
  • リモコン
  • HMD

です。

双眼カメラ

双眼カメラについては、StereoPiを使います。

Stereo Piで3Dライブストリーミング

上のエントリではVer 1ですが、手元にはVer 2もあります。

どっちがどうということはないですが、とりあえずは新しい方を前提とします。

既に動かした経験があるので、悩むところはありません。

台車

台車についてはPoCではルンバを使います。

ルンバはシリアルポート経由で制御できるので、お手軽台車にすることが出来ます。作っても良いのですが、あまり悩みたくありませんのでこの方法をとります。

raspberrypiからルンバを操作する(0)

raspberrypiからルンバを操作する(1)

raspberrypiからルンバを操作する(2)

raspberrypiからルンバを操作する(3)

これも既に動かした経験があるので、悩みどころは少ないです。違いと言えば、当時はROS1でやっていたことでしょうか。

リモコン

手元のコンピュータ(Orange PiかデスクトップPC)にゲームコントローラをつないで使うことを考えます。

以前、潜水艇のステアリングにしたゲームコントローラがジャンク箱からいっぱい出て来ました。

HMD

近頃はいろいろあるようですが、普段このような仕事をしていないので手元に良いのがありません。

ちょうど上のStereoPiのエントリの時に使った「段ボールゴーグル」があるので、これで済ませることにします。

ソフトウェア

ここであまりエネルギーをかけることは本意ではありませんので、簡単にやってしまいたいところです。

ストリーミングのためのソフトウェアについては、StereoPiを試した時のものをそのまま使います。

台車コントロールが問題ですが、3つ方法があります。

  • 書いてしまう
    ゲームコントローラを操作するプログラムは散々書いたので、資産があります
  • ROS/ROS2を使う
    前にルンバを動かした時はROSでやりましたし、ネットに情報がたくさんあります
  • ArduPilotを使う
    しょせんリモコン台車ですから、いわゆる「ラジコン」でも十分ではないかと

見通しが楽で早く出来そうなのは、自分で書いてしまうことです。たいそうなことをするわけでもないですし情報も十分にあるので、そんなに手間がかかるとは思っていません。ゲームコントローラは結構厄介なこと(プロトコルが出鱈目です)があるのですが、それも経験済みですから。

とは言え、自分で書いてしまうと絶対に不良資産化します。動かして捨てると割り切れば不良資産になりませんが、なまじ成功してしまうと余分なことを考えてしまいます。どこかで捨てなければならないと思います。そうなるのであれば、最初から自作しない方が良いでしょう。

ROSは既に動かしていますし、ネット上にも「ルンバをROS/ROS2で動かす」みたいな情報は大量にあります。なので、悩み箇所は少ないのかなと思ったりします。ゲームコントローラについても、それ用のノードがあります。

ただ、将来に渡っても自律運転は考えていないので、「何もそこまで」という感じはあります。ROSと自動運転は直接は関係ないですけどね。

単なるリモコンだということであれば、ArduPilotを使うという手があります。後で自動運転したくなった時でも対応可能です。また、ROSのノードとすることもできます。そういった意味では一番良い選択のように思えます。

ところが、ArduPilotをルンバに適用した話はほぼありません。誰かやっていれも良さそうな気がするんですが、すぐには見つかりませんでした。すぐには見つからないということはそれだけ情報が少ないということでもあるので、ちょっと残念です。

ということでいろいろ考えて、特にArduPilotは深く探ってみたのですが、結局ROSを使うことにしました。追加で書くコードも少なそうですし、汎用性もありますから。

と、ここまで書いておいて、実は一気に卓袱台返しみたいな解決があります。それは

赤外線リモコンを使う

ということです。

元々ルンバには赤外線リモコンの機能がありますので、PoCとしてならこれでも良いかも知れません。まぁネット越しの遠隔操作が出来ないのは残念ですけど、「とりあえず」ならこれでも良いですね。

おわりに

とりあえず実現の方針は立ちました。

ここまでブレークダウンしてあれば、これは絵空事のプロジェクトじゃなくて実現の可能性の高いものだということがわかると思います。逆に新規性のある部分が少な過ぎてガッカリなのかも知れません。大丈夫です。PoC過ぎたら解決るべき問題は山積されると思います。

方針ができたので、次回からは具体的な作業に入ります。次回はROSをインストールする話です。

最近のエントリー

会計システム「Hieronymus」の現状

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)

CMSの社内向けサービスのリニューアル

LED行燈の試作(1)