まずFANUCはROS Supportしません。
このFANUC Driver PackagesはすべてCommunity Level Supportされています。
ROS Install
以下のLINKから参考してください。
注意するのはROS Industrial FANUC Driver SupportできるのVersionは以下になります。
- Indigo
- melodic
- indigo
- Kinetic
自分はKinetic使っていますので。
http://wiki.ros.org/kinetic/Installation/Ubuntu
もしRaspberryで実装しようの場合
Installation of the ROS-Industrial driver on Fanuc controllers
Fanuc ControllerにROS-Industrial driverをインストール方法を説明します。ROS-Industrial driverをインストールしたあとにProgramとControllerをConfigureする必要があります。
それらの手順はReal-ControllerやRoboguide シミュレーターでもできます。
インストール オプション
Fanuc ControllerにROS-Industrial driverをインストールするには2つの方法があります。
Source Fileからのインストール(Source Install)か事前コンパイルされたBinary Filesインストール(Binaries Install)があります。
どうやらBinaries Installが推奨らしく、もっと早く問題少ないと言われています。(注意するにはIndigoではKAREL Binariesない)。ROSのバージョンさえ決めれば、あといくつのFilesを転送するだけになります。
もしBinaries Installが許されない場合は、まだSource Installの方法があります。
Software options
どっちらのInstall optionであろと、Robot ControllerがNetworkとTCP/IP Supoortする必要がありますので、以下2つのOptionsが必要になります。
R632 – KAREL
R648 – User Socket Messaging
Source Install
FileをVirtual Robot ControllerであろうかReal Robot Controllerであろう、同じのFolder directoryに入れます。
事前準備
- KAREL Binary FilesとTP Binary File
- Controllerにアクセスするできる(USB・Network Connection)
- FANCU DriverのCopy(Version >0.2)
- Fanuc Roboguide インストールされたパソコン
- Windows PC
WorkCell作成
まずRoboguideから新しいWorkCellを作成します。そして7:Robot OptionsのところにR632とR648のOptionを入れてください。
Version IDの確認方法
Importing
ROS-Industrial プログラムをRobot Controllerに転送する前まずSourceからBinariesに変換する必要があります。Cell BrowserからKARELとTPE Source FileをImportすることができます。
Project>Add します。
そして.klと.lsの拡張子があるFileを選び、Importします。
もしFanuc DriverのVersion>0.3.0なら.klだけでOKです。それ以下のバージョンなら_h.klと_t.klも入れてください。
Building
Source FileがImport終わったら次Binariesにコンパイルします。
Project>Build>All
エラーないように注意してください。
ProgramsがROSRELAYなどが増えたと見えましたね。
Binaries Install
Roboguideから自動でBinary FilesをVirtual Robot Controllerに読み込み、特別なStepなし。
事前準備
- KAREL Binary FilesとTP Binary File
- Controllerにアクセスするできる(USB・Network Connection)
Download
Fanuc_DriverのGithubからバージョンに合わせて.pcと.tpのFileをダウンロードします。File名はSource Installの部分にあるBuildingと同じなFileが必要です。
Filesに先Buildされたら.pc .tpのFilesが増えたとわかります。それを使います。
Copying the Binaries
最後に、それらのBinaries FileをControllerに転送します。FTPやUSBでもPCMCIA メモリカードでもOKです。
注意
自分はReal Controllerもちろん持っていませんのでFTPからLocal hostに転送する方法やそれらのBinaries FilesをそのままWorkCellのプロジェクトに貼り付けることOKです。
Workcellプロジェクト貼り付ける場合は、File Pathは
yourWorkcells\\Robo Name\MCになります。
以下のFilesですね。
TYPE>KAREL Progsし、BinariesのFilesはちゃんとCopuしたかどうかを確認します。
このようなROS_RELAYのプログラムあれば、OKです。
TYPE>TP ProgramsでTPEプログラムをちゃんと入れたかを確認します。
-BCKET-はDefaultのものでROS-Industrialと関係ありません。
FANUC Controllers Configurations
次はFanuc ControllerにROS-Industrialの設定を説明します。ROS-Industrialプログラムが実行できる前、Controller側に少し細かい設定が必要です。
Server Tag
プログラムros_stateとros_replayはUser Socket Messaging(USM)のオプションを使用し、2つのServer Tagsが占有します。ROS-IndustrialはDefault上で3と4を使っています。1と2はFTP Serverで使われています。
それらのServer TagsはHost Comm setup screenから設定できます。
SETUP>NEXT>Host Commします。
SHOW>Serversします。
いまのScreenshotはもうすでに追加された状態ですが、Tag S3とS4にProtocol SMとして設定されてる状態で、State=Startedになると見えます。
Tag S3の設定はこうになります:
ProtocolはSMです。
Startup stateはSTARTです。
Inactivity timeoutは1 Minにします
Tag S4も同じです。
最後はCold Startします。Tag S3,S4は起動したかどうか確認してください。
Maximum Concurrent Task Number
Default上ではControllerは少数のUser Taskをしか走れないように制限され、その制限によりROS-Industrialのプログラムが起動できなくなる場合があります。これを回避する方法があります。
$SCR.$MAXNUMTASK
実行できるUser Taskの数はその変数に参照します。KARELプログラムが起動できるようにその変数を3以上に設定してください。
注意
System変数を変更することにより不安定な動作と繋がります。作業する前ControllerのBackupや周りの安全を十分確認してください。
Controlled start
ちなみにその変数はMenu>NEXT>SYSTEM>Variablesのところに行って、$SCR>ENTERしたら$MAXNUMTASKの変数が出てきます。
その変数を変更すrにはControllerをControlled startする必要があります。
そしてMenu>NEXT>PROGRAM SETUPで新しい値を入れてください。
設定完了したらFctn>START(COLD)でControllerリセットします。
KAREL Programs
よし、今度はController上のKARELとTPプログラムを設定します。
ros_relay、ros_stateのDefault状態は以下です。
ros_relay
ros_state
まずKAREL PROGRAMの画面行きます。
ROS_DELAY移動して、ENTERで選択します。
そしてDATAボタン。
CFG_をクリックします。
アプリケーションに合わせて設定しましょう。
注意するのはそれらのTagはFLG[]に対応しています。
Menu>I/O>Next>Flagです。
Running The ROS Industrial Driver
では、これからどうやってROS Industrial Driverからfanuc_X_support と fanuc_M_moveit_config 起動するかを説明します。
事前準備
ここに来るまで、まず下記のものは準備してたを確認しましょう。
- fanuc_driver PackageとあなたのロボットSupportするPackage
(fanuc_X_support)、X=ロボットの型式 - Moveitやarm_navigation のPackages
(fanuc_M_moveit_config)、X=ロボットの型式 - Linux PC、ROS NodeとRVIZを実行用
- RoboguideがインストールされたPC(シミュレーションの場合)
コマンド
>Roboguide上で確認
Roboguideでros_stateプログラムを起動し、Linux PCで以下のコマンドを実行します。
そしてJoggingしRobotの状態を確認します。Ctrl+Cで終了できます。
roslaunch fanuc_X_support robot_state_visualize_M.launch robot_ip:=IP_OF_ROBOGUIDE use_bswap:=false
>Real Robot Controller上で確認
Teaching Pentant上でros_stateプログラムを起動し、Linux PCで以下のコマンドを実行します。そしてJoggingしRobot状態を確認します。Ctrl+Cで終了できます。
roslaunch fanuc_X_support robot_state_visualize_M.launch robot_ip:=IP_OF_ROBOT
>Real Robot Controller x moveit Configuration
RobotをMode T1に切り替え、Teaching Pentantからros TPE プログラムを起動し、Linux PCで以下のコマンドを実行します。Moveit上で簡単な動きを試し、オペレーターにTPを持ちながら安全注意してください。Ctrl+Cで終了できます。T1が問題ないならT2やAutoに木に変えてもOKです。
roslaunch fanuc_M_moveit_config moveit_planning_execution.launch sim:=false robot_ip:=IP_OF_ROBOT
PayLoad,Tool,UserFrame
今回はそれは説明しませんので…まずMoveit!とROS Industrialを先に勉強しないと…
Motion Speed and Segment Termination
先にも設定しましたが、Default上ではCNT =50%、Fixed Joint=20%になっています。もちろんその値を可変することができます。今回はそれを説明しませんので…
以下のLINKで説明があります:
結果
Useful Link
fanuc_driver
http://wiki.ros.org/fanuc_driver?distro=melodic
Configuration of the ROS-Industrial driver on Fanuc controllers
http://wiki.ros.org/fanuc/Tutorials/hydro/Configuration#Flags_and_Registers
Running the ROS-Industrial driver programs on your Fanuc robot
http://wiki.ros.org/fanuc/Tutorials/Running
Working with ROS-Industrial Robot Support Packages
http://wiki.ros.org/Industrial/Tutorials/WorkingWithRosIndustrialRobotSupportPackages
Installation of the ROS-Industrial driver on Fanuc controllers
http://wiki.ros.org/fanuc/Tutorials/hydro/Installation#Building
Troubleshooting
https://wiki.ros.org/fanuc_driver/Troubleshooting
ROS Industrial
http://wiki.ros.org/Industrial
Fanuc
Github
https://github.com/ros-industrial/fanuc
最後
はーい、お疲れ様ーです。
このシリーズではFANUCのロボットとROBOGUIDEを使用について勉強用のメモになります。あくまでも個人的書いてたものなので、実際使うときには安全を注意し、経験あるエンジニアと一緒に作業してくださいね。
Twitter:@3threes2
Email:soup01threes@gmail.com
Youtube Channel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ