IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ THK株式会社の特許一覧

<>
  • 特開-ロボットシステム 図1
  • 特開-ロボットシステム 図2
  • 特開-ロボットシステム 図3
  • 特開-ロボットシステム 図4
  • 特開-ロボットシステム 図5
  • 特開-ロボットシステム 図6
  • 特開-ロボットシステム 図7
  • 特開-ロボットシステム 図8
  • 特開-ロボットシステム 図9
  • 特開-ロボットシステム 図10
  • 特開-ロボットシステム 図11
  • 特開-ロボットシステム 図12
  • 特開-ロボットシステム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024041328
(43)【公開日】2024-03-27
(54)【発明の名称】ロボットシステム
(51)【国際特許分類】
   B25J 9/18 20060101AFI20240319BHJP
   G05B 19/042 20060101ALI20240319BHJP
【FI】
B25J9/18
G05B19/042
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022146075
(22)【出願日】2022-09-14
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り [1] 販売・納入日(公開日) 令和4年6月17日 販売・納入先 シンフォニアテクノロジー株式会社 伊勢製作所(三重県伊勢市竹ケ鼻町100) [2] 貸し出し日(公開日) 令和4年8月5日 貸し出し先 東京女子医科大学(東京都新宿区河田町8-1) [3] 販売・納入日(公開日) 令和4年8月7日 販売・納入先 日本電気株式会社 関西支社(大阪市中央区城見一丁目4―24) [4] 販売・納入日(公開日) 令和4年9月1日 販売・納入先 東京女子医科大学(東京都新宿区河田町8-1) [5] 開催日 令和4年9月1日 開催場所 ロボットアーム説明会 主催 THK株式会社 東京都大田区東糀谷4丁目9-16 THK(株)テクノセンター
(71)【出願人】
【識別番号】390029805
【氏名又は名称】THK株式会社
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100161506
【弁理士】
【氏名又は名称】川渕 健一
(74)【代理人】
【識別番号】100188891
【弁理士】
【氏名又は名称】丹野 拓人
(72)【発明者】
【氏名】永塚 正樹
(72)【発明者】
【氏名】佐野 将人
(72)【発明者】
【氏名】奥 成郁
(72)【発明者】
【氏名】近藤 裕紀
(72)【発明者】
【氏名】椎木 靖人
【テーマコード(参考)】
3C707
5H220
【Fターム(参考)】
3C707LS08
3C707LS14
3C707LV12
5H220AA05
5H220BB12
5H220CC07
5H220CX02
5H220DD04
5H220DD06
5H220DD07
5H220HH08
5H220JJ12
5H220JJ24
5H220JJ26
5H220JJ42
5H220JJ53
(57)【要約】
【課題】プログラミング言語の知識がない者がサービスロボットに処理させるタスクを編集する。
【解決手段】ロボットシステムは、ユーザからの操作に基づき制御プログラムを生成する編集ソフトと、前記制御プログラムを実行することにより制御されるロボットとを有するロボットシステムであって、前記編集ソフトは、複数の要素の選択と前記要素同士の接続とを少なくとも含むユーザの操作を取得する操作取得工程と、取得した操作に基づき、前記ロボットに実行させる所定の処理が示された図を作成する作図工程と、作図された前記図に基づき、前記制御プログラムを生成するプログラム生成工程とを有し、前記ロボットは、生成された前記制御プログラムにしたがってシーケンス制御される。
【選択図】図1
【特許請求の範囲】
【請求項1】
ユーザからの操作に基づき制御プログラムを生成する編集ソフトと、前記制御プログラムを実行することにより制御されるロボットとを有するロボットシステムであって、
前記編集ソフトは、
複数の要素の選択と前記要素同士の接続とを少なくとも含むユーザの操作を取得する操作取得工程と、
取得した操作に基づき、前記ロボットに実行させる所定の処理が示された図を作成する作図工程と、
作図された前記図に基づき、前記制御プログラムを生成するプログラム生成工程とを有し、
前記ロボットは、
生成された前記制御プログラムにしたがってシーケンス制御される
ロボットシステム。
【請求項2】
前記図は、前記ロボットに実行させる計算処理のまとまりを前記要素として有する
請求項1に記載のロボットシステム。
【請求項3】
前記編集ソフトは、
前記ロボットが制御されている間、作図された前記図を表示する表示工程を更に有し、
前記表示工程は、現在処理が行われているノードと、現在処理が行われていないノードとを異なる色により表示する
請求項1又は請求項2に記載のロボットシステム。
【請求項4】
前記編集ソフトは、
前記ロボットが制御されている間、前記図に含まれる変数の値を表示する変数表示工程と、
前記変数表示工程により表示される変数の値を、前記操作取得工程によりユーザから取得した値に書き換える変数書換工程と
を更に有する
請求項1又は請求項2に記載のロボットシステム。
【請求項5】
前記制御プログラムには複数のタスクが含まれ、
前記制御プログラムに含まれる複数のタスクは、所定の時間間隔で順次処理が実行される
請求項1又は請求項2に記載のロボットシステム。
【請求項6】
前記制御プログラムは、前記所定の時間が経過した場合、タスクの実行中であっても次のタスクの処理に遷移する
請求項5に記載のロボットシステム。
【請求項7】
前記制御プログラムは、一時停止処理要求を取得した場合、前記制御プログラムに含まれる複数のタスクを停止させ、再開要求を取得した場合、前記制御プログラムに含まれる複数のタスクを再開させる
請求項5に記載のロボットシステム。
【請求項8】
前記作図工程により作図される前記図とは、ユーザの操作に基づき、プログラムを構成するタスクの始点又は終点を示す2つの母線間に複数の前記要素を配置し、前記要素を介して前記母線間が接続されることにより、前記ロボットに実行させる処理が記載された図である
請求項1又は請求項2に記載のロボットシステム。
【請求項9】
前記作図工程により作図される前記図とは、ラダー図である
請求項8に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステムに関する。
【背景技術】
【0002】
従来、人間が行う動作や作業を支援するサービスロボットを制御する技術があった。サービスロボットの一例としては、自律的に部屋の中を移動して掃除を行うお掃除ロボットや、店舗の中を自律的に移動して接客係員の仕事を行う配膳ロボット等が知られている。例えば、配膳ロボットを用いることにより接客係員の負担を軽減する技術として、特許文献1に記載されたような技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11―143951号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述したようなサービスロボットに任意のタスクを行わせる場合、C言語やPython等のプログラミング言語を用いてコーディングが行われることが一般的である。しかしながらプログラミング言語に関する知識の習得には時間がかかる。したがって、プログラミング言語の知識がないエンジニアにとって、サービスロボットに処理させるタスクを編集することは容易ではなかった。
【0005】
そこで本発明は、プログラミング言語の知識がない者であっても、サービスロボットに処理させるタスクを容易に編集することができる技術を提供しようとするものである。
【課題を解決するための手段】
【0006】
上記の課題を解決するため、本発明の一態様は、ユーザからの操作に基づき制御プログラムを生成する編集ソフトと、前記制御プログラムを実行することにより制御されるロボットとを有するロボットシステムであって、前記編集ソフトは、複数の要素の選択と前記要素同士の接続とを少なくとも含むユーザの操作を取得する操作取得工程と、取得した操作に基づき、前記ロボットに実行させる所定の処理が示された図を作成する作図工程と、作図された前記図に基づき、前記制御プログラムを生成するプログラム生成工程とを有し、前記ロボットは、生成された前記制御プログラムにしたがってシーケンス制御されるロボットシステムである。
【発明の効果】
【0007】
本発明によれば、プログラミング言語の知識がない者であっても、サービスロボットに処理させるタスクを容易に編集することができる。
【図面の簡単な説明】
【0008】
図1】実施形態に係るロボットシステムの概要について説明するための図である。
図2】実施形態に係る情報処理装置の機能構成の一例を示す図である。
図3】実施形態に係るロボットの機能構成の一例を示す図である。
図4】実施形態に係る編集ソフト操作画面の一例を示す図である。
図5】実施形態に係る回路入力画面の一例を示す図である。
図6】実施形態に係るプラグイン選択画面の一例を示す図である。
図7】実施形態に係る情報処理装置が制御プログラムを生成する一連の流れの一例について示すフローチャートである。
図8】実施形態に係る実行画面の一例を示す図である。
図9】実施形態に係る変数画面の一例を示す図である。
図10】実施形態に係るタスク実行方式の一例について説明するための図である。
図11】実施形態に係るタスクエディタ画面の一例を示す図である。
図12】従来技術による第1のタスク実行方式についてのフローチャートである。
図13】従来技術による第2のタスク実行方式についてのフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面を参照して説明する。以下に示す実施形態は、発明の趣旨をより良く理解させるために、例を挙げて説明するものであり、特に指定のない限り、本発明を限定するものではない。
【0010】
[実施形態]
まず、実施形態の前提となる事項を説明する。
【0011】
本実施形態に係るロボットシステム1は、所定の制御プログラムに基づいてロボットを制御する。本実施形態に係るロボットには、サービスロボットや産業用ロボット等、所定の制御プログラムに基づいた処理を行うロボットが広く含まれる。以下に説明する実施形態においては、ロボットシステム1が自律的に移動し、物体を把持して移動させるサービスロボットを制御する場合の一例について説明する。
また、本実施形態に係る所定の制御プログラムとは、ラダー図(LD言語、又はラダー言語)、FB(ファンクションブロック)言語、SFC(シーケンシャル・ファンクション・チャート)言語、及びこれらに類似した言語等を用いて作成された制御プログラムを広く含む。これらに類似した言語とは、例えば、ラダー図に似た図を用いたものであってもよく、ユーザの操作に基づき2つの母線間に複数の要素を配置し、配置された要素を介して母線間が接続されることにより、ロボットに実行させる処理が記載されるものであってもよい。2つの母線とは、ラダー図の場合と同様の役割を有する。一方の母線はプログラムを構成するタスクの始点を示し、他方の母線はタスクの終点を示すものである。また、本実施形態に係る所定の制御プログラムは、ロボットに実行させる処理が記載されるものに限定されず、コンピュータに実行させる処理が記載されたものであってもよい。以下の説明においては、一例として、本実施形態に係る所定の制御プログラムがラダー図である場合について説明する。
【0012】
図1は、実施形態に係るロボットシステムの概要について説明するための図である。同図を参照しながら、ロボットシステム1の概要について説明する。ロボットシステム1は、情報処理装置10と、ロボット30とを備える。ロボットシステム1は、情報処理装置10とロボット30とを備えることにより、ユーザからの操作に基づいてロボット30に所定の処理を行わせる。ここで、ユーザからの操作とは、ロボット30が駆動している最中に行われる操作(リアルタイム操作)であってもよいし、ロボット30が駆動する前に予め行われる制御プログラム作成等の操作であってもよい。ユーザとは、ロボット30を最終的に使用するエンドユーザであってもよいし、ロボット30が工場から出荷される前に作業する作業員であってもよい。
【0013】
情報処理装置10は、編集ソフト11を有する。編集ソフト11は、情報処理装置10にインストールされて動作するアプリケーションである。情報処理装置10は、インターネット上で動作するWebアプリケーションであってもよい。編集ソフト11は、ユーザからの操作に基づき制御プログラム20を生成する。具体的には、編集ソフト11は、情報処理装置10に備えられた不図示のキーボード等の入力デバイスにより、ユーザの操作を取得し、取得した操作に基づいた制御プログラム20を生成する。例えば制御プログラム20は、編集ソフト11によりコンパイルが行われた結果として生成される。生成された制御プログラム20は、ロボット30に出力される。
なお、情報処理装置10は、例えば、パーソナルコンピュータや、タブレット端末、スマートフォン等の一般に用いられるコンピュータであってもよい。
【0014】
ロボット30は、記憶部31を備える。情報処理装置10により出力された制御プログラム20は、所定の通信方式によりロボット30に送信され、記憶部31に記憶される。ロボット30は、不図示の制御部により記憶部31に記憶された制御プログラム20を実行することにより、制御プログラム20にしたがってシーケンス制御される。所定の処理とは、例えばロボット30の移動や、周囲の状況の撮像、物体の把持、物体の移動等であってもよい。
【0015】
なお、ロボット30は、予め記憶部31に記憶された制御プログラム20を実行することにより所定の処理を行ってもよいし、記憶部31に記憶された制御プログラム20のうち変数部分がリアルタイムで書き換えられることによりリアルタイムで制御されてもよい。ロボット30がリアルタイムで制御される場合、制御プログラム20がロボット30の記憶部31に記憶される場合の一例に代えて、制御プログラム20が情報処理装置10に備えられた不図示の記憶部に記憶されてもよい。この場合、情報処理装置10は、自身に備えられた記憶部に記憶された制御プログラム20を実行することにより、ロボット30を制御する。情報処理装置10とロボット30とは、所定の有線又は無線による通信方式により双方向通信を行う。所定の通信方式とは、ブルートゥース(登録商標)(Bluetooth)又はWi-Fi(登録商標)等であってもよい。
【0016】
図2は、実施形態に係る情報処理装置の機能構成の一例を示す図である。同図を参照しながら、情報処理装置10の機能構成の一例について説明する。情報処理装置10は、編集ソフト11と、OS(Operating System)12と、ハードウェア13とを備える。
ハードウェア13は、バスで接続された中央処理装置(CPU:Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、入出力ポート、及び入出力デバイス等を含む。
OS12は、ハードウェア13と編集ソフト11との間に位置し、ハードウェア13の上で動作する。OS12は、プログラムに対して標準的なインターフェイスを提供する。OS12は、ハードウェア13に含まれる各リソースの使用状況について効率的な管理を行う。
編集ソフト11は、情報処理装置10に予めインストールされるソフトウェアである。編集ソフト11は、ユーザからの操作に基づいて制御プログラム20を生成する。
【0017】
図3は、実施形態に係るロボットの機能構成の一例を示す図である。同図を参照しながら、ロボット30の機能構成の一例について説明する。ロボット30は、記憶部31と、制御部32と、入力デバイス33と、出力デバイス34とを備える。
記憶部31は、RAM又はROMを少なくとも含んで構成される。記憶部31は、制御プログラム20を記憶する。記憶部31は、その他、ロボット30の制御に必要な情報等を記憶する。
制御部32は、CPUを少なくとも含んで構成される。制御部32は、ASIC(Application Specific Integrated Circuit)又はFPGA(Field-Programmable Gate Array)等のハードウェア資源を含んで構成されていてもよい。
【0018】
入力デバイス33は、ロボット30の外部環境から情報を取得し、取得した情報を制御部32に提供する。入力デバイス33は、ロボット30のアプリケーションに応じた複数のセンサやエンコーダ等を含む。入力デバイス33に含まれる要素としては、カメラ、位置センサ(GPSセンサ:Global Positioning System Sensor)、加速度センサ、光センサ、温度センサ、湿度センサ、磁気センサ、触覚センサ、超音波センサ等を例示することができる。ロボット30が自律的に移動し、物体を把持して移動させるサービスロボットである場合、入力デバイス33の一例としては、カメラ、位置センサ、触覚センサ等を例示することができる。
【0019】
出力デバイス34は、制御部32の制御に基づいて駆動される。出力デバイス34は、ロボット30のアプリケーションに応じた複数のモータ等を含む。出力デバイス34に含まれる要素としては、ステッピングモータ、DCモータ、ソレノイド、クラッチ、発光ダイオード(LED:Light-Emitting Diode)ディスプレイ等を例示することができる。ロボット30が自律的に移動し、物体を把持して移動させるサービスロボットである場合、出力デバイス34の一例としては、車輪駆動用モータ、アーム駆動用モータ、状態表示用LED等を例示することができる。
【0020】
図4は、実施形態に係る編集ソフト操作画面の一例を示す図である。同図を参照しながら、編集ソフト11の操作画面である編集ソフト操作画面D10の一例について説明する。編集ソフト操作画面D10は、情報処理装置10に備えられる不図示の表示部に表示される。なお、表示部は情報処理装置10に備えられなくてもよく、情報処理装置10により外部の表示部に出力されてもよい。
【0021】
編集ソフト操作画面D10は、ツールバーD11と回路入力ウィンドウD12とを少なくとも画面の構成要素として備える。編集ソフト操作画面D10は、ユーザに対し、サービスロボットに処理させるタスクを容易に編集可能な操作画面を提供する。一例として、編集ソフト操作画面D10は、ラダー図を編集可能な操作画面を提供する。
【0022】
ツールバーD11は、選択可能な要素を表示する。選択可能な要素としては、ラダー図における接点、タイマ、又はEND命令等を例示することができる。図示する一例では、ツールバーD11は、第1要素D111と、第2要素D112と、…、第n要素D11n(nは1以上の自然数)とを画面の構成要素として備える。各要素は、それぞれ接点、タイマ、又はEND命令等を示している。
回路入力ウィンドウD12は、ユーザにより現在編集が行われている回路を表示する。ユーザにより現在編集が行われている回路とは、例えばラダー図である。ユーザはツールバーD11からいずれかの要素を選択し、選択した要素を回路入力ウィンドウD12に配置する。また、ユーザは選択した要素同士を接続する。これらのユーザの操作により、ロボット30に処理させるタスクが記載されたラダー図が作成される。
編集ソフト操作画面D10は、その他、様々な画面構成要素を有していてもよい。
【0023】
図5は、実施形態に係る回路入力画面の一例を示す図である。同図を参照しながら、回路入力画面D20の一例について説明する。回路入力画面D20は、回路入力ウィンドウD12に表示される。
回路入力画面D20には、第1タスク表示部D21と、第2タスク表示部D22と、第3タスク表示部D23とが表示されている。これらタスクはユーザにより入力されたものであり、ラダー図入力開始時点においては、回路入力画面D20は空白であってもよい。同図には一例として回路入力画面D20に第1タスク表示部D21乃至第3タスク表示部D23の3つのタスクが表示される場合について示したが、表示されるタスクの数はユーザにより任意に設定されてもよい。
【0024】
ユーザは、各タスクにそれぞれ含まれる各要素をダブルクリックすることにより、ロボットに実行させたい処理を入力する。ロボットに実行させたい処理はプラグイン化されており、予め用意されていてもよい。ユーザは、各要素をダブルクリックすることにより、選択肢として表示される複数のプラグインのうちいずれかのプラグインを選択する。各プラグインは、C++等のプログラミング言語によりコーディングすることができ、ユーザによって自作されたプラグインが追加されてもよい。
【0025】
また、ユーザは、要素同士を接続することによりロボット30に行わせる処理が記載されたラダー図を作成する。
図示する一例では、第1タスク表示部D21には要素E211乃至要素E214が含まれており、要素E211と要素E212、要素E212と要素E213、要素E212と要素E214が互いに接続されている。また、第2タスク表示部D22には要素E221乃至要素E224が含まれており、要素E221と要素E222、要素E222と要素E223、要素E222と要素E224が互いに接続されている。また、第3タスク表示部D23には要素E231乃至要素E233が含まれており、要素E231と要素E232、要素E231と要素E233が互いに接続されている。
回路入力画面D20は、その他、様々な画面構成要素を有していてもよい。
【0026】
図6は、実施形態に係るプラグイン選択画面の一例を示す図である。同図を参照しながら、プラグイン選択画面D30の一例について説明する。プラグイン選択画面D30は、回路入力画面D20において各要素が選択(例えばダブルクリック等)されることにより表示される。ユーザは、プラグイン選択画面D30には複数のプラグインが選択肢として示される。ユーザは、プラグイン選択画面D30に示された複数のプラグインのうちいずれかをカーソルD31により選択(シングルクリック)することによりラダー図上に、ロボット30に処理させるタスクを挿入する。
【0027】
プラグイン選択画面D30には、プラグインとして、“ArmController”と、“HandController”と、“MarkerDetectorPlugin”と、“MotionPlayerPlugin”と、“MoverController”と、“Recognize”と、“SamplePlugin”と、“TemperatureCheckPlugin”と、“TimerPlugin”とが表示されている。
一例として、選択されていないプラグインは黒字で、選択されているプラグインは白抜き文字で表示されてもよい。図示する一例では、複数のプラグインのうち、“MoverController”がカーソルD31により選択されている。すなわちこの状態においてユーザは、“MoverController”の処理を示すプラグインをラダー図上に挿入することができる。ラダー図上に要素としてのプラグインが挿入されると、ラダー図上には、プラグイン名や、変数名が挿入されてもよい。
【0028】
プラグイン化される処理の対象としては、コンピュータに実行させる様々な計算処理のまとまりが挙げられる。様々な計算処理の一例としては、画像処理や、演算処理等の所定の計算処理等を例示することができる。これらロボット30に実行させる処理は、プラグイン化され、ユーザの操作に基づきラダー図の要素として挿入される。すなわち、本実施形態に係るラダー図は、ロボット30に実行させる計算処理のまとまりを要素として有する。
プラグイン選択画面D30は、その他、様々な画面構成要素を有していてもよい。
【0029】
図7は、実施形態に係る情報処理装置が制御プログラムを生成する一連の流れの一例について示すフローチャートである。同図を参照しながら、情報処理装置10が制御プログラム20を生成する一連の流れについて説明する。
【0030】
(ステップS11)まず、編集ソフト11は、ユーザからの操作を取得する。ユーザからの操作とは、ラダー図に入力される要素の選択であったり、変数の入力であったりしてもよい。当該操作は、情報処理装置10に備えられるキーボードやマウス等の入力デバイスにより行われる。また、当該操作には、少なくとも複数の要素の選択が含まれる。要素には、接点やプラグイン等が含まれる。また、ユーザは、選択した要素同士の接続を行う。要素同士の選択は、ユーザによる操作に基づいて任意に行われてもよく、要素の選択に基づいて自動的に接続されてもよい。これら要素の選択と、選択した要素同士の接続を少なくとも含むユーザの操作を取得する工程を、操作取得工程と記載する場合がある。
【0031】
(ステップS13)次に、編集ソフト11は、取得した操作に基づき、ロボット30に実行させる所定の処理が示されたラダー図を作成する。当該ラダー図は、複数のプラグインが含まれる。編集ソフト11によりラダー図を作成する工程を、作図工程と記載する場合がある。
【0032】
(ステップS15)次に、編集ソフト11は、ユーザによるラダー図の入力作業が完了した場合又はすなわちラダー図が完成した場合(すなわち、ステップS15;YES)、処理をステップS17に進める。編集ソフト11は、ユーザによるラダー図の入力作業が完了していない場合又はすなわちラダー図が完成していない場合(すなわち、ステップS15;NO)、処理をステップS11に戻す。ユーザによるラダー図の入力作業が完了したか否かの判断は、例えば不図示のコンパイル開始ボタンや、実行開始ボタン等の押下を検出することにより行われてもよい。
(ステップS17)次に、編集ソフト11は、作図されたラダー図に基づき制御プログラム20を生成する。編集ソフト11により、制御プログラム20を生成する工程をプログラム生成工程と記載する場合がある。プログラム生成工程とは、具体的にはコンパイル工程であってもよい。
【0033】
なお、制御プログラム20が情報処理装置10により実行され、所定の通信方式により制御信号がロボット30に伝達され、ロボット30を動作させる場合、編集ソフト11は、実行中の制御をラダー図上に示すような実行画面を表示してもよい。当該実行画面は、例えばロボット30に出力される制御信号に基づいた表示を行ってもよい。
ロボット30が制御されている間、作図されたラダー図を表示する工程を、表示工程と記載する場合がある。
【0034】
図8は、実施形態に係る実行画面の一例を示す図である。同図を参照しながら、実行画面D40の一例について説明する。実行画面D40は、ユーザからの制御プログラム実行の操作の有無に基づいて、上述の回路入力画面D20と同一画面上に表示されてもよいし、異なる画面上に表示されてもよい。
実行画面D40には、第1タスク表示部D41と、第2タスク表示部D42と、第3タスク表示部D43とが表示されている。第1タスク表示部D41には、要素E411と、E412と、E413と、E414とが含まれ、第2タスク表示部D42には、要素E421と、E422と、E423と、E424とが含まれ、第3タスク表示部D43には、要素E431と、E432と、E433とが含まれる。なお、同図には一例として実行画面D40に第1タスク表示部D41乃至第3タスク表示部D43の3つのタスクが表示される場合について示したが、表示されるタスクの数はユーザにより任意に設定されてもよい。
【0035】
本実施形態において、実行画面D40に表示されている複数のタスクのうち、実行中のいずれかのタスクについては、他のタスクと識別可能に表示される。図8に示す一例では、第1タスクが実行中であるため、第1タスク表示部D41が第2タスク表示部D42及び第3タスク表示部D43と識別可能に表示されている。同図から、要素E411、要素E412及び要素E413を通る処理と、要素E411、要素E412及び要素E414を通る処理とが実行中であることが分かる。
実行中のタスクの表示方法としては、線を太くすることや、色を変えて表示する方法を例示することができる。同図に示す一例では、第1タスク表示部D41に表示されるラダー図のノードの線幅を、第2タスク表示部D42及び第3タスク表示部D43に表示されるラダー図のノードの線幅と異ならせて表示されている。他の一例としては、ノードを異なる色により表示してもよい。すなわち、ロボット30が制御されている間、作図されたラダー図を表示する表示工程では、現在処理が行われているノードと現在処理が行われていないノードとを異なる色により表示してもよい。
【0036】
また、プラグインが有する各変数の値は、制御プログラム20の実行中に変更可能なよう構成されていてもよい。換言すれば、ユーザは、編集ソフト11の表示工程において、変数の値を変更することができる。この場合、ユーザは、所定の変数画面において書き換える変数を指定し、値を入力(又は選択)することにより変数の値を書き換える。所定の変数画面は、プラグインを選択することにより開かれるよう構成されていてもよい。
実行画面D40は、その他、様々な画面構成要素を有していてもよい。
【0037】
図9は、実施形態に係る変数画面の一例を示す図である。同図を参照しながら、変数画面D50について説明する。変数画面D50は、変数の型に応じて、排他的に選択される複数のタブを有する。同図に示す一例では、変数画面D50は、整数型タブD51、実数型タブD52、文字型タブD53、2次元位置型タブD54及び3次元位置型タブD55を有する。それぞれのタブには、それぞれのタブに応じた変数についての現在の設定値やメモ等が記憶されている。
ユーザは、いずれかの変数画面D50が画面構成として有する複数のタブのうちいずれかのタブを(例えばシングルクリックすること等により)選択する。同図に示す一例では、整数型タブD51が選択されているため、整数型である変数についての表示がされている。
【0038】
各タブが選択された画面には、変数毎に変数の値が表示される。すなわち変数画面D50には、ロボット30が制御されている間、ラダー図に含まれる変数の値が表示される。編集ソフト11が変数の値を表示する工程を、変数表示工程と記載する場合がある。図9に示す一例では、変数毎に、変数名D511、値D512及びメモD513が表示されている。具体的には、変数名“Int0”として値“0”及びメモ“スイッチ”が対応づけられて表示されている。また、変数名“Int1”として値“0”及びメモ“戻り値”が対応づけられて表示されている。また、変数名“Int2”として値“0”及びメモ“次のスイッチ”が対応づけられて表示されている。
【0039】
ユーザは、制御プログラム20の実行中に、各変数の値D512を操作することにより、変数の値を強制的かつ一時的に書き換えることができる。すなわち変数表示工程により表示される変数の値は、操作取得工程によりユーザから取得した値に書き換えられる。変数の値を書き換える工程を変数書換工程と記載する場合がある。
【0040】
また、当該変数書換工程において、ユーザにより変数値が書き換えられた場合であっても、内部的な処理により上書きされてしまう場合がある。この場合、制御プログラム20は、内部的な処理を優先させてもよい。換言すれば、当該変数書換工程は、内部的な処理による上書きを禁止しない。例えば内部的な処理により特定の値がループのたびに設定される状態でユーザにより値が書き換えられた場合、当該変数書換工程においてユーザにより設定された値に変更された直後であっても再度内部的な処理により上書きされてもよい。
【0041】
次に、複数のタスク間の状態の遷移について説明する。まず、従来技術によるタスク間の遷移について説明する。従来技術によるタスク間の遷移においては、1つのタスクが終わってから次のタスクに遷移していた。このような従来技術によるタスク間の遷移の方式としては、順番にタスクを実行していく方式(以降、第1のタスク実行方式と記載する。)と、タスクを状態として条件によって遷移していく方式(以降、第2のタスク実行方式と記載する。)とがあった。
【0042】
図12は、従来技術による第1のタスク実行方式についてのフローチャートである。同図に示したようなタスク間の遷移を行う場合、タスク途中で条件が変化しても、前のタスクには戻れないという問題があった。また、一時停止を必要数配置しなければならず、1つのタスクが止まってしまった場合、他のタスクを実行することができず、全体として処理が止まってしまう問題があった。このような事態を避けるため、タスクを並列実行させるための記述をすることも可能であるが、当該記述は特殊であり、プログラミングの経験がないユーザが行うことは困難であった。
【0043】
図13は、従来技術による第2のタスク実行方式についてのフローチャートである。同図に示したようなタスク間の遷移を行う場合、第1のタスク実行方式で説明したようなタスク途中で条件が変化しても前のタスクには戻れないという問題を解決することができる。しかしながら、一時停止させたい場合はその都度記述が必要な点、一部のタスクが止まってしまった場合に他のタスクを実行できなくなってしまう点、及びタスクを並列実行させるために特殊な記述が必要な点は解決することが出来ない。
【0044】
図10は、実施形態に係るタスク実行方式の一例について説明するための図である。同図を参照しながら、本実施形態に係るタスク実行方式の一例について説明する。
本実施形態に係る制御プログラム20には複数のタスクが含まれる。同図に示す一例では、制御プログラム20に第1タスクTASK1乃至第6タスクTASK6の6個のタスクが含まれる場合の一例が記載されている。すなわち同図に示す一例では、制御プログラム20は、6個のタスクにより構成される処理をロボット30に実行させる。同図を参照しながら行う説明は一例に過ぎず、タスクの数は、処理の規模に応じた数であってもよい。
【0045】
まず、各タスク間の遷移について説明する。本実施形態に係るタスク実行方式では、各タスクの終了を待たずに、高速で条件ループを回す。換言すれば、所定の時間間隔で各タスク間を遷移することにより、各タスクは並列処理を行う。すなわち、制御プログラム20に含まれる複数のタスクは、所定の時間間隔で順次処理が実行される。本実施形態に係るタスク実行方式では、従来技術とは異なり、各タスクの終了を待たずに次のタスクに遷移するため、制御プログラム20は、所定の時間が経過した場合、タスクの実行中であっても(すなわち、タスクの進捗に関係なく)次のタスクの処理に遷移する。
各タスクは独立しており、所定の時間間隔で処理の順番が回ってくると、他のタスクの進捗に関係なく処理を行う。
【0046】
次に、各タスクの一時停止と再開について説明する。本実施形態に係るタスク実行方式では、各タスクは並列処理を行うため、並列処理が行われる複数のタスクを同時に一時停止することができる。各タスクの一時停止は、制御プログラム20が一時停止要求を取得することにより行われる。すなわち制御プログラム20は、一時停止処理要求を取得した場合、制御プログラム20に含まれる複数のタスクを停止させる。
また、本実施形態に係るタスク実行方式では、各タスクは並列処理を行うため、一時停止中の複数のタスクを同時に再開させることができる。各タスクの再開は、制御プログラム20が再開要求を取得することにより行われる。すなわち制御プログラム20は、再開要求を取得した場合、制御プログラム20に含まれる複数のタスクを再開させる。
なお、一時停止後の再開においては、同時に再開する場合の一例に限定されず、条件セットで成立した条件のタスクのみ実行されてもよい。
【0047】
図11は、実施形態に係るタスクエディタ画面の一例を示す図である。同図を参照しながら、制御プログラム20の実行中におけるタスクエディタ画面D60の一例について説明する。制御プログラム20の実行中において、タスクエディタ画面D60には、実行中の制御プログラム20のラダー図が表示される。実行されている現在実行されているタスクのノードについては、現在実行されていない他のタスクのノードとは異なる色若しくは異なる線幅により表示される。
【0048】
タスクエディタ画面D60は、3次元ビュー画面を画面構成の要素としてそなえていてもよい。3次元ビュー画面では、ラダー図に示される処理を行った結果として、ロボット30がどのような振る舞いをするかが示される。処理の進行と同時に、リアルタイムで示す。
【0049】
[実施形態のまとめ]
以上説明した実施形態によれば、ロボットシステム1は、編集ソフト11を有することによりユーザからの操作に基づき制御プログラム20を生成し、生成された制御プログラム20を実行することによりロボットの動きを制御する。編集ソフト11は、操作取得工程を有することにより複数の要素の選択と要素同士の接続とを少なくとも含むユーザの操作を取得し、作図工程を有することにより取得した操作に基づきロボット30に実行させる所定の処理が示されたラダー図を作成し、生成工程を有することにより作図されたラダー図に基づき制御プログラム20を生成する。また、ロボット30は生成された制御プログラム20にしたがってシーケンス制御される。すなわち、本実施形態によれば、ユーザはラダー図を用いて処理を記載することによりロボット30を制御することができる。ここで、ラダー図によるプログラムの作成は、従来技術によるC言語やPython等のプログラミング言語によるプログラムの作成に比べて容易であり、プログラミング言語の知識がない者であっても可能である。したがって、ロボットシステム1によれば、プログラミング言語の知識がない者であっても、サービスロボットに処理させるタスクを編集することができる。
【0050】
また、以上説明した実施形態によれば、本実施形態に係るラダー図は、ロボット30に実行させる計算処理のまとまりを要素として有する。当該要素は予めプラグインとして準備されていてもよいし、ユーザによりプログラムされてもよい。したがって、本実施形態によれば、ユーザは、ロボット30に複雑な処理や、アプリケーションに合った処理を実行させることができる。
【0051】
また、以上説明した実施形態によれば、編集ソフト11は、表示工程を更に有することにより、ロボット30が制御されている間、作図されたラダー図を表示する。また、当該表示工程は、現在処理が行われているノードと、現在処理が行われていないノードとを異なる色により表示する。したがって、本実施形態によれば、ユーザは、現在処理が行われているタスクをリアルタイムで認識することができる。
【0052】
また、以上説明した実施形態によれば、編集ソフト11は、変数表示工程を有することによりロボット30が制御されている間ラダー図に含まれる変数の値を表示し、変数書換工程を有することにより表示された変数の値をユーザから取得した値に書き換える。したがって、本実施形態によれば、ユーザは、リアルタイムで変数の値を書き換えることができる。
【0053】
また、以上説明した実施形態によれば、変数書換工程においてユーザにより変数値が書き換えられた場合であっても、内部的な処理を優先する。、したがって、本実施形態によれば、ユーザの操作により変数値が書き換えられた場合であっても、内部的な処理に影響を与えないため、異常が発生することなく、正常に動作し続けることができる。
【0054】
また、以上説明した実施形態によれば、制御プログラム20には複数のタスクが含まれ、制御プログラム20に含まれる複数のタスクは、所定の時間間隔で順次処理が実行される。換言すれば、制御プログラム20は複数のタスクを高速でループさせることにより並列処理を実現させる。したがって本実施形態によれば、プログラムの進捗に関係なく、動作を停止させることができる。また、本実施形態によれば、タスク同士が独立しているため、他のタスクの処理が止まってしまっても関係なく処理を実行させることができる。また、本実施形態によれば、途中でタスクが止まってしまい、条件が変更になった場合であっても、タスクを再開させることができる。また、本実施形態によれば、複数のタスクを並列処理させたい場合であっても特殊な記述を必要とすることがないため、並列処理の記述を容易にすることができる。
【0055】
また、以上説明した実施形態によれば、制御プログラム20は、所定の時間が経過した場合、あるタスクの実行中であっても次のタスクの処理に遷移する。したがって、本実施形態によれば、制御プログラム20は、所定のタスクの処理が止まってしまった場合であっても、処理が止まっていないタスクについては、問題なく処理を実行させることができる。
【0056】
また、以上説明した実施形態によれば、制御プログラム20は、一時停止処理要求を取得した場合、制御プログラム20に含まれる複数のタスクを停止させ、再開要求を取得した場合、制御プログラム20に含まれる複数のタスクを再開させる。すなわち、本実施形態によれば、制御プログラム20は、複数のタスクの一時停止と再開を容易に行うことができる。
【0057】
なお、上述した実施形態におけるロボットシステム1が備える各部の機能全体あるいはその一部は、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0058】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶部のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0059】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。また、本発明はこうした実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0060】
1…ロボットシステム、10…情報処理装置、11…編集ソフト、12…OS、13…ハードウェア、20…制御プログラム、30…ロボット、31…記憶部、32…制御部、33…入力デバイス、34…出力デバイス、D10…編集ソフト操作画面、D11…ツールバー、D111…第1要素、D112…第2要素、D11n…第n要素、D12…回路入力ウィンドウ、D20…回路入力画面、D30…プラグイン選択画面、D40…実行画面、D50…変数画面、D51…整数型タブ、D511…変数名、D512…値、D513…メモ、D52…実数型タブ、D53…文字型タブ、D54…2次元位置型タブ、D55…3次元位置型タブ、D60…タスクエディタ画面
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13