ユーザ定義コントローラ基本クラス [詳細]
#include <Controller.h>
Public メソッド | |
| bool | attach (const char *server, int port, const char *myname) |
| モータを動かします | |
| void | loopMain () |
| コントローラループ関数 | |
Static Public メソッド | |
| static void | init () |
| ! コントローラ初期化関数 | |
Protected メソッド | |
| ViewImage * | captureView (ColorBitType cbtype, ImageDataSize size, int id) |
| エージェント視点画像を取得する(サービスプロバイダによる) | |
| ViewImage * | captureView (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) |
| カメラ視線にあるオブジェクトまでの距離を得る | |
| DepthImage * | distanceSensor1D (double start=0.0, double end=255.0, int id=1, ImageDataSize size=IMAGE_320X1) |
| カメラ視線にあるオブジェクトまでの1次元距離データを得る | |
| DepthImage * | distanceSensor2D (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 () |
| SimObj * | getObj (const char *name) |
| 指定のエンティティを取得する | |
| double | getRand () |
| double | getRightEncoderNoise (const char *simObjName) |
| double | getRightEncoderNoise () |
| double | getRightWheelRadius (const char *simObjName) |
| double | getRightWheelRadius () |
| Text * | getText (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.h の 179 行で定義されています。
| 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] |
| 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] |
自分自身の右車輪の半径を取得します
音声データを音声認識処理に掛ける
音声認識サービスプロバイダに音声データを転送し、音声認識結果(テキスト)を得る。
| sound | recvSoundメソッドにより取得した音声データ |
| !=NULL | 成功 | |
| NULL | 失敗 |
| static void Controller::init | ( | ) | [static] |
! コントローラ初期化関数
| bool Controller::isProcessing | ( | ) | [protected, virtual] |
| void Controller::loopMain | ( | ) |
コントローラループ関数
| void Controller::onPostEvent | ( | ) | [protected, virtual] |
| void Controller::onPreEvent | ( | ) | [protected, virtual] |
| 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 | 最大トルク |
1.6.3