LINEバッファになんでも無制限に溜めるのですぐ未定義動作するぼくです。弊学科には学科特製の移動ロボットを用いた課題解決型実験があるのですが、そのメモ。手持ちに機体そのものの画像がないのでそれは後々。なにつくっとんねん弊学科の移動ロボット、一応ジャイロセンサが付いているらしいがうまく使えない(らしい)。そこで、Android端末の傾き検出機能を用いて、機体の回転角を出してやろうという意図で下記のようなシステムを作成した。i2cdetectの結果Android側構成Android側はSensorsで傾き検出するコードとRetrofit+RxAndroidなRESTクライアントを書いておしまい。後々githubリポジトリは公開しようかなと思ってるけど、とりあえず現時点のコードを一部抜粋。作れるそうですが、この様子をうまく座標平面に出した図が欲しい....線形代数センスのNASAこの辺が詳しそうです。用いてWorld座標系の回転行列を取得します。方位角に関してはここが図付きでわかりやすいかもです。端末短辺の水平方向が0となっています。今回は端末をロボットの床面に垂直に立てて使用することを想定しているので、Z軸方向の方位角を出力の回転角としてセットしています。ClientのAPI呼び出し部分です。ModelとRequest(?この辺まだよくわかってない)を用意します。化して行数減らせそうな要素ですね。gson変換するときに使う(らしい)です。次はAPIを宣言してあげます。classをつくってやることで使い回しやすくなります。呼ぶとObservableを返すので、そこからsubscribeする。以下のメソッドは実行スレッドを引数で指定する。実行スレッドに関してはここを参考にした。コールバックは次のとおり。:元のObservableに加工できる。:処理の成功時に呼ばれる。:処理の失敗時に呼ばれる。Exceptionが引数にくる。:処理の成否に関わらず最後に呼ばれる。unSubscribeをどこかで呼ぶべきなので、その辺は後の実装で追加予定。Linuxを用いた環境を構築した。長くなりそうなので続きは別記事で。