概要

ここでは、ビューシミュレータクライアントの作成方法を、サンプルを用いて説明します。
サンプルプログラムは、OpenHRP/sample/example/viewSimulator にあります。
このサンプルは、スケジューラのサンプルプログラムを元に作成していますので、変更部分のみを説明しています。説明のない部分に関しては、スケジューラ作成マニュアル(Ver.3.1)をご覧ください。

 ViewSimurator

ViewSimuratorの取得を行います。

    ViewSimulator_var viewSimulator;
    viewSimulator = checkCorbaServer <ViewSimulator, ViewSimulator_var> ("ViewSimulator", cxt);
    
    if (CORBA::is_nil(viewSimulator)) {
        std::cerr << "viewSimulator not found" << std::endl;
        return 1;
    }

ViewSimuratorに対してもモデルを読み込ませます。

    viewSimulator->registerCharacter(floor->name(), floor);			    
    viewSimulator->registerCharacter(body->name(), body);

ビューシミュレータの更新

スケジューラのサンプルでは、シミュレーションループ内で行っていたOnlineViewerの更新の替わりに、ビューシミュレータを更新します。 このサンプルでは、カメラのデータ取得を行い、データを間引いて標準出力に表示しています。

    try {
        dynamicsSimulator -> getWorldState( state );
        if((int)(time*500)%30==0){
            viewSimulator->updateScene( state );
            CameraSequence_var cameras;
            viewSimulator->getCameraSequence(cameras);
            for(int k=0; klength(); k++){
                ImageData_var imageData = cameras[k]->getImageData();
                std::cout << "camera(" << k << ") ";
                for(int l=0; lfloatData.length(); l+=100)
                    std::cout <floatData[l] << " " ;
                std::cout << std::endl;
            }
        }
    } catch (CORBA::SystemException& ex) {
        return 1;
    }

実行方法

  1. GrxUIを起動。
  2. OpenHRP/sample/controller/SamplePD/SamplePD.sh (.bat) をコマンドラインから実行。
  3. OpenHRP/sample/example/viewSimulator/viewSimulator.sh (.bat) をコマンドラインから実行。

Windowsでコマンドラインから実行する時は、(OpenHRPのインストールディレクトリ)/bin にパスを通してください。