メインページ | ネームスペース一覧 | クラス階層 | 構成 | Directories | ファイル一覧 | ネームスペースメンバ | 構成メンバ | ファイルメンバ | 関連ページ

クラス Spr::HISpidar4D

#include <HISpidar4D.h>

Spr::HIForceDevice3Dを継承しています。

Spr::HISpidar4Dのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public メソッド

Protected メソッド

Protected 変数


説明

4本糸のSPIDAR. 糸の長さから座標計算を行ったり、出力する力覚から各モータの 出力を計算したりする。出力の計算に2次計画法を用いているため, HIS/Fortran の libF77.lib libI77.lib QuadPR.lib が必要.
SPIDARの定数の設定例
Init(dev, motPos, 0.5776, 2.924062107079e-5f, 0.5f, 20.0f);

//	モータの取り付け位置. モータが直方体に取り付けられている場合は,
#define PX	0.265f	//	x方向の辺の長さ/2
#define PY	0.265f	//	y方向の辺の長さ/2
#define PZ	0.265f	//	z方向の辺の長さ/2
Vec3f motorPos[][4] =	//	モータの取り付け位置(中心を原点とする){
	{Vec3f(-PX, PY, PZ),	Vec3f( PX, PY,-PZ), Vec3f(-PX,-PY,-PZ), Vec3f( PX,-PY, PZ)},
	{Vec3f( PX, PY, PZ),	Vec3f(-PX, PY,-PZ), Vec3f( PX,-PY,-PZ), Vec3f(-PX,-PY, PZ)}
};

//	1ニュートン出すためのDAの出力電圧[V/N]
//	maxon:		0.008[m] / 0.0438[Nm/A] / 0.5[A/V] =  0.365296803653
//	千葉精機:	0.008[m] / 0.0277[Nm/A] / 0.5[A/V] =  0.5776
sp->VoltPerNewton(0.5776f);

//	1カウントの長さ [m/plus]	実測値: 2.924062107079e-5f
sp->LenPerPlus(2.924062107079e-5f);

//	最小張力 [N]
sp->MinForce(0.5f);

//	最大張力 [N]
sp->MaxForce(20.0f);

HISpidar4D.h44 行で定義されています。


関数

float Spr::HISpidar4D::AvailableForce int  disable,
Vec3f f,
Vec3f v3Str
[protected]
 

出力可能な力を計算し、その出力の得点を計算する.

引数:
disable 使用しない糸の番号
f 出力したい力. 出力可能な力に変更される.
v3Str 4本の糸の向き
戻り値:
得点(力の正確さとモータ出力の大きさで決まる。 この糸を選択することの正しさ)

void Spr::HISpidar4D::InitMat  )  [protected]
 

位置を計算するための行列の初期化

virtual bool Spr::HISpidar4D::Init DVDeviceManager dev  )  [virtual]
 

デバイスの初期化(使用前に呼ぶ)

virtual bool Spr::HISpidar4D::Init DVDeviceManager dev,
Vec3f motorPos,
float  vpn,
float  lpp,
float  minF,
float  maxF
[virtual]
 

デバイスの初期化(使用前に呼ぶ)

virtual bool Spr::HISpidar4D::BeforeCalib  )  [inline, virtual]
 

キャリブレーションの前に行う処理

Spr::HIHapticDeviceを再定義しています。

HISpidar4D.h82 行で定義されています。

virtual bool Spr::HISpidar4D::Calib  )  [virtual]
 

キャリブレーション

Spr::HIHapticDeviceを再定義しています。

void Spr::HISpidar4D::SetMinForce  ) 
 

最低張力を出力

virtual void Spr::HISpidar4D::SetForce const Vec3f f  )  [inline, virtual]
 

力の出力

Spr::HIForceDevice3Dを実装しています.

HISpidar4D.h88 行で定義されています。

virtual void Spr::HISpidar4D::Update float  dt  )  [virtual]
 

デバイスの状態を更新する.

Spr::HIForceDevice6Dを再定義しています。

virtual Vec3f Spr::HISpidar4D::GetForce  )  [virtual]
 

デバイスの実際の提示力を返す

Spr::HIForceDevice6Dを実装しています.

virtual Vec3f Spr::HISpidar4D::GetPos  )  [inline, virtual]
 

デバイスの現在位置を返す

Spr::HIForceDevice6Dを実装しています.

HISpidar4D.h94 行で定義されています。


変数

Vec3f Spr::HISpidar4D::posSqrConst [protected]
 

位置を計算するための定数

HISpidar4D.h52 行で定義されています。

Matrix3f Spr::HISpidar4D::matPos [protected]
 

位置を計算するための行列

HISpidar4D.h54 行で定義されています。

HISpidarMotor Spr::HISpidar4D::motor[4] [protected]
 

モータ

HISpidar4D.h60 行で定義されています。


このクラスの説明は次のファイルから生成されました:
Springheadに対してSun Apr 16 02:00:50 2006に生成されました。  doxygen 1.4.1