まずは、ロボットを操作するためにROSをインストールする必要があります。
ついでに森岡研究室のロボット を動かせるようにするといいかも。※Githubアカウントの作成とmorioka_labへの参加が必要
このシステムでは、turtlebot2を用いていますので、これについても対象のROSパッケージをインストールする必要があります。
こちらのサイトを参考にROSパッケージをインストールしてください。
このサイトでは、ROSのセットアップもしていますが、そこはすでに終わっているものとして、4のTurtlebot用のパッケージというところから始めてください。
ロボットとのスマホアプリをつなぐシステムとしてRowma(Robot Web Manager)というものを使います。
Rowmaも必要なROSパッケージがあるので、インストールします。
cd ~/catkin_ws/src
git clone https://github.com/rowma/rowma_ros
cd rowma_ros
pip install -r requirements.txt
catkin_make
ロボットの映像をスマホアプリに送信する手段としてZoom Video SDKを使用しています。
ロボット側:Web用のSDK
ロボット側のSDKについては、Zoomが公開しているサンプルアプリを使用しています。 インストールはこちら
Webpackのファイル(sample-app-videosdk/purejs-demo/webpack.config.dev.js)を少し変更しています。
[Webpack変更後](https://github.com/morioka-lab/Turtlebot_rowma/blob/main/webpack.config.dev.js)
スマホアプリ側:Android用のSDK
更に、Video SDKを使用するために必要なJWTトークンというものを生成しています。JWTトークンはTurtlebot用のPCで生成し、Rowmaを仲介して、スマホアプリに送信しています。
JWTトークン生成&送信プログラム
参考程度にスマホアプリのコードを残しておきます。使うだけだったらGooglePlayStoreからインストールで十分かもです。
スマホアプリ
タートルボットのPCで以下のコマンドたちを実行します。
Rowma(UUIDを”turtlebot”に設定)※roscoreと別ターミナルで
roscore
UUID=turtlebot rosrun rowma_ros rowma
タートルボットの制御用ROSノード
roslaunch kobuki_node minimal.launch
スマホからの速度指令値 → Turtlebot用速度指令値 変換用ROSノード
rosrun chatter listener_cmd_vel.py
JWTトークン自動生成&スマホアプリへの送信
cd <jwt.jsのあるディレクトリ>
node jwt.js
Zoom Web SDKの実行(警告みたいなものがブラウザに表示されますが、”詳細設定”というところを開くとページを閲覧できます。)
cd sample-app-videosdk/purejs-demo/
npm start
以上!!!!!!!!!!!
あとは、スマホアプリを操作すると、ロボットの前方の映像を見ながら十字キーでタートルボットを遠隔操作したり、タートルボットを充電スタンドへと自動ドッキングすることができます。