初期化 | |||
---|---|---|---|
機能 | IRACSとの通信の初期化を行う | ||
VB書式 | Function InitIRACS(ByVal mode As Long, ByVal hWnd As Long) As Integer | ||
VB.NET書式 | Function InitIRACS(ByVal mode As Integer, ByVal hWnd As Integer) As Short | ||
C++書式 | short InitIRACS(int mode, HWND hWnd); | ||
C♯書式 | short NATOC.InitNATOC(int mode, int hWnd); | ||
戻り値 | 0 = 正常 | -1 = 通信エラー | |
引数 | mode | 通信モード | 0を指定 |
hWnd | ライブ画像表示ウィンドウ・ハンドル | NULLを指定するとライブ画像はIRACS本体に表示される |
車位置取得 | |||
---|---|---|---|
機能 | 車の現在位置や旋回数等を取得する | ||
VB書式 | Function GetCarPosition(ByRef car_x As Integer, ByRef car_y As Integer, | ||
ByRef car_loop As Integer, ByRef car_angle As Integer) As Integer | |||
VB.NET書式 | Function GetCarPosition(ByRef car_x As Short, ByRef car_y As Short, | ||
ByRef car_loop As Short, ByRef car_angle As Short) As Short | |||
C++書式 | short GetCarPosition(short *car_x, short *car_y, short *car_loop, short *car_angle); | ||
C♯書式 | short IRACS.GetCarPosition(out short car_x, out car train_y, | ||
out short car_loop, out short car_angle); | |||
戻り値 | 0 = 正常 | -1 = 通信エラー | |
引数 | car_x | 車位置X座標 | カメラの座標系(左上=0,0) |
car_y | 車位置Y座標 | カメラの座標系(左上=0,0) | |
car_loop | 車の旋回数 | 時計回り(右折旋回)に1回転(角度変化が360以上)すると+1される 反時計回り(左折旋回)に1回転(角度変化が360以上)すると-1される |
|
car_angle | 車の角度変化 | 旋回の中心に対する角度変化(0〜360)、 右折すると角度分加算され、左折すると角度分減算される |
IRACS制御コマンド | |||
---|---|---|---|
機能 | IRACS本体の制御をする | ||
VB書式 | Function ControlIRACS(ByVal command As Integer) As Integer | ||
VB.NET書式 | Function ControlIRACS(ByVal command As Short) As Short | ||
C++書式 | short ControlIRACS(short command); | ||
C♯書式 | short IRACS.ControlIRACS(short command); | ||
戻り値 | 0 = 正常 | -1 = 通信エラー | -2 = 引数エラー |
引数 | command | 制御コマンド | |
command | SDK_AUTO_STOP | 0 | 自動運転終了(アプリケーションのプログラム) |
SDK_AUTO_START | 1 | 自動運転開始(アプリケーションのプログラム) | |
IRACS_AUTO_STOP | 10 | 自動運転終了(IRACS本体のプログラム) | |
IRACS_AUTO_START | 11 | 自動運転開始(IRACS本体のプログラム) | |
自動運転のプログラムをアプリケーション側のものを使うかIRACS本体側のものを使うかで 使うコマンドが異なります。アプリケーションでプログラムを作った時はSDK_AUTO_STARTで開始してください。 |
車制御コマンド | |||
---|---|---|---|
機能 | 車の制御をする | ||
VB書式 | Function ControlCar(ByVal command As Integer) As Integer | ||
VB書式.NET | Function ControlCar(ByVal command As Short) As Short | ||
C++書式 | short ControlCar(short command); | ||
C♯書式 | short IRACS.ControlCar(short command); | ||
戻り値 | 0 = 正常 | -1 = 通信エラー | -2 = 引数エラー |
引数 | command | 制御コマンド | |
command | CAR_DRIVE_STOP | 0 | 車停止 |
CAR_DRIVE_FORWARD | 1 | 車前進 | |
CAR_DRIVE_BACKWARD | 2 | 車後進 | |
CAR_STEERING_CENTER | 3 | ハンドル直進 | |
CAR_STEERING_LEFT | 4 | ハンドル左折 | |
CAR_STEERING_RIGHT | 5 | ハンドル右折 | |
CAR_TURBO_ON | 6 | 車ターボオン(加速運転) | |
CAR_TURBO_OFF | 7 | 車ターボオフ(通常運転) | |
command(ROBO-Q用) | ROBOQ_FORWARD_STOP | 0 | 前進停止 |
ROBOQ_FORWARD_MIDDLE | 1 | 前進(中速) | |
ROBOQ_TURN_STOP | 3 | 旋回停止 | |
ROBOQ_TURN_LEFT | 4 | 左旋回 | |
ROBOQ_TURN_RIGHT | 5 | 右旋回 | |
ROBOQ_FORWARD_HIGH | 6 | 前進(高速) | |
ROBOQ_FORWARD_LOW | 7 | 前進(低速) | |
ROBO-Qを制御する場合も値が同じ車のcommandで制御ができます。 ただしCAR_DRIVE_BACKWARDは実行しても無視されます。 |
サウンド制御コマンド | |||
---|---|---|---|
機能 | サウンドの制御をする | ||
VB書式 | Function ControlSound(ByVal command As Integer, ByVal sound_no As Integer) As Integer | ||
VB書式.NET | Function ControlSound(ByVal command As Short, ByVal sound_no As Short) As Short | ||
C++書式 | short ControlSound(short command, short sound_no); | ||
C♯書式 | short IRACS.ControlSound(short command, short sound_no); | ||
戻り値 | 0 = 正常 | -1 = 通信エラー | -2 = 引数(command)エラー |
-3 = 引数(sound_no)エラー | |||
引数 | command | 制御コマンド | |
sound_no | サウンド番号 | 1〜100 | |
command | SOUND_PLAY_STOP | 0 | サウンド再生停止 |
SOUND_PLAY_START | 1 | サウンド再生 | |
SOUND_PLAY_LOOP | 2 | サウンド繰返し再生 | |
SOUND_INIT_OVERLAP | 3 | 重ね合わせ準備 | |
SOUND_INIT_OVERLAPは、別のサウンドを再生中にこの番号のサウンドを重ねる時に用います。 このコマンドは処理に時間がかかるため自動運転開始直後に行ってください。(実行中だとタイミングがずれます) なおこのコマンドを行っていないサウンド番号のものを再生をすると前のサウンドは停止されます。 |
追従指標位置設定 | |||
---|---|---|---|
機能 | 追従指標の位置を設定をする | ||
VB書式 | Function SetChaisePosition(ByVal chaise_x As Integer, ByVal chaise_y As Integer) As Integer | ||
VB.NET書式 | Function SetChaisePosition(ByVal chaise_x As Short, ByVal chaise_y As Short) As Short | ||
C++書式 | short SetChaisePosition(short chaise_x, short chaise_y); | ||
C♯書式 | short IRACS.SetChaisePosition(short chaise_x, short chaise_y); | ||
戻り値 | 0 = 正常 | -1 = 通信エラー | |
引数 | chaise_x | X座標 | カメラの座標系(左上=0,0) -1を指定すると追従指標は非表示になる |
chaise_y | Y座標 | カメラの座標系(左上=0,0) | |
追従指標(チーズ)はアプリケーションのカメラ画像に表示されます。 追従指標が表示されるとIRACS本体の機能で車は自動的に追従指標に追従し、追いつくと停止します。 IRACS本体の追従指標の移動操作では位置を変える事はできません。 アプリケーション側でマウスイベントを取得するなりして本APIで位置を変更してください。 |
コントローラー状態取得 | |||
---|---|---|---|
機能 | 本体のコントローラーの状態を取得する | ||
VB書式 | Function GetControlStatus(ByRef status As Integer) As Integer | ||
VB書式.NET | Function GetControlStatus(ByRef status As Short) As Short | ||
C++書式 | short GetControlStaus(short *status); | ||
C♯書式 | short IRACS.GetControlStaus(out short status); | ||
戻り値 | 0 = 正常 | -1 = 通信エラー | |
引数 | status | スイッチ状態 | |
status | CONTROL_STATUS_POWER | 0x01(&H1) | 電源ボタン(プログラム終了) |
CONTROL_STATUS_FORWARD | 0x02(&H2) | 前進ボタン | |
CONTROL_STATUS_BACKWARD | 0x04(&H4) | 後進ボタン | |
CONTROL_STATUS_LEFT | 0x08(&H8) | 左折ボタン | |
CONTROL_STATUS_RIGHT | 0x10(&H10) | 右折ボタン | |
CONTROL_STATUS_TURBO | 0x20(&H20) | ターボ(加速)ボタン | |
CONTROL_STATUS_AUTO | 0x40(&H40) | 自動運転スイッチ(自動運転) | |
スイッチの状態はstatusのビットで返されます。 ビットがONの時はスイッチが上記カッコ内の状態であることを表します。 |
認識画像位置取得 | |||
---|---|---|---|
機能 | 画像認識で検出した画像認識枠を取得する | ||
VB書式 | Function GetBallPosition(ByRef ball_left As Integer, ByRef ball_top As Integer, | ||
ByRef ball_right As Integer, ByRef ball_bottom As Integer) As Integer | |||
VB.NET書式 | Function GetBallPosition(ByRef ball_left As Short, ByRef ball_top As Short, | ||
ByRef ball_right As Short, ByRef ball_bottom As Short) As Short | |||
C++書式 | short GetBallPosition(short *ball_left, short *ball_top, short *ball_right, short *ball_bottom); | ||
C♯書式 | short IRACS.GetBallPosition(out short ball_left, out car ball_top, | ||
out short ball_right, out short ball_bottom); | |||
戻り値 | 0 = 正常 | -1 = 通信エラー | |
引数 | ball_left | 画像認識枠の左X座標 | カメラの座標系(左上=0,0) |
ball_top | 画像認識枠の上Y座標 | カメラの座標系(左上=0,0) | |
ball_right | 画像認識枠の右X座標 | カメラの座標系(左上=0,0) | |
ball_bottom | 画像認識枠の下Y座標 | カメラの座標系(左上=0,0) | |
この関数で画像認識枠を取得する場合は、SetBallActionのBALL_ACTION_STOP以外を実行しておいてください。 |
認識画像の制御設定 | |||
---|---|---|---|
機能 | 認識画像に対する制御を設定をする | ||
VB書式 | Function SetBallAction(ByVal command As Integer, ByVal distance As Integer) As Integer | ||
VB.NET書式 | Function SetBallAction(ByVal command As Short, ByVal distance As Short) As Short | ||
C++書式 | short SetBallAction(short command, short distance); | ||
C♯書式 | short IRACS.SetBallAction(short command, short distance); | ||
戻り値 | 0 = 正常 | -1 = 通信エラー | -2 = 引数(command)エラー |
-3 = 引数(distance)エラー | |||
引数 | command | 制御コマンド | |
command | BALL_ACTION_STOP | 0 | ボール認識終了(ボール追従/回避停止) |
BALL_ACTION_START | 1 | ボール認識開始 | |
BALL_ACTION_CHAISE | 2 | ボール追従開始 | |
BALL_ACTION_ESCAPE | 3 | ボール回避開始 | |
distance | 回避開始距離 (10〜200) |
カメラのピクセル単位 BALL_ACTION_ESCAPE以外の場合は無視 |
|
GetBallPositionで画像認識枠を取得する場合は、BALL_ACTION_STOP以外を実行しておいてください。 追従や回避を行わない場合はBALL_ACTION_STARTで画像認識を開始して置いてください。 ボール追従や回避はプログラムが終了するまで続行しますので途中で止める場合はBALL_ACTION_STOPまたはBALL_ACTION_START(画像認識を続行させる場合)を実行してください。 画像認識枠の中心と車の位置が回避開始距離より小さくなった時に車は画像認識枠と逆方向に進行します。 画像認識枠の中心と車の位置が回避開始距離の2倍距離より大きくなった時に車は停止します。 |
プログラム実行コマンド | |||
---|---|---|---|
機能 | IRACSのプログラムを実行する | ||
VB書式 | Function ExecProgram(ByVal program As String, ByVal wait_done As Integer) As Integer | ||
VB.NET書式 | Function ExecProgram(ByVal program As String, ByVal wait_done As Short) As Short | ||
C++書式 | short ExecProgram(LPCTSTR program, short wait_done); | ||
C♯書式 | short IRACS.ExecProgram(string program, short wait_done); | ||
戻り値 | 0 = 正常 | -1 = 通信エラー | -2 = 引数(program)エラー |
-3 = 引数(wait_done)エラー | |||
program | プログラムパス | 拡張子.ntc、相対パス可(IRACS実行ディレクトリより) | |
wait_done | プログラム終了 | 0:終了を待たない 1:終了を待つ(プログラムが終了するまで アプリケーションへの制御は戻りません) |
|
本機能を使うにはIRACS本体のリビジョンが1.50以上でなければいけません。 プログラムはループ等で繰り返さないようにしておく必要があります。 |