JP2018089757A - ロボットおよびロボット制御プログラム - Google Patents

ロボットおよびロボット制御プログラム Download PDF

Info

Publication number
JP2018089757A
JP2018089757A JP2016237341A JP2016237341A JP2018089757A JP 2018089757 A JP2018089757 A JP 2018089757A JP 2016237341 A JP2016237341 A JP 2016237341A JP 2016237341 A JP2016237341 A JP 2016237341A JP 2018089757 A JP2018089757 A JP 2018089757A
Authority
JP
Japan
Prior art keywords
robot
simulator
processor
clock
time information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016237341A
Other languages
English (en)
Other versions
JP6908257B2 (ja
Inventor
聡 佐竹
Satoshi Satake
聡 佐竹
トーマ カスマルク
Thoma Kasmark
トーマ カスマルク
ドラジェン ブルシュチッチ
Drazen Brscic
ドラジェン ブルシュチッチ
神田 崇行
Takayuki Kanda
崇行 神田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATR Advanced Telecommunications Research Institute International
Original Assignee
ATR Advanced Telecommunications Research Institute International
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ATR Advanced Telecommunications Research Institute International filed Critical ATR Advanced Telecommunications Research Institute International
Priority to JP2016237341A priority Critical patent/JP6908257B2/ja
Publication of JP2018089757A publication Critical patent/JP2018089757A/ja
Application granted granted Critical
Publication of JP6908257B2 publication Critical patent/JP6908257B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 ロボットシミュレータ上での動作と実世界での動作とを簡単に切り替えられるロボットを提供する。【解決手段】 ロボットシステム10は、ロボット12を含み、ロボット12のプロセサ(80)は自身のハードウエェアに接続され、またはロボットシミュレータ24に接続される。時間情報を呼び出す必要があるとき、プロセサがロボットシミュレータに接続されていれば、時間情報としてシミュレータクロックを取得し、プロセサが自身のハードウエェアに接続されていれば、実クロックを取得して、それぞれ、ロボットアプリケーションプログラムを実行する。【選択図】 図1

Description

この発明はロボットおよびロボット制御プログラムに関し、特にたとえば、ロボットシミュレータに接続可能な、ロボットおよびロボット制御プログラムに関する。
従来のこの種のロボットをシミュレーションするためのシミュレータが非特許文献1、2で開示されている。これらの非特許文献1、2のシミュレータでは、センサやアクチュエータをシミュレーションして可視化することによって、実ロボット(Real robot system:以下、単に「ロボット」という。)の実世界での適応をより簡単にシミュレーションすることができる。
https://www.openrobots.org/morse/doc/stable/morse.html http://gazebosim.org/
シミュレータを用いた開発プロセスを導入するためには、既存のロボットアプリケーションプログラムをロボットシミュレータと実機(ロボットのハードウェア)との間で切り替える仕組みが必要である。非特許文献1、2においてもハードウェアの特性やセンサ特性のモデルや、ROS(Robot Operating System)などの同一接続インタフェースを準備することで、切り替えの簡略化を実現している。
しかしながら、シミュレータとロボットとでは時刻の進み方が異なるので、時刻に依存した実世界で動作したアルコリズムがロボットシミュレータでは動かない、逆にシミュレータで動作したアルコリズムが実世界では動かない、という事態を引き起こすことがある。
このような場合には、その都度プログラムを修正してロボットを動かすようにしなければならないが、時刻情報は様々なモジュールで使用されているので、プログラムの修正には面倒な作業が必要になる。
それゆえに、この発明の主たる目的は、新規な、ロボットおよびロボット制御プログラムを提供することである。
この発明の他の目的は、面倒な作業なしに、ロボットシミュレータに接続された場合でも実世界においても、確実に動作する、ロボットおよびロボット制御プログラムを提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第1の発明は、ロボットアプリケーションプログラムに従って動作するプロセサを備えるロボットであって、プロセサがロボットシミュレータに接続されていることを判断する第1判断手段、および第1判断手段がプロセサはロボットシミュレータに接続されていると判断したとき、時刻情報としてロボットシミュレータのクロックを取得するシミュレータクロック取得手段を備える、ロボットである。
第1の発明では、ロボットシステム(10:実施例において相当する部分を例示する参照符号。以下同様。)のロボット(12)は、プロセサ(80)を含み、そのプロセサはロボットアプリケーションプログラム(18)に従って自身のハードウェアの動作を制御する。第1判断手段(80、S9)は、プロセサがロボットシミュレータに接続されているかどうか判断する。シミュレータクロック取得手段(80、S11)は、第1判断手段が、プロセサはロボットシミュレータに接続されていると判断したとき、時刻情報を取得する必要があれば、シミュレータクロックを時刻情報として取得する。したがって、プロセサは、そのシミュレータクロックに基づいて、ロボットアプリケーションプログラムを実行する。
第1の発明によれば,ロボットシミュレータに接続されているときには、必要な場合にはシミュレータクロックを取得し、それに従ってロボットアプリケーションプログラムを実行するので、ロボットがシミュレータに接続されていても、確実に動作する。
第2の発明は、第1の発明に従属し、第1判断手段がプロセサはロボットシミュレータに接続されていると判断しなかったとき、時刻情報として実クロックを取得する実クロック取得手段をさらに備える、ロボットである。
第2の発明では、実クロック取得手段(80、S13)は、たとえばプロセサ(80)自身のRTC(Real Time Clock)に由来する実クロックを取得する。したがって、プロセサは、その実クロックに基づいて、ロボットアプリケーションプログラムを実行する。
第3の発明は、第1または第2の発明に従属し、ロボットアプリケーションプログラムにおいて時刻情報の取得が命令されたことを判断する第2判断手段をさらに備え、第1判断手段は、第2判断手段が時刻情報の取得が命令されたと判断したとき、プロセサがロボットシミュレータに接続されていることを判断する、ロボットである。
第3の発明では、第2判断手段(80、S5)は、ロボットアプリケーションプログラムを実行しているときに、時刻情報の取得が命令されたかどうか判断する。つまり、シミュレータクロック取得手段(80、S11)は、第2判断手段が時刻情報の取得が命令されたと判断したときであってかつ第1判断手段が、プロセサはロボットシミュレータに接続されていると判断したとき、シミュレータクロックを時刻情報として取得する。
第4の発明は、ロボットアプリケーションプログラムに従って動作するプロセサを備えるロボットのプロセサによって実行されるロボット制御プログラムであって、プロセサをプロセサがロボットシミュレータに接続されていることを判断する第1判断手段、および第1判断手段がプロセサはロボットシミュレータに接続されていると判断したとき、時刻情報としてロボットシミュレータのクロックを取得するシミュレータクロック取得手段として機能させる、ロボット制御プログラムである。
第4の発明によっても第1の発明と同様の効果が期待できる。
この発明によれば、ロボットのプロセサに適切な時刻情報(クロック)が与えられるので、面倒な作業なしに、ロボットシミュレータに接続された場合でも実世界においても、ロボットを確実に動作させることができる、
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1はこの発明の一実施例のロボットシステムを示すブロック図である。 図2はこの発明が適用されるロボットの一例を示す図解図である。 図3は図2に示すロボットの電気的なハードウェア構成を示すブロック図である。 図4は仮想シミュレーション空間の一例を示す図解図である。 図5は図1実施例のロボットの動作を示すフロー図である。
図1を参照して、この実施例のロボットシステム10は、ロボット12、ロボット12を遠隔操作する操作装置14およびロボット12をシミュレートしたロボットエージェントや人(歩行者)エージェントをシミュレーションするシミュレーション装置16含む。
この実施例のロボット12は、たとえば図2に示すコミュニケーションロボットのように、人との共存環境で活動するロボットである。このようなロボット12は環境の中に存在する人の行動に影響を受けるので、この実施例のシミュレーション装置16では、ロボット12の行動をロボットアプリケーションプログラム(ロボット行動決定プログラム)に従ってシミュレーションする際に、人の行動もシミュレーションすることによって、ロボット12のための安全なロボットアプリケーションプログラムの開発を支援する。
ここで、図2および図3を参照して、この発明の理解に必要な範囲でロボット12の構成について説明する。ロボット12は台車30を含み、台車30の下面にはロボット12を移動させる2つの車輪32および1つの従輪34が設けられる。2つの車輪32は車輪モータ36(図3参照)によってそれぞれ独立に駆動され、台車30すなわちロボット12を前後左右の任意方向に動かすことができる。
台車30の上には、円柱形のセンサ取り付けパネル38が設けられ、このセンサ取り付けパネル38には、多数の距離センサ40が取り付けられる。これらの距離センサ40は、たとえば赤外線や超音波などを用いてロボット12の周囲の物体(人や障害物など)との距離を測定するものである。
センサ取り付けパネル38の上には、胴体42が直立して設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、上述した距離センサ40がさらに設けられ、ロボット12の前方の、主として人との距離を計測する。また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、全方位カメラ46が設けられる。全方位カメラ46は、ロボット12の周囲を撮影するものであり、後述する眼カメラ70とは区別される。この全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。
胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。
前腕54Rおよび前腕54Lのそれぞれの先端には、人の手に相当するハンド56Rおよびハンド56Lがそれぞれ設けられる。これらのハンド56Rおよび56Lは、詳細な図示は省略するが、開閉可能に構成され、それによってロボット12は、ハンド56Rおよび56Lを用いて物体を把持または挟持することができる。ただし、ハンド56R、56Lの形状は実施例の形状に限らず、人の手に酷似した形状や機能を持たせるようにしてもよい。
また、図示は省略するが、台車30の前面、肩関節48Rと肩関節48Lとを含む肩に相当する部位、上腕50R、上腕50L、前腕54R、前腕54L、ハンド56Rおよびハンド56Lには、それぞれ、接触センサ58(図3で包括的に示す)が設けられる。台車30の前面の接触センサ58は、台車30への人間や他の障害物の接触を検知する。したがって、ロボット12は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪32の駆動を停止してロボット12の移動を急停止させることができる。また、その他の接触センサ58は、当該各部位に触れたかどうかを検知する。
胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット12の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、ロボット12が、それの周辺の人に対して音声によってコミュニケーションをとるために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66ということがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。
さらに、人の目に相当する位置には、右の眼球部68Rおよび左の眼球部68Lが設けられる。右の眼球部68Rおよび左の眼球部68Lは、それぞれ右の眼カメラ70Rおよび左の眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68ということがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70ということがある。
眼カメラ70は、ロボット12に接近した人の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。この実施例では、ロボット12は、この眼カメラ70からの映像信号によって、人の左右両目のそれぞれの視線方向(ベクトル)を検出する。
また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64、マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
このように、この実施例のロボット12は、車輪32の独立2軸駆動、肩関節48の3自由度(左右で6自由度)、肘関節52の1自由度(左右で2自由度)、首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。
図3はロボット12の電気的な構成を示すブロック図である。この図3を参照して、ロボット12は、1つまたは2以上のプロセサ80を含む。プロセサ80は、バス82を介して、メモリ84、モータ制御ボード86、センサ入力/出力ボード88および音声入力/出力ボード90に接続される。
メモリ84は、図示は省略をするが、ROM、HDDおよびRAMを含む。ROMおよびHDDには、各種プログラムが予め記憶される。
モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節60および眼球部68などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、プロセサ80からの制御データを受け、右眼球部68Rの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「右眼球モータ92」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、プロセサ80からの制御データを受け、左眼球部68Lの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「左眼球モータ94」と示す)の回転角度を制御する。
また、モータ制御ボード86は、プロセサ80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「右腕モータ96」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、プロセサ80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「左腕モータ98」と示す)の回転角度を制御する。
さらに、モータ制御ボード86は、プロセサ80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(図3では、まとめて「頭部モータ100」と示す)の回転角度を制御する。そして、モータ制御ボード86は、プロセサ80からの制御データを受け、車輪32を駆動する2つのモータ(図3では、まとめて「車輪モータ36」と示す)の回転角度を制御する。
モータ制御ボード86にはさらにハンドアクチュエータ108が結合され、モータ制御ボード86は、プロセサ80からの制御データを受け、ハンド56R、56Lの開閉を制御する。
センサ入力/出力ボード88は、モータ制御ボード86と同様に、DSPで構成され、各センサからの信号を取り込んでプロセサ80に与える。すなわち、距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード88を通じてプロセサ80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからプロセサ80に入力される。眼カメラ70からの映像信号も、同様にして、プロセサ80に入力される。また、上述した複数の接触センサ58(図3では、まとめて「接触センサ58」と示す)からの信号がセンサ入力/出力ボード88を介してプロセサ80に与えられる。音声入力/出力ボード90もまた、同様に、DSPで構成され、プロセサ80から与えられる音声合成データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してプロセサ80に与えられる。
また、プロセサ80は、バス82を介して通信LANボード102に接続される。通信LANボード102は、たとえばDSPで構成され、プロセサ80から与えられた送信データを無線通信モジュール104に与え、無線通信モジュール104は送信データを、ネットワークを介してサーバ(図示せず)等に送信する。また、通信LANボード102は、無線通信モジュール104を介してデータを受信し、受信したデータをプロセサ80に与える。
図1に戻って、操作装置14は、基本的には1または2以上のコンピュータまたはプロセサによって構成され、そのプロセサのメモリ(図示せず)にロボットアプリケーションプログラム18が設定されていて、そのロボットアプリケーションプログラムがコンピュータからたとえば無線でロボット12またはシミュレーション装置16に与えられる。ロボットアプリケーションプログラム18は、ロボット12に対すアプリケーションプログラムであり、たとえばロボット12を案内ロボットとしとて動作させるときには、そのための動作をロボット12が実行するようなプログラムである。
操作装置14のメモリにはさらに、環境データ20を予め記憶している。環境データ20は主として図4に示す仮想シミュレーション空間22の地図データおよびその仮想シミュレーション空間22内での人エージェントの出現率データを含む。環境および環境内のオブジェクトは3次元モデルデータとして表され、3次元仮想空間として視覚化される。
図4に示す仮想シミュレーション空間22は、図中点線矩形で示す出入口22aを有する3次元閉空間を想定している。この仮想シミュレーション空間22においては黒色太線で示す通路22bが設定されていて、ロボット12や人エージェントはその通路50や広場などを通行し、またはそこに存在する。これらの通路22bや広場は建物や壁などオブジェクトによって区画され、図中丸印で示す場所で分岐または合流する。
シミュレーション装置16は、基本的には1または2以上のプロセサで構成され、ロボット12をシミュレートするロボットシミュレータ24および歩行者のような人エージェントをシミュレートする人シミュレータ26を含み、それぞれのシミュレーション結果が物理エンジン28に入力される。
ロボットシミュレータ24は、たとえば先の非特許文献1として例示したMORSEシミュレータであり、このMORSEシミュレータは、ロボット12と同様の、多くのセンサ、アクチュエータおよびロボットのモデルを提供し、そのようなモデル用のAPI(Application Programming Interface)も利用できる。
センサシミュレーションにおいては、たとえば、カメラ画像の場合には、カメラ視点からの光学的な計算を行い、カメラ視点毎の画像情報を生成する。レーザ距離計の場合には、レーザによるスキャンを模して、センサから各方位へ距離計測を行い、その結果をセンサ値として保存する。
開発者がロボットのためのロボットアプリケーションプログラムを準備するとき、それらのプログラムはこれらのAPIにアクセスしてセンサデータ(たとえば、レーザ距離計からの距離の読み取り)およびアクチュエータへのコマンドの送信(たとえば、移動速度)を行う。
人シミュレータ26は、定期的に新しい歩行者を生成し、それらの位置を更新し、それらがシミュレートされた環境(仮想シミュレーション空間22)を離れるときにそれらを除去する。歩行者すなわち人は、3次元オブジェクトとして表現され、仮想シミュレータ空間22内に配置され、アニメーションエンジンを使用して、その歩行動作がアニメーション化される。
ただし、人シミュレータ26には図1に示すように環境データ20が与えられるので、人シミュレータ26は、その環境データに含まれる出現率と呼ばれる予め定義された確率で新しい歩行者を周期的に生成する。そして、その歩行者は図4に示す出入口22aの1つに割り当てられ、他の1つに行くように設定される。
ただし、歩行者はしばしばグループとして(家族やカップルのように)生成され、 それらがグループで表示される場合、サイズはグループメンバの分布によって定義し、すべてのメンバが同じ目的を共有すると仮定する。
物理エンジン28は、物理的な力や法則などに基づいて、ロボットや人エージェントがどのような移動経路をたどるかを計算する。詳しくいうと、物理エンジン28は、ロボットシミュレータ24および人シミュレータ26からの各エージェント(ロボット含む)が意図した動きを、仮想シミュレーション空間22(図4)で実行する処理を実行する。このとき、他の障害物、構造物や他のエージェントとの干渉が何もなければ、意図したとおりの動きを生成する。しかしながら、干渉がある場合、物理学法則(力学法則)に従って、各エージェントの実際の動きを処理する。そして、物理エンジン28からは統合したシミュレーションデータが出力される。
図5に示すフロー図はたとえば図3のメモリ84に予め設定されているプログラムを示し、その最初のステップS1では、ロボット12のプロセサ80(図3)は、時計の接続先を変更する。具体的には、たとえばLinux(商品名)の環境関数LD_PRELOADなどを使用することによって、関数gettimeofdayやusleepなどの時計関連のシステムコールを上書きすることができる。たとえば関数gettimeofdayは、時刻およびタイムゾーンを取得する。関数usleepはマイクロ秒単位で実行を延期する。
次いで、ステップS3において、プロセサ80は、ロボットアプリケーションプログラム18を実行しているかどうか判断する。
このステップS3で“NO”を判断したときにはこの処理が終了する。
ステップS3で“YES”を判断したときには、続くステップS5において、そのプログラムステップで時計の呼び出しが行われたかどうか判断する。このステップS5が第2判断手段に相当し、このステップS5で“NO”を判断したとき、クロックを取得する必要がないプログラムステップであるので、続くステップS7で当該プログラムを実行し、必要な出力を実行する。
ステップS5で“YES”が判断されると、クロックを取得する必要があるので、続くステップS9において、ロボット12のプロセサ80は、そのときロボット12のハードウェア(モータ36、92‐100のようなアクチュエータ)がロボットシミュレータ24に接続されているかどうか判断する。
ロボット12においてプロセサ80を自身のハードウェアに接続するかロボットシミュレータ24に接続するかの切り替えは、設定ファイルで定義されている。その中では、どのハードウェアを使用するのか?という設定に加えて、ロボットシミュレータ24を使用するという設定(およびロボットシミュレータ24の接続先やポート番号)項目が存在するので、その項目をオンに設定することによって、プロセサ80とロボットシミュレータ24との接続が有効化される。したがって、このステップS9では、プロセサ80が該当の項目がオンに設定されているかどうかチェックすることによって、ロボット12のプロセサ80がロボットシミュレータ24に接続されているのか、どうかを判断することができる。ただし、ロボット12とロボットシミュレータ24の接続は有線でも無線でも行えるが、図1では、煩雑さを回避するために、ロボット12とロボットシミュレータ24との接続線は図示していない。
たとえば、アルゴリズムの計算量を実際の環境で見積もる必要があるとき、ロボット12上での接続先をロボットシミュレータ24に切り替えてロボットアプリケーションプログラムをプロセサ80によって実行することがある。このような場合に、プロセサ80がロボットシミュレータ24に接続される。
ステップS9すなわち第1判断手段において“YES”を判断したとき、つまり、プロセサ80がロボットシミュレータ24に接続されていると判断したとき、ステップS11で、時刻情報として、図1において矢印で示すように、ロボットシミュレータ24のプロセサ(図示せず)を動作させるクロック(シミュレータクロック)を取得する。
ロボットシミュレータ24においては、シミュレーションのステップ毎に決まっている時間(システムクロック)を基準として、そのステップが何ステップ目かということで時刻が決められ、ロボットシミュレータ24はそれに基づく時間情報に従って動作する。これに対して、ロボット12は、たとえばプロセサ80のRTCに由来する実クロックに従って動作する。
したがって、ステップS9でロボット12がロボットシミュレータ24に接続されていると判断したときには、ステップS11ではシミュレータクロックを取得して、ステップS7でのプログラムの実行に進む。
逆に、ステップS9で“NO”を判断したとき、つまりロボットシミュレータ24には接続されていないと判断したとき、ステップS13で自身が持つ実クロックを取得して、ステップS7でのプログラムの実行に進む。
このように、この実施例においては、ロボットアプリケーションプログラム18においてたとえばgettimeofdayやusleepなどの関数を用いて時刻(時間情報)を呼び出すとき、ロボット12のプロセサ80がロボットシミュレータ24に接続されている場合にシミュレータの時計を呼び出し、それ以外のばあには実世界の時計を呼び出すことにより、既存のロボットとロボットシミュレータの切り替えを簡単に行うことができる。したがって、時間情報を呼び出す多くの場所でプログラムを修正するなどの煩雑な作業は不要となる。
なお、上述の実施例ではロボット12の設定ファイルで設定することによってロボットの接続をロボットシミュレータ24に切り替えるようにしたが、このような切り替えは、操作装置14やシミュレーション装置16で行うこともできる。たとえば、ロボットとシミュレートしたロボットとの間の接続APIをロボットシミュレータ24で簡単に切り替えることができる。
なお、このロボットシステム10において利用可能なロボットは実施例で説明した図2および図3に示すコミュニケーションロボット12に限定されるものではない。他の形式、構造のロボットにも適用可能である。
10 …ロボットシステム
12 …ロボット
14 …操作装置
16 …シミュレーション装置
18 …ロボットアプリケーションプログラム
22 …仮想シミュレーション空間
24 …ロボットシミュレータ
26 …人シミュレータ
28 …物理エンジン
80 …プロセサ

Claims (4)

  1. ロボットアプリケーションプログラムに従って動作するプロセサを備えるロボットであって、
    前記プロセサがロボットシミュレータに接続されていることを判断する第1判断手段、および
    前記第1判断手段が前記プロセサは前記ロボットシミュレータに接続されていると判断したとき、時刻情報として前記ロボットシミュレータのクロックを取得するシミュレータクロック取得手段を備える、ロボット。
  2. 前記第1判断手段が前記プロセサは前記ロボットシミュレータに接続されていると判断しなかったとき、時刻情報として実クロックを取得する実クロック取得手段をさらに備える、請求項1記載のロボット。
  3. 前記ロボットアプリケーションプログラムにおいて時刻情報の取得が命令されたことを判断する第2判断手段をさらに備え、
    前記第1判断手段は、前記第2判断手段が時刻情報の取得が命令されたと判断したとき、前記プロセサがロボットシミュレータに接続されていることを判断する、請求項1または2記載のロボット。
  4. ロボットアプリケーションプログラムに従って動作するプロセサを備えるロボットの前記プロセサによって実行されるロボット制御プログラムであって、
    前記プロセサを前記プロセサがロボットシミュレータに接続されていることを判断する第1判断手段、および
    前記第1判断手段が前記プロセサは前記ロボットシミュレータに接続されていると判断したとき、時刻情報として前記ロボットシミュレータのクロックを取得するシミュレータクロック取得手段
    として機能させる、ロボット制御プログラム。
JP2016237341A 2016-12-07 2016-12-07 ロボットおよびロボット制御プログラム Active JP6908257B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016237341A JP6908257B2 (ja) 2016-12-07 2016-12-07 ロボットおよびロボット制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016237341A JP6908257B2 (ja) 2016-12-07 2016-12-07 ロボットおよびロボット制御プログラム

Publications (2)

Publication Number Publication Date
JP2018089757A true JP2018089757A (ja) 2018-06-14
JP6908257B2 JP6908257B2 (ja) 2021-07-21

Family

ID=62564177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016237341A Active JP6908257B2 (ja) 2016-12-07 2016-12-07 ロボットおよびロボット制御プログラム

Country Status (1)

Country Link
JP (1) JP6908257B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0390907A (ja) * 1989-09-01 1991-04-16 Fanuc Ltd 数値制御装置の表示方式
JPH05324022A (ja) * 1992-05-19 1993-12-07 Fanuc Ltd 計算機接続型ロボット制御装置
JPH10133734A (ja) * 1996-11-01 1998-05-22 Omron Corp 離散系シミュレータ
JP2008100315A (ja) * 2006-10-19 2008-05-01 Mitsubishi Heavy Ind Ltd 制御シミュレーションシステム
WO2010017835A1 (en) * 2008-08-12 2010-02-18 Abb Technology Ab A system and a method for off-line programming of an industrial robot
JP2014144524A (ja) * 2013-01-30 2014-08-14 Fanuc Ltd ロボットプログラムによりシミュレーションを行うシミュレーション装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0390907A (ja) * 1989-09-01 1991-04-16 Fanuc Ltd 数値制御装置の表示方式
JPH05324022A (ja) * 1992-05-19 1993-12-07 Fanuc Ltd 計算機接続型ロボット制御装置
JPH10133734A (ja) * 1996-11-01 1998-05-22 Omron Corp 離散系シミュレータ
JP2008100315A (ja) * 2006-10-19 2008-05-01 Mitsubishi Heavy Ind Ltd 制御シミュレーションシステム
WO2010017835A1 (en) * 2008-08-12 2010-02-18 Abb Technology Ab A system and a method for off-line programming of an industrial robot
JP2014144524A (ja) * 2013-01-30 2014-08-14 Fanuc Ltd ロボットプログラムによりシミュレーションを行うシミュレーション装置

Also Published As

Publication number Publication date
JP6908257B2 (ja) 2021-07-21

Similar Documents

Publication Publication Date Title
JP6793905B2 (ja) ロボットの行動シミュレーション装置
JP6809705B2 (ja) シミュレーションシステム
JP6567563B2 (ja) 衝突回避および軌道復帰能力を有する人型ロボット
JP7120254B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP6150429B2 (ja) ロボット制御システム、ロボット、出力制御プログラムおよび出力制御方法
JP6134895B2 (ja) ロボット制御システム、ロボット制御プログラムおよび説明ロボット
JP6565853B2 (ja) コミュニケーション装置
JP2024023193A (ja) 情報処理装置及び情報処理方法
JP6893630B2 (ja) サービス提供ロボットシステム
JP6134894B2 (ja) ロボット制御システムおよびロボット
JP2023507241A (ja) 随意のデュアルレンジ運動学を用いたプロキシコントローラスーツ
JP2024009862A (ja) 情報処理装置、情報処理方法、およびプログラム
JP7335084B2 (ja) シミュレーション装置およびプログラム
JP7139643B2 (ja) ロボット、ロボットの制御方法及びプログラム
WO2019123744A1 (ja) 情報処理装置、情報処理方法、およびプログラム
US20230195401A1 (en) Information processing apparatus and information processing method
JP6908257B2 (ja) ロボットおよびロボット制御プログラム
JP7258426B2 (ja) シミュレーションシステム、シミュレーションプログラムおよび学習装置
JP6925013B2 (ja) シミュレーションシステム
JP6142306B2 (ja) ロボット制御システム、ロボット、出力制御プログラムおよび出力制御方法
JP6841473B2 (ja) 案内ロボット
CN112823083A (zh) 可配置和交互式的机器人系统
JP6707255B2 (ja) サービス提供ロボットシステム
CN110014431B (zh) 通信装置
Hirschmanner Teleoperation of a humanoid robot using Oculus Rift and Leap Motion

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170125

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210624

R150 Certificate of patent or registration of utility model

Ref document number: 6908257

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150