SotaにWebSocketサーバを立て、ブラウザから操作する
こんにちは。ヤマロボエンジニアの鵜澤です。
今回は、ヴィストン株式会社が販売しているコミュニケーションロボットSotaに、Javaで作ったWebSocketサーバーを立ててみました。
動作している感じ
ブラウザから起動するラジコン的な何か
概要
Sotaに登録できるアプリケーションはjar
の形式で、
java -jar アプリケーションjarファイル
で実行できるようにする必要があります。
MANIFEST.MF
でクラスパスを指定すれば、Sota内部のライブラリを読み込むこともできますが、今回はサーバー、Sota用ライブラリ等全てが入った、実行可能jar
を作成していきます。
使ったソースはyamarobo/SotaServer
に上がっています。
WebSocket
サーバがクライアントから受け取ったメッセージに応じて、
CRobotMotion
を通じてSota命令を出すような構成にします。
ソースはこちらから入手可能です。
ソースをクローンしてきたら中に入り、gradle build
を実行するとbuild/libs
以下にjarが作成されます。
あとはSotaにjarを登録すれば、ポート3000
にブラウザでアクセスすると画面が表示されます。
関連記事: Sotaへのアプリケーション登録方法を書いた過去の記事です。
内容
開発環境は以下です。
- Java8: version "1.8.0_102"
- Eclipse: Version: Neon.1a Release (4.6.1)
- Gradle 3.2
WebSocket
のサーバとしてはjar
にまとめる必要があるため軽量なサーバであるjetty
を使います。ビルドはgradle
を使って、jetty
関連のjar
をプロジェクトに追加しています。
作動させる
yamarobo/SotaServer
からソースをクローンしてきてください。
クローンしたソースのgradle.build
を作動させてjar
を作成します。
build
タスクを実行すると、サーバを単独実行するのに必要なものが一つにまとまったjar
が作成されます。
転送方法などは過去の記事を参照ください。
配置完了後、再起動すると背中のボタンから登録したアプリを実行できます。
実行後、ブラウザからSotaのIP
にポート3000
でアクセスすると、画面が表示され、WebSocket通信が開始されます。
プルダウンからコントローラを選んで、アクションをさせてみましょう。
サンプルにはいくつかの決まったアクションの他に、manual
アクションというものがあり、Sotaの各関節の値をブラウザから操作できるようになっています。
各関節の可動範囲の制御は一応行なっていますが、組み合わせによっては接触の恐れがあるため、まずは200くらいの幅で作動させてください。
感想
vstoneMagicの命令ブロックにはTCP/IPのサーバが用意されているみたいです。。。
読んでくださりありがとうございました。