
センサ状態の表示
================

.. sectionauthor:: 中岡 慎一郎 <s.nakaoka@aist.go.jp>

.. contents:: 目次
   :local:

.. highlight:: cpp


センサ値の確認方法
------------------

ロボットの状態を確認するために、ロボットに搭載されているセンサの状態値を確認したいことがあります。Choreonoidはこれを行うための機能として、以下の機能を用意しています。

* ボディ状態ビュー
* センサ可視化アイテム

これらの機能の対象となるのは、Choreonoid上にボディアイテムとして読み込まれているボディモデルで、そこに格納されているセンサ情報を参照しています。

これらの機能をシミュレーション結果に対して適用するためには、シミュレーションにおけるセンサの状態がボディモデルに出力されるよう、 :ref:`simulation-device-state-recording` を有効にしておく必要があります。そのようにしておけば、ロボットのコントローラ等には特に手を加えずに、センサの状態表示を簡単に実現できます。

ボディ状態ビュー
----------------

センサの状態値をそのまま数値で表示するビューとして、「ボディ状態ビュー」が用意されています。

これを使うためには、まずメインメニューの「表示」-「ビューの表示」から「ボディ状態」を選択してビューを表示させてください。このビューは、デフォルトでは何も表示されません。アイテムツリービュー上でなんらかのボディアイテムを選択すると、そのボディモデルが有するセンサ値の一覧を表示するようになります。

例えばSR1サンプルモデルを対象とした場合、以下のように表示されます。

.. image:: images/BodyStateViewSR1.png

初期状態では図のように全ての値が0となっていますが、シミュレーションを開始すると数値が変化します。また、記録しておいたシミュレーション結果の再生時にも対象時刻の状態が表示されます。

なお、このビューの表示対象となるセンサ型は、今のところ力センサ、加速度センサ、レートジャイロセンサの３つとなっています。


センサ可視化アイテム
--------------------

センサの状態をシーンビュー上の3DCGを用いて視覚的に表示する機能として、「センサ可視化アイテム」が利用可能です。これを用いることで、ロボットの状態を直観的に把握することができます。

利用にあたっては、まずこのアイテムを生成します。メインメニューの「ファイル」-「新規」から「センサ可視化」を選択し、生成したアイテムを対象となるボディアイテムの小アイテムとして配置して下さい。

この状態でアイテムのチェックを入れると、モデルの現在のセンサ値がシーンビュー上に矢印マーカで表示されます。

現在のところ対応しているセンサは力センサのみとなっています。また、力センサが有する力・トルクの６軸成分のうち、可視化されるのは力の３軸成分のみとなっており、これを力センサの位置からのベクトルとして矢印マーカで表示します。

以下はSR1の歩行サンプルにおいて、両足首に搭載された力センサを可視化した例です。

.. image:: images/sr1-force-visualizer.png

ここではセンサ可視化のマーカを分かりやすくするため、シーンビューを :ref:`basics_sceneview_wireframe` としています。

マーカの長さについては、センサ可視化アイテムの「表示比率」プロパティで調整できます。この値を、マーカが見やすい長さとなるよう状況に応じて調整してください。
