みなさん,こんにちは.
おかしょです.
Processingを使うと簡単にアニメーションを作成することが可能です.
私はまだ,国際学会などでProcessingを使ったアニメーションは発表したことがないのですが,それを使えば発表の幅が大きく広がると考えています.
また,実験をしている時でリアルタイムで姿勢を表示することによってわかることがあると思います.
というよりも,リアルタイムで姿勢を表示できたらなんかかっこいい気がします.
そこで,Processingでロボットなどの姿勢をリアルタイムで表示したいと思います.
今回は,その構想編です.
「こういうものを画面に表示したいなぁ」ということを考えていきます.
この記事を読むと以下のようなことがわかる・できるようになります.
- ロボットの姿勢を表示する方法
- Processingでできること
この記事を読む前に
このプロジェクトでは,どのようにしてロボットの姿勢角をかっこよく表示するのかを考えていきます.
その前にロボットの姿勢角の求め方は以下の記事で解説しているので,そちらを先に読んでおくことをおすすめします.
画面に表示するもの
まずはどのような情報を画面に表示するのかを考えます.
今回の題材として考えているのはデータ処理方法によって姿勢角の精度が異なることを示すです.
以前,このブログでは加速度センサーやジャイロセンサーを使って姿勢角を求める方法を解説しました.
加速度センサーのみで姿勢角を算出する方法とジャイロセンサーのみで算出する方法,二つのセンサーを組み合わせて姿勢角を求める方法を解説しました.
これらの方法の比較を行うためにProcessingでアニメーションを作成しようと思います.
そこで,画面には以下のようなものを表示できるようにします.
- 姿勢角の時系列グラフ
- 姿勢を表す3次元のモデル
- 実際の姿勢がわかる動画
この3つを表示できるようにします.
姿勢角の時系列グラフ
ロボットの姿勢角はオイラー角表現の場合はロール角(x軸),ピッチ角(y軸),ヨー角(z軸)の3つがあります.
3つすべての時系列グラフを表示してもいいのですが,今回使用するセンサーは加速度とジャイロしか取得できないので,ロール角とピッチ角のみ時系列グラフを表示するようにします.
また,このアニメーションではリアルタイム表示を行うことも一つの目的であるため,グラフはある一定の期間のみ表示するようにします.
つまり,時間とともに時系列グラフが流れていくようにします.
姿勢を表す3次元のモデル
ロボットの姿勢角を表現する場合は,そのロボットの3次元モデルを表示した方が良いのですが
今回はデータ処理方法の比較を行いたいため,ただの薄い板を使うことにします.
このような板はProcessingのコマンドを使えば簡単に作り出すことができるので便利です.
また,比較を行うために板は3枚表示し,それぞれの板がリアルタイムで姿勢角が変わるようにします.
どの板がどのデータ処理方法を示しているのか確認できるように,板の下にはデータ処理方法の名前を表示します.
(例:加速度センサーのみの場合は「Accel」)
実際の姿勢がわかる動画
さて,ここまで考えてきたデータはすべてデータ処理によって得られたものです.
そのため,実際の姿勢角との比較はできていません.
データ処理をした姿勢と実際の姿勢を比較するために,カメラで撮影して画面上に表示する必要があります.
カメラを使って表示するのは少し難易度が高そうですが,これがあるのとないのとでは学会などで発表する場合は説得力が全く違ってくると思うのでチャレンジしてみます.
表示するものの配置
画面上に表示するものが決まったら,次はそれぞれをどのような配置で表示させるのかを考えます.
今回は時系列グラフとカメラからの映像を画面上半分に,板で表現した姿勢角をした半分に表示するようにします.
時系列グラフは横に長くしたいので,スペースの関係上,動画は正方形に近いか縦長のものになると思います.
だいたいの配置が決まったら,次はもっと細かく決めていきます.
その前に,現状の配置を確認します.
画面下半分の3Dアニメーションは3つの手法を比較するため,均等に3等分します.
画面上半分は時系列グラフはどうしても横長の図になるので,動画は正方形か縦長となってしまいます.
今回の場合はブレッドボードにセンサーなどを搭載したものを表示するだけなので,正方形でも縦長の動画となっても問題はありません.
ただ,カメラで撮影した映像を縦長や正方形に形を変えて表示できるのかは疑問です.
カメラからの映像が形を変えて表示できるのかわからないため,横長で表示することを前提として考えていきます.
グラフも動画も横長に表示するため,上半分も下半分と同様に3等分して表示するようにします.
まとめ
この記事ではProcessingを用いたロボットのリアルタイム表示を行うプログラムの構想をご紹介しました.
ざっくりとではありましたが,このような配置でグラフなどを表示しようと考えています.
今回表示しようと思っているグラフは下記で解説したプログラムをそのまま利用する予定です.
気になる方は参考にしてみてください.
続けて読む
このプロジェクトの続きは以下の記事から読めます.
以下の記事ではカメラ映像以外のアニメーションをProcessingでプログラミングしています.
Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.
それでは最後まで読んでいただきありがとうございました.
コメント