クラス Controller

ユーザ定義コントローラ基本クラス [詳細]

#include <Controller.h>

Controllerに対する継承グラフ
ControllerImpl SimObj::RequestSender ControllerInf

すべてのメンバ一覧

Public メソッド

bool attach (const char *server, int port, const char *myname)
 モータを動かします
void loopMain ()
 コントローラループ関数

Static Public メソッド

static void init ()
 ! コントローラ初期化関数

Protected メソッド

ViewImagecaptureView (ColorBitType cbtype, ImageDataSize size, int id)
 エージェント視点画像を取得する(サービスプロバイダによる)
ViewImagecaptureView (ColorBitType cbtype, ImageDataSize size)
 エージェント視点画像を取得する(サービスプロバイダによる)
 Controller ()
 コンストラクタ
bool detectEntities (std::vector< std::string > &v, int id)
 視野内に存在するエンティティの検出(サービスプロバイダによる)
bool detectEntities (std::vector< std::string > &v)
 視野内に存在するエンティティの検出(サービスプロバイダによる)
void differentialWheelsSetSpeed (const char *simObjName, double left, double right)
void differentialWheelsSetSpeed (double left, double right)
unsigned char distanceSensor (double start=0.0, double end=255.0, int id=1)
 カメラ視線にあるオブジェクトまでの距離を得る
DepthImagedistanceSensor1D (double start=0.0, double end=255.0, int id=1, ImageDataSize size=IMAGE_320X1)
 カメラ視線にあるオブジェクトまでの1次元距離データを得る
DepthImagedistanceSensor2D (double start=0.0, double end=255.0, int id=1, ImageDataSize size=IMAGE_320X240)
 カメラ視線にあるオブジェクトまでの2次元距離データを得る
bool getAllEntities (std::vector< std::string > &v)
 シミュレーション世界内に存在するすべてのエンティティの名前を取得する
double getAxleLength (const char *simObjName)
double getAxleLength ()
double getLeftEncoderNoise (const char *simObjName)
double getLeftEncoderNoise ()
double getLeftWheelRadius (const char *simObjName)
double getLeftWheelRadius ()
SimObjgetObj (const char *name)
 指定のエンティティを取得する
double getRand ()
double getRightEncoderNoise (const char *simObjName)
double getRightEncoderNoise ()
double getRightWheelRadius (const char *simObjName)
double getRightWheelRadius ()
TextgetText (RawSound &sound)
 音声データを音声認識処理に掛ける
bool isProcessing ()
 コントローラが処理中であるか?
void onPostEvent ()
 コールバック関数を呼び出した後の処理を実装する
void onPreEvent ()
 コールバック関数を呼び出す前の処理を実装する
void setWheelProperty (const char *objectName, char *leftWheelName, double leftMotorConsumption, double leftWheelMaxSpeed, double leftWheelSpeedUnit, double leftSlipNoise, double leftEncoderResolution, double leftMaxForce, char *rightWheelName, double rightMotorConsumption, double rightWheelMaxSpeed, double rightWheelSpeedUnit, double rightSlipNoise, double rightEncoderResolution, double rightMaxForce)
 Webots互換のパラメータを設定します。変数の先頭にleftがつくものは左側車輪の設定、rightのつくものは右側車輪の設定.
void setWheelProperty (char *leftWheelName, double leftMotorConsumption, double leftWheelMaxSpeed, double leftWheelSpeedUnit, double leftSlipNoise, double leftEncoderResolution, double leftMaxForce, char *rightWheelName, double rightMotorConsumption, double rightWheelMaxSpeed, double rightWheelSpeedUnit, double rightSlipNoise, double rightEncoderResolution, double rightMaxForce)
 Webots互換のパラメータを設定します。変数の先頭にleftがつくものは左側車輪の設定、rightのつくものは右側車輪の設定.

説明

ユーザ定義コントローラ基本クラス

エージェントコントローラはこのクラスを継承したクラスを作 成し、そこにエージェントの振舞いを記述する。

Controller.h179 行で定義されています。


コンストラクタとデストラクタ

Controller::Controller (  )  [protected]

コンストラクタ


関数

bool Controller::attach ( const char *  server,
int  port,
const char *  myname 
)

モータを動かします

左車輪をスリップさせます。 スリップ量はleftSlipNoiseから算出される。 右車輪をスリップさせます。 スリップ量はleftSlipNoiseから算出される。 角速度と電力から、トルクを算出する。 モータの計算式は下記の式に従うとする。 T P = F・rω = ーー ・ rω = 2πTf r P : 消費電力[W] F : タイヤにかかる力[N] r : タイヤの半径[m] ω : 角周波数[rad/sec] T : トルク[N・m] f : 周波数(回転数)[Hz]

引数:
motorConsumption モータの電力[W]
radius 車輪の半径[m]
wheelSpeed 車輪の角速度[rad/sec]
戻り値:
車輪にかかるトルク[N・m]
引数:
jointName ジョイント名
motorConsumption 電力[W] エージェントにコントローラを割り当てる シミュレーションサーバに接続し、指定したエージェントに当コントローラを割り当てる
server シミュレーションサーバ(IPアドレスまたはホスト名)
port シミュレーションサーバポート番号
myname エージェント名

ControllerImplを再定義しています。

ViewImage* Controller::captureView ( ColorBitType  cbtype,
ImageDataSize  size,
int  id 
) [protected]

エージェント視点画像を取得する(サービスプロバイダによる)

引数:
cbtype 画像タイプ
size 画像サイズ
id カメラID
戻り値:
!= NULL 画像データ
NULL 失敗
ViewImage* Controller::captureView ( ColorBitType  cbtype,
ImageDataSize  size 
) [protected]

エージェント視点画像を取得する(サービスプロバイダによる)

引数:
cbtype 画像タイプ
size 画像サイズ
戻り値:
!= NULL 画像データ
NULL 失敗
bool Controller::detectEntities ( std::vector< std::string > &  v,
int  id 
) [protected]

視野内に存在するエンティティの検出(サービスプロバイダによる)

引数:
v エンティティ名を格納するコンテナ
id カメラID
戻り値:
true 成功
false 失敗
bool Controller::detectEntities ( std::vector< std::string > &  v  )  [protected]

視野内に存在するエンティティの検出(サービスプロバイダによる)

引数:
v エンティティ名を格納するコンテナ
戻り値:
true 成功
false 失敗
void Controller::differentialWheelsSetSpeed ( const char *  simObjName,
double  left,
double  right 
) [protected]

左右の車輪にそれぞれことなるスピードを与える

引数:
simObjName SimObjの名前
left 左車輪の角速度
right 右車輪の角速度
void Controller::differentialWheelsSetSpeed ( double  left,
double  right 
) [protected]

自分自身の左右の車輪にそれぞれことなるスピードを与える

引数:
left 左車輪の角速度
right 右車輪の角速度
unsigned char Controller::distanceSensor ( double  start = 0.0,
double  end = 255.0,
int  id = 1 
) [protected]

カメラ視線にあるオブジェクトまでの距離を得る

引数:
id カメラID
DepthImage* Controller::distanceSensor1D ( double  start = 0.0,
double  end = 255.0,
int  id = 1,
ImageDataSize  size = IMAGE_320X1 
) [protected]

カメラ視線にあるオブジェクトまでの1次元距離データを得る

引数:
id カメラID
DepthImage* Controller::distanceSensor2D ( double  start = 0.0,
double  end = 255.0,
int  id = 1,
ImageDataSize  size = IMAGE_320X240 
) [protected]

カメラ視線にあるオブジェクトまでの2次元距離データを得る

引数:
id カメラID
bool Controller::getAllEntities ( std::vector< std::string > &  v  )  [protected]

シミュレーション世界内に存在するすべてのエンティティの名前を取得する

引数:
v エンティティ名を格納するコンテナ
戻り値:
true 成功
false 失敗
double Controller::getAxleLength ( const char *  simObjName  )  [protected]

車軸の長さを取得します

double Controller::getAxleLength (  )  [protected]

自分自身の車軸の長さを取得します

double Controller::getLeftEncoderNoise ( const char *  simObjName  )  [protected]

左車輪のエンコーダのノイズ蓄積量を取得します

double Controller::getLeftEncoderNoise (  )  [protected]

自分自身の左車輪のエンコーダのノイズ蓄積量を取得します

double Controller::getLeftWheelRadius ( const char *  simObjName  )  [protected]

左車輪の半径を取得します

double Controller::getLeftWheelRadius (  )  [protected]

自分自身の左車輪の半径を取得します

SimObj* Controller::getObj ( const char *  name  )  [protected]

指定のエンティティを取得する

引数:
name エンティティ名
double Controller::getRand (  )  [protected]

0 - 1までの一様分布の乱数を生成します

double Controller::getRightEncoderNoise ( const char *  simObjName  )  [protected]

右車輪のエンコーダのノイズ蓄積量を取得します

double Controller::getRightEncoderNoise (  )  [protected]

自分自身の右車輪のエンコーダのノイズ蓄積量を取得します

double Controller::getRightWheelRadius ( const char *  simObjName  )  [protected]

右車輪の半径を取得します

double Controller::getRightWheelRadius (  )  [protected]

自分自身の右車輪の半径を取得します

Text* Controller::getText ( RawSound sound  )  [protected]

音声データを音声認識処理に掛ける

音声認識サービスプロバイダに音声データを転送し、音声認識結果(テキスト)を得る。

引数:
sound recvSoundメソッドにより取得した音声データ
戻り値:
!=NULL 成功
NULL 失敗
static void Controller::init (  )  [static]

! コントローラ初期化関数

bool Controller::isProcessing (  )  [protected, virtual]

コントローラが処理中であるか?

ControllerInfを実装しています。

Controller.h445 行で定義されています。

void Controller::loopMain (  ) 

コントローラループ関数

void Controller::onPostEvent (  )  [protected, virtual]

コールバック関数を呼び出した後の処理を実装する

ControllerInfを実装しています。

Controller.h453 行で定義されています。

void Controller::onPreEvent (  )  [protected, virtual]

コールバック関数を呼び出す前の処理を実装する

ControllerInfを実装しています。

Controller.h449 行で定義されています。

void Controller::setWheelProperty ( const char *  objectName,
char *  leftWheelName,
double  leftMotorConsumption,
double  leftWheelMaxSpeed,
double  leftWheelSpeedUnit,
double  leftSlipNoise,
double  leftEncoderResolution,
double  leftMaxForce,
char *  rightWheelName,
double  rightMotorConsumption,
double  rightWheelMaxSpeed,
double  rightWheelSpeedUnit,
double  rightSlipNoise,
double  rightEncoderResolution,
double  rightMaxForce 
) [protected]

Webots互換のパラメータを設定します。変数の先頭にleftがつくものは左側車輪の設定、rightのつくものは右側車輪の設定.

引数:
objectName エージェントの名前
leftWheelName 車輪のジョイント名
leftMotorConsumption 車輪の消費電力(W)
leftWheelRadius 車輪の半径(m)
leftWheelMaxSpeed 車輪の最大角速度(rad/s)
leftWheelSpeedUnit wb_differential_wheels_set_speed で設定される速度の単位をセット(rad/s)
leftSlipNoise 一様分布にしたがう車輪のスリップ(0.0 - 1.0)
leftEncoderNoise スリップノイズの蓄積
leftEncoderResolution 1[rad]あたりどの程度のスリップが生じるか
leftMaxForce 最大トルク
rightWheelName 車輪のジョイント名
rightMotorConsumption 車輪の消費電力(W)
rightWheelRadius 車輪の半径(m)
rightWheelMaxSpeed 車輪の最大角速度(rad/s)
rightWheelSpeedUnit wb_differential_wheels_set_speed で設定される速度の単位をセット(rad/s)
rightSlipNoise 一様分布にしたがう車輪のスリップ(0.0 - 1.0)
rightEncoderNoise スリップノイズの蓄積
rightEncoderResolution 1[rad]あたりどの程度のスリップが生じるか
rightMaxForce 最大トルク
void Controller::setWheelProperty ( char *  leftWheelName,
double  leftMotorConsumption,
double  leftWheelMaxSpeed,
double  leftWheelSpeedUnit,
double  leftSlipNoise,
double  leftEncoderResolution,
double  leftMaxForce,
char *  rightWheelName,
double  rightMotorConsumption,
double  rightWheelMaxSpeed,
double  rightWheelSpeedUnit,
double  rightSlipNoise,
double  rightEncoderResolution,
double  rightMaxForce 
) [protected]

Webots互換のパラメータを設定します。変数の先頭にleftがつくものは左側車輪の設定、rightのつくものは右側車輪の設定.

引数:
leftWheelName 車輪のジョイント名
leftMotorConsumption 車輪の消費電力(W)
leftWheelRadius 車輪の半径(m)
leftWheelMaxSpeed 車輪の最大角速度(rad/s)
leftWheelSpeedUnit wb_differential_wheels_set_speed で設定される速度の単位をセット(rad/s)
leftSlipNoise 一様分布にしたがう車輪のスリップ(0.0 - 1.0)
leftEncoderNoise スリップノイズの蓄積
leftEncoderResolution 1[rad]あたりどの程度のスリップが生じるか
leftMaxForce 最大トルク
rightWheelName 車輪のジョイント名
rightMotorConsumption 車輪の消費電力(W)
rightWheelRadius 車輪の半径(m)
rightWheelMaxSpeed 車輪の最大角速度(rad/s)
rightWheelSpeedUnit wb_differential_wheels_set_speed で設定される速度の単位をセット(rad/s)
rightSlipNoise 一様分布にしたがう車輪のスリップ(0.0 - 1.0)
rightEncoderNoise スリップノイズの蓄積
rightEncoderResolution 1[rad]あたりどの程度のスリップが生じるか
rightMaxForce 最大トルク

このクラスの説明は次のファイルから生成されました:
sigserverに対してTue Dec 13 17:34:19 2011に生成されました。  doxygen 1.6.3