この度 KUKA iiwa をリアルタイムにFB制御するための機構であるFRIを導入した。
導入にあたって得た知見を記録する。
FRIとは
Fast Robot Interfaceの略称。読んで字の如くRobotをFastに制御するためのInterfaceのこと。
内部ではUDP通信を行なっている。
クライアントサーバシステム
システムはクライアントとサーバから構成される。
ローカルPCがクライアント、ロボット内で動かすものがサーバにあたる。
プログラム
サンプルプログラムは、Subrise Workbench上の StationSetup.cat
で、
- Fast Robot Interface Extension Example Applications
- Fast Robot Interface Extension
を選択し、インストールする。すると、Subrise Projectの中に FastRobotInterface_Client_Source
が生成される。その中にクライアントサイドのサンプルコードが入っている。
自分の環境では、 FRI_Client_SDK_Cpp.zip
を解凍し使用した。
プログラムの実行
FRI_Client_SDK_Cpp.zip
を解凍後、 build/GNUMake
直下で make
コマンドを叩くことでbuildされる。
環境によっては、GNUMakeではなくMSVisualStudioを使う必要がある。GNUMakeは対応OSがMac, Linuxである。Windowsでも頑張ればいけるかもしれない
buildが完了すれば、bin
というディレクトリが生成されその中に実行ファイルが配置される。適宜実行すれば良い。
ハマりポイント
IP指定でややハマった。SunriseProjectのStationSetupを開くと、KUKA Option Network Interface
の下にIPが記載してある。これがサーバとなるロボットのIPアドレスを指す。例えば、192.170.10.2
とする。
ローカルPCをコントローラのKONIポートに接続するのだが、このIPとして192.170.10.15
など同一ネットワーク内のIPを設定する必要がある。
ここで設定した 192.170.10.15
のローカルPCのIPアドレスを example
にあるロボット内で実行するプログラムの _clientName
に記載する。保存後、SubriseProjectを同期する。
同期後、下記手順を踏んで実行する。
- ローカルPCの
bin
ディレクトリ内の実行ファイルを実行する。 - その後、SmartPADからアプリケーションを実行する。
まとめ
よく考えたら当たり前であるが、ローカルPCとロボットは同一ネットワークに設定することが重要である。
コメント