WO2022190435A1 - 命令記述支援システム、命令記述支援方法および命令記述支援プログラム - Google Patents

命令記述支援システム、命令記述支援方法および命令記述支援プログラム Download PDF

Info

Publication number
WO2022190435A1
WO2022190435A1 PCT/JP2021/034739 JP2021034739W WO2022190435A1 WO 2022190435 A1 WO2022190435 A1 WO 2022190435A1 JP 2021034739 W JP2021034739 W JP 2021034739W WO 2022190435 A1 WO2022190435 A1 WO 2022190435A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion
action
waveform data
robot
unique
Prior art date
Application number
PCT/JP2021/034739
Other languages
English (en)
French (fr)
Inventor
篤志 大城
Original Assignee
オムロン株式会社
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 オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2022190435A1 publication Critical patent/WO2022190435A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators

Definitions

  • the present invention relates to an instruction description support system, an instruction description support method, and an instruction description support program.
  • Patent Document 1 discloses a technique that allows a teacher to easily create a control program.
  • Patent Document 2 discloses a control device that can be easily programmed even by a user who does not have advanced programming skills.
  • Patent Document 3 discloses a method for facilitating teaching of specific movements of a robot when teaching the robot.
  • Patent Document 4 discloses an automatic teaching system that automatically teaches assembly work to an assembly work robot.
  • the purpose of the present invention is to provide a technology that can create instructions describing the motion of a robot according to the motion unique to the robot.
  • a command description support system includes an extraction unit that extracts eigenvectors from motion waveform data representing motions of a target robot, and a similarity between the waveform data in a time interval set in the motion waveform data and the eigenvectors. a calculation unit that calculates a binary code representing the motion in the time interval from the indicated score; a model configuration unit that configures a motion element model for estimating the motion element using the binary code; and a robot performing a predetermined motion.
  • a unique motion composed of one or more motion elements is determined for the target robot.
  • the determined eigenmotion can be used as a basic unit for describing the motion of the robot. As a result, it is possible to standardize the commands describing the motions of the robot and to suppress personalization.
  • the instruction description support system may further include an instruction generation unit that generates an instruction code consisting of one or more unique motion codes corresponding to the motion of the robot defined by a combination of one or more unique motions.
  • an instruction code can be generated using a unique operation code as a basic unit.
  • a combination of one or more unique actions may be defined in units of linked actions or steps. According to this configuration, an instruction code can be generated not only for a simple motion of the robot, but also for each continuous motion or process.
  • the command description support system may further include a motion recognition unit that determines a verb indicating a predetermined motion by motion recognition of a moving image of a robot performing a predetermined motion. According to this configuration, each motion of the robot can be labeled automatically instead of manually.
  • the calculation unit calculates the similarity of the waveform data in the time interval with respect to each of the plurality of eigenvectors, and converts the binary code according to the magnitude relationship between two similarities that are randomly selected from the calculated similarities. You may make it determine the value of each bit which comprises. According to this configuration, it is possible to efficiently calculate the feature amount for specifying the motion element.
  • the model configuration unit may configure the behavioral element model by clustering multiple binary codes. According to this configuration, it is possible to efficiently extract a plurality of motion elements included in the motion of the target robot.
  • the calculation unit may shift the time interval set in the operating waveform data along the time axis. According to this configuration, it is possible to sequentially determine corresponding motion elements for continuous motions of the robot.
  • a command description support method includes the steps of extracting eigenvectors from motion waveform data representing motions of a target robot; a step of calculating a binary code representing the motion in the time interval from the indicated score; a step of constructing a motion element model for estimating a motion element using the binary code; By associating a series of motion elements estimated from motion waveform data using a motion element model with verbs indicating the predetermined motion, the motion element is composed of one or more motion elements included in the predetermined motion. determining a unique action to be performed, and registering in a database a unique action code indicating the determined unique action.
  • An instruction description support program provides a computer with a step of extracting eigenvectors from motion waveform data representing the motion of a target robot, and a step of extracting eigenvectors from motion waveform data representing the motion of a target robot, and generating waveform data and eigenvectors in a time interval set in the motion waveform data.
  • FIG. 3 is a schematic diagram for explaining an outline of processing in the instruction description support system according to the embodiment
  • 1 is a schematic diagram outlining a system configuration example including an instruction description support system according to an embodiment
  • FIG. 2 is a schematic diagram showing a hardware configuration example of a control device according to the present embodiment
  • FIG. 2 is a schematic diagram showing a hardware configuration example of a robot controller according to the present embodiment
  • FIG. 1 is a schematic diagram showing a hardware configuration example of an information processing apparatus according to an embodiment
  • FIG. 4 is a flow chart showing a processing procedure of overall processing executed by the instruction description support system according to the embodiment
  • FIG. 4 is a diagram for explaining processing for calculating an ECT score in the instruction description support system according to the embodiment
  • FIG. 3 is a schematic diagram for explaining an outline of processing in the instruction description support system according to the embodiment
  • 1 is a schematic diagram outlining a system configuration example including an instruction description support system according to an embodiment
  • FIG. 2 is a schematic diagram showing a hardware configuration example of a
  • FIG. 4 is a diagram for explaining processing for calculating a binary code in the instruction description support system according to the embodiment;
  • FIG. 4 is a diagram for explaining clustering processing for constructing behavioral element models in the instruction description support system according to the present embodiment;
  • FIG. 4 is a diagram for explaining labeling processing for constructing an action element model in the instruction description support system according to the embodiment;
  • FIG. 4 is a diagram for explaining processing for configuring an action definition database in the instruction description support system according to the embodiment;
  • FIG. 4 is a diagram for explaining processing for determining action elements in the command description support system according to the embodiment; It is a figure which shows the example of a process which determines the action element in the command description assistance system which concerns on this Embodiment.
  • FIG. 1 is a schematic diagram showing a functional configuration example of an instruction description support system according to an embodiment
  • FIG. 4 is a diagram showing an example of an instruction code generated by the instruction description support system according to the embodiment
  • FIG. It is a figure which shows an example of the production
  • FIG. 1 is a schematic diagram for explaining the outline of the processing in the command description support system 1 according to this embodiment. An example of a process in which the instruction description support system 1 outputs the instruction code 72 defining the motion of the robot will be described with reference to FIG.
  • the instruction description support system 1 creates a motion element model 48 (see FIG. 10) and a An action definition database 60 is configured (step S1).
  • the motion element model 48 is configured based on the characteristics of motion elements, and can be used to identify motion elements (motion element codes) included in arbitrary motion waveform data.
  • the action definition database 60 stores unique action codes 66 assigned to unique actions 64 composed of one or more action elements.
  • one or more unique actions 64 may be grouped into one or more action categories 62 .
  • a “specific motion” is a unit that defines a motion unique to the target robot, and is composed of one or more “motion elements”.
  • “Action elements” mean individual actions obtained by decomposing "specific actions” into more detailed unit actions.
  • the action definition database 60 is referred to and the arbitrary action is defined as a combination of unique actions 64 (step S2).
  • the processing defined as the combination of the unique motions 64 may be performed manually by the user or automatically by software as described later.
  • the command description support system 1 generates a data string of unique action codes 66 indicating the unique actions 64 as a command for realizing a linked action consisting of a plurality of unique actions 64 or a process consisting of a plurality of linked actions. is output as the instruction code 72.
  • the instruction description support system 1 defines the unique motion 64 of the robot, and combines the unique motion code 66 indicating the unique motion 64, so that the motion to be executed by the target robot is determined.
  • FIG. 2 is a schematic diagram outlining a system configuration example including the instruction description support system 1 according to the present embodiment.
  • instruction description support system 1 includes control device 100 and robot controller 250 connected to control device 100 via field network 10 .
  • Control device 100 may typically be realized by a PLC.
  • the robot controller 250 is in charge of controlling the robot 200. More specifically, the robot controller 250 functions as an interface with the robot 200, outputs commands for driving the robot 200, and obtains state values of the robot 200 in accordance with commands from the control device 100. and output to the control device 100 .
  • protocols for industrial networks such as EtherCAT (registered trademark) and EtherNet/IP can be used.
  • the control device 100 is connected to the information processing device 300 and the display device 400 via the host network 20 .
  • a protocol for industrial networks such as EtherNet/IP can be used.
  • the instruction description support system 1 may include a camera 4 for photographing the robot 200 and collecting moving images.
  • the instruction description support system 1 does not necessarily include the control device 100, the robot 200, the robot controller 250, the display device 400, and the like, and the processing subject capable of executing the processing for generating the instruction code as described later is Existence is fine.
  • FIG. 3 is a schematic diagram showing a hardware configuration example of the control device 100 according to this embodiment.
  • control device 100 includes processor 102, main memory 104, storage 110, memory card interface 112, host network controller 106, field network controller 108, local bus controller 116, USB and a USB controller 120 that provides a (Universal Serial Bus) interface. These components are connected via processor bus 118 .
  • the processor 102 corresponds to an arithmetic processing unit that executes control arithmetic, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads a program stored in the storage 110, develops it in the main memory 104, and executes it, thereby implementing control calculations for the controlled object.
  • a CPU Central Processing Unit
  • GPU Graphics Processing Unit
  • the main memory 104 is composed of volatile storage devices such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory).
  • the storage 110 is configured by, for example, a non-volatile storage device such as SSD (Solid State Drive) or HDD (Hard Disk Drive).
  • the storage 110 stores a system program 1102 for realizing basic functions, an IEC program 1104 and a robot program 1106 created according to the object to be controlled, and the like.
  • the IEC program 1104 is also called a PLC program, and includes instructions necessary to implement processes other than the process of controlling the robot 200.
  • the IEC program 1104 may be written in any language defined by IEC61131-3 defined by the International Electrotechnical Commission (IEC).
  • the robot program 1106 includes instructions for controlling the robot 200.
  • the robot program 1106 may include instructions written in a predetermined programming language (for example, a programming language for robot control such as V+ language or a programming language for NC control such as G code).
  • the memory card interface 112 accepts a memory card 114, which is an example of a removable storage medium.
  • the memory card interface 112 is capable of reading/writing arbitrary data from/to the memory card 114 .
  • the upper network controller 106 exchanges data with arbitrary information processing devices (such as the information processing device 300 and the display device 400 shown in FIG. 2) via the higher network 20 .
  • the field network controller 108 exchanges data with devices such as the robot controller 250 via the field network 10 .
  • the local bus controller 116 exchanges data with any functional unit 130 included in the control device 100 via the local bus 122 .
  • the USB controller 120 exchanges data with any information processing device via a USB connection.
  • FIG. 4 is a schematic diagram showing a hardware configuration example of the robot controller 250 according to this embodiment.
  • robot controller 250 includes field network controller 252 and control processing circuit 260 .
  • the field network controller 252 mainly exchanges data with the control device 100 via the field network 10 .
  • control processing circuit 260 executes arithmetic processing required to drive the robot 200 .
  • control processing circuitry 260 includes processor 262 , main memory 264 , storage 270 and interface circuitry 268 .
  • a processor 262 executes control operations for driving the robot 200 .
  • the main memory 264 is composed of, for example, a volatile memory device such as DRAM or SRAM.
  • the storage 270 is configured by, for example, a non-volatile storage device such as SSD or HDD.
  • the storage 270 stores a system program 272 for realizing control for driving the robot 200 .
  • the system program 272 includes commands for executing control operations related to the operation of the robot 200 and commands related to interfacing with the robot 200 .
  • FIG. 5 is a schematic diagram showing a hardware configuration example of the information processing apparatus 300 according to this embodiment.
  • information processing apparatus 300 includes processor 302 such as a CPU or MPU, main memory 304, storage 310, network controller 320, USB controller 324, input unit 326, and display unit 328. including. These components are connected via bus 308 .
  • the processor 302 reads various programs stored in the storage 310 , develops them in the main memory 304 , and executes them, thereby realizing necessary processing in the information processing apparatus 300 .
  • the storage 310 is composed of, for example, an HDD or SSD.
  • the storage 310 typically stores an OS 312 and an instruction description support program 314 for realizing processing as described later. Note that the storage 310 may store necessary programs other than the programs shown in FIG.
  • the network controller 320 exchanges data with any information processing device via any network.
  • the USB controller 324 exchanges data with any information processing device via a USB connection.
  • the input unit 326 is composed of a mouse, keyboard, touch panel, etc., and receives instructions from the user.
  • a display unit 328 includes a display, various indicators, and the like, and outputs processing results from the processor 302 and the like.
  • the information processing device 300 may have an optical drive 306 .
  • the optical drive 306 reads the program from a recording medium 307 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that stores a computer-readable program non-transitory, and stores the program in a storage 310 or the like.
  • a recording medium 307 for example, an optical recording medium such as a DVD (Digital Versatile Disc)
  • DVD Digital Versatile Disc
  • Various programs executed by the information processing device 300 may be installed via the computer-readable recording medium 307, or may be installed by downloading them from any server on the network.
  • Display device 400 may be implemented using a general-purpose personal computer as an example. Since the basic hardware configuration example of the display device 400 is well known, detailed description thereof will not be given here.
  • FIG. 3 to 5 show configuration examples in which one or more processors execute programs to provide necessary functions. It may be implemented using a hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • one or a plurality of information processing devices 300 may cooperate to execute necessary processing.
  • part or all of the instruction description support processing according to the present embodiment may be executed using so-called computer resources on the cloud.
  • FIG. 6 is a flow chart showing a processing procedure of overall processing executed by the instruction description support system 1 according to the present embodiment. Each step shown in FIG. 6 is typically implemented by processor 302 of information processing apparatus 300 executing instruction description support program 314 .
  • information processing device 300 collects motion waveform data 30 and moving image 46 from a target robot (step S100).
  • the information processing apparatus 300 extracts eigenvectors from the collected operation waveform data 30 (step S102). That is, the information processing device 300 extracts eigenvectors from the motion waveform data 30 representing the motion of the target robot.
  • the information processing device 300 selects one motion waveform data 30 collected from the target robot (step S104).
  • the information processing apparatus 300 sets the window function 32 for the selected operating waveform data 30 (step S106), and based on the extracted eigenvector and the feature amount of the operating waveform data 30 included in the set window function 32. , the ECT score for the set window function 32 is calculated (step S108).
  • the ECT score is a value indicating the degree of similarity between the feature quantity of the operating waveform data 30 included in the window function 32, which is a time interval, and each eigenvector.
  • the information processing device 300 calculates a binary code from the calculated ECT score (step S110).
  • the information processing device 300 shifts the window function 32 to the next time interval (step S112).
  • the processes of steps S106 to S112 are repeated by the number of window functions 32 set for the operating waveform data 30.
  • the information processing device 300 selects another motion waveform data 30 collected from the target robot (step S114), and repeats the processing of steps S106 to S112. The processing of steps S104 to S114 is repeated by the number of target operation waveform data 30 .
  • the information processing device 300 plots the calculated binary code in the hyperspace 38 (step S116), and determines one or a plurality of clusters 40 representing motion feature amounts formed in the hyperspace 38 (step S118). ). Then, the information processing apparatus 300 labels each of the determined clusters 40 with an action element and assigns an action element code 44 corresponding to the action element (step S120).
  • the action element model 48 is constructed.
  • the action element model 48 outputs a corresponding action element and an action element code 44 indicating the action element in response to the binary code input.
  • the action definition database 60 is constructed. More specifically, the information processing device 300 calculates a binary code for each window function from the action waveform data 30 corresponding to an arbitrary robot action (step S122), and sequentially inputs the calculated binary codes to the action element model 48. By doing so, the data string of the action element code 44 is calculated (step S124).
  • the data string of the motion element code 44 corresponds to the motion elements of the robot arranged in chronological order.
  • the information processing device 300 performs action recognition from the moving image 46 corresponding to the robot action for which the binary code was calculated in step S122, and determines a string of verbs (words) corresponding to the action elements of the robot (step S126). In this way, the information processing apparatus 300 determines the verb indicating the predetermined action by recognizing the motion image 46 of the robot performing the predetermined action. Instead of the moving image 46, or in addition to the moving image 46, the path plan of the target robot may be used. Also, the moving image 46 obtained by virtually capturing the robot may be used instead of the moving image 46 obtained by actually capturing the robot.
  • the information processing apparatus 300 determines the action definition of the unique action 64 by combining the data string of the action element code 44 calculated in step S124 and the verb determined in step S126 (step S128). A unique action code 66 is assigned to identify each (step S130). Then, the information processing device 300 registers the unique action 64 and the corresponding unique action code 66 in the action definition database 60 (step S132).
  • the information processing apparatus 300 may register in the action definition database 60 in units of a series of actions 68 made up of a plurality of unique actions 64 or a process 70 made up of a plurality of steps 68 as needed.
  • the information processing device 300 collects a predetermined amount of motion waveform data from the target robot.
  • the motion waveform data corresponds to time-series data of motion feature vectors collected for each predetermined sampling period.
  • a motion feature vector is a multi-dimensional vector defined by a plurality of feature amounts relating to the motion of the target robot.
  • the feature values include, for example, the TCP posture (position of each axis), joint torque, TCP velocity, TCP acceleration, TCP jerk, etc. of the target robot.
  • TCP posture (X, Y, Z, Rx, Ry, Rz), joint rotation angle (6-axis), joint torque (6-axis), TCP velocity (Vx, Vy, Vz, Vrx, Vry, Vrz)
  • the mobile robot uses a total of 24-dimensional feature values, including the current posture (X, Y, ⁇ ), drive train torque (L torque, R torque), speed, and IMU data (speed, rotational position, rotational speed).
  • Any feature quantity may be used as long as it is information that defines the motion of the target robot.
  • the information processing device 300 extracts one or more eigenvectors by performing principal component analysis on the collected operating waveform data. Any method can be used to extract eigenvectors. The extracted eigenvectors are believed to represent the fundamental motion characteristics of the robot of interest.
  • FIG. 7 is a diagram for explaining the process of calculating the ECT score in the instruction description support system 1 according to this embodiment.
  • the motion waveform data 30 corresponds to time-series data of motion feature vectors collected at predetermined sampling intervals.
  • the information processing apparatus 300 sequentially applies a window function 32 having a predetermined time width to the operating waveform data 30 while shifting the window function 32 along the time axis. That is, the information processing apparatus 300 shifts the window function 32, which is the time interval set in the operating waveform data 30, along the time axis.
  • the information processing apparatus 300 uses the window function 32 to extract eigenvectors that match the operating waveform data 30 from the eigenvectors extracted in advance.
  • the information processing device 300 calculates a time correlation matrix between the target data included in the window function 32 and the reference data.
  • Information processing apparatus 300 compares the time correlation matrix and the eigenvector, and calculates the eigenvalue from the time correlation matrix.
  • the dot product indicates how similar two vectors are with values ranging from -1 to 1.
  • an ECT score indicating the eigenvector inner product of the correlation matrix in the window function 32 can be calculated.
  • the information processing device 300 calculates a score (ECT score) for each eigenvector for each window function 32 set in the operating waveform data 30 .
  • the calculated ECT scores are output as an ECT score list 34.
  • the information processing apparatus 300 determines an eigenvector that chronologically matches the operating waveform data 30 for a predetermined number of eigenvectors, and divides the determined eigenvector inner product angle by the norm product. is calculated, and the calculated angle is normalized and calculated as an ECT score.
  • step S110 processing for calculating a binary code
  • FIG. 8 is a diagram for explaining the process of calculating the binary code 36 in the instruction description support system 1 according to this embodiment.
  • binary code 36 is calculated based on test patches.
  • a test patch is a combination of two ECT scores (ECT x and ECT y ) randomly selected from the group of ECT scores included in the pre-calculated ECT score list 34 .
  • the first and third ECT scores in the ECT score list 34 are selected as the first combination, and the first and second ECT scores in the ECT score list 34 are selected as the second combination. selected, the second and fifth ECT scores in the ECT score list 34 are selected as the third combination.
  • two ECT scores are randomly selected sequentially.
  • the information processing apparatus 300 calculates the similarity of the waveform data in the time interval corresponding to the window function 32 for each of the plurality of eigenvectors, and selects two similarities randomly selected from the calculated similarities.
  • the value of each bit forming the binary code 36 is determined according to the magnitude relationship between degrees.
  • a 36-bit binary code 36 is calculated as the motion feature amount.
  • the calculated binary code 36 corresponds to a code that indicates the motion of the robot in the time interval of the window function 32.
  • the information processing apparatus 300 uses the ECT score, which indicates the similarity between the waveform data of the window function 32, which is a time interval set in the operation waveform data 30, and the eigenvector, to obtain the binary code 36 indicating the operation in the time interval.
  • FIG. 9 is a diagram for explaining the clustering process for constructing the action element model 48 in the instruction description support system 1 according to this embodiment.
  • a number of binary codes 36 calculated by the procedure as described above are plotted in hyperspace 38.
  • FIG. The hyperspace 38 in which the binary code 36 is plotted has the same number of dimensions as the number of bits forming the binary code 36 (36 dimensions in the above example).
  • a number of binary codes 36 plotted in hyperspace 38 form one or more clusters 40 corresponding to motion elements. Each of the clusters 40 will exhibit characteristics of an operating element.
  • FIG. 10 is a diagram for explaining the labeling process for constructing the action element model 48 in the instruction description support system 1 according to this embodiment.
  • motion elements 56 such as "turn”, “stop”, and “go straight” are labeled with respect to the motion feature values obtained by clustering, and motion element codes 44 corresponding to the motion elements 56 are added. assign.
  • the motion element 56 can be determined from the details of the motion of the robot targeted by the collected motion waveform data.
  • a motion element model 48 is configured by the above clustering processing and labeling processing. That is, the information processing device 300 configures the action element model 48 by clustering the plurality of binary codes 36 . Note that the action element model 48 does not necessarily need to have the hyperspace 38 as shown in FIG. 10, and may be implemented in the form of a known classifier.
  • FIG. 11 is a diagram for explaining the process of configuring the action definition database 60 in the instruction description support system 1 according to this embodiment.
  • information processing device 300 collects motion waveform data for an arbitrary robot motion, and also collects moving images and the like by photographing the robot motion.
  • the information processing device 300 calculates the binary code 36 for each window function from the collected operating waveform data (binary code list 50) according to the processing procedure shown in FIGS. Then, the information processing device 300 determines to which cluster 40 on the hyperspace 38 shown in FIG. 10 the binary code 36 for each window function is classified (class classification processing 52 using the motion element model 48). .
  • an action element code 44 (88", "232”, “235”, “343”, etc.) indicating the determined action element 56 is a basic element of the instruction description.
  • the information processing device 300 performs action recognition from the corresponding moving image or the like, and determines a verb (word) corresponding to a series of actions (action (word) decision processing 54 based on action recognition).
  • action (word) decision processing 54 determines a verb (word) corresponding to a series of actions.
  • One or more motion elements 56 constitute a unique motion 64 (e.g., “probe (surround)”), one or more unique motions 64 constitute a linked motion 68 (eg, “inset”), one or more , constitutes step 70 (e.g., "attach cover”).
  • a unique motion 64 e.g., “probe (surround)”
  • a linked motion 68 e.g., “inset”
  • step 70 e.g., "attach cover”
  • each of the unique actions 64 , linked actions 68 and steps 70 is defined as a code string consisting of action element codes 44 corresponding to one or more action elements 56 .
  • each code string may be converted into a further shortened code. In this case, any encoding process may be employed as long as it can uniquely identify the code string.
  • a series of motion elements 56 is determined, and by assigning verbs to the determined series of motion elements 56, the eigen motion 64 You can define the instruction code corresponding to Furthermore, the unique operations 64 can be combined to generate instruction codes for the linked operations 68 and steps 70 as well.
  • FIG. 12 is a diagram for explaining the process of determining the action element 56 in the instruction description support system 1 according to this embodiment.
  • a histogram 42 of clusters 40 showing action elements 56 formed by binary code 36 plotted in hyperspace 38 as shown in FIG. 9 is computed.
  • the histogram 42 indicates that the more similar the directions of the vectors of the motion feature amounts, the higher the similarity of the motion feature amounts.
  • the Kullback-Leibler divergence can be used to evaluate the similarity of each distribution. That is, the Kullback-Leibler information amount (KL information amount) indicates how similar the probability distribution P(i) and the probability distribution Q(i) are. The closer the KL information amount is to zero, the higher the degree of similarity between the two probability distributions.
  • the KL information amount D KL can be calculated according to the formula shown in FIG. 12, and by evaluating the KL information amount D KL , it is possible to determine to which cluster 40 the target motion element 56 belongs.
  • the algorithm applied to FIG. 12 has the same content as the "Bag-of-Visual Words" used in image processing and object detection algorithms.
  • FIG. 13 is a diagram showing an example of processing for determining the action element 56 in the instruction description support system 1 according to this embodiment.
  • a binary code list 50A as shown in FIG. 13 it may be aggregated into a binary code list 50B by evaluating mutual similarity. Also, a corresponding action element 56 may be determined for the aggregated binary code list 50B.
  • the information processing apparatus 300 uses a series of motion elements estimated from the motion waveform data 30 when the robot performs a predetermined motion using the motion element model 48, and a verb indicating the predetermined motion. , a unique action 64 composed of one or more action elements included in the predetermined action is determined, and a unique action code 66 indicating the determined unique action 64 is registered in the action definition database 60. .
  • the action definition database 60 is configured by such processing.
  • FIG. 14 is a schematic diagram showing a functional configuration example of the instruction description support system 1 according to this embodiment.
  • information processing apparatus 300 includes an eigenvector extraction unit 350, a window function setting unit 352, an ECT score calculation unit 354, a binary code calculation unit 356, an operation element It includes a model configuration unit 358 , an action element determination unit 360 , an action recognition unit 362 , an action definition database configuration unit 364 and an instruction code generation unit 370 .
  • These functions are typically implemented by processor 302 of information processing apparatus 300 executing instruction description support program 314 .
  • the eigenvector extraction unit 350 extracts eigenvectors or eigenvector candidates from the motion waveform data 30 collected from the robot. That is, the eigenvector extraction unit 350 extracts eigenvectors from the motion waveform data 30 representing the motion of the target robot.
  • the window function setting unit 352 sets the window function 32 for the motion waveform data 30 collected from the robot, and sequentially shifts the window function 32 along the time axis.
  • the ECT score calculator 354 calculates an ECT score based on the eigenvector extracted by the eigenvector extractor 350 and the feature amount of the operating waveform data 30 included in the window function 32 set by the window function setter 352. .
  • the binary code calculator 356 calculates the binary code 36 from the ECT score calculated by the ECT score calculator 354 . That is, the binary code calculator 356 calculates the binary code 36 representing the operation in the time interval from the ECT score, which indicates the similarity between the waveform data in the time interval (window function 32) set in the operation waveform data 30 and the eigenvector. calculate.
  • the action element model constructing unit 358 constructs the action element model 48 for estimating the action element 56 by clustering a plurality of binary codes 36 . More specifically, the action element model constructing unit 358 plots the binary code 36 calculated by the binary code calculating unit 356 in the hyperspace 38 and determines the cluster 40 from the set of plotted binary codes 36 . The action element model constructing unit 358 constructs the action element model 48 by labeling the action element 56 and assigning the action element code 44 corresponding to the action element 56 to each cluster 40 .
  • the motion element determination unit 360 inputs the binary code 36 for each window function calculated by the binary code calculation unit 356 to the motion element model 48, and determines the motion element 56 corresponding to the motion waveform data 30 and the corresponding motion element code 44. Output sequentially.
  • the motion recognition unit 362 outputs verbs (words) corresponding to the motion waveform data 30 based on the moving image 46 . That is, the motion recognition unit 362 determines the verb indicating the predetermined motion by recognizing the motion image of the robot performing the predetermined motion.
  • the action definition database construction section 364 constructs the action definition database 60 by combining the action element codes 44 output in time series from the action element determination section 360 and the verbs output in time series from the action recognition section 362 . . That is, the action definition database constructing unit 364 stores a series of action elements estimated using the action element model 48 from the action waveform data 30 when the robot performs a predetermined action, and a verb indicating the predetermined action. By doing so, a unique action 64 composed of one or more action elements included in the predetermined action is determined, and a unique action code 66 indicating the determined unique action 64 is registered in the action definition database 60 .
  • the action definition database 60 configured using the functional configuration as described above is used to generate the instruction code 72 in the following manner, for example.
  • the instruction code generation unit 370 generates an instruction code 72 consisting of one or more unique action codes 66 corresponding to robot movements defined by a combination of one or more unique movements 64 . More specifically, when the instruction code generator 370 receives input of information describing an arbitrary process, it refers to the action definition database 60 to create one or more specific actions 64 included in the input process. A corresponding one or more unique operation codes 66 are retrieved. A sequence of codes, in which one or more found unique operation codes 66 are arranged in order, can be output as the instruction code 72 .
  • a combination of one or more unique actions 64 may be defined in units of linked actions 68 or steps 70 .
  • the unique actions may be specified in natural language in the input process information.
  • FIG. 15 is a diagram showing an example of an instruction code 72 generated by the instruction description support system 1 according to this embodiment.
  • instruction code 72 is defined by a combination of multiple unique operations 64 .
  • Each unique motion 64 is composed of one or more motion elements 56 .
  • parameters for embodying actions can be set for each of the action elements 56, and the user may appropriately set or change the parameters so as to achieve desired actions.
  • FIG. 16 is a diagram showing an example of processing for generating the instruction code 72 generated by the instruction description support system 1 according to this embodiment.
  • instruction description support system 1 receives input of one or more process instructions 80, reconfigures the process defined in process instructions 80 as one or more unique actions 64, A unique operation code 66 corresponding to the reconstructed one or more unique operations 64 is output as an instruction code 72 .
  • the command description support system 1 generates the command code 72 from one or more process instructions 80.
  • Configuration 1 further comprising an instruction generation unit (370) that generates an instruction code (72) consisting of one or more unique motion codes corresponding to the motion of the robot defined by a combination of one or more unique motions instruction description support system.
  • Configuration 4 Any one of configurations 1 to 3, further comprising an action recognition unit (362) that determines a verb indicating the predetermined action by recognizing a motion image (46) of the robot performing the predetermined action.
  • the instruction description support system according to item 1.
  • the calculating unit calculates a similarity of the waveform data in the time interval with respect to each of the plurality of eigenvectors, and according to a magnitude relationship between two similarities randomly selected from the calculated similarities, A value of each bit constituting the binary code is determined.
  • An instruction description support system according to any one of configurations 1 to 4.
  • [Configuration 8] a step (S102) of extracting an eigenvector from the motion waveform data (30) representing the motion of the target robot (200); a step (S110) of calculating a binary code (36) representing the motion in the time interval from a score indicating the degree of similarity between the waveform data in the time interval (32) set in the operation waveform data and the eigenvector; using the binary code to construct a motion element model (48) for estimating a motion element (S116, S118, S120); By associating a series of motion elements (56) estimated using the motion element model from motion waveform data when the robot performs a predetermined motion with verbs indicating the predetermined motion, Determining a unique motion (64) composed of one or more motion elements included in the motion and registering a unique motion code (66) indicating the determined unique motion in the database (60) (S122, S124) , S126, S128, S130, S132).
  • 1 instruction description support system 4 camera, 10 field network, 20 upper network, 30 motion waveform data, 32 window function, 34 score list, 36 binary code, 38 hyperspace, 40 cluster, 42 histogram, 44 motion element code, 46 Video, 48 action element model, 50, 50A, 50B binary code list, 52 class classification process, 54 decision process, 56 action element, 60 action definition database, 62 action division, 64 unique action, 66 unique action code, 68 linkage Work, 70 Process, 72 Instruction Code, 80 Process Instruction, 100 Control Device, 102, 262, 302 Processor, 104, 264, 304 Main Memory, 106 Upper Network Controller, 108, 252 Field Network Controller, 110, 270, 310 Storage, 112 memory card interface, 114 memory card, 116 local bus controller, 118 processor bus, 120, 324 USB controller, 122 local bus, 130 functional unit, 200 robot, 250 robot controller, 260 control processing circuit, 268 interface circuit, 272, 1102 system program, 300 information processing device, 306 optical drive, 307 recording medium, 308 bus, 312 OS

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

命令記述支援システムは、対象のロボットの動作を示す動作波形データから固有ベクトルを抽出する抽出部と、動作波形データに設定される時間区間の波形データと固有ベクトルとの類似度を示すスコアから、当該時間区間の動作を示すバイナリコードを算出する算出部と、バイナリコードを用いて、動作要素を推定するための動作要素モデルを構成するモデル構成部と、ロボットが所定の動作を行ったときの動作波形データから動作要素モデルを用いて推定される一連の動作要素と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作を決定し、当該決定した固有動作を示す固有動作コードをデータベースに登録するデータベース構成部とを含む。

Description

命令記述支援システム、命令記述支援方法および命令記述支援プログラム
 本発明は、命令記述支援システム、命令記述支援方法および命令記述支援プログラムに関する。
 様々な分野において、ロボットの導入および実用化が進行している。一般的には、ロボットの動作を指示するための命令を記述する必要がある。ロボットが高い自由度で動作する場合には、動作を指示するための命令の記述も複雑化し得る。
 このような課題に対して、例えば、特開2019-188545号公報(特許文献1)は、教示者が簡単に制御プログラムの作成を行える技術を開示する。また、特開2019-177422号公報(特許文献2)は、高度なプログラミング技術を有さないユーザーでも容易にプログラミング可能な制御装置を開示する。さらに、特開2019-171498号公報(特許文献3)は、ロボットのティーチングを行うときに、ロボットの具体的な動きに対する教示を容易にする方法等を開示する。
 あるいは、特開2008-009899号公報(特許文献4)は、組立作業用ロボットに対する組立作業の教示を自動で行う自動教示システムを開示する。
特開2019-188545号公報 特開2019-177422号公報 特開2019-171498号公報 特開2008-009899号公報
漆原理乃、小林一郎,「人の動作および物体認識に基づく動画像からの文生成」,言語処理学会 第24回年次大会 発表論文集,2018年3月
 上述した先行技術文献に開示される技術は、いずれもロボットに対するプログラミングを容易化するというものである。このような技術を用いることで、ロボットの動作を記述することはできるが、同じ動作であっても、作成者のスキルや考え方などに依存して、様々な記述が存在することになる。
 本発明は、ロボットに固有の動作に応じて、ロボットの動作を記述する命令を作成できる技術を提供することを目的としている。
 本発明のある局面に従う命令記述支援システムは、対象のロボットの動作を示す動作波形データから固有ベクトルを抽出する抽出部と、動作波形データに設定される時間区間の波形データと固有ベクトルとの類似度を示すスコアから、当該時間区間の動作を示すバイナリコードを算出する算出部と、バイナリコードを用いて、動作要素を推定するための動作要素モデルを構成するモデル構成部と、ロボットが所定の動作を行ったときの動作波形データから動作要素モデルを用いて推定される一連の動作要素と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作を決定し、当該決定した固有動作を示す固有動作コードをデータベースに登録するデータベース構成部とを含む。
 この構成によれば、対象のロボットについて、1または複数の動作要素で構成される固有動作を決定する。決定された固有動作は、ロボットの動作を記述する基本的な単位として用いることができる。これによって、ロボットの動作を記述する命令を標準化することができるとともに、属人化を抑制できる。
 命令記述支援システムは、1または複数の固有動作の組み合わせで定義されるロボットの動作に対応する、1または複数の固有動作コードからなる命令コードを生成する命令生成部をさらに含んでいてもよい。この構成によれば、固有動作コードを基本的な単位として、命令コードを生成できる。
 1または複数の固有動作の組み合わせは、連動作または工程の単位で定義されてもよい。この構成によれば、ロボットの単純な動作だけではなく、連動作または工程の単位で、命令コードを生成できる。
 命令記述支援システムは、所定の動作を行うロボットを撮影した動画像を動作認識することで、所定の動作を示す動詞を決定する動作認識部をさらに含んでいてもよい。この構成によれば、ロボットの各動作に対して、手動ではなく、自動でラベルを付与できる。
 算出部は、複数の固有ベクトルのそれぞれに対する時間区間の波形データの類似度をそれぞれ算出し、算出された類似度のうちランダムに選択される2つの類似度間の大小関係に応じて、バイナリコードを構成する各ビットの値を決定するようにしてもよい。この構成によれば、動作要素を特定するための特徴量を効率的に算出できる。
 モデル構成部は、複数のバイナリコードをクラスタリングすることにより、動作要素モデルを構成してもよい。この構成によれば、対象のロボットの動作に含まれる複数の動作要素を効率的に抽出できる。
 算出部は、動作波形データに設定される時間区間を時間軸に沿ってシフトさせてもよい。この構成によれば、ロボットの連続的な動作に対して、対応する動作要素を順次決定できる。
 本発明の別の局面に従う命令記述支援方法は、対象のロボットの動作を示す動作波形データから固有ベクトルを抽出するステップと、動作波形データに設定される時間区間の波形データと固有ベクトルとの類似度を示すスコアから、当該時間区間の動作を示すバイナリコードを算出するステップと、バイナリコードを用いて、動作要素を推定するための動作要素モデルを構成するステップと、ロボットが所定の動作を行ったときの動作波形データから動作要素モデルを用いて推定される一連の動作要素と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作を決定し、当該決定した固有動作を示す固有動作コードをデータベースに登録するステップとを含む。
 本発明の別の局面に従う命令記述支援プログラムは、コンピュータに、対象のロボットの動作を示す動作波形データから固有ベクトルを抽出するステップと、動作波形データに設定される時間区間の波形データと固有ベクトルとの類似度を示すスコアから、当該時間区間の動作を示すバイナリコードを算出するステップと、バイナリコードを用いて、動作要素を推定するための動作要素モデルを構成するステップと、ロボットが所定の動作を行ったときの動作波形データから動作要素モデルを用いて推定される一連の動作要素と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作を決定し、当該決定した固有動作を示す固有動作コードをデータベースに登録するステップとを実行させる。
 本発明によれば、ロボットに固有の動作に応じて、ロボットの動作を記述する命令を作成できる技術を提供できる。
本実施の形態に係る命令記述支援システムにおける処理の概要を説明するための模式図である。 本実施の形態に係る命令記述支援システムを含むシステム構成例を概略する模式図である。 本実施の形態に係る制御装置のハードウェア構成例を示す模式図である。 本実施の形態に係るロボットコントローラのハードウェア構成例を示す模式図である。 本実施の形態に係る情報処理装置のハードウェア構成例を示す模式図である。 本実施の形態に係る命令記述支援システムが実行する全体処理の処理手順を示すフローチャートである。 本実施の形態に係る命令記述支援システムにおけるECTスコアを算出する処理を説明するための図である。 本実施の形態に係る命令記述支援システムにおけるバイナリコードを算出する処理を説明するための図である。 本実施の形態に係る命令記述支援システムにおける動作要素モデルを構成するためのクラスタリング処理を説明するための図である。 本実施の形態に係る命令記述支援システムにおける動作要素モデルを構成するためのラベリング処理を説明するための図である。 本実施の形態に係る命令記述支援システムにおける動作定義データベースを構成する処理を説明するための図である。 本実施の形態に係る命令記述支援システムにおける動作要素を決定する処理を説明するための図である。 本実施の形態に係る命令記述支援システムにおける動作要素を決定する処理例を示す図である。 本実施の形態に係る命令記述支援システムの機能構成例を示す模式図である。 本実施の形態に係る命令記述支援システムにより生成される命令コードの一例を示す図である。 本実施の形態に係る命令記述支援システムにより生成される命令コードの生成処理の一例を示す図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.適用例>
 まず、図1を参照して、本発明が適用される場面の一例について説明する。
 図1は、本実施の形態に係る命令記述支援システム1における処理の概要を説明するための模式図である。図1を参照して、ロボットの動作を定義する命令コード72を命令記述支援システム1が出力する処理の一例について説明する。
 命令記述支援システム1は、対象のロボットの動作を示す動作波形データ(所定のサンプリング周期毎に収集された動作特徴ベクトルの時系列データ)などに基づいて、動作要素モデル48(図10参照)および動作定義データベース60を構成する(ステップS1)。
 動作要素モデル48は、動作要素の特徴に基づいて構成されるものであり、任意の動作波形データに含まれる動作要素(動作要素コード)を特定するために用いることができる。
 動作定義データベース60は、1または複数の動作要素で構成される固有動作64に割り当てられた固有動作コード66を格納する。動作定義データベース60において、1または複数の固有動作64を1または複数の動作区分62に分類してもよい。
 本明細書において、「固有動作」は、対象のロボットに固有の動作を定義する単位であり、1または複数の「動作要素」で構成される。「動作要素」は、「固有動作」をさらに詳細な単位動作に分解した個々の動作を意味する。
 次に、ロボットに対して任意の動作を指示する場合には、動作定義データベース60を参照して、当該任意の動作を固有動作64の組み合わせとして定義する(ステップS2)。この固有動作64の組み合わせとして定義する処理は、ユーザが手動で行ってもよいし、後述するようなソフトウェアにより自動で行ってもよい。
 最終的に、命令記述支援システム1は、複数の固有動作64からなる連動作、または、複数の連動作からなる工程を実現するための命令として、固有動作64を示す固有動作コード66のデータ列を命令コード72として出力する。
 以上のように、本実施の形態に係る命令記述支援システム1は、ロボットの固有動作64を定義するとともに、固有動作64を示す固有動作コード66を組み合わせることで、対象のロボットに実行させる動作を指示するための命令コード72を決定する。固有動作64の単位で命令を記述することで、命令あるいはプログラムの属人化を抑制できるとともに、テンプレート化などを容易に実現できる。
 <B.ハードウェア構成例>
 次に、本実施の形態に係る命令記述支援システム1のハードウェア構成例について説明する。
 (b1:全体構成)
 図2は、本実施の形態に係る命令記述支援システム1を含むシステム構成例を概略する模式図である。図2を参照して、命令記述支援システム1は、制御装置100と、フィールドネットワーク10を介して制御装置100に接続されたロボットコントローラ250とを含む。制御装置100は、典型的には、PLCにより実現されてもよい。
 ロボットコントローラ250は、ロボット200の制御を担当する。より具体的には、ロボットコントローラ250は、ロボット200との間のインターフェイスとして機能し、制御装置100からの指令に従って、ロボット200を駆動するための指令を出力するとともに、ロボット200の状態値を取得して制御装置100へ出力する。
 フィールドネットワーク10には、産業用ネットワーク用のプロトコルである、EtherCAT(登録商標)やEtherNet/IPなどを用いることができる。
 制御装置100は、上位ネットワーク20を介して、情報処理装置300および表示装置400に接続されている。上位ネットワーク20には、産業用ネットワーク用のプロトコルであるやEtherNet/IPなどを用いることができる。
 命令記述支援システム1は、ロボット200を撮影して動画像を収集するためのカメラ4を含んでいてもよい。
 なお、命令記述支援システム1は、制御装置100、ロボット200,ロボットコントローラ250、および表示装置400などを必ずしも含んでいる必要はなく、後述するような命令コードを生成する処理を実行できる処理主体が存在すればよい。
 (b2:制御装置100)
 図3は、本実施の形態に係る制御装置100のハードウェア構成例を示す模式図である。図3を参照して、制御装置100は、プロセッサ102と、メインメモリ104と、ストレージ110と、メモリカードインターフェイス112と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116と、USB(Universal Serial Bus)インターフェイスを提供するUSBコントローラ120とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
 プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読み出して、メインメモリ104に展開して実行することで、制御対象に対する制御演算を実現する。
 メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
 ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、および、制御対象に応じて作成されたIECプログラム1104およびロボットプログラム1106などが格納される。
 IECプログラム1104は、PLCプログラムとも称され、ロボット200を制御する処理以外の処理を実現するために必要な命令を含む。IECプログラム1104は、国際電気標準会議(IEC:International Electrotechnical Commission)が定めるIEC61131-3で規定されるいずれかの言語で記述されてもよい。
 ロボットプログラム1106は、ロボット200を制御するための命令を含む。ロボットプログラム1106は、所定のプログラミング言語(例えば、V+言語などのロボット制御用プログラミング言語やGコードなどのNC制御に係るプログラミング言語)で記述された命令を含んでいてもよい。
 メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。
 上位ネットワークコントローラ106は、上位ネットワーク20を介して、任意の情報処理装置(図2に示される情報処理装置300および表示装置400など)との間でデータをやり取りする。
 フィールドネットワークコントローラ108は、フィールドネットワーク10を介して、ロボットコントローラ250などのデバイスとの間でデータをやり取りする。
 ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100に含まれる任意の機能ユニット130との間でデータをやり取りする。
 USBコントローラ120は、USB接続を介して、任意の情報処理装置との間でデータをやり取りする。
 (b3:ロボットコントローラ250)
 図4は、本実施の形態に係るロボットコントローラ250のハードウェア構成例を示す模式図である。図4を参照して、ロボットコントローラ250は、フィールドネットワークコントローラ252と、制御処理回路260とを含む。
 フィールドネットワークコントローラ252は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。
 制御処理回路260は、ロボット200を駆動するために必要な演算処理を実行する。一例として、制御処理回路260は、プロセッサ262と、メインメモリ264と、ストレージ270と、インターフェイス回路268とを含む。
 プロセッサ262は、ロボット200を駆動するための制御演算を実行する。メインメモリ264は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ270は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
 ストレージ270には、ロボット200を駆動するための制御を実現するためのシステムプログラム272が格納される。システムプログラム272は、ロボット200の動作に係る制御演算を実行する命令、および、ロボット200との間のインターフェイスに係る命令を含む。
 インターフェイス回路268は、ロボット200との間でデータをやり取りする。
 (b4:情報処理装置300)
 図5は、本実施の形態に係る情報処理装置300のハードウェア構成例を示す模式図である。図5を参照して、情報処理装置300は、CPUやMPUなどのプロセッサ302と、メインメモリ304と、ストレージ310と、ネットワークコントローラ320と、USBコントローラ324と、入力部326と、表示部328とを含む。これらのコンポーネントは、バス308を介して接続される。
 プロセッサ302は、ストレージ310に格納された各種プログラムを読み出して、メインメモリ304に展開して実行することで、情報処理装置300で必要な処理を実現する。
 ストレージ310は、例えば、HDDやSSDなどで構成される。ストレージ310には、典型的には、OS312と、後述するような処理を実現するための命令記述支援プログラム314とが格納される。なお、ストレージ310には、図5に示すプログラム以外の必要なプログラムが格納されてもよい。
 ネットワークコントローラ320は、任意のネットワークを介して、任意の情報処理装置との間でデータをやり取りする。
 USBコントローラ324は、USB接続を介して、任意の情報処理装置との間でデータをやり取りする。
 入力部326は、マウス、キーボード、タッチパネルなどで構成され、ユーザからの指示を受け付ける。表示部328は、ディスプレイ、各種インジケータなどで構成され、プロセッサ302からの処理結果などを出力する。
 情報処理装置300は、光学ドライブ306を有していてもよい。光学ドライブ306は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体307(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)からプログラムを読み取って、ストレージ310などに格納する。
 情報処理装置300で実行される各種プログラムは、コンピュータ読取可能な記録媒体307を介してインストールされてもよいが、ネットワーク上の任意のサーバからダウンロードする形でインストールするようにしてもよい。
 (b5:表示装置400)
 本実施の形態に係る表示装置400は、一例として、汎用パソコンを用いて実現されてもよい。表示装置400の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
 (b6:その他の形態)
 図3~図5には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
 また、情報処理装置300が本実施の形態に係る命令記述支援の処理のすべてを実行するのではなく、1または複数の情報処理装置300が連携して必要な処理を実行するようにしてもよい。さらに、本実施の形態に係る命令記述支援の処理の一部または全部を、いわゆるクラウド上のコンピュータリソースを用いて実行するようにしてもよい。
 本実施の形態に係る命令記述支援の処理をどのようなハードウェアリソースおよびソフトウェアリソースを用いて実現するのかについては、任意に設計および選択できる事項である。
 <C.命令コードを生成するための処理>
 次に、本実施の形態に係る命令記述支援システム1が実行する命令コードを生成するための処理について説明する。
 (c1:全体処理)
 図6は、本実施の形態に係る命令記述支援システム1が実行する全体処理の処理手順を示すフローチャートである。図6に示す各ステップは、典型的には、情報処理装置300のプロセッサ302が命令記述支援プログラム314を実行することで実現される。
 図6を参照して、情報処理装置300は、対象のロボットから動作波形データ30および動画像46を収集する(ステップS100)。情報処理装置300は、所定量の動作波形データ30の収集が完了すると、収集された動作波形データ30から固有ベクトルを抽出する(ステップS102)。すなわち、情報処理装置300は、対象のロボットの動作を示す動作波形データ30から固有ベクトルを抽出する。
 続いて、情報処理装置300は、対象のロボットから収集された1つの動作波形データ30を選択する(ステップS104)。
 情報処理装置300は、選択した動作波形データ30に対して窓関数32を設定し(ステップS106)、抽出した固有ベクトルと、設定した窓関数32に含まれる動作波形データ30の特徴量とに基づいて、当該設定した窓関数32についてのECTスコアを算出する(ステップS108)。ECTスコアは、時間区間である窓関数32に含まれる動作波形データ30の特徴量と各固有ベクトルとの類似度を示す値である。
 情報処理装置300は、算出したECTスコアからバイナリコードを算出する(ステップS110)。情報処理装置300は、次の時間区間に窓関数32をシフトさせる(ステップS112)。ステップS106~S112の処理は、動作波形データ30に対して設定される窓関数32の数だけ繰り返される。
 情報処理装置300は、対象のロボットから収集された別の動作波形データ30を選択し(ステップS114)、ステップS106~S112の処理を繰り返す。ステップS104~S114の処理は、対象の動作波形データ30の数だけ繰り返される。
 続いて、情報処理装置300は、算出したバイナリコードをハイパー空間38にプロットし(ステップS116)、ハイパー空間38上に形成された動作特徴量を示す1または複数のクラスタ40を決定する(ステップS118)。そして、情報処理装置300は、決定したクラスタ40の各々に対して、動作要素をラベリングするとともに、動作要素に対応する動作要素コード44を割り当てる(ステップS120)。
 以上の処理によって、動作要素モデル48が構成される。動作要素モデル48は、バイナリコードの入力に対して、対応する動作要素および当該動作要素を示す動作要素コード44を出力する。
 続いて、動作定義データベース60が構成される。より具体的には、情報処理装置300は、任意のロボット動作に対応する動作波形データ30から窓関数毎にバイナリコードを算出し(ステップS122)、算出したバイナリコードを動作要素モデル48に順次入力することで、動作要素コード44のデータ列を算出する(ステップS124)。動作要素コード44のデータ列は、ロボットの動作要素を時系列に並べたものに相当する。
 情報処理装置300は、ステップS122においてバイナリコードを算出したロボット動作に対応する動画像46から動作認識を行って、ロボットの動作要素に対応する動詞(単語)の列を決定する(ステップS126)。このように、情報処理装置300は、所定の動作を行うロボットを撮影した動画像46を動作認識することで、当該所定の動作を示す動詞を決定する。なお、動画像46に代えて、あるいは、動画像46に加えて、対象のロボットのパスプランを用いてもよい。また、現実にロボットを撮影して得られる動画像46ではなく、ロボットを仮想的に撮影して得られる動画像46を用いてもよい。
 情報処理装置300は、ステップS124において算出した動作要素コード44のデータ列と、ステップS126において決定した動詞とを組み合わせることで、固有動作64の動作定義を決定し(ステップS128)、固有動作64の各々を特定するための固有動作コード66を割り当てる(ステップS130)。そして、情報処理装置300は、固有動作64および対応する固有動作コード66を動作定義データベース60に登録する(ステップS132)。
 なお、情報処理装置300は、必要に応じて、複数の固有動作64からなる連動作68、または、複数の連動作68からなる工程70の単位で動作定義データベース60に登録してもよい。
 以上の処理によって構成された動作定義データベース60を用いることで、任意のロボット動作について標準化されたコードを用いて記述できる。
 (c2:動作波形データの収集および固有ベクトルの抽出)
 まず、動作波形データを収集および固有ベクトルを抽出する処理(ステップS100,S102)について説明する。
 情報処理装置300は、対象のロボットから所定量の動作波形データを収集する。動作波形データは、所定のサンプリング周期毎に収集された動作特徴ベクトルの時系列データに相当する。動作特徴ベクトルは、対象のロボットの動作に係る複数の特徴量により規定される多次元ベクトルである。特徴量としては、例えば、対象のロボットのTCP姿勢(各軸の位置)、関節トルク、TCP速度、TCP加速度、TCP加加速度などが挙げられる。
 例えば、マニピュレータ(6軸多関節ロボット)では、TCP姿勢(X,Y,Z,Rx,Ry,Rz)、関節回転角度(6軸)、関節トルク(6軸)、TCP速度(Vx,Vy,Vz,Vrx,Vry,Vrz)の合計24次元の特徴量を用いてもよい。また、モバイルロボットでは、現在の姿勢(X,Y,θ)、ドライブトレイントルク(Lトルク,Rトルク)、速度、IMUデータ(速度、回転位置、回転速度)の合計24次元の特徴量を用いてもよい。
 なお、対象のロボットの動作を規定する情報であれば、どのような特徴量を用いてもよい。
 情報処理装置300は、収集された動作波形データに対して主成分分析を行うことで、1または複数の固有ベクトルを抽出する。固有ベクトルの抽出は、任意の方法を採用できる。抽出された固有ベクトルは、対象のロボットの基本的な動作の特徴を示すと考えられる。
 (c3:ECTスコアの算出)
 次に、ECTスコアを算出する処理について説明する(ステップS106,S108)。
 図7は、本実施の形態に係る命令記述支援システム1におけるECTスコアを算出する処理を説明するための図である。上述したように、動作波形データ30は、所定のサンプリング周期毎に収集された動作特徴ベクトルの時系列データに相当する。
 情報処理装置300は、動作波形データ30に対して、所定の時間幅を有する窓関数32を時間軸に沿ってシフトさせて順次適用する。すなわち、情報処理装置300は、動作波形データ30に設定される時間区間である窓関数32を時間軸に沿ってシフトさせる。情報処理装置300は、窓関数32を用いて、予め抽出された固有ベクトルのうち、動作波形データ30と合致する固有ベクトルを抽出する。
 より具体的には、まず、情報処理装置300は、窓関数32に含まれる対象のデータとレファレンスデータとの時間相関行列を算出する。そして、情報処理装置300は、時間相関行列と固有ベクトルとの比較、および、時間相関行列から固有値を算出する。固有値としては、例えば、ベクトルのドット積(<v1,v2>=Σv1i,v2i)を用いて規定されるベクトルの方向を用いることができる。ここで、ドット積は、2つのベクトルがどの程度類似しているかを-1~1の範囲の値で示す。さらに、ドット積を0~100%の範囲に規格化することで、窓関数32における相関行列の固有ベクトル内積を示すECTスコアを算出できる。
 すなわち、情報処理装置300は、動作波形データ30に設定される窓関数32毎に、各固有ベクトルについてのスコア(ECTスコア)を算出する。算出されたECTスコアは、ECTスコアリスト34として出力される。
 このように、情報処理装置300は、所定数の固有ベクトルに対して、動作波形データ30と時系列的に合致する固有ベクトルを決定し、ノルムの積で除算することで、当該決定した固有ベクトル内積の角度を算出し、算出した角度を正規化してECTスコアとして算出する。
 (c4:バイナリコードの算出)
 次に、バイナリコードを算出する処理について説明する(ステップS110)。
 図8は、本実施の形態に係る命令記述支援システム1におけるバイナリコード36を算出する処理を説明するための図である。図8を参照して、バイナリコード36は、テストパッチに基づいて算出される。テストパッチは、予め算出されたECTスコアリスト34に含まれるECTスコア群からランダムに選択された2つのECTスコア(ECTおよびECT)からなる組み合わせである。
 例えば、図8においては、ECTスコアリスト34の1番目と3番目のECTスコアとが第1の組み合わせとして選択され、ECTスコアリスト34の1番目と2番目のECTスコアとが第2の組み合わせとして選択され、ECTスコアリスト34の2番目と5番目のECTスコアとが第3の組み合わせとして選択されている。以下、2つのECTスコアがランダムに順次選択される。
 パッチに含まれる2つのECTスコアを比較して、第1のECTスコア(ECT)が第2のECTスコア(ECT)以上であれば「1」を割り当て、第1のECTスコア(ECT)が第2のECTスコア(ECT)より小さければ「0」を割り当てる。このように、情報処理装置300は、複数の固有ベクトルのそれぞれに対する窓関数32に相当する時間区間の波形データの類似度をそれぞれ算出し、算出された類似度のうちランダムに選択される2つの類似度間の大小関係に応じて、バイナリコード36を構成する各ビットの値を決定する。
 バイナリコード36の長さは、ECTスコアリスト34に含まれるECTスコアの組み合わせの数(例えば、図8に示すように9個のECTスコアであれば、=36個)となる。例えば、動作特徴量として、36ビットのバイナリコード36が算出される。
 算出されたバイナリコード36は、窓関数32の時間区間におけるロボットの動作を示すコードに相当する。
 このように、情報処理装置300は、動作波形データ30に設定される時間区間である窓関数32の波形データと固有ベクトルとの類似度を示すECTスコアから、当該時間区間の動作を示すバイナリコード36を算出する。
 (c5:動作要素モデル48の構成)
 次に、動作要素モデル48を構成する処理について説明する(ステップS116,S118,S120)。
 図9は、本実施の形態に係る命令記述支援システム1における動作要素モデル48を構成するためのクラスタリング処理を説明するための図である。図9を参照して、上述したような手順によって算出された多数のバイナリコード36をハイパー空間38にプロットする。バイナリコード36がプロットされるハイパー空間38は、バイナリコード36を構成するビット数と同数の次元(上述の例では、36次元)を有している。
 ハイパー空間38にプロットされた多数のバイナリコード36によって、動作要素に対応する1または複数のクラスタ40が形成される。クラスタ40の各々は、動作要素の特徴を示すことになる。
 図10は、本実施の形態に係る命令記述支援システム1における動作要素モデル48を構成するためのラベリング処理を説明するための図である。図10を参照して、クラスタリングによって得られた動作特徴量に対して、「まがる」、「とまる」、「直進」といった動作要素56をラベリングするとともに、動作要素56に対応する動作要素コード44を割り当てる。動作要素56は、収集した動作波形データが対象とするロボットの動作内容から決定できる。
 以上のようなクラスタリング処理およびラベリング処理によって、動作要素モデル48が構成される。すなわち、情報処理装置300は、複数のバイナリコード36をクラスタリングすることにより、動作要素モデル48を構成する。なお、動作要素モデル48は、図10に示すようなハイパー空間38を有する必要は必ずしもなく、公知の分類器の形で実装されてもよい。
 (c6:動作定義データベース60の構成)
 次に、動作定義データベース60を構成する処理について説明する(ステップS122~S132)。
 図11は、本実施の形態に係る命令記述支援システム1における動作定義データベース60を構成する処理を説明するための図である。
 図11を参照して、情報処理装置300は、任意のロボット動作についての動作波形データを収集するとともに、当該ロボット動作を撮影することで動画像などを収集する。
 情報処理装置300は、上述の図7および図8に示す処理手順に従って、収集した動作波形データから窓関数毎のバイナリコード36を算出する(バイナリコードリスト50)。そして、情報処理装置300は、窓関数毎のバイナリコード36が図10に示すハイパー空間38上のいずれのクラスタ40に分類されるのかを決定する(動作要素モデル48を用いたクラス分類処理52)。
 その結果、窓関数毎に対応する動作要素56が決定あるいは推定される。決定された動作要素56を示す動作要素コード44(「88」,「232」,「235」,「343」など)が命令記述の基本的な要素となる。
 一方、情報処理装置300は、対応する動画像などから動作認識を行って、一連の動作に対応する動詞(単語)を決定する(動作認識に基づく動作(単語)決定処理54)。なお、一連の動作に対応する動詞を決定する処理は、例えば、非特許文献1に開示される手法を用いることができる。
 1または複数の動作要素56が固有動作64(例えば、「さぐる(周辺)」)を構成し、1または複数の固有動作64が連動作68(例えば、「はめ込み」)を構成し、1または複数の連動作68が工程70(例えば、「カバー取付」)を構成する。
 このように、固有動作64、連動作68および工程70は、いずれも時系列に沿った動作要素56の組み合わせとして定義される。すなわち、固有動作64、連動作68および工程70の各々は、1または複数の動作要素56に対応する動作要素コード44からなるコード列として定義される。さらに、コード列の各々をさらに短縮したコードに変換してもよい。この場合、コード列を一意に特定できるようなコード化処理であれば、どのような処理を採用してもよい。
 上述したように、窓関数32毎に対応する動作要素56を推定することで、一連の動作要素56を決定し、当該決定した一連の動作要素56に対して動詞を割り当てることで、固有動作64に対応する命令コードを定義できる。さらに、固有動作64を組み合わせて、連動作68および工程70についても命令コードを生成できる。
 図12は、本実施の形態に係る命令記述支援システム1における動作要素56を決定する処理を説明するための図である。図12を参照して、図9に示すようなハイパー空間38にプロットされたバイナリコード36によって形成された動作要素56を示すクラスタ40のヒストグラム42が算出される。ヒストグラム42においては、動作特徴量のベクトルの方向が互いに類似するほど、動作特徴量の類似度が高いことが示される。
 例えば、カルバック・ライブラー情報量(Kullback-Leibler divergence)を用いることで、各分布の類似度を評価できる。すなわち、カルバック・ライブラー情報量(KL情報量)は、確率分布P(i)と確率分布Q(i)との間がどの程度類似しているかを示す。KL情報量がゼロに近付くほど、2つの確率分布は類似度が高いことを意味する。KL情報量DKLは図12に示すような式に従って算出でき、KL情報量DKLを評価することで、対象の動作要素56がいずれのクラスタ40に属するのかを判断できる。
 なお、図12に適用されるアルゴリズムは、画像処理および物体検出アルゴリズムで利用される「Bag-of-Visual Words」と同様の内容である。
 図13は、本実施の形態に係る命令記述支援システム1における動作要素56を決定する処理例を示す図である。図13に示すようなバイナリコードリスト50Aが取得された場合に、互いの類似度などを評価することで、バイナリコードリスト50Bのように集約してもよい。また、集約したバイナリコードリスト50Bに対して、対応する動作要素56が決定されてもよい。
 以上のように、情報処理装置300は、ロボットが所定の動作を行ったときの動作波形データ30から動作要素モデル48を用いて推定される一連の動作要素と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作64を決定し、当該決定した固有動作64を示す固有動作コード66を動作定義データベース60に登録する。このような処理によって、動作定義データベース60が構成される。
 <D.機能構成>
 図14は、本実施の形態に係る命令記述支援システム1の機能構成例を示す模式図である。図14を参照して、情報処理装置300は、動作定義に係る機能構成として、固有ベクトル抽出部350と、窓関数設定部352と、ECTスコア算出部354と、バイナリコード算出部356と、動作要素モデル構成部358と、動作要素決定部360と、動作認識部362と、動作定義データベース構成部364と、命令コード生成部370とを含む。これらの機能は、典型的には、情報処理装置300のプロセッサ302が命令記述支援プログラム314を実行することで実現される。
 固有ベクトル抽出部350は、ロボットから収集された動作波形データ30から固有ベクトルあるいは固有ベクトルの候補を抽出する。すなわち、固有ベクトル抽出部350は、対象のロボットの動作を示す動作波形データ30から固有ベクトルを抽出する。
 窓関数設定部352は、ロボットから収集された動作波形データ30に対して、窓関数32を設定するとともに、窓関数32を時間軸に沿って順次シフトさせる。
 ECTスコア算出部354は、固有ベクトル抽出部350により抽出された固有ベクトルと、窓関数設定部352により設定された窓関数32に含まれる動作波形データ30の特徴量とに基づいて、ECTスコアを算出する。
 バイナリコード算出部356は、ECTスコア算出部354により算出されたECTスコアからバイナリコード36を算出する。すなわち、バイナリコード算出部356は、動作波形データ30に設定される時間区間(窓関数32)の波形データと固有ベクトルとの類似度を示すECTスコアから、当該時間区間の動作を示すバイナリコード36を算出する。
 動作要素モデル構成部358は、複数のバイナリコード36をクラスタリングすることにより、動作要素56を推定するための動作要素モデル48を構成する。より具体的には、動作要素モデル構成部358は、バイナリコード算出部356により算出されたバイナリコード36をハイパー空間38にプロットするとともに、プロットされたバイナリコード36の集合からクラスタ40を決定する。動作要素モデル構成部358は、各クラスタ40に対して、動作要素56をラベリングするとともに、動作要素56に対応する動作要素コード44を割り当てることで、動作要素モデル48を構成する。
 動作要素決定部360は、バイナリコード算出部356が算出する窓関数毎のバイナリコード36を動作要素モデル48に入力して、動作波形データ30に対応する動作要素56および対応する動作要素コード44を順次出力する。
 動作認識部362は、動画像46に基づいて、動作波形データ30に対応する動詞(単語)を出力する。すなわち、動作認識部362は、所定の動作を行うロボットを撮影した動画像を動作認識することで、当該所定の動作を示す動詞を決定する。
 動作定義データベース構成部364は、動作要素決定部360から時系列に出力される動作要素コード44と、動作認識部362から時系列に出力される動詞とを組み合わせて、動作定義データベース60を構成する。すなわち、動作定義データベース構成部364は、ロボットが所定の動作を行ったときの動作波形データ30から動作要素モデル48を用いて推定される一連の動作要素と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作64を決定し、当該決定した固有動作64を示す固有動作コード66を動作定義データベース60に登録する。
 上述したような機能構成を用いて構成された動作定義データベース60は、例えば、以下のような態様で命令コード72の生成に利用される。
 命令コード生成部370は、1または複数の固有動作64の組み合わせで定義されるロボットの動作に対応する、1または複数の固有動作コード66からなる命令コード72を生成する。より具体的には、命令コード生成部370は、任意の工程を記述した情報の入力を受けると、動作定義データベース60を参照して、入力された工程に含まれる1または複数の固有動作64に対応する1または複数の固有動作コード66を検索する。探索された1または複数の固有動作コード66を順番に並べた一連のコードを命令コード72として出力できる。なお、1または複数の固有動作64の組み合わせは、連動作68または工程70の単位で定義されてもよい。
 なお、動作定義データベース60は、固有動作64を示す自然言語のラベルを含むため、入力される工程の情報では、固有動作を自然言語で特定すればよい。
 <E.応用例>
 図15は、本実施の形態に係る命令記述支援システム1により生成される命令コード72の一例を示す図である。図15を参照して、命令コード72は、複数の固有動作64の組み合わせで定義される。固有動作64の各々は、1または複数の動作要素56から構成される。
 なお、動作要素56の各々には、動作を具体化するためのパラメータが設定可能になっており、ユーザは、所望の動作となるように、パラメータを適宜設定あるいは変更してもよい。
 図16は、本実施の形態に係る命令記述支援システム1により生成される命令コード72の生成処理の一例を示す図である。図16を参照して、命令記述支援システム1は、1または複数の工程指示書80の入力を受けて、工程指示書80に定義された処理を1または複数の固有動作64として再構成し、再構成された1または複数の固有動作64に対応する固有動作コード66を命令コード72として出力する。
 このように、命令記述支援システム1は、1または複数の工程指示書80から命令コード72を生成する。
 <F.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
 [構成1]
 対象のロボット(200)の動作を示す動作波形データ(30)から固有ベクトルを抽出する抽出部(350)と、
 前記動作波形データに設定される時間区間(32)の波形データと前記固有ベクトルとの類似度を示すスコアから、当該時間区間の動作を示すバイナリコード(36)を算出する算出部(354)と、
 前記バイナリコードを用いて、動作要素を推定するための動作要素モデル(48)を構成するモデル構成部(358)と、
 前記ロボットが所定の動作を行ったときの動作波形データから前記動作要素モデルを用いて推定される一連の動作要素(56)と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作を決定し、当該決定した固有動作(64)を示す固有動作コード(66)をデータベース(60)に登録するデータベース構成部(364)とを備える、命令記述支援システム。
 [構成2]
 1または複数の固有動作の組み合わせで定義されるロボットの動作に対応する、1または複数の固有動作コードからなる命令コード(72)を生成する命令生成部(370)をさらに備える、構成1に記載の命令記述支援システム。
 [構成3]
 前記1または複数の固有動作の組み合わせは、連動作(68)または工程(70)単位で定義される、構成2に記載の命令記述支援システム。
 [構成4]
 前記所定の動作を行う前記ロボットを撮影した動画像(46)を動作認識することで、前記所定の動作を示す動詞を決定する動作認識部(362)をさらに備える、構成1~3のいずれか1項に記載の命令記述支援システム。
 [構成5]
 前記算出部は、複数の前記固有ベクトルのそれぞれに対する前記時間区間の波形データの類似度をそれぞれ算出し、算出された類似度のうちランダムに選択される2つの類似度間の大小関係に応じて、前記バイナリコードを構成する各ビットの値を決定する。構成1~4のいずれか1項に記載の命令記述支援システム。
 [構成6]
 前記モデル構成部は、複数の前記バイナリコードをクラスタリングすることにより、前記動作要素モデルを構成する、構成1~5のいずれか1項に記載の命令記述支援システム。
 [構成7]
 前記算出部は、前記動作波形データに設定される前記時間区間を時間軸に沿ってシフトさせる、構成1~6のいずれか1項に記載の命令記述支援システム。
 [構成8]
 対象のロボット(200)の動作を示す動作波形データ(30)から固有ベクトルを抽出するステップ(S102)と、
 前記動作波形データに設定される時間区間(32)の波形データと前記固有ベクトルとの類似度を示すスコアから、当該時間区間の動作を示すバイナリコード(36)を算出するステップ(S110)と、
 前記バイナリコードを用いて、動作要素を推定するための動作要素モデル(48)を構成するステップ(S116,S118,S120)と、
 前記ロボットが所定の動作を行ったときの動作波形データから前記動作要素モデルを用いて推定される一連の動作要素(56)と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作(64)を決定し、当該決定した固有動作を示す固有動作コード(66)をデータベース(60)に登録するステップ(S122,S124,S126,S128,S130,S132)とを備える、命令記述支援方法。
 [構成9]
 コンピュータ(300)に、
 対象のロボット(200)の動作を示す動作波形データ(30)から固有ベクトルを抽出するステップ(S102)と、
 前記動作波形データに設定される時間区間(32)の波形データと前記固有ベクトルとの類似度を示すスコアから、当該時間区間の動作を示すバイナリコード(36)を算出するステップ(S110)と、
 前記バイナリコードを用いて、動作要素を推定するための動作要素モデル(48)を構成するステップ(S116,S118,S120)と、
 前記ロボットが所定の動作を行ったときの動作波形データから前記動作要素モデルを用いて推定される一連の動作要素(56)と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作(64)を決定し、当該決定した固有動作を示す固有動作コード(66)をデータベース(60)に登録するステップ(S122,S124,S126,S128,S130,S132)とを実行させる、命令記述支援プログラム(314)。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 命令記述支援システム、4 カメラ、10 フィールドネットワーク、20 上位ネットワーク、30 動作波形データ、32 窓関数、34 スコアリスト、36 バイナリコード、38 ハイパー空間、40 クラスタ、42 ヒストグラム、44 動作要素コード、46 動画像、48 動作要素モデル、50,50A,50B バイナリコードリスト、52 クラス分類処理、54 決定処理、56 動作要素、60 動作定義データベース、62 動作区分、64 固有動作、66 固有動作コード、68 連動作、70 工程、72 命令コード、80 工程指示書、100 制御装置、102,262,302 プロセッサ、104,264,304 メインメモリ、106 上位ネットワークコントローラ、108,252 フィールドネットワークコントローラ、110,270,310 ストレージ、112 メモリカードインターフェイス、114 メモリカード、116 ローカルバスコントローラ、118 プロセッサバス、120,324 USBコントローラ、122 ローカルバス、130 機能ユニット、200 ロボット、250 ロボットコントローラ、260 制御処理回路、268 インターフェイス回路、272,1102 システムプログラム、300 情報処理装置、306 光学ドライブ、307 記録媒体、308 バス、312 OS、314 命令記述支援プログラム、320 ネットワークコントローラ、326 入力部、328 表示部、350 固有ベクトル抽出部、352 窓関数設定部、354 スコア算出部、356 バイナリコード算出部、358 動作要素モデル構成部、360 動作要素決定部、362 動作認識部、364 動作定義データベース構成部、370 命令コード生成部、400 表示装置、1104 IECプログラム、1106 ロボットプログラム。

Claims (9)

  1.  対象のロボットの動作を示す動作波形データから固有ベクトルを抽出する抽出部と、
     前記動作波形データに設定される時間区間の波形データと前記固有ベクトルとの類似度を示すスコアから、当該時間区間の動作を示すバイナリコードを算出する算出部と、
     前記バイナリコードを用いて、動作要素を推定するための動作要素モデルを構成するモデル構成部と、
     前記ロボットが所定の動作を行ったときの動作波形データから前記動作要素モデルを用いて推定される一連の動作要素と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作を決定し、当該決定した固有動作を示す固有動作コードをデータベースに登録するデータベース構成部とを備える、命令記述支援システム。
  2.  1または複数の固有動作の組み合わせで定義されるロボットの動作に対応する、1または複数の固有動作コードからなる命令コードを生成する命令生成部をさらに備える、請求項1に記載の命令記述支援システム。
  3.  前記1または複数の固有動作の組み合わせは、連動作または工程の単位で定義される、請求項2に記載の命令記述支援システム。
  4.  前記所定の動作を行う前記ロボットを撮影した動画像を動作認識することで、前記所定の動作を示す動詞を決定する動作認識部をさらに備える、請求項1~3のいずれか1項に記載の命令記述支援システム。
  5.  前記算出部は、複数の前記固有ベクトルのそれぞれに対する前記時間区間の波形データの類似度をそれぞれ算出し、算出された類似度のうちランダムに選択される2つの類似度間の大小関係に応じて、前記バイナリコードを構成する各ビットの値を決定する。請求項1~4のいずれか1項に記載の命令記述支援システム。
  6.  前記モデル構成部は、複数の前記バイナリコードをクラスタリングすることにより、前記動作要素モデルを構成する、請求項1~5のいずれか1項に記載の命令記述支援システム。
  7.  前記算出部は、前記動作波形データに設定される前記時間区間を時間軸に沿ってシフトさせる、請求項1~6のいずれか1項に記載の命令記述支援システム。
  8.  対象のロボットの動作を示す動作波形データから固有ベクトルを抽出するステップと、
     前記動作波形データに設定される時間区間の波形データと前記固有ベクトルとの類似度を示すスコアから、当該時間区間の動作を示すバイナリコードを算出するステップと、
     前記バイナリコードを用いて、動作要素を推定するための動作要素モデルを構成するステップと、
     前記ロボットが所定の動作を行ったときの動作波形データから前記動作要素モデルを用いて推定される一連の動作要素と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作を決定し、当該決定した固有動作を示す固有動作コードをデータベースに登録するステップとを備える、命令記述支援方法。
  9.  コンピュータに、
     対象のロボットの動作を示す動作波形データから固有ベクトルを抽出するステップと、
     前記動作波形データに設定される時間区間の波形データと前記固有ベクトルとの類似度を示すスコアから、当該時間区間の動作を示すバイナリコードを算出するステップと、
     前記バイナリコードを用いて、動作要素を推定するための動作要素モデルを構成するステップと、
     前記ロボットが所定の動作を行ったときの動作波形データから前記動作要素モデルを用いて推定される一連の動作要素と、当該所定の動作を示す動詞とを対応付けることで、当該所定の動作に含まれる、1または複数の動作要素で構成される固有動作を決定し、当該決定した固有動作を示す固有動作コードをデータベースに登録するステップとを実行させる、命令記述支援プログラム。
PCT/JP2021/034739 2021-03-12 2021-09-22 命令記述支援システム、命令記述支援方法および命令記述支援プログラム WO2022190435A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021040256A JP2022139742A (ja) 2021-03-12 2021-03-12 命令記述支援システム、命令記述支援方法および命令記述支援プログラム
JP2021-040256 2021-03-12

Publications (1)

Publication Number Publication Date
WO2022190435A1 true WO2022190435A1 (ja) 2022-09-15

Family

ID=83226229

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/034739 WO2022190435A1 (ja) 2021-03-12 2021-09-22 命令記述支援システム、命令記述支援方法および命令記述支援プログラム

Country Status (2)

Country Link
JP (1) JP2022139742A (ja)
WO (1) WO2022190435A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11175132A (ja) * 1997-12-15 1999-07-02 Omron Corp ロボット、ロボットシステム、ロボットの学習方法、ロボットシステムの学習方法および記録媒体
JP2016018422A (ja) * 2014-07-09 2016-02-01 キヤノン株式会社 画像処理方法、画像処理装置、プログラム、記録媒体、生産装置、及び組立部品の製造方法
JP2018153873A (ja) * 2017-03-15 2018-10-04 株式会社オカムラ マニピュレータの制御装置、制御方法およびプログラム、ならびに作業システム
JP2020201937A (ja) * 2019-06-06 2020-12-17 株式会社日立製作所 センサデータを与える複数の装置を含むシステムを管理する方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11175132A (ja) * 1997-12-15 1999-07-02 Omron Corp ロボット、ロボットシステム、ロボットの学習方法、ロボットシステムの学習方法および記録媒体
JP2016018422A (ja) * 2014-07-09 2016-02-01 キヤノン株式会社 画像処理方法、画像処理装置、プログラム、記録媒体、生産装置、及び組立部品の製造方法
JP2018153873A (ja) * 2017-03-15 2018-10-04 株式会社オカムラ マニピュレータの制御装置、制御方法およびプログラム、ならびに作業システム
JP2020201937A (ja) * 2019-06-06 2020-12-17 株式会社日立製作所 センサデータを与える複数の装置を含むシステムを管理する方法

Also Published As

Publication number Publication date
JP2022139742A (ja) 2022-09-26

Similar Documents

Publication Publication Date Title
Ghosh et al. Synthesis of compositional animations from textual descriptions
Lan et al. A hierarchical representation for future action prediction
Murali et al. Learning to grasp without seeing
Jenkins et al. Automated derivation of behavior vocabularies for autonomous humanoid motion
Fard et al. Machine learning approach for skill evaluation in robotic-assisted surgery
Etemad et al. Classification and translation of style and affect in human motion using RBF neural networks
CN110069129B (zh) 确定系统和确定方法
JP6248593B2 (ja) 姿勢検出装置、姿勢検出方法および姿勢検出プログラム
Cimen et al. Classification of human motion based on affective state descriptors
JP7031685B2 (ja) モデル学習装置、モデル学習方法及びコンピュータプログラム
Liu et al. Mirroring without overimitation: Learning functionally equivalent manipulation actions
CN114730407A (zh) 使用神经网络对工作环境中的人类行为进行建模
Dering et al. An unsupervised machine learning approach to assessing designer performance during physical prototyping
KR101819323B1 (ko) 모사학습 및 행동 조합에 기반한 로봇의 작업 행동궤적 생성 방법 및 그 장치
WO2016084326A1 (ja) 情報処理システム、情報処理方法、及び、記録媒体
Papaioannou et al. Mimicme: A large scale diverse 4d database for facial expression analysis
JP4928193B2 (ja) 顔画像認識装置及び顔画像認識プログラム
JP7472471B2 (ja) 推定システム、推定装置および推定方法
WO2022190435A1 (ja) 命令記述支援システム、命令記述支援方法および命令記述支援プログラム
WO2022190434A1 (ja) 命令記述支援システム、命令記述支援方法および命令記述支援プログラム
Alharbi et al. A data preprocessing technique for gesture recognition based on extended-kalman-filter
Goutsu et al. Motion recognition employing multiple kernel learning of fisher vectors using local skeleton features
Wang et al. Probabilistic graph based spatial assembly relation inference for programming of assembly task by demonstration
CN112230618B (zh) 一种从全局任务自动合成多机器人分布式控制器的方法
WO2021171384A1 (ja) クラスタリング装置、クラスタリング方法、および、クラスタリングプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21930283

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21930283

Country of ref document: EP

Kind code of ref document: A1