Robots Grid Network
What Concept?
人の仕事のコミュニケーションは、人から人への双方向 の会話で実現されます。
同様に、ロボットが人のすべての仕事をするためには、ロボットからロボットへと双方向に通信 する必要があります。
そのため、人の仕事の通信ネットワークはグリッドネットワークとほぼ同じだと考えました。
そこで ロボットグリッドネットワークを設計しました。
IAロボット (RBFホスト)は、命令を処理するためのサーバーとして、または命令を指示するためのクライアントとして使用できます。
制御方向(上図の矢印)は自由に指定できます。
PC が突然ネットワークから切断されることを想定した 自律型ロボット としても開発することができます。
複数のロボットID(RBFライセンス番号)を持つことで、同じID間でのみ制御できます。
全ての IAロボット 通信には、データが圧縮および暗号化されています。
通信リレーによるIAロボット間の通信経路
RBFによってIAロボット化されたPCは、IAロボット間の通信経路を他のIAロボットで中継する事ができます。
また、複数のIAロボットが配置されている場所によってネットワークセグメントが異なる場合や、NATデバイスの内側(プライベートIP LAN)に配置されている場合でも リバースNAT機能を介して目的の IAロボット と通信する事ができます。
簡単な TCPリレー接続 プログラムでの指定方法
プログラムでは、TCPリレー通信のオープン関数 の引数に通信のリレー経路を文字型の配列で指定することで 簡単にTCPリレー接続 させる事ができます。
上の図の配列指定例
( "10.0.0.9", "10.0.0.8", "10.0.0.7", "10.0.0.3", "10.0.0.2", "10.0.0.1" )
|
TCPリレー通信経路上の通信障害
TCPリレー通信の経路でネットワークの障害を発生した場合、TCPリレー経路を変更することで 目的の IAロボット へ接続することができます。
プログラムで TCPリレー通信のオープン関数 で接続エラーが発生した場合、ネットワーク構成の条件より予め到達できる別経路で再接続させることで、目的の IAロボット へ接続することができます。
通常経路の配列指定
( "10.0.0.9", "10.0.0.8", "10.0.0.7", "10.0.0.3", "10.0.0.2", "10.0.0.1" )
|
上の図の別経路の配列指定
( "10.0.0.9", "10.0.0.8", "10.0.0.4", "10.0.0.3", "10.0.0.2", "10.0.0.1" )
|
別経路の配列指定
( "10.0.0.9", "10.0.0.5", "10.0.0.4", "10.0.0.3", "10.0.0.2", "10.0.0.1" )
|
TCPリレー通信の経路変更を利用することで IAロボット の 冗長化構成を簡単に実現 する事ができます。
RBF Data Flow Diagram
RBF API は、TCPが接続されている終端RBFホストで実行されます。
Robowiser Framework(RBF) APIs List
IA Robot APIs List
1: API methods for TCP connection Start, End, and Last Error.
API Name |
Explain |
new() |
Robotic Base API クラスのインスタンスを生成します。 |
Open() |
TCPリレー通信のセッションをオープン(接続)します。 (RBF Original: Robots Grid network) |
Close() |
TCPリレー通信のセッションをクローズ(切断)します。 (RBF Original: Robots Grid network) |
LastErrorCode() |
RBF APIメソッドが最後に失敗したエラーコードを取得します。 |
LastErrorMsg() |
RBF APIメソッドが最後に失敗したエラーメッセージを取得します。 |
2: OSまたはプロセスのリソース取得設定に関するAPI Method
API Name |
Explain |
GetActiveProcessNum() |
実行されているプロセス数を取得します。 |
GetPID() |
実行されているプロセスのPIDを取得します。 |
ExistPID() |
実行されているプロセスのPIDが存在しているかを取得します。 |
GetCPUusageRate() |
指定のPIDまたはOS全体のCPU使用率を取得します。 |
GetPIDMemoryUsage() |
指定のPIDのメモリ使用量を取得します。 |
GetOSMemorySize() |
OS搭載の最大物理メモリサイズ、最大仮想メモリサイズを取得します。 |
GetOSMemoryUsage() |
OSの物理メモリ使用量、仮想メモリ使用量を取得します。 |
GetDiskSize() |
ディスク容量、ディスク使用量を取得します。 |
GetNetworkTraffic() |
ネットワークデバイスの送受信量、リンク速度を取得します。 |
GetCmdout() |
コマンドを実行し、標準出力される行、列のデータを取得します。 |
RegEdit() |
Windowsのレジストリを編集します。 |
DeleteFile() |
ファイルを削除します。 |
FileProperty() |
ファイル/ディレクトリのプロパティ情報の取得/設定を行います。 |
AddRemovePrograms() |
インストールされたソフト一覧の取得/アンインストールします。 |
AccessControlEdit() |
ファイル/フォルダ/レジストリのアクセス制御リストを編集します。 |
GetDriveLetterInfo() |
ドライブレターのディスクデバイス情報を取得します。 |
GetUSBDeviceInfo() |
OSにこれまで接続したUSBデバイス情報を取得します。 |
GetWindowsVersion() |
Windowsのバージョンを取得します。 |
3: OSまたはプロセス制御に関するAPI Method
API Name |
Explain |
RBFStartupCTL() |
RBFサーバの動作モードを変更します。 |
ExecProcess() |
プロセスや実行ファイルを起動します。 |
KillProcess() |
プロセスや実行ファイルを終了させます。 |
Shutdown() |
OSをシャットダウンまたは再起動させます。 |
WindowsAutoLogon() |
ウィンドウズ起動時の自動ログオンの設定 / 解除を行います。 |
RejectDriveLetter() |
ドライブレターのディスクデバイスの切り離しを行います。 |
WaitForSignal() |
シグナル受信待ちを行います。(RBF Original) |
SendSignal() |
シグナルを送信します。 (RBF Original) |
4: 通信に関するAPI Method
API Name |
Explain |
Ping() |
Pingを実行します。 |
MagicPacketSend() |
マジックパケットを送信します。 |
FileTransfer() |
ファイルを転送します。 |
SnmpTake() |
SNMPエージェントにOIDを要求して値を取得します。 |
WaitForSnmpTrap() |
SNMP Trapデータを受信します。 |
GetMSNetComputers() |
Microsoftネットワークのコンピュータ名の一覧を取得します。 |
SharedFolder() |
共有フォルダの作成、解除、接続、切断を行います。 |
HostDiscovery() |
指定のホスト名のRBFホストを検索してIPアドレスを取得します。 |
GetHttpContents() |
指定のURLのHTMLソースを取得します。 |
SaveHttpURLtoFile() |
指定のWebページやリンク先をファイルに保存します。 |
5: メールに関するAPI Method (Supports SSL, TLS, OAuth2)
API Name |
Explain |
SendMail() |
メールを送信します。 |
GetPop3MailList() |
メールボックス内のメール一覧を受信します。 |
GetPop3MailRecv() |
指定されたキーからメールボックス内のメール1つを受信します。 |
DelPop3Mail() |
指定されたキーからメールボックス内のメールを削除します。 |
6: Windows UI制御に関するAPI Method
API Name |
Explain |
FindWindowHnd() |
制御対象のウィンドウハンドルを取得します。(Include Google Chrome, microsoft Edge, FireFox ...) |
SetWindowSizeAdjust() |
表示されているウィンドウの表示位置や幅、高さを変更します。 |
KeyboardReset() |
キーボードのキー状態を初期化します。 |
KeyboardTyping() |
指定のウィンドウハンドル(Foreground Window)にキー入力を行います。 |
MouseClick() |
指定のウィンドウハンドルのオブジェクト要素をクリックします。 (Window Text Object or Graphic Patterns or OCR or etc ... ). |
UIAuto() |
UI Automationでウィンドウ画面をUI操作を行います。 ブラウザ Microsoft Edge, Google Chrome のUI操作も行います。 |
ClipboardText() |
クリップボードのテキスト文字の読み書きを行います。 |
WindowCapture() |
ウィンドウ画面をキャプチャーします。 |
GetWindowPixcel() |
ウィンドウ画面のピクセルRGB値を取得します。 |
GetWindowText() |
ウィンドウハンドルに付随したオブジェクトのテキスト文字を取得します。 |
GetTextOCR() |
OCRより画像ファイル、画面のテキスト文字を取得します。 |
KMILock() |
マウスクリック/キーボード入力を無効または解除します。 |
MsgWindow() |
メッセージウィンドウを表示します。 |
Speech() |
指定のテキスト文字を音声合成で発声します。 |
PlaySound() |
サウンドファイルを再生します。 |
VoiceCmd() |
マイクから入力された音声により処理を分岐します。 |
RBFHostStatus() |
RBFホストのWindow UI画面の表示状態を取得します。 |
WindowStation() |
ウィンドウステーションを制御します。 |
QuickRobo() |
RBF_QuickRobo で作成したUIDファイルを実行します。 |
7: Excel ファイル 作成 / 編集 に関するAPI Method
API Name |
Explain |
ExcelOpen() |
Excelアプリを起動してExcelファイルを開きます。 |
ExcelSheet() |
Excelのシートを編集します。 |
ExcelGetRange() |
シートのセル範囲のプロパティ情報をExcelアプリから取得(ダウンロード)します。 |
ExcelUploadRange() |
取得したセル範囲のプロパティ情報をExcelアプリにアップロード(設定)します。 |
ExcelGetPtyDat() |
取得したセルのプロパティ値を取得します。 |
ExcelSetPtyDat() |
取得したセルのプロパティ値を設定します。 |
ExcelSetBorder() |
シートのセル範囲の罫線を設定します。 |
ExcelSave() |
Excelファイルを保存します。(PDFファイルに変換して保存できます。) |
ExcelClose() |
Excelアプリを終了します。 |
8: Edge の IEモード / HTTP制御に関するAPI Method (Using IE components)
API Name |
Explain |
IE_NewURL() |
指定のURLをInternet Explorer (IE) に表示します。 |
IE_TagClick() |
IEに表示されている指定のタグをクリックします。 |
IE_InputText() |
IEの入力タグにテキスト文字を入力または取得します。 |
IE_BusyWait() |
IE/がHTMLコンテンツの読込が完了するまで待機します。 |
IE_GetHTMLSource() |
IEに表示されているHTMLソースを取得します。 |
IE_GetTableDat() |
IEに表示されている<table<タグのセルの値を取得します。 |
9: Windowsセンサーに関するAPI Method
API Name |
Explain |
GetGPSLocation() |
PCの位置情報を取得します。 |
EarthquakeAlert() |
緊急地震警報によりWindows緊急シャットダウンを開始します。または、他のRBFホストへ通知します。 |
10: Utility API methods.
API Name |
Explain |
ZipFile() |
Zipファイルを作成/展開します。 |
HiddenString() |
文字列を共通鍵方式で 暗号化 / 復号化 します。 |
WaitForTime() |
指定の時刻になるまでプログラムを停止(ブロック)させます。 |
IsMatchWildcardString() |
文字列のワイルドカード検索を行います。 |
LogInit() |
指定のファイルにログを記録する初期設定を行います。 |
Printf() |
ログファイルにメッセージを書き込みます。 |
InputWindow() |
メッセージボックスまたは入力ボックスを表示して入力待ちになります。 |
11: Term(Telnet/SSH) 制御に関するAPI Method
API Name |
Explain |
new() |
Robotic Term API クラスのインスタンスを生成します。 |
Open() |
Telnet/SSHサーバまでのTCPリレー通信セッションをオープン(接続)します。(RBF Original: Robots Grid network) |
Close() |
Telnet/SSHサーバまでのTCPリレー通信セッションをクローズ(切断)します。(RBF Original: Robots Grid network) |
LastErrorCode() |
RBF API Methodが失敗した最後のエラーコードを取得します。 |
LastErrorMsg() |
RBF API Methodが失敗した最後のエラーメッセージを取得します。 |
Login() |
Telnet/SSHサーバにログインします。 |
Print() |
Telnet/SSHサーバにコマンドを送信します。 |
Waitfor() |
指定のマッチ文字を受信するまで待ちます。 |
Gets() |
受信キューに溜まっているデータを取得します。 |
RecvFlush() |
受信キューに溜まっているデータを全て削除します。 |
SetCmdPrompt() |
コマンドプロンプトにマッチする正規表現を設定します。 |
SetTermTimeout() |
Telnet/SSHサーバとの通信タイムアウトを設定します。 |
12: エッジAIカメラ制御に関するAPI Method
API Name |
Explain |
AICamOpen() |
カメラデバイスをオープンします。 |
AICamClose() |
カメラデバイスをクローズします。 |
AICamReadImg() |
カメラデバイスのカメラ映像を読み込みます。 |
AICamShowImg() |
MAT名の画像をウィンドウ画面に表示します。 |
AICamDestroyWindow() |
画像が表示されているウィンドウ画面を閉じます。 |
AICamCloneCopy() |
MAT名の画像を別のMAT名にクローンコピーします。 |
AICamWriteFileImg() |
MAT名の画像をファイルに保管します。 |
AICamRecVideo() |
MAT名の画像を動画ファイルに保存します。 |
AICamDrawText() |
MAT名の画像にテキスト文字を描画します。 |
AICamDrawShape() |
MAT名の画像に図形を描画します。 |
AICamDrawTimestamp() |
MAT名の画像にタイムスタンプを描画します。 |
AICamSetBrightImg() |
MAT名の画像のコントラスト・明るさを変更します。 |
AICamSetFilterImg() |
MAT名の画像をノイズフィルタリングします。 |
AICamSetBinImg() |
MAT名の画像を二値化(白黒)変換します。 |
AICamDetectEdgeImg() |
MAT名の画像からエッジを検出します。 |
AICamDetectContours() |
MAT名の画像から輪郭を検出を検出します。 |
AICamDetectFeatures() |
MAT名の画像から特徴点を検出を検出します。 |
AICamSetHSVImg() |
MAT名の画像をHSV変換します。 |
AICamDetectOnnx() |
NNXよりオブジェクト(物体)画像を検出します。 |
※上記のAPIリスト表示は実際とは異なっている場合があります。
RBF APIサンプルプログラム集 サイト
RBF APIを使用した開発時に制御する画面やアプリケーションの動作を分析し、キーボードやマウスの自動制御を
シミュレートできるソフトウェア
RBF Application Analyzer については、ご利用ガイド を参照ください。
ご利用ガイド
Back