JP7335084B2 - Simulation device and program - Google Patents
Simulation device and program Download PDFInfo
- Publication number
- JP7335084B2 JP7335084B2 JP2019061097A JP2019061097A JP7335084B2 JP 7335084 B2 JP7335084 B2 JP 7335084B2 JP 2019061097 A JP2019061097 A JP 2019061097A JP 2019061097 A JP2019061097 A JP 2019061097A JP 7335084 B2 JP7335084 B2 JP 7335084B2
- Authority
- JP
- Japan
- Prior art keywords
- simulation
- robot
- execution
- time
- desired execution
- 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.)
- Active
Links
Images
Landscapes
- Manipulator (AREA)
Description
この発明はシミュレーション装置およびプログラム
に関し、特にたとえば、デバッグ機能を持ったシミュレーション装置およびプログラムに関する。
This invention is a simulation device and program.
In particular, for example, it relates to a simulation device and program with a debugging function.
従来のこの種のシミュレーション装置が非特許文献1、2で開示されている。これらの非特許文献1、2のシミュレーション装置では、センサやアクチュエータをシミュレーションして可視化することによって、人との共存環境におけるロボットの適応をより簡単にシミュレーションすることができる。 Conventional simulation devices of this type are disclosed in Non-Patent Documents 1 and 2. With the simulation devices of these non-patent documents 1 and 2, by simulating and visualizing the sensors and actuators, it is possible to more easily simulate the adaptation of the robot in the coexistence environment with humans.
特許文献1では、本件発明者等は、さらに環境の変化(歩行者や物体の変化など)をシミュレーションすることによって、ロボットの行動決定プログラム(ロボットアプリケーションプログラム)の開発を効率的に行える、シミュレーションシステムを提案している。 In Patent Literature 1, the inventors of the present invention further developed a simulation system that can efficiently develop a robot action determination program (robot application program) by simulating changes in the environment (such as changes in pedestrians and objects). is proposing.
街角などで動作するサービスロボットのプログラムは複雑であり、特定の瞬間(たとえばロボットと周囲の歩行者が特定の条件ですれ違った瞬間)にのみ生ずるバグが存在し得る。このような特定の瞬間に生じるバグの原因解明は、シミュレーションだけでは難しく、一般的には、ログファイルを利用する。ログデータにはセンシング情報以外は欠如しているため、開発者には、ログデータへ大量に残されたセンサデータのみから、実世界の状況の様子を想像し、問題解明を行う作業が求められる。特に、特定の瞬間に生じるバグでは、プログラムの内部状態の変化と実世界の状況変化の対応づけをセンサデータのみから想像し、問題の原因を明らかにする作業が必要となる。この作業は困難であり、デバッグに多大な時間を要する。 Programs for service robots that operate on street corners and the like are complicated, and bugs that occur only at specific moments (for example, when the robot and pedestrians pass each other under specific conditions) can exist. It is difficult to clarify the cause of such a bug that occurs at a specific moment only by simulation, and generally log files are used. Since log data lacks anything other than sensing information, developers are required to imagine real-world situations and solve problems based on only the large amount of sensor data left in log data. . Especially for bugs that occur at specific moments, it is necessary to clarify the cause of the problem by imagining the correspondence between changes in the internal state of the program and changes in the real world only from sensor data. This task is difficult and takes a lot of time to debug.
それゆえに、この発明の主たる目的は、新規な、シミュレーション装置およびプログラムを提供することである。 SUMMARY OF THE INVENTION Therefore, a primary object of the present invention is to provide a novel simulation apparatus and program .
この発明の他の目的は、バグの原因追及を容易にし、デバッグを効率的に実行できる、シミュレーション装置およびプログラムを提供することである。 Another object of the present invention is to provide a simulation apparatus and program that facilitates investigation of the cause of bugs and enables efficient execution of debugging.
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。 In order to solve the above problems, the present invention employs the following configurations. It should be noted that reference numerals in parentheses, supplementary explanations, etc. indicate the correspondence with the embodiments described later in order to facilitate understanding of the present invention, and do not limit the present invention in any way.
第1の発明は、シミュレーションの1ステップの希望実行速度を手動的に設定できるユーザインタフェースを有し、仮想シミュレーション空間に投入したロボットエージェントおよび人エージェントの行動をシミュレーションし、その仮想シミュレーション空間をディスプレイに表示するシミュレーション装置であって、ユーザインタフェースで設定された希望実行速度を取得する希望実行速度取得手段、シミュレーションの開始時刻および終了時刻に基づく基本実行時間を取得する基本実行時間取得手段、希望実行速度に応じて希望実行周期を計算する希望実行周期計算手段、基本実行時間と希望実行周期を比較してその希望実行周期によってシミュレーションが実行可能かどうか判断する判断手段、および判断手段が実行可能と判断したとき、基本実行時間と希望実行周期に基づくスリープ時間だけスリープさせるスリープ手段を備える、シミュレーション装置である。 A first invention has a user interface capable of manually setting a desired execution speed for one step of a simulation, simulates the actions of a robot agent and a human agent put into a virtual simulation space, and displays the virtual simulation space on a display. A simulation apparatus to be displayed, comprising desired execution speed acquisition means for acquiring a desired execution speed set by a user interface, basic execution time acquisition means for acquiring a basic execution time based on simulation start time and end time, and desired execution speed Desired execution cycle calculation means for calculating a desired execution cycle according to the desired execution cycle, determination means for comparing the basic execution time and the desired execution cycle to determine whether or not the simulation can be executed according to the desired execution cycle, and the determination means determines that the simulation is executable. The simulation apparatus includes sleep means for causing sleep for a sleep time based on a basic execution time and a desired execution cycle when the simulation apparatus is executed.
第1の発明では、シミュレーションシステム(10:実施例において相当する部分を例示する参照符号。以下、同様。)を構成する、シミュレーション装置(16)は、ディスプレイ(105)およびシミュレーションの1ステップの希望実行速度を手動的に設定できるユーザインタフェース(109)を備え、仮想シミュレーション空間(22)に、ロボット(12)および人エージェントを投入する。たとえば、ロボット(12)の動作はロボットシミュレータ(24)がシミュレートし、人エージェントは人シミュレータ(26)がそれぞれシミュレートする。希望実行速度取得手段(S1、S21)がユーザインタフェースで設定された希望実行速度(s’)を取得する。基本実行時間取得手段(S25は)、シミュレーションの開始時刻(time_s)および終了時刻(time_e)に基づく基本実行時間(t)を取得する。希望実行周期計算手段(S27)が、希望実行速度に応じて希望実行周期(p)を計算し、判断手段(S29)は、基本実行時間(t)と希望実行周期(p)を比較して、その希望実行周期によってシミュレーションが実行可能かどうか判断する。そして、判断手段が実行可能と判断したとき、スリープ手段(S17)が、基本実行時間と希望実行周期に基づくスリープ時間、スリープさせる。 In the first invention, a simulation device (16) constituting a simulation system (10: reference numerals illustrating corresponding parts in the embodiments; the same shall apply hereinafter) includes a display (105) and one step of simulation. Equipped with a user interface (109) capable of manually setting the execution speed, a robot (12) and a human agent are put into a virtual simulation space (22). For example, the motion of the robot (12) is simulated by the robot simulator (24) and the human agent is simulated by the human simulator (26) respectively. A desired execution speed acquisition means (S1, S21) acquires a desired execution speed (s') set by a user interface. Basic execution time acquisition means (S25) acquires basic execution time (t) based on simulation start time (time_s) and simulation end time (time_e). Desired execution cycle calculation means (S27) calculates a desired execution cycle (p) according to the desired execution speed, and determination means (S29) compares the basic execution time (t) with the desired execution cycle (p). , it is determined whether the simulation can be executed according to the desired execution cycle. Then, when the judging means judges that the execution is possible, the sleeping means (S17) causes the sleep for the sleep time based on the basic execution time and the desired execution cycle.
第1の発明によれば、希望実行速度を手動的に設定することによって、それに応じ1ステップのシミュレーションの実行時間を変更でき、瞬間的に生じるバグの原因追及が容易になり、デバッグを効率的に実行できる。さらに、希望実行速度に応じて必要な時間シミュレーションをスリープさせるので、バグの状況を容易に視認することができる。 According to the first invention, by manually setting the desired execution speed, the execution time of one step of the simulation can be changed accordingly , making it easier to investigate the cause of instantaneously occurring bugs and efficiently debugging. can run to Furthermore, since the simulation is put to sleep for the necessary time according to the desired execution speed, the status of bugs can be easily visually recognized.
第2の発明は、第1の発明に従属するシミュレーション装置であって、希望実行周期および基本実行時間の差に従ってスリープ時間を計算するスリープ時間計算手段をさらに備え、スリープ手段はスリープ時間計算手段が計算したスリープ時間だけスリープさせる。 A second invention is a simulation apparatus according to the first invention, further comprising sleep time calculation means for calculating a sleep time according to a difference between the desired execution period and the basic execution time, wherein the sleep time calculation means Sleep for the calculated sleep time .
第2の発明では、スリープ時間計算手段(S31)が、希望実行周期および基本実行時間の差(p-t)に従ってスリープ時間を計算する。 In the second invention, the sleep time calculation means (S31) calculates the sleep time according to the difference (pt) between the desired execution period and the basic execution time.
第2の発明によれば、必要なスリープ時間だけスリープさせることができる。 According to the second invention, it is possible to sleep for the necessary sleep time.
第3の発明は、第1または第2の発明に従属するシミュレーション装置であって、判断手段が実行可能と判断しなかったとき、希望実行周期を含むパラメータを実行可能なパラメータに変更するパラメータ変更手段をさらに備える。 A third invention is a simulation apparatus according to the first or second invention, wherein when the determining means determines that the simulation is not executable, parameters including a desired execution cycle are changed to executable parameters. Further provide means .
第3の発明では、パラメータ変更手段(S33)が、希望実行周期を含むパラメータを実行可能なパラメータに変更する。 In the third invention, the parameter changing means (S33) changes the parameter including the desired execution cycle to an executable parameter.
第3の発明によれば、実行速度を早くするとき(高速化しすぎた場合)に対処できる。
第4の発明は、シミュレーションの1ステップの希望実行速度を手動的に設定できるユーザインタフェースを有し、仮想シミュレーション空間に投入したロボットエージェントおよび人エージェントの行動をシミュレーションし、その仮想シミュレーション空間をディスプレイに表示するシミュレーション装置のプログラムであって、プログラムはシミュレーション装置のコンピュータを、ユーザインタフェースで設定された希望実行速度を取得する希望実行速度取得手段、シミュレーションの開始時刻および終了時刻に基づく基本実行時間を取得する基本実行時間取得手段、希望実行速度に応じて希望実行周期を計算する希望実行周期計算手段、基本実行時間と希望実行周期を比較してその希望実行周期によってシミュレーションが実行可能かどうか判断する判断手段、および判断手段が実行可能と判断したとき、基本実行時間と希望実行周期に基づくスリープ時間だけスリープさせるスリープ手段として機能させる、シミュレーションプログラムである。
第4の発明においても、第1の発明と同様の効果が期待できる。
According to the third invention, when the execution speed is increased (when the speed is increased too much), it can be dealt with.
A fourth invention has a user interface capable of manually setting a desired execution speed for one step of the simulation, simulates the actions of a robot agent and a human agent put into a virtual simulation space, and displays the virtual simulation space on a display. A program for a simulation device to display, the program comprises a computer of the simulation device, a desired execution speed acquisition means for acquiring a desired execution speed set by a user interface, and a basic execution time based on the start time and end time of the simulation. a desired execution cycle calculating means for calculating a desired execution cycle according to a desired execution speed; and a judgment for comparing the basic execution time and the desired execution cycle to determine whether or not the simulation can be executed with the desired execution cycle. It is a simulation program that functions as a sleep means for sleeping for a sleep time based on a basic execution time and a desired execution cycle when the means and the judgment means judge that the execution is possible.
Also in the fourth invention, the same effects as in the first invention can be expected.
この発明によれば、シミュレーションにおける1ステップを実行する時間を長くすることができるので、特定の瞬間で生じるバグの原因追及が容易になる。そのために、ロボットアプリケーションプログラムのデバッグを効率的に実行できる。 According to this invention, the time for executing one step in the simulation can be lengthened, so it becomes easy to investigate the cause of a bug that occurs at a specific moment. Therefore, robot application programs can be debugged efficiently.
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。 The above object, other objects, features and advantages of the present invention will become more apparent from the following detailed description of the embodiments with reference to the drawings.
図1を参照して、この実施例のシミュレーションシステム10は、ロボット12、ロボット12を遠隔操作する操作装置14およびロボット12をシミュレートしたロボットエージェントや人(歩行者)をシミュレートした人エージェントをシミュレーションするシミュレーション装置16を含む。シミュレーションシステム10において、ロボット12を除いて、1台または2台以上のコンピュータ(プロセサ)によって実現される。
Referring to FIG. 1, a
この実施例のロボット12は、たとえば図2に示すコミュニケーションロボットのように、人との共存環境で活動するロボットである。このようなロボット12は環境の中に存在する人の行動に影響を受けるので、この実施例のシミュレーション装置16では、ロボット12の行動をロボットアプリケーションプログラム(ロボット行動決定プログラム)に従ってシミュレーションする際に、人の行動もシミュレーションすることによって、ロボット12のための安全なロボットアプリケーションプログラムの開発を支援する。
The
ここで、図2および図3を参照して、この発明の理解に必要な範囲でロボット12の構成について説明する。ロボット12は台車30を含み、台車30の下面にはロボット12を移動させる2つの車輪32および1つの従輪34が設けられる。2つの車輪32は車輪モータ36(図3参照)によってそれぞれ独立に駆動され、台車30すなわちロボット12を前後左右の任意方向に動かすことができる。
Here, with reference to FIGS. 2 and 3, the configuration of the
台車30の上には、円柱形のセンサ取り付けパネル38が設けられ、このセンサ取り付けパネル38には、多数の距離センサ40が取り付けられる。これらの距離センサ40は、たとえば赤外線や超音波などを用いてロボット12の周囲の物体(人や障害物など)との距離を測定するものである。
A cylindrical
センサ取り付けパネル38の上には、胴体42が直立して設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、上述した距離センサ40がさらに設けられ、ロボット12の前方の、主として人との距離を計測する。また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、全方位カメラ46が設けられる。全方位カメラ46は、ロボット12の周囲を撮影するものであり、後述する眼カメラ70とは区別される。この全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。
A
胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
An
また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。
Further,
前腕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は、当該各部位に触れたかどうかを検知する。
In addition, although not shown, the front surface of the
胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット12の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
A neck joint 60 is provided in the upper central portion of the body 42 (a position corresponding to the human neck), and a
頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、ロボット12が、それの周辺の人に対して音声によってコミュニケーションをとるために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66ということがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。
A
さらに、人の目に相当する位置には、右の眼球部68Rおよび左の眼球部68Lが設けられる。右の眼球部68Rおよび左の眼球部68Lは、それぞれ右の眼カメラ70Rおよび左の眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68ということがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70ということがある。
Further, a
眼カメラ70は、ロボット12に接近した人の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。この実施例では、ロボット12は、この眼カメラ70からの映像信号によって、人の左右両目のそれぞれの視線方向(ベクトル)を検出する。
The
また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直交する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64、マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
Also, the
このように、この実施例のロボット12は、車輪32の独立2軸駆動、肩関節48の3自由度(左右で6自由度)、肘関節52の1自由度(左右で2自由度)、首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。
As described above, the
図3はロボット12の電気的な構成を示すブロック図である。この図3を参照して、ロボット12は、1つまたは2以上のプロセサ80を含む。プロセサ80は、バス82を介して、メモリ84、モータ制御ボード86、センサ入力/出力ボード88および音声入力/出力ボード90に接続される。
FIG. 3 is a block diagram showing the electrical configuration of the
メモリ84は、図示は省略をするが、ROM、HDDおよびRAMを含む。ROMおよびHDDには、各種プログラムが予め記憶される。
Although not shown, the
モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節60および眼球部68などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、プロセサ80からの制御データを受け、右眼球部68Rの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「右眼球モータ92」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、プロセサ80からの制御データを受け、左眼球部68Lの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「左眼球モータ94」と示す)の回転角度を制御する。
The
また、モータ制御ボード86は、プロセサ80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「右腕モータ96」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、プロセサ80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「左腕モータ98」と示す)の回転角度を制御する。
Also, the
さらに、モータ制御ボード86は、プロセサ80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(図3では、まとめて「頭部モータ100」と示す)の回転角度を制御する。そして、モータ制御ボード86は、プロセサ80からの制御データを受け、車輪32を駆動する2つのモータ(図3では、まとめて「車輪モータ36」と示す)の回転角度を制御する。
Furthermore, the
モータ制御ボード86にはさらにハンドアクチュエータ101が結合され、モータ制御ボード86は、プロセサ80からの制御データを受け、ハンド56R、56Lの開閉を制御する。
A
センサ入力/出力ボード88は、モータ制御ボード86と同様に、DSPで構成され、各センサからの信号を取り込んでプロセサ80に与える。すなわち、距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード88を通じてプロセサ80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからプロセサ80に入力される。眼カメラ70からの映像信号も、同様にして、プロセサ80に入力される。また、上述した複数の接触センサ58(図3では、まとめて「接触センサ58」と示す)からの信号がセンサ入力/出力ボード88を介してプロセサ80に与えられる。音声入力/出力ボード90もまた、同様に、DSPで構成され、プロセサ80から与えられる音声合成データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してプロセサ80に与えられる。
The sensor input/output board 88, like the
また、プロセサ80は、バス82を介して通信LANボード102に接続される。通信LANボード102は、たとえばDSPで構成され、プロセサ80から与えられた送信データを無線通信モジュール104に与え、無線通信モジュール104は送信データを、ネットワークを介してサーバ(図示せず)等に送信する。また、通信LANボード102は、無線通信モジュール104を介してデータを受信し、受信したデータをプロセサ80に与える。
なお、実施例のシミュレーションシステム10が適用可能なロボットは、図2および図3に示すロボット12に限定されるものではなく、他の形式、構造のコミュニケーションロボットにもこのシミュレーション装置は適用可能である。
The robot to which the
図1に戻って、操作装置14は、基本的には1または2以上のコンピュータまたはプロセサによって構成され、そのプロセサのメモリ(図示せず)にロボットアプリケーションプログラム18が設定されていて、そのロボットアプリケーションプログラムがコンピュータからたとえば無線でロボット12またはシミュレーション装置16に与えられる。ロボットアプリケーションプログラム18は、ロボット12に対するアプリケーションプログラムであり、たとえばロボット12を案内ロボットとしとて動作させるときには、そのための動作をロボット12が実行するようなプログラムである。
Returning to FIG. 1, the
操作装置14のメモリにはさらに、環境データ20を予め記憶している。環境データ20は主として図4に示す仮想シミュレーション空間22の地図データおよびその仮想シミュレーション空間22内での人エージェントの出現率データを含む。環境および環境内のオブジェクトは3次元モデルデータとして表され、3次元仮想空間として視覚化される。
The memory of the operating
図4に示す仮想シミュレーション空間22は、図中点線矩形で示す出入口22aを有する3次元閉空間を想定している。この仮想シミュレーション空間22においては黒色太線で示す通路22bが設定されていて、ロボット12や人エージェントはその通路22bや広場などを通行し、またはそこに存在する。これらの通路22bや広場は建物や壁などオブジェクトによって区画され、図中丸印で示す場所で分岐または合流する。
A
シミュレーション装置16は、基本的には1または2以上のプロセサないしコンピュータで構成され、ロボット12をシミュレートするロボットシミュレータ24および歩行者のような人エージェントをシミュレートする人シミュレータ26を含み、それぞれのシミュレーション結果が物理エンジン28に入力される。
The
ロボットシミュレータ24は、たとえば先の非特許文献1として例示したMORSEシミュレータであり、このMORSEシミュレータは、ロボット12と同様の、多くのセンサ、アクチュエータおよびロボットのモデルを提供し、そのようなモデル用のAPI(Application Programming Interface)も利用できる。
The
センサシミュレーションにおいては、たとえば、カメラ画像の場合には、カメラ視点からの光学的な計算を行い、カメラ視点毎の画像情報を生成する。レーザ距離計の場合には、レーザによるスキャンを模して、センサから各方位へ距離計測を行い、その結果をセンサ値として保存する。 In sensor simulation, for example, in the case of a camera image, optical calculation is performed from the viewpoint of the camera to generate image information for each viewpoint of the camera. In the case of a laser range finder, the distance is measured from the sensor in each direction by simulating laser scanning, and the results are stored as sensor values.
開発者がロボットのためのロボットアプリケーションプログラムを準備するとき、それらのプログラムはこれらのAPIにアクセスしてセンサデータ(たとえば、レーザ距離計からの距離の読み取り)およびアクチュエータへのコマンドの送信(たとえば、移動速度)を行う。 When developers prepare robot application programs for their robots, those programs access these APIs to read sensor data (e.g. reading distances from a laser rangefinder) and to send commands to actuators (e.g. movement speed).
人シミュレータ26は、定期的に新しい歩行者を生成し、それらの位置を更新し、それらがシミュレートされた環境(仮想シミュレーション空間22)を離れるときにそれらを除去する。歩行者すなわち人は、3次元オブジェクトとして表現され、仮想シミュレータ空間22内に配置され、アニメーションエンジンを使用して、その歩行動作がアニメーション化される。
The
ただし、人シミュレータ26には図1に示すように環境データ20が与えられるので、人シミュレータ26は、その環境データに含まれる出現率と呼ばれる予め定義された確率で新しい歩行者を周期的に生成する。そして、その歩行者は図4に示す出入口22aの1つに割り当てられ、他の1つに行くように設定される。
However, since the
なお、歩行者はしばしばグループとして(家族やカップルのように)生成され、それらがグループで表示される場合、サイズはグループメンバの分布によって定義し、すべてのメンバが同じ目的を共有すると仮定する。 Note that pedestrians are often generated in groups (like families or couples) and when they are displayed in groups, the size is defined by the distribution of group members, assuming that all members share the same purpose.
物理エンジン28は、物理的な力や法則などに基づいて、ロボットや人エージェントがどのような移動経路をたどるかを計算する。詳しくいうと、物理エンジン28は、ロボットシミュレータ24および人シミュレータ26からの各エージェント(ロボット含む)が意図した動きを、仮想シミュレーション空間22(図4)で実行する処理を実行する。このとき、他の障害物、構造物や他のエージェントとの干渉が何もなければ、意図したとおりの動きを生成する。しかしながら、干渉がある場合、物理学法則(力学法則)に従って、各エージェントの実際の動きを処理する。そして、物理エンジン28からは統合したシミュレーションデータが出力される。
The
シミュレーション装置16には、ディスプレイ105が設けられていて、このディスプレイ105によって、たとえば図4に示すような仮想シミュレーション空間の画像が、その中に存在するシミュレートされたロボットや人エージェントとともに、表示される。たとえば、人エージェントは、3次元オブジェクトとして表現され、仮想シミュレーション空間22内に配置され、アニメーションエンジンを使用して、その歩行動作がアニメーション化される。ロボットアプリケーションプログラム18の開発者は、そのディスプレイ105に表示された画像で確認しながら、ロボット12の行動決定プログラム(アプリケーションプログラム)を作製し、修正する。
The
さらに、シミュレーション装置16には入力装置107が付設されている。この入力装置107は、たとえば、キーボードあるいはタッチパネルであってよく、タッチパネルの場合にはディスプレイ105に組み込み、ディスプレイ105をタッチディスプレイとして構成することもできる。入力装置107は、オペレータが後述する希望実行速度s’を設定する際に利用できる。
Furthermore, the
図5を参照して、人シミュレータ26を詳細に説明する。人シミュレータ26は、ロボットシミュレータ24と同様に、シミュレーション装置16のコンピュータないしプロセサによって実現される機能であり、人生成モジュール110を含む。この人生成モジュール110は、上述のように、環境データ20に含まれる出現率データ108に従って新しい歩行者(人エージェント)を、地図データ106が表す、図4に一例を示す仮想シミュレーション空間22内に、周期的に生成する。
The
出現率データ108は、シミュレーション装置16の仮想シミュレーション空間22に投入する人エージェントのための、人の形状、すなわち大人、子供、男性、女性などの人の形状(パターン)やそれぞれの人の出現率が予め設定されているデータベースであり、設定された確率で設定された形状の人エージェントが生成される。
なお、この出現率データ108では、曜日や時間ごとに異なるデータセットを保持しておき、曜日や時間を指定してシミュレーションできるようにしてもよい。そうすれば、ある時間帯にロボットを動かすとどうなるのかなど、いろいろシミュレーションすることができる。
It should be noted that the
ただし、生成される人エージェントがグループを形成することを出現率データ108が示していれば、人生成モジュール110は、シミュレーションパラメータとして設定されているグループメンバデータ112に従ったメンバ構成のグループで複数の人エージェントを生成する。
However, if the
移動モジュール114は、人生成モジュール110が生成した人エージェントを、オブジェクティブモデル(Objective Model)116に基づいて、仮想シミュレーション空間22(図4)内を移動させる。ここで、オブジェクティブ(Objective)とは、仮想シミュレーション空間22において、人エージェント(図示せず)の視界にロボットエージェント(図示せず)が入ったときに、人エージェントが示す反応の仕方、つまり人が実空間で実際に執り得る対ロボット行動パターンを規定する命令セットである。この実施例では後述の4つの典型的な反応の態様(オブジェクティブ)をモデルとして設定しておき、移動モジュール114は人エージェントを移動させるとき、そのモデルが示すオブジェクティブに従って移動させる。つまり、オブジェクティブモデル116は、仮想シミュレーション空間においてロボットの存在に対する反応行動を人エージェントに行わせる、第1命令セットとして機能する。これらのオブジェクティブはシミュレーションシステム10の第1メモリ(図示せず)に記憶されている。
なお、このオブジェクティブモデル116に予め設定されている利用可能なオブジェクティブは、たとえば上記第1メモリから読み出してそれらの一覧をたとえばディスプレイ105などに表示するなどして、デバッグしようとする開発者が知ることができる。開発者は、その中の任意のオブジェクティブを選択して、後述のようにスクリプト(122)でそのオブジェクティブを変更(更新)することが可能である。このとき、開発者はシミュレーションシステム10に設けられているキーボードなどの入力装置(図示せず)を用いて、要変更箇所を変更することができる。そして、その変更(更新)されたオブジェクティブもまた第1メモリに記憶される。つまり、オブジェクティブモデル116は,拡張性を有するように設計しているので、別の誰かが更新したオブジェクティブを一覧情報として知ることができる点は、有効である。
The available objectives preset in the
たとえば、ロボットが自分の視野に入ったときに人が執る行動パターン(オブジェクティブ)として、図6および図7に示す、ロボットと対話するパターンと、ロボットを観察するパターンがある。 For example, as behavior patterns (objectives) that a person takes when a robot comes into his/her field of view, there are a pattern of interacting with the robot and a pattern of observing the robot, as shown in FIGS.
図6は、人(「i」で示す)が自分の視野内にロボット12を発見すると、ロボット12の回りに、ロボット12から停止距離Dstopを隔てて停止し、ロボット12と対話するオブジェクティブを図解している。
FIG. 6 illustrates an objective that stops around robot 12 a stopping distance Dstop from
図7は、人(「i」で示す)が自分の視野内にロボット12を発見すると、ロボット12の回りに、ロボット12から停止距離Dstopよりもやや大きい観察距離Dobserveを隔てて停止し、ロボット12を観察するオブジェクティブを図解している。
FIG. 7 shows that when a person (indicated by "i") discovers the
オブジェクティブとしては、その他、ロボットの傍を通りすぎるオブジェクティブ、およびロボットの傍を減速し、見ながら通りすぎるオブジェクティブがあり、移動モジュール114では、人エージェントがその登録しているどれかのオブジェクティブに従って移動するようにシミュレーションする。
Objectives include other objectives that pass by the robot, and objectives that slow down and pass by the robot while looking at it. In the
ただし、移動モジュール114は、シミュレーションパラメータに含まれるソーシャルフォースモデル(Social Force Model)118およびインタラクションモデル(Interaction with robot model)120からのそれぞれのモデルデータを考慮して、人エージェントの移動をシミュレートする。ソーシャルフォースモデルとは、後述の図8に示すように歩行者どうしがいかに影響して挙動が変わるかということを表すモデルである。たとえば、斥力または反力などとして知られている。
However, the
仮想シミュレーション空間22内において、人エージェントの行動は、他のエージェントから影響されて変化する(たとえば、人同士がぶつからないように避ける、ロボットを見たら近づく、など)。
In the
たとえば図8に示すように、2人の人iおよびjは相互に影響して次のステップでの移動位置を決定する場合がある、人エージェントiは本来はdi,jの方向へ移動するのであるが、人エージェントjが人エージェントiに対して角度θi,jの方向に速度vi,jで移動しようとしているため、人エージェントiは、結局d’i,jの方向へ移動することになる。 For example, as shown in FIG. 8, two people i and j may influence each other to determine their movement position in the next step, since human agent i originally moves in the direction of di,j. However, since the human agent j is about to move in the direction of the angle θi,j with the speed vi,j with respect to the human agent i, the human agent i ends up moving in the direction of d'i,j. .
なお、インタラクションモデル120とは、人のロボットとの相互作用のパターンを予め設定しているモデルである。
The
図9は図4に示す仮想シミュレーション環境(空間)の一部を模式的に示していて、仮想シミュレーション空間22は、出入口22aを設けた壁などのオブジェクト124で仕切られた閉空間を想定している。ただし、オブジェクト124はすべて、障害物として地図データ106に書き込まれている。
FIG. 9 schematically shows a part of the virtual simulation environment (space) shown in FIG. there is However, all objects 124 are written in the
ロボットシミュレータ24は、環境データ20に含まれるロボット(ロボットエージェント)の位置等のデータに基づいて、ロボットアプリケーションプログラム18に従ったロボットの次のステップでの行動をシミュレーションする。ここで、ロボットアプリケーションプログラム18は、図3のセンサ入力/出力ボード88に入力されるセンサ出力に応じて、各モータすなわちアクチュエータを制御してロボットの行動を決定するプログラムである。
The
図9の例でいえば、ロボットアプリケーションプログラム18は、たとえば図9において、一方の出入口22aからロボット12が仮想シミュレーション空間22に入り、他方の出入口22aから出るまで、通路22bに従って移動させるように設定されている。なお、図9において参照符号126が、シミュレーションのためにこの仮想シミュレーション空間22に投入された人エージェントを示す。
In the example of FIG. 9, the
人シミュレータ26はさらに、必要な場合、オブジェクティブモデル116ではなく、スクリプト122に従ってシミュレーションを実行する。オブジェクティブモデル116は上述のように、予め設定した、定型の対ロボット反応パターンであるが、スクリプト122は、シミュレーション装置16すなわち人シミュレータ26に非定型の動作を行わせる命令である。ここで、スクリプトとは、コンピュータが理解できる言語への変換作業を省略して、簡単に解釈実行できるようにした簡易プログラム(命令セット)のことである。ソフトウェアの設計などにおいて、コンピュータに命令を与える際には、通常、人間が普通に読み書きできる言語から、コンピュータが理解できる言語、いわゆる機械語への変換が必要であるが、スクリプトは、そのような変換作業を省略して簡単に解釈実行できるようにした簡易プログラムである。これらのスクリプトは、第2命令セットに該当するが、それらはシミュレーションシステム10の第2メモリ(図示せず)に記憶されている。ただし、第1メモリおよび第2メモリは同じメモリの異なる記憶場所であってよい。
ここで、まず、図10を参照して、オブジェクティブモデル116に従った図1に示すシミュレーション装置16における動作の一例を説明する。ただし、この図10に示すシミュレーションは、複数のステップ(S3-S17)を1ステップとして実行する。実際的な運用において、シミュレーションの1ステップは最速0.1ミリ秒単位で実行可能であるが、ここでは10ミリ秒単位に設定し、ロボットアプリケーションプログラム18の実行は100ミリ秒単位とすることが可能である。この例の場合、ロボットアプリケーションプログラム18は、シミュレーション装置16による10ステップの実行毎に1度、実行される。つまり、この実施例では、このようにロボットアプリケーションプログラムの周期がシミュレーションの1ステップの実行周期より長い場合を想定している。
Here, first, with reference to FIG. 10, an example of the operation of the
最初のステップS1において、シミュレーション装置16のコンピュータ(以下、単に「コンピュータ」ということがある。)は、一例として図4(および図9)に示す通路22b上を移動するように設定されている、ロボットアプリケーションプログラム18を読み込むとともに、環境データ20を読み込む。すなわち、ロボット12の行動をシミュレーションする図4(および図9)のような仮想シミュレーション空間22の地図データ106および出現率データ108が示す仮想シミュレーション空間22に投入する人エージェントの生成に関するパラメータ(出現頻度、移動経路、グループ人数、大人子供や男女の比率、背の高さなど)および各エージェント(ロボット12を含む)の位置データなどを読み込む。なお、この仮想シミュレーション空間22が、ロボット12および人エージェントとともに、ディスプレイ105に表示される。
In the first step S1, the computer of the simulation device 16 (hereinafter sometimes simply referred to as "computer") is set to move on the
さらに、このステップS1では、シミュレーションの初期化を行う。つまり、実行速度s=1.0、基本実行ステップ数fpsをfps=30.0としてそれぞれ設定する。ただし、fpsは、1秒間に何ステップのシミュレーションを実行するかを示す数値で、この実施例の初期設定では、1秒間に30ステップのシミュレーションを実行するように、設定される。この場合、基本実行周期pはp=1.0×1/fps=1/30(≒0.033)秒となる。 Furthermore, in this step S1, the simulation is initialized. That is, the execution speed s is set to 1.0, and the number of basic execution steps fps is set to fps=30.0. However, fps is a numerical value indicating how many steps of simulation are executed per second, and in the initial setting of this embodiment, it is set so that 30 steps of simulation are executed per second. In this case, the basic execution period p is p=1.0×1/fps=1/30 (≈0.033) seconds.
次のステップS3では、コンピュータは、シミュレーション1ステップの実行周期を計測するために、実行開始時間time_sとして現在のシステム時刻を、たとえばシミュレーション装置16のメモリ(図示せず)に、記憶する。
In the next step S3, the computer stores the current system time as the execution start time time_s in the memory (not shown) of the
次のステップS5では、人シミュレータ26の人生成モジュール110によって、環境データ20が提示する人エージェントの生成に関する上述のパラメータおよびグループからの人パターンのデータに従って、仮想シミュレーション空間22内で、1または2以上の人エージェントを生成して配置する。
In the next step S5, the
ステップS7でコンピュータすなわち人シミュレータ26は、環境データ20が示す現在の人エージェントおよびロボット12の位置に基づいて、そしてオブジェクティブモデル116が示す対ロボット行動パターンに基づいて、人エージェントの次のステップでの行動を決定する。なお、基本的な前述した4つのオブジェクティブの一覧は開発者(操作装置14のオペレータ)が自由にアクセスできる形で提供される。さらに、他のオブジェクティブモデルを採用することもできる。
In step S7, the computer or
ステップS9でコンピュータすなわちロボットシミュレータ24は、ロボットアプリケーションプログラム18から1ステップ分の行動命令を受け取り、実行する。ただし、ロボットアプリケーションプログラムの周期がシミュレーションの1ステップの実行周期より長い場合には、このステップS9でロボットシミュレータ24が何もしないこともある。
At step S9, the computer, that is, the
ロボットの行動としては、たとえば、ロボット12がたとえば搬送ロボットや搭乗型ロボットのように目的地に向かうことが主目的のロボットである場合、他の人々の現在の位置や移動速度から、なるべく他人の移動に干渉しないような移動経路を計算する処理を行う。また、ロボット12が人々にサービス提供することが目的のロボットである場合には、たとえば、ロボットに興味がありそうな人に接近するために、単純な場合では、ロボットの近傍で止まっている人を選択して、その人に向かって進む、また、人々が集まりがちな場所を選んでそのような場所でやってくる人を待ち受ける、また、混雑を起こさないように過度に人々が通る場所には近づかないようにする、といった処理を行ったりする。
As for the behavior of the robot, for example, if the
ただし、ロボットの行動は、ステップS7で人エージェントの次のステップでの行動を決定しているので、それを考慮して、上述の処理を実行する。そのため、人と共存する実空間で活動するロボットアプリケーションプログラムの当否を、仮想シミュレーション空間内で判断することができる。 However, since the action of the robot determines the action of the human agent in the next step in step S7, the above process is executed in consideration of that. Therefore, it is possible to judge the suitability of a robot application program that operates in a real space coexisting with people in the virtual simulation space.
その後ステップS11で、コンピュータすなわち物理エンジン28において、各エージェントの行動を実現する。詳しくいうと、ステップS11では、先に説明したように、各エージェント(ロボット含む)が意図した動きを仮想シミュレーション空間22内で実施する処理が行われ、他の障害物、構造物や他のエージェントとの干渉が何もなければ、各エージェントは意図したとおりに動く。たとえば、エージェントが1歩前進しようとした場合、その意図通り、エージェントが1歩前進する。
Then, in step S11, the computer, that is, the
ところが、干渉がある場合、物理学法則(力学法則)に従って各エージェントの実際の動きが処理される。単純な場合、たとえば壁に向かって進もうとすると、壁に衝突し、それ以上前進できないし、一定の反発係数に従って反力を受ける。エージェント同士の衝突の場合、前進する動きと、反力による移動が重なり合って、たとえば、単純な例を考えると、前進中にたとえば側方から衝突すると、斜め前方へと実際には動くことになる。 However, in the presence of interference, the actual movement of each agent is processed according to the laws of physics (laws of mechanics). In a simple case, for example, if you try to move towards a wall, you will hit the wall, you will not be able to move further, and you will receive a reaction force according to a certain coefficient of restitution. In the case of a collision between agents, the forward movement and the movement due to the reaction force overlap, and for example, if we consider a simple example, if the agent collides from the side while moving forward, it will actually move diagonally forward. .
次のステップS13で、環境データやセンサデータなどを更新する。 In the next step S13, environmental data, sensor data, etc. are updated.
ステップS15では、シミュレーション1ステップの実行周期を計測するために、実行完了時間time_eとして現在のシステム時刻を、たとえばシミュレーション装置16のメモリ(図示せず)に、記憶する。
In step S15, the current system time is stored, for example, in the memory (not shown) of the
さらに、ステップS17で、実行速度に応じて、シミュレーション装置16をスリープさせる。ただし、そのスリープ時間は、後に図11を参照して詳細に説明する。
Furthermore, in step S17, the
そして、ステップS19でシミュレーションを終了するかどうか判断し、シミュレーションを続行するなら再び先のステップS3に戻り、たとえば行動決定プログラムが終了するなどした場合“YES”が判断され、シミュレーションを終了する。 Then, in step S19, it is determined whether or not to end the simulation, and if the simulation is to be continued, the process returns to the previous step S3.
このように、シミュレーション装置16においてオブジェクティブモデル116に従ってロボットの周囲の人の行動を再現するようにシミュレーションを行い、その状態をディスプレイ105(図1)で確認することにより、ロボットの行動をシミュレーションできるので、ロボットを実空間で実際に動かすことなく、人と共存する実空間で活動するロボットアプリケーションプログラム18の開発を効率的に行うことができる。
In this way, the
上述のシミュレーション動作において、ロボットアプリケーションプログラム18の1ステップのシミュレーションを実行する実行速度sは、一定かつ高速であり、先に説明した瞬間的なバグの再現や検証は困難である。そこで、この実施例では、実行速度sを変更可能にすることによって、たとえば、バグが生じやすい状況でのみシミュレーションを低速で実行することで、プログラムとシミュレートされた状況を同時に視認できるようにし、問題の理解を促進し、効率的なデバッグを可能にする。
In the simulation operation described above, the execution speed s for executing the one-step simulation of the
図11はこのような実施例の動作を示すフロー図であり、この図11の最初のステップS21では、コンピュータは、オペレータが設定(入力)した、希望実行速度s’を読み取る。 FIG. 11 is a flow chart showing the operation of such an embodiment, and in the first step S21 of FIG. 11, the computer reads the desired execution speed s' set (input) by the operator.
たとえば、図12に示すような入力部111を有するユーザインタフェース109をディスプレイ105に表示する。オペレータは、入力部111に希望実行速度s’を入力する。たとえば、その入力部111にプルダウンメニューを設定し、希望実行速度s’として、たとえば「2」、「3」、「4」、「5」、…のどれかの数値が設定できるようにしておけばよい。あるいは、入力装置107で入力部111に直接数値を入力するようにしてもよい。
For example, a
なお、このユーザインタフェース109には、さらに、現在の実行速度sと、適用(apply)ボタン113が表示されている。入力部111に希望実行速度s’を入力した後に、この適用ボタン113を操作すると、ステップS21での希望実行速度s’の読取りが可能になる。
The
そして、ステップS23で、ステップS21で読み取った希望実行速度s’を、実行速度sとして設定する。 Then, in step S23, the desired execution speed s' read in step S21 is set as the execution speed s.
ステップS25では、コンピュータは、図10を実行する際にコンピュータのメモリに記憶した、実行開始時間time_sとステップS15で記憶した実行完了時間time_eに基づいて、基本実行時間t(=time_e-time_s)を取得する。 In step S25, the computer calculates the basic execution time t (=time_e-time_s) based on the execution start time time_s stored in the memory of the computer when executing FIG. 10 and the execution completion time time_e stored in step S15. get.
次のステップS27で、コンピュータは、希望実行周期pを計算する(p=s×1/fps)。上述のように、ステップS21での初期設定で理想実行ステップ数fpsが「30.0」として設定されているので、先のステップS23で希望実行速度s’をたとえば「3」と設定したときには、希望実行周期pは、3/30.0(=0.1)秒となる。つまり、初期設定による基本実行周期0.033秒に比べて、実行周期が3倍にされる。実行周期が3倍ということは、1ステップ当たりの実行時間が1/3に減速されたことを意味する。この意味で、希望実行速度s’は、減速倍率ということもできる。 At the next step S27, the computer calculates the desired execution period p (p=s.times.1/fps). As described above, the ideal execution step number fps is set to "30.0" in the initial setting in step S21. The desired execution period p is 3/30.0 (=0.1) seconds. In other words, the execution cycle is tripled compared to the default basic execution cycle of 0.033 seconds. Triple the execution period means that the execution time per step is reduced to 1/3. In this sense, the desired execution speed s' can also be called a deceleration factor.
ステップS29では、コンピュータは、その希望実行周期pによってシミュレーションが実行可能かどうか判断する。具体的には、希望実行周期pが基本実行時間t秒(ステップS25)より大きいかどうか(t<p?)を判断する。 At step S29, the computer determines whether or not the simulation can be executed with the desired execution period p. Specifically, it is determined whether or not the desired execution cycle p is greater than the basic execution time t seconds (step S25) (t<p?).
“YES”の場合、すなわち、t<pの場合、コンピュータは、ステップS31で、スリープ時間(p-t)秒を計算し、リターンする。そのスリープ時間に基づいて、先の図10のステップS17において、コンピュータは、シミュレーションをスリープさせる。つまり、このスリープ時間(p-t)だけ、当該ステップのシミュレーションが止まるため、結果的にシミュレーションの実行速度が減速される。そのため、バグが生じやすい状況でのみこのような減速(低速)シミュレーションを実行することで、プログラムとシミュレートされた状況を同時にディスプレイ105で視認することで、問題の理解を促進し、効率的なデバッグを実現することができる。
If "YES", ie, t<p, the computer calculates the sleep time (p−t) seconds in step S31 and returns. Based on the sleep time, the computer puts the simulation to sleep in step S17 of FIG. That is, the simulation of the step is stopped for the sleep time (pt), resulting in a reduction in the execution speed of the simulation. Therefore, by performing such a slowdown (slow) simulation only in bug-prone situations, viewing the program and the simulated situation simultaneously on the
上で挙げた例でいえば、基本実行時間tが0.01秒であったとすると、スリープ時間は0.1-0.01=0.09秒となり、シミュレーションの次のステップが実行されるまで、0.09秒スリープされる。 In the example given above, if the base execution time t was 0.01 seconds, the sleep time would be 0.1 - 0.01 = 0.09 seconds until the next step of the simulation is executed. , is slept for 0.09 seconds.
ただし、ステップS29で“NO”が判断されたとき、ステップS33で、実行速度sおよび実行周期pを、それぞれ、実行可能な値、s=fps*tおよびp=tとして設定する。 However, when "NO" is determined in step S29, in step S33, the execution speed s and the execution period p are set as executable values, s=fps*t and p=t, respectively.
この実施例では、実行速度を遅くする他、実行速度を早くすることも想定していて、ステップS33は、実行速度を早くするとき(高速化しすぎた場合)を想定した処理を意味する。 In this embodiment, in addition to slowing down the execution speed, it is also assumed to speed up the execution speed, and step S33 means processing assuming that the execution speed is increased (too fast).
シミュレーション装置16内で,3次元モデルの位置変更や、センサプロセスのシミュレーションを行った場合、シミュレーションの最大速度を無限大まで上げることはできず、どうしても、最大速度に限界がある。つまり、図11のステップS33では、最大速度での実行時間を基本実行時間tに制限するために、周期pにtを代入することで、スリープをしないように設定している。そのために、実行速度s=fps×tとし、ステップS27で計算する周期をtとするようにした。したがって、ステップS31で計算されるスリープ時間は「0」(ゼロ)となり、この場合のステップS17(図10)ではスリープされない。
When the position of the three-dimensional model is changed or the sensor process is simulated in the
このように、この実施例において、低速実行を必要としないステップは、基本実行周期でシミュレートされる。 Thus, in this embodiment, steps that do not require slow execution are simulated with a basic execution cycle.
なお、実施例で説明した具体的な数値は単なる例示であり、これらに限定されるものではなく、さらに適宜変更可能である。 It should be noted that the specific numerical values described in the examples are merely examples, and are not limited to these, and can be changed as appropriate.
10 …シミュレーションシステム
12 …ロボット
14 …操作装置
16 …シミュレーション装置
18 …ロボットアプリケーションプログラム
22 …仮想シミュレーション空間
24 …ロボットシミュレータ
26 …人シミュレータ
28 …物理エンジン
105…ディスプレイ
107…入力装置
109…ユーザインタフェース
111…入力部
10 ...
Claims (4)
前記ユーザインタフェースで設定された希望実行速度を取得する希望実行速度取得手段、
シミュレーションの開始時刻および終了時刻に基づく基本実行時間を取得する基本実行時間取得手段、
前記希望実行速度に応じて希望実行周期を計算する希望実行周期計算手段、
前記基本実行時間と前記希望実行周期を比較してその希望実行周期によってシミュレーションが実行可能かどうか判断する判断手段、および
前記判断手段が実行可能と判断したとき、前記基本実行時間と前記希望実行周期に基づくスリープ時間だけスリープさせるスリープ手段を備える、シミュレーション装置。 A simulation system that has a user interface that can manually set a desired execution speed for one step of simulation, simulates the behavior of a robot agent and a human agent that are put into a virtual simulation space, and displays the virtual simulation space on a display. hand,
Desired execution speed acquisition means for acquiring a desired execution speed set by the user interface;
basic execution time acquisition means for acquiring basic execution time based on simulation start time and end time;
Desired execution cycle calculation means for calculating a desired execution cycle according to the desired execution speed;
determining means for comparing the basic execution time and the desired execution cycle to determine whether or not the simulation can be executed with the desired execution cycle;
A simulation apparatus comprising sleep means for causing sleep for a sleep time based on the basic execution time and the desired execution cycle when the judgment means judges that the simulation is executable.
前記スリープ手段は前記スリープ時間計算手段が計算した前記スリープ時間だけスリープさせる、請求項1記載のシミュレーション装置。 further comprising sleep time calculation means for calculating the sleep time according to the difference between the desired execution cycle and the basic execution time;
2. The simulation apparatus according to claim 1 , wherein said sleep means causes sleep for said sleep time calculated by said sleep time calculation means .
前記プログラムは前記シミュレーション装置のコンピュータを、The program causes the computer of the simulation device to
前記ユーザインタフェースで設定された希望実行速度を取得する希望実行速度取得手段、Desired execution speed acquisition means for acquiring a desired execution speed set by the user interface;
シミュレーションの開始時刻および終了時刻に基づく基本実行時間を取得する基本実行時間取得手段、basic execution time acquisition means for acquiring basic execution time based on simulation start time and end time;
前記希望実行速度に応じて希望実行周期を計算する希望実行周期計算手段、Desired execution cycle calculation means for calculating a desired execution cycle according to the desired execution speed;
前記基本実行時間と前記希望実行周期を比較してその希望実行周期によってシミュレーションが実行可能かどうか判断する判断手段、およびdetermining means for comparing the basic execution time and the desired execution cycle to determine whether or not the simulation can be executed with the desired execution cycle;
前記判断手段が実行可能と判断したとき、前記基本実行時間と前記希望実行周期に基づくスリープ時間だけスリープさせるスリープ手段として機能させる、シミュレーションプログラム。A simulation program that functions as a sleep means that sleeps for a sleep time based on the basic execution time and the desired execution cycle when the determination means determines that the execution is possible.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019061097A JP7335084B2 (en) | 2019-03-27 | 2019-03-27 | Simulation device and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019061097A JP7335084B2 (en) | 2019-03-27 | 2019-03-27 | Simulation device and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020157442A JP2020157442A (en) | 2020-10-01 |
JP7335084B2 true JP7335084B2 (en) | 2023-08-29 |
Family
ID=72641056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019061097A Active JP7335084B2 (en) | 2019-03-27 | 2019-03-27 | Simulation device and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7335084B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113814981B (en) * | 2021-10-18 | 2023-06-20 | 北京云迹科技股份有限公司 | Robot operation method, device, storage medium and robot |
WO2024019107A1 (en) * | 2022-07-22 | 2024-01-25 | ソニーグループ株式会社 | Multiple-robot control method, multiple-robot control device, and multiple-robot control system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5290119B2 (en) | 2009-10-16 | 2013-09-18 | 株式会社エヌ・ティ・ティ・ドコモ | Service providing system and service providing method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05290119A (en) * | 1992-04-08 | 1993-11-05 | Matsushita Electric Ind Co Ltd | Function and logic simulator |
JP6809705B2 (en) * | 2016-12-08 | 2021-01-06 | 株式会社国際電気通信基礎技術研究所 | Simulation system |
-
2019
- 2019-03-27 JP JP2019061097A patent/JP7335084B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5290119B2 (en) | 2009-10-16 | 2013-09-18 | 株式会社エヌ・ティ・ティ・ドコモ | Service providing system and service providing method |
Also Published As
Publication number | Publication date |
---|---|
JP2020157442A (en) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6809705B2 (en) | Simulation system | |
JP6793905B2 (en) | Robot behavior simulation device | |
CN107671857B (en) | Three-dimensional simulation platform for operation demonstration and algorithm verification of service robot | |
CN106313049B (en) | A kind of apery mechanical arm motion sensing control system and control method | |
JP5318623B2 (en) | Remote control device and remote control program | |
EP3547267A1 (en) | Robot control system, machine control system, robot control method, machine control method, and recording medium | |
KR101982420B1 (en) | Collision detection | |
WO2015191910A1 (en) | System and method for reinforcing programming education through robotic feedback | |
JP7335084B2 (en) | Simulation device and program | |
JP2012171024A (en) | Robot system | |
CN109972674B (en) | Unmanned excavation system and method under complex construction environment based on natural interaction | |
WO2017141891A1 (en) | Simulation system and game system | |
Koestler et al. | Mobile robot simulation with realistic error models | |
JP2017170568A (en) | Service providing robot system | |
Das et al. | GeroSim: A simulation framework for gesture driven robotic arm control using Intel RealSense | |
Shindev et al. | Exploration of intention expression for robots | |
JP6142307B2 (en) | Attention target estimation system, robot and control program | |
Akahane et al. | Two-handed multi-finger string-based haptic interface SPIDAR-8 | |
JP7258426B2 (en) | Simulation system, simulation program and learning device | |
JP6142306B2 (en) | Robot control system, robot, output control program, and output control method | |
JP6925013B2 (en) | Simulation system | |
JP6908257B2 (en) | Robots and robot control programs | |
US20230100973A1 (en) | Human eyes design: first person vr characters for testing inclusive design solutions | |
JP6841473B2 (en) | Guidance robot | |
WO2022255206A1 (en) | Information processing apparatus, information processing method, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230407 |
|
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: 20230808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230817 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7335084 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |