0794-70-8407
受付時間 / 9:00〜17:00(平日)
URCapの開発手順を解説 

URCapの開発手順を解説 

協働ロボット 2024.07.04

今回はURを用いたURCapの開発について、環境構築から実際の手順まで解説していきたいと思います

導入

URとは

UR(Universal Robot)とはUniversal Robots社が開発した協働ロボットで、人とロボットが協力して作業することができるロボットです。軽量でスペースを必要としないため、既存の生産レイアウトを変更することなく導入することができます。ねじ締め、梱包、パレタイジング、溶接・研磨など多岐にわたる用途で用いることができます。

URは、URCapという周辺機器やプラグインを開発するためのフレームワークを利用することで自動化や、さまざまな機能を拡張することができます。

今回はURcap開発手順について、説明していきたいと思います。

URCapの開発環境 

今回はWindowsにLinuxの仮想マシンを立ち上げ開発を行います。シミュレータを用いたテストに必要な環境は以下になります。

実際に開発に使用したのは以下になります。(推奨環境とは異なります)
*2024/5/16時点

・Windows11(4コア、8GBメモリ)
・GitHub Desktop(任意)
・Docker Desktop
・IntelliJ IDEA Community Edition

GitHub Desktopのダウンロード

ローカルでソースコードを管理することができるデスクトップアプリのGitHub Desktop(https://desktop.github.com/)をダウンロードします。

GitHub Desktopのインストール後、リポジトリを以下の手順でローカルマシンにコピーします。

GitHubウェブページを開き、URCapのメインページ(https://github.com/UniversalRobots/HelloWorldSwing)を開き,「<>Code」ボタンをクリックし、表示されるURLをコピーします。

GitHubウェブページのリポジトリをローカルにコピーする手順

GitHub Desktopアプリを開き、「File>Clone Repository」をクリックし、テキストボックスにコピーしたURLを貼り付け「Clone」します。

コピーしたURLをGitHub Desktopに貼り付けcloneする手順

IntelliJ IDEA Community Editionのダウンロード

JetBrains社製のJava系向けIDE(統合開発環境) IntelliJ IDEA Community Edition(https://www.jetbrains.com/idea/download/?section=windows)をダウンロードします。最初に表示されているダウンロードリンクは有料版のため、一番下までスクロールする必要があります。
IntelliJ IDEAの他に、EclipseやNetbeansなど、JavaとMavenの統合をサポートする他のIDEも使用できます。

IntelliJを開き、「ファイル>開く」をクリックして、先ほどCloneしたリポジトリを開きます。

cloneしたファイルをIntelliJで開く手順

Docker Desktopのダウンロード

URのティーチペンダントの操作をシミュレートするためにDocker(https://www.docker.com/products/docker-desktop/)を使用します。
WindowsでUbuntuターミナルを使用するにはWSLをインストールする必要があります。コマンドプロンプトで以下のコマンドを用います。

wsl.exe –install Ubuntu-20.04

インストールしたWSLを開き、

docker pull universalrobots/ursim_e-series

コマンドを実行することでURのシミュレータをダウンロードします。

URSimのContainerを実行することで、ブラウザ上でシミュレータ(http://localhost:6080/vnc.html?host=localhost&port=6080)を使用できます。

ビルド方法

基本操作

プログラムをビルドする際、birudしたいフォルダでLinuxシェルを開き、以下のコマンドを実行します。ビルドには時間がかかる可能性があります。

今回はサンプルコードを実行するので、HelloWorldSwingフォルダ下のcom.ur.urcap.examples.helloworldswingフォルダ内で、Linuxシェル(フォルダ内でshift+右クリック)を開きます。

mvn clean package -DskipTests

コマンドを実行後、com.ur.urcap.examples.helloworldswingフォルダ内にtargetフォルダが作成されます。

targetフォルダ内に生成された.urcapファイルをDockerコンテナーの/ursim/programs.URXXフォルダーにコピーします。
*XXはDockerで実行されているロボット モデルによって異なります

その後、Dockerを開きフォルダを選択し実行(画像)し、シミュレータnoVNC(リンク)を開き接続することでHelloWorldのプログラムをシミュレータで実装することができます。

URCapの開発を進めるための仮想サーバ
URCapの開発を進めるためのシミュレータ

プログラムを編集し、シミュレータを使用するときは、ビルド方法(上記コマンド)に加えシミュレータのバージョン更新とDockerのリロードが必要になります。

バージョン更新

コマンドでのビルド後、画面右上の3本線からロボットの設定を選択します。

URCapの開発を進めるためのシミュレータ画面
URCapの開発を進めるためのシミュレータ画面の操作方法

画面左側のシステムバーを押し、URCapsバーを押します。現在有効になっているURCapsが表示されているので、選択し「-」ボタンを押します。その後「+」ボタンを押し、追加したいファイルを開き再起動ボタンを押します。

URCapの開発を進めるためのシミュレータ画面の操作方法
URCapの開発を進めるためのシミュレータ画面の操作方法

Dockerを開き、リロードボタンを押します。

URCapの開発後、仮想サーバの更新

Dockerの更新後、シミュレータを起動し接続することでバージョンが更新され、編集したコードが適用されます。

システム構成

URCap が PolyScope(GUI) に統合される方法の一般原理を下の図に示します。PolyScope が起動すると、インストールされている URCap がないか検索されます。次に、PolyScope は各 URCap の Activator を呼び出し、Activator は PolyScope で使用できるようにするサービスを登録します。Activator には 2 つの上書きメソッドがあります。 start() と stop() です。 start() メソッドは PolyScope の起動時に呼び出され、stop() メソッドは PolyScope の停止時に呼び出されます。サービスは、ユーザインターフェイスに表示されるノードの名前など、URCap のいくつかの一般的なプロパティを設定します。このサービスは、PolyScope がユーザインターフェイス (UI) と各ノードのコントリビューションをそれぞれ作成するために使用するいくつかのメソッドも公開します。

URCAPSのシステム構成

サービスのタイプが必要な場合 (プログラム ノードなど)、ユーザーがサービスをプログラムに挿入すると、PolyScope はサービス内のメソッドを呼び出してこのノードを作成します。これにより、ユーザインターフェイスとContributionが作成されます。

<引用>https://www.universal-robots.com/articles/ur/urplus-resources/urcap-principle-of-urcaps-in-polyscope/

ユーザインターフェイスは、Java Swing で作成することも、HTML ユーザインターフェイスとして作成することもできます。どちらの場合も、実際のプログラムノードのインスタンスがプログラムに挿入される数に関係なく、UI のインスタンスは 1 つだけしか存在しないことに注意することが重要です。
ユーザー インターフェイスには、PolyScope のレイアウトでユーザーに表示されるスタイルなどの視覚要素が含まれており、UI を操作するときに、それに応じて Contribution の設定を変更しようとします。 

Contribution は、アクティブノードのロジック、またはコントローラーコードです。プログラム内でアクティブなノードのインスタンスごとに、コントリビューションの新しいインスタンスが存在します。 Contribution には、ノードの構成を保存するために使用される DataModel オブジェクトがあります。ユーザーが UI でアクションを実行すると、UI はこれをアクティブな Contribution に報告し、Contribution はこの設定を DataModel に保存します。ユーザーがプログラムを実行すると、コントリビューションは DataModel の構成に基づいて URScript を生成します。

ノードが作成され、ユーザーがノードを操作しているとき、UI とコントリビューションの間で一般的なアクティビティが発生します

各ノードの説明

インスタレーションノードはSwingInstallationNodeServiceを実装することでサービスを提供可能にします。SwingInstallationNodeViewはインストレーションノードのUIを提供し、InstallationNodeContributionはインストレーションノードのロジックを提供します。

URCapのプログラミング構造の説明

結果

シミュレータを起動するとこのような画面が表示されます。

URCapの開発シミュレータ画面

今回のHelloWorldのサンプルコードではティーチペンダント画面に画像右側のように表示するだけの簡単なものとなっています。

プログラムを選択し、URCapsのバーを選択することでプログラムツリーに表示し、編集することができます。

URCapの開発に用いたメソッドの説明

メソッドについての説明は以下のリンクに記載されています
https://www.universal-robots.com/articles/ur/urplus-resources/urcap-principle-of-urcaps-in-polyscope/

まとめ

URcapを使いこなすことでURの機能をさらに拡張することができ、多くの環境で活躍させることができます。今回は、URcapの開発環境の設定とサンプルをシミュレータで動かすだけでしたが、応用・発展のURcapシステム開発や関連情報を随時更新していく予定です。

<引用>Universal Robots

iCOM技研の取り組み

iCOM技研はSIer事業を展開しており、協働ロボットシステムの導入を行っています。弊社は、協働ロボットの販売からソフトウェア開発、ロボットスクールまで行っています。2024年からAI開発にも取り組み始めました。

今回はURCapの開発手順を手順に沿って解説しました。今後はティーチングレス化された協働ロボットシステムを開発し、製造業の人材不足を解消する製品を生み出していく方針です。

iCOM技研が独自開発したURCap(THK PRS-A用)

iCOM技研が独自開発したURCap(溶接)

基礎からわかる! 協働ロボットお役立ち
資料集

協働ロボット導入をお考えなら、まずはこちら。
初心者の方でも基礎からわかる3つの資料が手に入ります。

  • 導入事例・システム価格がわかる!協働ロボット導入事例BOOK
  • 知らないと損をする中小・中堅企業の工程自動化最前線
  • 協働ロボットの失敗しない比較ポイント12の秘訣
基礎からわかる!協働ロボットお役立ち資料集

お気軽にお問い合わせください