WO2023157235A1 - 計算装置 - Google Patents

計算装置 Download PDF

Info

Publication number
WO2023157235A1
WO2023157235A1 PCT/JP2022/006669 JP2022006669W WO2023157235A1 WO 2023157235 A1 WO2023157235 A1 WO 2023157235A1 JP 2022006669 W JP2022006669 W JP 2022006669W WO 2023157235 A1 WO2023157235 A1 WO 2023157235A1
Authority
WO
WIPO (PCT)
Prior art keywords
driving device
control input
unit
input
principal component
Prior art date
Application number
PCT/JP2022/006669
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 日本電気株式会社
Priority to PCT/JP2022/006669 priority Critical patent/WO2023157235A1/ja
Publication of WO2023157235A1 publication Critical patent/WO2023157235A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring

Definitions

  • the present invention relates to a computing device, a determining method, a driving device, a driving method, and a recording medium.
  • a driving device such as a robot may not move according to the commanded control input due to minute error factors such as unevenness of the ground or mechanical play. It is known to evaluate integrals in the form shown in Equation 1 when evaluating control inputs with such uncertainties taken into account.
  • x in Expression 1 indicates the state of the robot such as the position and orientation of the robot, and f(x) is a function for evaluating the goodness of the state.
  • p(x) indicates the probability density of taking state x.
  • Patent Document 2 discloses reducing the dimensions of an input using principal component analysis when there are a large number of parameters. Further, Patent Document 2 discloses selecting a small number of sampling points by sequentially executing two criteria, and performing a simulation operation at the selected sampling points.
  • an object of the present invention is to provide a computing device, a determining method, a driving device, a driving method, and a recording medium that can solve the above problems.
  • a computing device which is one aspect of the present disclosure, an execution unit that simulates a state of the driving device after the driving device is driven according to the control input, based on a control input value that can be input to the driving device; an analysis unit that selects a principal component axis by performing a principal component analysis on the state distribution of the driving device identified by the execution unit performing multiple simulations; a decision unit that decides a value to be used when evaluating candidates for the control input to be input to the driving device based on the result selected by the analysis unit; It has a configuration of
  • a determination method includes: The information processing device simulating the state of the driving device after the driving device is driven in accordance with the control input based on the value of the control input that can be input to the driving device; selecting a principal component axis by performing principal component analysis on the state distribution of the driving device identified by multiple simulations; Based on the result of selection, a value to be used when evaluating candidates for the control input to be input to the driving device is determined.
  • a recording medium that is another aspect of the present disclosure includes: information processing equipment, simulating the state of the driving device after the driving device is driven in accordance with the control input based on the value of the control input that can be input to the driving device; selecting a principal component axis by performing principal component analysis on the state distribution of the driving device identified by multiple simulations;
  • a computer-readable recording medium recording a program for realizing a process of determining a value to be used when evaluating candidates for the control input to be input to the driving device based on the selection result.
  • a driving device includes: Used when evaluating candidates for the control input to be input to the driving device, which are determined based on the result of principal component analysis of the results of the simulation using the values of the control inputs that can be input to the driving device. an estimation unit that estimates an evaluation value corresponding to the control input candidate based on the value and the state of the driving device; a selection unit that selects a control input to be actually input from among the plurality of control input candidates based on a result of estimation by the estimation unit; a drive unit that drives the device based on the selection result of the selection unit; It has a configuration of
  • a driving method includes: the driving device Used when evaluating candidates for the control input to be input to the driving device, which are determined based on the result of principal component analysis of the results of the simulation using the values of the control inputs that can be input to the driving device. estimating an evaluation value corresponding to the control input candidate based on the value and the state of the driving device; selecting a control input to be actually input from among the plurality of control input candidates based on the estimation result; It is configured to be driven based on the result of selection.
  • a recording medium that is another aspect of the present disclosure includes: to the drive, Used when evaluating candidates for the control input to be input to the driving device, which are determined based on the result of principal component analysis of the results of the simulation using the values of the control inputs that can be input to the driving device. estimating an evaluation value corresponding to the control input candidate based on the value and the state of the driving device; selecting a control input to be actually input from among the plurality of control input candidates based on the estimation result; It is a computer-readable recording medium recording a program for realizing processing driven based on the result of selection.
  • FIG. 1 is a block diagram showing a configuration example of a computing device;
  • FIG. FIG. 10 is a diagram showing an example of control input candidate information; It is a figure which shows an example of simulation result information.
  • FIG. 4 is a diagram showing an example of sample point information; It is a figure for demonstrating the example of a process of a principal component analysis execution part.
  • FIG. 5 is a diagram for explaining a processing example of a sample point selection unit;
  • FIG. 5 is a diagram for explaining a processing example of a sample point selection unit;
  • FIG. 5 is a diagram for explaining a processing example of a sample point selection unit;
  • FIG. 5 is a diagram for explaining a processing example of a sample point selection unit;
  • FIG. 5 is a diagram for explaining a processing example of a sample point selection unit;
  • FIG. 5 is a diagram for explaining a processing example of a sample point selection unit;
  • FIG. 5 is a diagram for explaining a processing example of a sample point selection unit;
  • FIG. 5 is a diagram for explaining a processing example of a weight calculator;
  • FIG. 5 is a diagram for explaining a processing example of a weight calculator;
  • It is a figure which shows an example of a simulation result.
  • It is a figure for demonstrating the example of a process of a data conversion part and an inverse conversion part.
  • It is a block diagram which shows the structural example of a drive device.
  • It is a figure which shows the example of evaluation.
  • 4 is a flowchart showing an operation example of the driving device;
  • FIG. 7 is a diagram illustrating a hardware configuration example of a computing device according to the second embodiment of the present disclosure;
  • FIG. 1 is a block diagram showing a configuration example of a computing device;
  • FIG. It is a block diagram which shows the structural example of a drive device.
  • FIG. 1 is a diagram showing a configuration example of a control system 100.
  • FIG. 2 is a diagram showing an example of the behavior of the driving device 300.
  • FIG. FIG. 3 is a block diagram showing a configuration example of the computing device 200.
  • FIG. 4 is a diagram showing an example of the control input candidate information 241.
  • FIG. 5 is a diagram showing an example of the simulation result information 242.
  • FIG. 6 is a diagram showing an example of the sample point information 243.
  • FIG. 7 is a diagram for explaining a processing example of the principal component analysis execution unit 252. As shown in FIG.
  • FIG. 8 and 9 are diagrams for explaining a processing example of the sample point selection unit 253.
  • FIG. 10 and 11 are diagrams for explaining a processing example of the weight calculation unit 254.
  • FIG. 12 is a diagram showing an example of simulation results.
  • FIG. 13 is a diagram for explaining a processing example of the data conversion unit 255 and the inverse conversion unit 256.
  • FIG. 14 is a block diagram showing a configuration example of the driving device 300.
  • FIG. FIG. 18 is a flowchart showing an operation example of the driving device 300.
  • a control system 100 having a computing device 200 and a driving device 300 will be described.
  • the computing device 200 performs principal component analysis after performing a sufficient number of simulations for each control input candidate in advance, and selects sample points on the axis with the largest contribution rate. and weights. Further, when executing drive control, the drive device 300 evaluates the evaluation function value using the sample points and weights determined by the calculation device 200, and performs drive control based on the evaluation result.
  • the calculation device 200 determines sample points and weights in advance, and stores the determination results in the calculation device 200 in advance in the storage device of the drive device 300.
  • the computing device 200 and the driving device 300 may be configured to be able to communicate with each other even while the driving device 300 is being driven.
  • the computing device 200 and the driving device 300 are configured to communicate with each other while the driving device 300 is being driven so that the result of determination by the computing device 200 is reflected while the driving device 300 is being driven. good too.
  • the driving device 300 is assumed to be a two-wheel mobile robot that can move only in the direction in which the driving device 300 is facing and that moves on a plane.
  • the driving device 300 can move in the direction indicated by the circle, which is the direction in which the driving device 300 is facing, while the driving device 300 can move in the direction indicated by the cross, which is different from the direction in which the driving device 300 is facing, such as sideways. indicates that it is not possible.
  • a velocity v and an angular velocity ⁇ can be input to the driving device 300 .
  • the control input in this embodiment includes values indicating the velocity v and the angular velocity ⁇ .
  • the control input may include information indicating the driving time.
  • the state of the driving device 300 is determined by the position (x, y) and the orientation ⁇ to which the driving device 300 is directed.
  • the driving device 300 is driven by a motion model as described in Non-Patent Document 1.
  • the present invention is applicable not only to two-wheeled mobile robots as described above.
  • the driving device 300 may be configured to be movable in directions other than the facing direction, such as the lateral direction, or may be movable in three-dimensional directions.
  • the drive device 300 may also be any other robot such as a robotic arm. If the driving device 300 is other than the two-wheeled mobile robot described above, the content of the control input to the driving device 300 and the state of the driving device 300 are determined according to the movement method of the robot to which the present invention is applied. good.
  • the drive device 300 may be configured so that control inputs such as x-axis direction speed, y-axis direction speed, and rotational torque can be input. may also include z-coordinates in addition to x-coordinates and y-coordinates.
  • control system 100 is a system that controls driving of the driving device 300 . As shown in FIG. 1, control system 100 includes, for example, computing device 200 and driving device 300 .
  • the computing device 200 and the driving device 300 can be communicatively connected to each other via, for example, a network.
  • the computing device 200 and the driving device 300 may be connected by wire so as to be able to communicate with each other, or may be connected by being wirelessly connected so as to be able to communicate with each other.
  • the computing device 200 is an information processing device that determines values to be used when evaluating control input candidates to be input to the driving device 300 . For example, the computing device 200 determines sample points and weights selected based on a plurality of simulation results as values used to evaluate the expression shown in Equation 2 used when evaluating control input candidates.
  • x in Expression 2 indicates the state of the robot such as the position and orientation of the robot
  • f(x) is a function for evaluating the goodness of the state.
  • p(x) indicates the probability density of taking state x.
  • FIG. 3 shows a configuration example of the computing device 200.
  • the computing device 200 includes main components such as an operation input unit 210, a screen display unit 220, a communication I/F (interface) unit 230, a storage unit 240, and an arithmetic processing unit. 250 and .
  • main components such as an operation input unit 210, a screen display unit 220, a communication I/F (interface) unit 230, a storage unit 240, and an arithmetic processing unit. 250 and .
  • FIG. 3 illustrates a case where the function of the computing device 200 is realized using one information processing device.
  • the computing device 200 may be implemented using a plurality of information processing devices, such as being implemented on a cloud. Further, the computing device 200 may not include part of the above-exemplified configuration, such as not having an operation input unit or a screen display unit, or may have a configuration other than the above-exemplified configuration.
  • the operation input unit 210 consists of operation input devices such as a keyboard and a mouse.
  • the operation input unit 210 detects an operation of an operator who operates the computing device 200 and outputs it to the arithmetic processing unit 250 .
  • the screen display unit 220 consists of a screen display device such as an LCD (Liquid Crystal Display).
  • the screen display unit 220 can display various information stored in the storage unit 240 on the screen in accordance with instructions from the arithmetic processing unit 250 .
  • the communication I/F unit 230 consists of a data communication circuit and the like. Communication I/F section 230 performs data communication with an external device such as driving device 300 connected via a communication line.
  • the storage unit 240 is a storage device such as a hard disk or memory.
  • the storage unit 240 stores processing information and programs 244 required for various processes in the arithmetic processing unit 250 .
  • the program 244 realizes various processing units by being read and executed by the arithmetic processing unit 250 .
  • the program 244 is read in advance from an external device or recording medium via a data input/output function such as the communication I/F section 230 and stored in the storage section 240 .
  • Main information stored in the storage unit 240 includes, for example, control input candidate information 241, simulation result information 242, sample point information 243, and the like.
  • the control input candidate information 241 indicates control input candidates that may be input to the driving device 300 .
  • the control input candidate information 241 may include only some of the control input candidates extracted by an arbitrary method from among all possible control input candidates.
  • the control input candidate information 241 is acquired in advance using a method such as being acquired from an external device via the communication I/F unit 230 or being input using the operation input unit 210, and stored in the storage unit 240. stored.
  • FIG. 4 shows an example of the control input candidate information 241.
  • the control input candidate information 241 includes a plurality of combinations of the velocity v and the angular velocity ⁇ , which are candidates for the control input that can be input to the driving device 300 .
  • m combinations of velocity v and angular velocity ⁇ of (v 1 , ⁇ 1 ), . . . , (v m , ⁇ m ) are included. Note that m may be any value.
  • the simulation result information 242 indicates the result of a simulation of the drive result of the drive device 300 by the simulation execution unit 251, which will be described later.
  • the simulation result information 242 indicates, for each control input candidate, a simulation result indicating the state of the drive device 300 after driving when the control input candidate indicated by the control input candidate information 241 is input.
  • the simulation result information 242 also includes information indicating a plurality of simulation results obtained by driving the drive device 300 at different times, such as after 1 second, 2 seconds, and 3 seconds.
  • the simulation result information 242 may include only information indicating the simulation result when the driving device 300 is driven for an arbitrary period of time such as after 0.5 seconds.
  • the simulation result information 242 is updated when the simulation execution unit 251 executes the simulation.
  • the simulation execution unit 251 executes the simulation multiple times for each control input candidate indicated by the control input candidate information 241 .
  • the simulation execution unit 251 executes the simulation multiple times until an arbitrary predetermined condition is satisfied.
  • the simulation execution unit 251 executes a simulation in a system with uncertainty. Therefore, when the simulation is performed multiple times, the solution trajectory obtained each time stochastically fluctuates.
  • the simulation result information 242 includes a plurality of pieces of information indicating the state of the drive device 300 that indicates the position (x, y) and orientation ⁇ of the drive device 300 after being driven, which are specified as a result of the simulation. For example, FIG.
  • each circle indicates the state after the drive device 300 is driven. That is, although illustration of ⁇ is omitted in FIG. 5 , each circle corresponds to information indicating the position (x, y) and orientation ⁇ of the driving device 300 after driving.
  • the simulation result information 242 includes, for example, information indicating the state of the driving device 300 corresponding to each circle shown in FIG.
  • the simulation result information 242 includes information indicating the state of the driving device 300 for each control input candidate. Further, the simulation result information 242 may include information indicating a plurality of simulation results with different driving times of the driving device 300 . In other words, the simulation result information 242 may include information indicating the state of the drive device 300 corresponding to each state distribution according to control input candidates and the time during which the drive device 300 is driven.
  • the sample point information 243 includes information indicating sample points selected based on the simulation result information 242 by the sample point selection unit 253, which will be described later.
  • a sample point corresponds to one state of the driving device 300 specified by the simulation execution unit 251 as a simulation result.
  • the sample points include information indicating the position (x, y) and the orientation ⁇ in which the driving device 300 is facing.
  • the sample point information 243 also includes information indicating the weight of the sample point calculated by the weight calculator 254, which will be described later.
  • the sample point information 243 includes information such as that the sample point selection unit 253 selects a sample point, the weight calculation unit 254 calculates the weight corresponding to the sample point, and the inverse transformation unit 256 performs inverse transformation. updated accordingly.
  • FIG. 6 shows an example of information included in the sample point information 243.
  • the sample point information 243 includes information indicating sample points and weights for each control input candidate.
  • the sample point information 243 associates information indicating control input candidates with information indicating sample points and weights, which are values used when evaluating the control input candidates.
  • the sample point information 243 includes information indicating n sample points and the weight corresponding to each sample point when the control input candidate is (v 1 , ⁇ 1 ).
  • the sample point information 243 includes information indicating sample points and weights corresponding to each candidate up to the control input candidate (v m , ⁇ m ).
  • n in FIG. 6 is a value corresponding to the number of sample points. n may be any value.
  • the simulation result information 242 can include information indicating the state of the drive device 300 corresponding to each state distribution according to the time during which the drive device 300 is driven.
  • the sample point information 243 may also include information indicating the sample points and weights corresponding to each control input candidate for each time the driving device 300 is driven during the simulation.
  • the arithmetic processing unit 250 has an arithmetic device such as a CPU (Central Processing Unit) and its peripheral circuits.
  • the arithmetic processing unit 250 reads the program 244 from the storage unit 240 and executes it, thereby realizing various processing units by cooperating the hardware and the program 244 .
  • Main processing units realized by the arithmetic processing unit 250 include, for example, a simulation execution unit 251, a principal component analysis execution unit 252, a sample point selection unit 253, a weight calculation unit 254, a data conversion unit 255, an inverse conversion unit 256, There is an output unit 257 and the like.
  • sample point selection unit 253 and the weight calculation unit 254 perform processing for determining sample points and weights, which are values used when evaluating control input candidates. Therefore, it can be said that the sample point selection unit 253 and the weight calculation unit 254 constitute a determination unit that determines the above value.
  • the simulation executing unit 251 simulates the state of the driving device 300 after driving the driving device 300 for a predetermined time for each control input candidate indicated by the control input candidate information 241 . For example, the simulation executing unit 251 executes the simulation a plurality of times until an arbitrary predetermined condition is satisfied for each control input candidate.
  • the simulation execution unit 251 may perform multiple types of simulations in which the drive device 300 is driven for different times. In the case of this embodiment, the simulation execution unit 251 executes a simulation in a system with uncertainty. Therefore, when the simulation is performed multiple times, the solution trajectory obtained each time stochastically fluctuates.
  • the simulation execution unit 251 also stores information indicating the state of the drive device 300 specified as a result of the simulation in the storage unit 240 as the simulation result information 242 .
  • the simulation execution unit 251 simulates the state of the driving device 300 when using a motion model as shown in Equation 16 in Non-Patent Document 1. As shown in FIG. 5 , the simulation execution unit 251 identifies multiple states of the drive device 300 after driving by executing multiple simulations for each control input candidate. Note that r ⁇ (t) in Equation 16 in Non-Patent Document 1 corresponds to the velocity v described above. Also, l indicates the distance between the wheels.
  • the D part represents the measure of variation.
  • the measure of variability may, for example, be determined in any manner.
  • the scale of variation may be determined in advance, or may be determined according to the environment of the site where the driving device 300 is actually driven.
  • the exercise model used when the simulation execution unit 251 performs the simulation is not limited to the above example.
  • the simulation execution unit 251 may be configured to perform a simulation using a known motion model other than the one exemplified above.
  • a case where the driving device 300 is a two-wheeled mobile robot is exemplified, but as described above, the driving device 300 may be other than a two-wheeled mobile robot. If the driving device 300 is other than a two-wheeled mobile robot, the motion model used when the simulation execution unit 251 performs the simulation may also correspond to the type of the driving device 300 or the like.
  • the principal component analysis execution unit 252 (analysis unit) performs principal component analysis on the control input candidates and the state distribution for each driving time indicated by the simulation result information 242, thereby obtaining the principal component axis with the largest variance width. to select. For example, the principal component analysis execution unit 252 executes a process of drawing a principal component axis for each state distribution so that the state (state data) variation in the state distribution is maximized.
  • FIG. 7 is a diagram for explaining the processing of the principal component analysis execution unit 252.
  • the principal component analysis executing unit 252 selects, as an example, a linear principal component axis having the largest variance width in the state distribution by performing the principal component analysis.
  • the principal component analysis execution unit 252 selects, as an example, an axis with a wide variance width, that is, the first principal component axis.
  • the principal component analysis executing unit 252 selects, in addition to the first principal component axis, the second principal component axis having the second largest variance width, depending on the state distribution such as the shape of the state distribution, for example. good too.
  • the principal component analysis execution unit 252 may be configured to select a plurality of axes such as the third principal component axis, the fourth principal component axis, . . . according to arbitrary conditions.
  • the principal component analysis execution unit 252 may be configured to select a plurality of axes according to the type of the driving device 300 or the like. For example, as described above, the principal component analysis execution unit 252 may be configured to select the number of axes to be selected according to conditions such as the condition of the state distribution and the type of the driving device 300 .
  • the sample point selection unit 253 selects sample points that satisfy a predetermined condition from the state data on the principal component axis. For example, the sample point selection unit 253 selects a sample point for each state distribution, that is, for each control input candidate or drive time. The sample point selection unit 253 also stores information indicating the state of the driving device 300 corresponding to the selected sample point in the storage unit 240 as the sample point information 243 .
  • the sample point selection unit 253 projects the state data toward the principal component axis. Then, the sample point selection unit 253 selects points corresponding to ⁇ k ⁇ to +k ⁇ , where ⁇ is the standard deviation of the state data projected in the axial direction, as sample points.
  • FIG. 8 shows an example of selection processing by the sample point selection unit 253 when k is 3.
  • the sample point selection unit 253 selects states corresponding to ⁇ 3 ⁇ , ⁇ 2 ⁇ , ⁇ , 0, ⁇ , 2 ⁇ , and 3 ⁇ among the points corresponding to the state data on the principal component axis. Select a data point as a sample point. Note that the value of k may be arbitrary.
  • the principal component analysis execution unit 252 and the sample point selection unit 253 select sample points on the principal component analysis axis from the state distribution as shown in FIG.
  • the principal component analysis execution unit 252 and the sample point selection unit 253 select a point that satisfies a predetermined condition on the principal component analysis axis that most indicates the status of the state distribution among a plurality of state data points included in the state distribution. is selected as the sample point.
  • the principal component analysis execution unit 252 may select a plurality of axes.
  • the sample point selection unit 253 may be configured to select sample points from data points on multiple axes, for example, the first principal component axis and the second principal component axis (or above) may be configured to select a sample point from a subspace spanned by each direction vector.
  • the means by which the sample point selection unit 253 selects the sample points may be determined by any method.
  • the weight calculation unit 254 calculates weights corresponding to the sample points selected by the sample point selection unit 253 .
  • the weight indicates a value according to the state data distribution on the principal component axis.
  • the weight calculation unit 254 also stores information indicating the calculated weight in the storage unit 240 as the sample point information 243 .
  • the weight calculator 254 assumes that the distribution of the state data points projected in the axial direction by the sample point selector 253 is a normal distribution, and integrates the state data distribution within the range shown in FIG. , to calculate the weights corresponding to the sample points. That is, the weight calculation unit 254 integrates the distribution of the state data points projected in the axial direction by the sample point selection unit 253 for each sample point in the range corresponding to the sample point. Calculate the weight to Note that FIG. 10 exemplifies the case where k is three. If k is other than 3, the range of integration may also depend on the value of k.
  • the weight calculator 254 may calculate the weight based on the number of state data points. For example, as shown in FIG. 11, the weight calculation unit 254 determines the state data points within the section separated by the midpoint of each sample point based on the distribution of the state data points projected in the axial direction by the sample point selection unit 253. Count the number of data points (ie, the number of states). Then, the weight calculator 254 calculates the counted number of state data points as a weight.
  • the weight calculation unit 254 calculates the weight corresponding to each sample point selected by the sample point selection unit 253 using any of the methods exemplified above.
  • the weight calculation unit 254 may calculate the weight according to the state distribution using a method other than the above-exemplified method.
  • the computing device 200 determines sample points and weights by the method described above. Note that according to the method as described above, the sample points are placed on the linear principal component axis. Therefore, when the state distribution is curved as shown in FIG. 12, the method described above may not be suitable.
  • the calculation device 200 converts the state distribution into a straight data distribution by using the data conversion unit 255, and in the converted state, the principal component analysis execution unit 252 and the sample point selection unit 253 A sample point on the principal component analysis axis can be selected by .
  • Non-Patent Document 2 describes a coordinate transformation method for a robot on a two-dimensional plane.
  • the data conversion unit 255 may perform non-linear conversion using a method such as that described in Non-Patent Document 2 to convert the overall curved shape of the state distribution into a straight shape.
  • the inverse transformation unit 256 After selecting the sample points, the inverse transformation unit 256 inversely transforms the overall straight shape into the original curved state distribution, for example, by performing the reverse processing of the transformation unit 255 . This allows the computing device 200 to select sample points in an appropriate form corresponding to the curved state distribution.
  • the data conversion unit 255 uses a known method other than the above example to convert the state distribution of a shape that is not suitable for sample point selection into sample point selection by the principal component analysis execution unit 252 and the sample point selection unit 253 . may be configured to transform into a shape suitable for
  • Whether or not to perform processing by the data conversion unit 255 and the inverse conversion unit 256 may be determined by any method. For example, the computing device 200 selects sample points both when the processing by the data transforming unit 255 and the inverse transforming unit 256 is not performed and when it is performed, and selects the sample points for which a more appropriate number can be selected. It may be configured to adopt a selection result that can be evaluated as being more appropriate.
  • the calculation device 200 performs the data conversion unit 255 and the inverse conversion unit 256 may be configured to perform processing by The computing device 200 may be configured to perform processing by the data transforming unit 255 and the inverse transforming unit 256 when the state distribution state satisfies or does not satisfy a predetermined condition.
  • the computing device 200 may be configured to determine whether or not to perform processing by the data conversion unit 255 and the inverse conversion unit 256 based on conditions other than those exemplified above.
  • the output unit 257 outputs the sample point information 243 and the like.
  • the output unit 257 displays the information stored in the storage unit 240 such as the sample point information 243 on the screen display unit 220, or outputs the information to an external device such as the driving device 300 via the communication I/F unit 230. and send it.
  • the driving device 300 is a robot that evaluates control input candidates using the sample points and weights determined by the computing device 200 and drives according to the evaluation results.
  • the drive device 300 is a two-wheeled mobile robot that moves on a plane and is movable only in the direction in which the drive device 300 is facing. Drive device 300 may be other than illustrated.
  • the drive device 300 has, for example, a communication I/F section 310, a storage section 320, and an arithmetic processing section 330 as main components.
  • the communication I/F unit 310 consists of a data communication circuit and the like. Communication I/F unit 310 performs data communication with an external device such as computing device 200 connected via a communication line.
  • the storage unit 320 is a storage device such as a hard disk or memory.
  • the storage unit 320 stores processing information and programs 323 necessary for various processes in the arithmetic processing unit 330 .
  • the program 323 realizes various processing units by being read and executed by the arithmetic processing unit 330 .
  • the program 323 is read in advance from an external device or recording medium via a data input/output function such as the communication I/F section 310 and stored in the storage section 320 .
  • Main information stored in the storage unit 320 includes, for example, control input candidate information 321, sample point information 322, and the like.
  • the control input candidate information 321 indicates control input candidates that may be input to the driving device 300 .
  • the control input candidate information 321 includes at least some of the control input candidates included in the control input candidate information stored in the computing device 200 .
  • the control input candidate information 321 is obtained in advance from an external device such as the computing device 200 via the communication I/F section 310 and stored in the storage section 320 .
  • the sample point information 322 includes information indicating the sample points selected by the sample point selection unit 253 based on the simulation result information 242, like the sample point information 243 of the computing device 200.
  • information indicating control input candidates is associated with information indicating sample points and weights, which are values used when evaluating the control input candidates.
  • the sample point information 322 includes at least some of the sample points and weights included in the sample point information 243 stored in the computing device 200 .
  • the sample point information 322 is obtained in advance from an external device such as the computing device 200 via the communication I/F section 310 and stored in the storage section 320 .
  • the arithmetic processing unit 330 has an arithmetic device such as a CPU and its peripheral circuits.
  • the arithmetic processing unit 330 reads the program 323 from the storage unit 320 and executes it, so that the hardware and the program 323 cooperate to realize various processing units.
  • Main processing units realized by the arithmetic processing unit 330 include, for example, a sample point extracting unit 331, an evaluation value estimating unit 332, a selecting unit 333, a driving unit 334, and the like.
  • the sample point extraction unit 331 extracts sample points corresponding to control inputs to be evaluated based on the sample point information 322 and the like. For example, the sample point extractor 331 extracts sample points and weights corresponding to control input candidates that may be input to the driving device 300 .
  • the sample point extraction unit 331 identifies possible control input candidates based on the state of the robot.
  • the sample point extraction unit 331 uses an arbitrary method, such as identifying control input candidates that may be input according to the content of the control such as the target point and the desired direction of movement input from an external device. Candidate control inputs that may be entered may be identified.
  • the sample point extraction unit 331 also refers to the sample point information 322 and extracts sample points and weights corresponding to the identified control input candidates. For example, the sample point extraction unit 331 can extract sample points and weights corresponding to multiple candidates.
  • the evaluation value estimation unit 332 estimates an evaluation value corresponding to each possible control input candidate.
  • the evaluation value estimating unit 332 determines each of the control inputs based on the state of the driving device 300 such as the position (x, y) and orientation ⁇ , and the sample points and weights extracted by the sample point extracting unit 331. Estimate the evaluation value corresponding to the candidate.
  • the evaluation value estimating unit 332 when evaluating the control input candidate (v m , ⁇ m ), the evaluation value estimating unit 332 approximately evaluates the expression shown in Expression 2 by using the expression shown in Expression 3.
  • x i in Expression 3 indicates the state of the driving device 300 .
  • x m indicates the sample point value
  • p m indicates the weight value.
  • a value from 1 to n is entered in j.
  • m is a value corresponding to the control input candidate to be evaluated.
  • the selection unit 333 selects the control input to be actually input from among the possible control input candidates based on the evaluation result by the evaluation value estimation unit 332 . For example, the selection unit 333 compares the evaluation results corresponding to the control input candidates, and selects the control input candidate corresponding to the most desirable evaluation value as the control input candidate to be actually input.
  • the selection unit 333 compares the evaluation results obtained for each control input candidate for all or some of the control input candidates, and obtains the maximum (minimum when the evaluation function is defined as loss)
  • the selection unit 333 compares the evaluation results obtained by the evaluation value estimation unit 332 with respect to each of the six types of inputs, and selects the control input candidate that gives the maximum evaluation value. Select as The selection unit 333 may be configured to select a more desirable control input candidate as a control input to be actually input, using a method other than the above-exemplified method.
  • the driving section 334 actually drives the driving device 300 based on the selection result of the selecting section 333 .
  • the driving section 334 drives the driving device 300 at the velocity v and the angular velocity ⁇ corresponding to the control input selected by the selecting section 333 for the time corresponding to the control input.
  • the above is an example of the configuration of the drive device 300 .
  • FIG. 15 shows an example of evaluation values corresponding to control inputs selected according to the present disclosure.
  • FIG. 15 shows an example of the correct value and the evaluation value when a value of 0.5 is input as the velocity v and 0 is input as the value of the angular velocity ⁇ .
  • FIG. 15 shows estimated values estimated by the Monte Carlo method when using each Monte Carlo sample number as a comparative example with the present disclosure.
  • the size of the error bar shown in FIG. 15 is the standard deviation.
  • the smaller the number of Monte Carlo samples the greater the variation.
  • the number of samples is 7, which is described as an example in this disclosure, the variation becomes very large.
  • it can be seen that a value close to the correct value can be estimated with high accuracy.
  • FIG. 16 First, an operation example of the computing device 200 will be described with reference to FIGS. 16 and 17.
  • FIG. 16 First, an operation example of the computing device 200 will be described with reference to FIGS. 16 and 17.
  • FIG. 16 is a flowchart showing an operation example of the computing device 200.
  • the simulation executing unit 251 simulates the state of the driving device 300 after driving the driving device 300 for a predetermined time for each control input candidate indicated by the control input candidate information 241 (step S101). .
  • the simulation executing unit 251 executes the simulation a plurality of times until an arbitrary predetermined condition is satisfied for each control input candidate.
  • the simulation execution unit 251 may perform multiple types of simulations in which the drive device 300 is driven for different times.
  • the principal component analysis execution unit 252 performs principal component analysis on control input candidates and the state distribution for each drive time based on the results of the simulation by the simulation execution unit 251. As an example, the variance width becomes the largest.
  • a principal component axis is selected (step S102).
  • the sample point selection unit 253 selects sample points that satisfy a predetermined condition from the state data on the principal component axis (step S103). For example, the sample point selection unit 253 selects a sample point for each state distribution, that is, for each control input candidate or drive time.
  • the weight calculator 254 calculates the weight of the sample point selected by the sample point selector 253 (step S104). For example, the weight calculator 254 calculates the weight corresponding to each sample point according to the state data distribution on the principal component axis.
  • the sample point selection unit 253 stores the selected sample points in the storage unit 240. Also, the weight calculation unit 254 stores the calculated weight in the storage unit 240 (step S105). The process of step S105 may be performed after each process of step S103 and step S104.
  • the computing device 200 determines sample points and weights through the operations described above.
  • Information indicating the sample points and weights determined by the computing device 200 can be output to the driving device 300 or the like at arbitrary timing, for example.
  • FIG. 17 is a flowchart showing another operation example of the computing device 200 .
  • the data conversion unit 255 converts the overall curved state distribution into a straight shape by performing nonlinear conversion using an arbitrary method (step S201).
  • step S201 the processes from step S102 to step S104 are performed.
  • step S104 the inverse transforming unit 256 reversely transforms the overall straight shape into the original curved state distribution by performing the reverse processing of the data transforming unit 255 (step S202).
  • step S203 the inverse transformation unit 256 stores the sample points corresponding to the original curved state distribution in the storage unit 240 by the inverse transformation (step S203).
  • the computing device 200 may be configured to perform both the processing illustrated in FIG. 16 and the processing illustrated in FIG. In that case, the computing device 200 may use any method to determine which of the processing result of FIG. 16 and the processing result of FIG. 17 is to be used.
  • FIG. 18 is a flowchart showing an operation example of the driving device 300.
  • the sample point extraction unit 331 extracts sample points and the like corresponding to the control input to be evaluated based on the sample point information 322 and the like (step S301). For example, the sample point extractor 331 extracts sample points and weights corresponding to control input candidates that may be input to the driving device 300 .
  • the evaluation value estimation unit 332 estimates an evaluation value corresponding to each possible control input candidate based on the sample points and weights extracted by the sample point extraction unit 331 (step S302). For example, the evaluation value estimating unit 332 determines each of the control inputs based on the state of the driving device 300 such as the position (x, y) and orientation ⁇ , and the sample points and weights extracted by the sample point extracting unit 331. Estimate the evaluation value corresponding to the candidate.
  • the selection unit 333 selects the control input to be actually input from the possible control input candidates based on the evaluation result by the evaluation value estimation unit 332 (step S303). Selector 333 may use any method to select the control input corresponding to the most desirable evaluation value.
  • the driving unit 334 actually drives the driving device 300 based on the selection result of the selecting unit 333 (step S304). Accordingly, the driving device 300 operates according to the selection by the selection section 333 .
  • the above is an example of the operation of the driving device 300.
  • the computing device 200 has a simulation executing section 251 , a principal component analysis executing section 252 and a sample point selecting section 253 .
  • the sample point selection unit 253 satisfies a predetermined condition from state data on the principal component axis selected by the principal component analysis execution unit 252 based on the simulation result by the simulation execution unit 251 .
  • a sample point can be selected that is state data.
  • the driving device 300 can estimate the evaluation value based on the sample points selected by the sample point selection section 253 .
  • the driving device 300 can evaluate the control input candidates more accurately, and control accuracy can be improved.
  • the driving device 300 performs estimation using sample points determined by the computing device 200 in advance.
  • control input candidates can be evaluated with higher accuracy and at a higher speed.
  • sample points and weights are determined in advance in the computing device 200, and the determination results in the computing device 200 are stored in advance in the storage device of the drive device 300 or the like.
  • the computing device 200 and the driving device 300 may be configured to be able to communicate while the driving device 300 is being driven.
  • the computing device 200 performs processing such as executing a simulation and selecting sample points while the driving device 300 is being driven, and transmits updated information of the sample point information 322 based on the processing results to the driving device 300.
  • the driving device 300 may be configured to perform evaluation based on the sample point information 322 or the like updated according to the received update information or the like when evaluating a new control input candidate.
  • the configuration of the control system 100 is not limited to the example illustrated in the present disclosure.
  • the driving device 300 may have at least some of the functions that the computing device 200 has.
  • the control system 100 may not have the computing device 200 when the driving device 300 has all the functions of the computing device 200 .
  • FIG. 19 is a diagram showing a hardware configuration example of the computing device 400.
  • FIG. 20 is a block diagram showing a configuration example of the computing device 400.
  • FIG. 21 is a block diagram showing a configuration example of the driving device 500. As shown in FIG.
  • a computing device 400 which is an information processing device that determines values used when evaluating control input candidates based on values of control inputs that can be input to a driving device, explain. Further, the drive device 500 that performs evaluation using the values determined by the calculation device 400 and makes a selection based on the evaluation result will be described.
  • FIG. 19 shows an example hardware configuration of the computing device 400 .
  • the computing device 400 has the following hardware configuration as an example.
  • - CPU Central Processing Unit
  • 401 (arithmetic unit)
  • ROM Read Only Memory
  • RAM Random Access Memory
  • Program group 404 loaded into RAM 403 - Storage device 405 for storing program group 404 -
  • a drive device 406 that reads and writes a recording medium 410 outside the information processing device -
  • a communication interface 407 that connects to a communication network 411 outside the information processing apparatus
  • An input/output interface 408 for inputting/outputting data A bus 409 connecting each component
  • the computing device 400 can realize the functions of the executing unit 421, the analyzing unit 422, and the determining unit 423 shown in FIG.
  • the program group 404 is stored in the storage device 405 or the ROM 402 in advance, for example, and is loaded into the RAM 403 or the like by the CPU 401 as necessary and executed.
  • the program group 404 may be supplied to the CPU 401 via the communication network 411 or stored in the recording medium 410 in advance, and the drive device 406 may read the program and supply it to the CPU 401 .
  • FIG. 19 shows a hardware configuration example of the computing device 400 .
  • the hardware configuration of computing device 400 is not limited to the case described above.
  • the computing device 400 may consist of some of the configurations described above, such as not having the drive device 406 .
  • the execution unit 421 simulates the state of the driving device after the driving device is driven according to the control input based on the value of the control input that can be input to the driving device.
  • the state of the driving device may include information indicating the position and orientation of the driving device.
  • the analysis unit 422 selects a principal component axis by performing principal component analysis on the state distribution of the driving device identified by the execution unit 421 performing multiple simulations.
  • the determination unit 423 determines a value to be used when evaluating control input candidates to be input to the driving device based on the result selected by the analysis unit 422 . For example, the determination unit 423 determines sample points and weights as values used when evaluating control input candidates.
  • the computing device 400 has an execution unit 421 , an analysis unit 422 and a determination unit 423 .
  • the determination unit 423 can determine the value used when evaluating the control input candidate based on the result of selection by the analysis unit 422 using the simulation result by the execution unit 421 .
  • the driving device can perform evaluation using the value determined by the determination unit 423 . This makes it possible to improve control accuracy.
  • the driving device can perform evaluation using, for example, a predetermined value. As a result, evaluation can be performed at a higher speed.
  • the computing device 400 described above can be realized by installing a predetermined program in an information processing device such as the computing device 400 .
  • the program which is another embodiment of the present invention, causes the information processing device such as the computing device 400 to control the driving device based on the value of the control input that can be input to the driving device according to the control input.
  • the state of the driving device after driving is simulated, and the principal component axis is selected by performing principal component analysis on the state distribution of the driving device specified by simulating multiple times, and based on the selection result, It is a program for realizing a process of determining values used when evaluating control input candidates to be input to the driving device.
  • the information processing device such as the computing device 400 determines the control input based on the value of the control input that can be input to the driving device. Accordingly, the state of the driving device after the driving device is driven is simulated, and the principal component axis is selected and selected by performing principal component analysis on the state distribution of the driving device specified by simulating multiple times. Based on the results, a value is determined for use in evaluating candidate control inputs to the drive.
  • the object of the present invention can also be achieved by the driving device 500 having the estimating section 521 and the selecting section 522.
  • the driving device 500 can have the same hardware configuration as the computing device 400 described with reference to FIG.
  • the driving device 500 realizes the functions of the estimating unit 521 and the selecting unit 522 shown in FIG. be able to.
  • the hardware configuration of the driving device 500 is not limited to the case shown in FIG. 19, and various modifications may be adopted.
  • the estimating unit 521 evaluates control input candidates to be input to the driving device, which are determined based on the result of principal component analysis of the results of the simulation using the control input values that can be input to the driving device.
  • An evaluation value corresponding to a control input candidate is estimated based on the value used in the actual operation and the state of the driving device. For example, the values used when evaluating control input candidates are determined in advance by an external device such as computing device 400 .
  • the selection unit 522 selects a control input to be actually input from among a plurality of control input candidates based on the result of estimation by the estimation unit 521 .
  • the selection unit 522 may perform the above selection using any method.
  • the drive unit 523 drives its own device based on the selection result of the selection unit 522 .
  • the driving device 500 has an estimating section 521 , a selecting section 522 and a driving section 523 .
  • the selection unit 522 can select the control input to be actually input from among the plurality of control input candidates based on the estimation result by the estimation unit 521 .
  • the drive unit 523 can drive its own device based on the selection result of the selection unit 522 . As a result, control accuracy can be improved.
  • the driving device 500 described above can be realized by installing a predetermined program in an information processing device such as the driving device 500 .
  • the program which is another aspect of the present invention, is stored in an information processing device such as the driving device 500 to obtain the result of principal component analysis for the simulation result using the control input values that can be input to the driving device. estimating an evaluation value corresponding to the control input candidate based on the value used when evaluating the control input candidate to be input to the driving device and the state of the driving device, and estimating A program for realizing a process of selecting a control input to be actually input from among a plurality of control input candidates based on the result of the above.
  • the driving method executed by the information processing device such as the driving device 500 described above is determined based on the results of principal component analysis of the simulation results using the control input values that can be input to the driving device. , estimates an evaluation value corresponding to the control input candidate based on the value used when evaluating the control input candidate to be input to the driving device and the state of the driving device, and based on the estimation result , to select a control input to be actually input from among a plurality of control input candidates.
  • Appendix 1 an execution unit that simulates a state of the driving device after the driving device is driven according to the control input, based on a control input value that can be input to the driving device; an analysis unit that selects a principal component axis by performing a principal component analysis on the state distribution of the driving device identified by the execution unit performing multiple simulations; a decision unit that decides a value to be used when evaluating candidates for the control input to be input to the driving device based on the result selected by the analysis unit; a computing device.
  • Appendix 2 The computing device according to Appendix 1, The computing device, wherein the determination unit selects a plurality of sample points representing states of the driving device from among states on the principal component axis as values used when evaluating the candidates for the control input.
  • Appendix 3 The computing device according to Appendix 2, The computing device, wherein the determination unit selects the sample points and calculates weights corresponding to the selected sample points according to the distribution of states on the principal component axis.
  • Appendix 4 The computing device according to Appendix 3, The determining unit calculates the sample points and the weights as values used when estimating an evaluation value corresponding to the control input candidate to be input to the driving device.
  • Appendix 5 The computing device according to any one of Appendices 1 to 4, The determining unit determines a value used when approximately evaluating the expression given by Equation 4 as a value used when evaluating the control input candidate to be input to the driving device.
  • Appendix 6 The computing device according to any one of appendices 1 to 5, a data conversion unit that performs a predetermined conversion process on the state distribution of the driving device specified by the execution unit performing a plurality of simulations; The analysis unit selects the principal component axis based on the result of conversion by the data conversion unit.
  • Appendix 7 The computing device according to any one of appendices 1 to 6, A computing device comprising an output unit that outputs the value determined by the determination unit to a driving device.
  • the information processing device simulating the state of the driving device after the driving device is driven in accordance with the control input based on the value of the control input that can be input to the driving device; selecting a principal component axis by performing principal component analysis on the state distribution of the driving device identified by multiple simulations; A determination method for determining a value to be used when evaluating candidates for the control input to be input to the driving device based on the selection result.
  • (Appendix 9) information processing equipment simulating the state of the driving device after the driving device is driven in accordance with the control input based on the value of the control input that can be input to the driving device; selecting a principal component axis by performing principal component analysis on the state distribution of the driving device identified by multiple simulations;
  • a computer-readable recording medium recording a program for realizing a process of determining a value used when evaluating candidates for the control input to be input to the driving device based on the selection result.
  • an estimation unit that estimates an evaluation value corresponding to the control input candidate based on the value and the state of the driving device; a selection unit that selects a control input to be actually input from among the plurality of control input candidates based on a result of estimation by the estimation unit; a drive unit that drives the device based on the selection result of the selection unit; a drive.
  • the driving device a storage unit that stores information that associates information indicating control input candidates with values used when evaluating the control input candidates; an extraction unit that extracts a value corresponding to a control input candidate to be evaluated from information stored in the storage unit; The estimating unit estimates the evaluation value based on the value extracted by the extracting unit and the state of the driving device.
  • (Appendix 12) 12 The driving device according to Appendix 11, In the storage unit, a value determined in advance by a computing device for determining a value used when evaluating control input candidates based on values of control inputs that can be input to the driving device is stored in advance from the computing device. Acquired and stored drives.
  • the drive device according to any one of appendices 10 to 12 The value used when evaluating the candidate control input includes information indicating a sample point indicating the state of the driving device, and information indicating a weight corresponding to the sample point.
  • (Appendix 14) 13 The drive device according to Appendix 13, The estimating unit estimates the evaluation value by solving the following equation (5) using the sample points and the weights.
  • a computer-readable recording medium in which a program for realizing a process driven based on the result of selection is recorded.
  • control system 200 calculation device 210 operation input unit 220 screen display unit 230 communication I/F unit 240 storage unit 241 control input candidate information 242 simulation result information 243 sample point information 244 program 250 arithmetic processing unit 251 simulation execution unit 252 principal component analysis Execution unit 253 Sample point selection unit 254 Weight calculation unit 255 Data conversion unit 256 Inverse conversion unit 257 Output unit 300
  • Driving device 310 Communication I/F unit 320 Storage unit 321 Control input candidate information 322 Sample point information 323 Program 330 Arithmetic processing unit 331 Sample point extraction unit 332 Evaluation value estimation unit 333 Selection unit 334 Driving unit 400
  • Calculation device 401 CPU 402 ROMs 403 RAM 404 program group 405 storage device 406 drive device 407 communication interface 408 input/output interface 409 bus 410 recording medium 411 communication network 421 execution unit 422 analysis unit 423 determination unit 500 drive unit 521 estimation unit 522 selection unit 523 drive unit

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Feedback Control In General (AREA)

Abstract

計算装置400は、駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて前記駆動装置が駆動した後の前記駆動装置の状態をシミュレーションする実行部421と、前記実行部421が複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定する分析部422と、前記分析部422が選定した結果に基づいて、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値を決定する決定部423と、を有する。

Description

計算装置
 本発明は、計算装置、決定方法、駆動装置、駆動方法、記録媒体に関する。
 地面の凹凸や機械的な遊びなど細かな誤差要因により、指示した制御入力通りにロボットなどの駆動装置が動かない場合がある。このような不確実さを加味した制御入力の評価を行う際に、数1で示すような形の積分を評価することが知られている。
 なお、数1のうちxはロボットの位置や向きなどのロボットの状態を示しており、f(x)は状態の良さを評価する関数である。また、p(x)は、状態xをとる確率密度を示している。
 上記を近似的に評価する方法として、例えば、確率微分方程式を繰り返し数値的に解く、つまり、シミュレーションして、得られた軌道について評価値を計算して平均するような、いわゆるモンテカルロ法がある。モンテカルロ法を用いて確率微分方程式を解いている文献としては、例えば、特許文献1のようなものがある。
 また、関連する文献として、例えば、特許文献2がある。特許文献2には、大量のパラメタが存在する場合に主成分分析を用いて入力の次元を削減する旨が開示されている。また、特許文献2には、2つの基準を順番に実行することで少数のサンプリング点を選択して、選択されたサンプリング点においてシミュレーション演算を実行することが開示されている。
特開2001-325431号公報 特表2008-523516号公報
Yu Zhou and G. S. Chirikjian, "Probabilistic models of dead-reckoning error in nonholonomic mobile robots," 2003 IEEE International Conference on Robotics and Automation, 2003, pp. 1594-1599. Andrew W. Long, Kevin C. Wolfe, Michael J. Mashner, and Gregory S. Chirikjian, "The Banana Distribution Is Gaussian: A Localization Study with Exponential Coordinates," in Robotics: Science and Systems VIII , MIT Press, 2013, pp.265-272.
 特許文献1に記載のようなモンテカルロ法を用いた場合、サンプル数が少ない場合などに評価関数の計算に見落としが発生して、推定された評価関数値が安定せず制御が不安定になるおそれがある。特に、上述したようなロボットの制御においては、例えば1/30秒程度である制御周期の中で十分な回数シミュレーションを行うことが必要になり、上記問題は顕著になる。その結果、制御精度を向上させることが難しい、という課題が生じている。なお、このような短い制御周期の中で制御精度を向上させることは、例えば、特許文献2に記載の技術でも難しい。
 そこで、本発明の目的は、上述した課題を解決することが可能な計算装置、決定方法、駆動装置、駆動方法、記録媒体を提供することにある。
 かかる目的を達成するため本開示の一形態である計算装置は、
 駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて前記駆動装置が駆動した後の前記駆動装置の状態をシミュレーションする実行部と、
 前記実行部が複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定する分析部と、
 前記分析部が選定した結果に基づいて、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値を決定する決定部と、
 を有する
 という構成をとる。
 また、本開示の他の形態である決定方法は、
 情報処理装置が、
 駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて前記駆動装置が駆動した後の前記駆動装置の状態をシミュレーションし、
 複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定し、
 選定した結果に基づいて、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値を決定する
 という構成をとる。
 また、本開示の他の形態である記録媒体は、
 情報処理装置に、
 駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて前記駆動装置が駆動した後の前記駆動装置の状態をシミュレーションし、
 複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定し、
 選定した結果に基づいて、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値を決定する
 処理を実現するためのプログラムを記録した、コンピュータが読み取り可能な記録媒体である。
 また、本開示の他の形態である駆動装置は、
 駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値と、前記駆動装置の状態と、に基づいて、前記制御入力の候補に応じた評価値を推定する推定部と、
 前記推定部による推定の結果に基づいて、複数の前記制御入力の候補の中から実際に入力する制御入力を選択する選択部と、
 前記選択部の選択結果に基づいて自装置を駆動させる駆動部と、
 を有する
 という構成をとる。
 また、本開示の他の形態である駆動方法は、
 駆動装置が、
 駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値と、前記駆動装置の状態と、に基づいて、前記制御入力の候補に応じた評価値を推定し、
 推定の結果に基づいて、複数の前記制御入力の候補の中から実際に入力する制御入力を選択し、
 選択の結果に基づいて駆動する
 という構成をとる。
 また、本開示の他の形態である記録媒体は、
 駆動装置に、
 駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値と、前記駆動装置の状態と、に基づいて、前記制御入力の候補に応じた評価値を推定し、
 推定の結果に基づいて、複数の前記制御入力の候補の中から実際に入力する制御入力を選択し、
 選択の結果に基づいて駆動する
 処理を実現するためのプログラムを記録した、コンピュータが読み取り可能な記録媒体である。
 上述したような各構成によると、精度制御を向上させることが可能な計算装置、決定方法、駆動装置、駆動方法、記録媒体を提供することができる。
本発明の第1の実施形態における制御システムの構成例を示す図である。 駆動装置の挙動の一例を示す図である。 計算装置の構成例を示すブロック図である。 制御入力候補情報の一例を示す図である。 シミュレーション結果情報の一例を示す図である。 サンプル点情報の一例を示す図である。 主成分分析実行部の処理例を説明するための図である。 サンプル点選択部の処理例を説明するための図である。 サンプル点選択部の処理例を説明するための図である。 重み算出部の処理例を説明するための図である。 重み算出部の処理例を説明するための図である。 シミュレーション結果の一例を示す図である。 データ変換部と逆変換部の処理例を説明するための図である。 駆動装置の構成例を示すブロック図である。 評価例を示す図である。 計算装置の動作例を示すフローチャートである。 計算装置の他の動作例を示すフローチャートである。 駆動装置の動作例を示すフローチャートである。 本開示の第2の実施形態における計算装置のハードウェア構成例を示す図である。 計算装置の構成例を示すブロック図である。 駆動装置の構成例を示すブロック図である。
[第1の実施形態]
 本開示の第1の実施形態について、図1から図18までを参照して説明する。図1は、制御システム100の構成例を示す図である。図2は、駆動装置300の挙動の一例を示す図である。図3は、計算装置200の構成例を示すブロック図である。図4は、制御入力候補情報241の一例を示す図である。図5は、シミュレーション結果情報242の一例を示す図である。図6は、サンプル点情報243の一例を示す図である。図7は、主成分分析実行部252の処理例を説明するための図である。図8、図9は、サンプル点選択部253の処理例を説明するための図である。図10、図11は、重み算出部254の処理例を説明するための図である。図12は、シミュレーション結果の一例を示す図である。図13は、データ変換部255と逆変換部256の処理例を説明するための図である。図14は、駆動装置300の構成例を示すブロック図である。図15は、評価例を示す図である。図16、図17は、計算装置200の動作例を示すフローチャートである。図18は、駆動装置300の動作例を示すフローチャートである。
 本開示の第1の実施形態においては、図1で示すように、計算装置200と駆動装置300とを有する制御システム100について説明する。本実施形態の場合、後述するように、計算装置200は、制御入力の候補それぞれについて予め十分な数のシミュレーションを行ったうえで主成分分析を行って、もっとも寄与率の大きい軸上でサンプル点と重みを決定する。また、駆動装置300は、駆動制御を実行する際、計算装置200が決定したサンプル点と重みを用いて評価関数値を評価して、評価結果に基づく駆動制御を行う。
 なお、本実施形態においては、一例として、計算装置200においてサンプル点や重みの決定を事前に行っておき、計算装置200における決定の結果を駆動装置300が有する記憶装置などに予め格納しておく場合について説明する。しかしながら、後述するように、計算装置200と駆動装置300とは、駆動装置300の駆動中も通信可能なよう構成してもよい。換言すると、計算装置200による決定の結果が駆動装置300の駆動中などにおいても反映されるように、駆動装置300の駆動中などにおいて計算装置200と駆動装置300とが通信を行うよう構成してもよい。
 また、本実施形態においては、図2で示すように、駆動装置300は、当該駆動装置300が向いている方向のみに移動可能な、平面上を移動する二輪移動ロボットであるものとする。図2では、駆動装置300が向いている方向である丸印の方向に移動可能である一方で、横向きなど駆動装置300が向いている方向とは異なるバツ印の方向には駆動装置300が移動できないことを示している。例えば、駆動装置300には、速度vと角速度ωを入力することができる。換言すると、本実施形態における制御入力には、速度vや角速度ωを示す値が含まれる。制御入力には、駆動させる時間を示す情報などが含まれてもよい。また、駆動装置300の状態は、位置(x、y)と駆動装置300が向いている向きθで定まる。一例として、駆動装置300は、非特許文献1に記載されているような運動モデルで駆動する。
 ただし、本発明は、上述したような二輪移動ロボットに限らず適用可能である。例えば、駆動装置300は、横方向など向いている方向以外にも移動可能なよう構成されていてもよいし、3次元方向に移動可能であってもよい。また、駆動装置300は、ロボットアームなどのその他任意のロボットであってもよい。駆動装置300が上述したような二輪移動ロボット以外である場合、駆動装置300に対する制御入力の内容や駆動装置300の状態は、本発明を適用するロボットの移動方法などに応じて定まるものであってよい。例えば、駆動装置300に対して、角速度の代わりにまたは角速度とともに、x軸方向速度、y軸方向速度、回転トルクなどの制御入力を入力可能なよう構成してもよいし、駆動装置300の状態を示す位置にx座標やy座標の他にz座標なども含まれてもよい。
 制御システム100は、駆動装置300の駆動を制御するシステムである。図1で示すように、制御システム100には、例えば、計算装置200と駆動装置300とが含まれている。
 図1を参照すると、計算装置200と駆動装置300とは、例えば、ネットワークなどを介して、互いに通信可能なよう接続することができる。計算装置200と駆動装置300とは、有線により互いに通信可能なよう接続されてもよいし、無線により互いに通信可能なよう接続されてもよい。
 計算装置200は、駆動装置300に対して入力する制御入力の候補を評価する際に用いる値を決定する情報処理装置である。例えば、計算装置200は、制御入力の候補を評価する際に用いる数2で示す式を評価するために用いる値として、複数のシミュレーション結果に基づいて選択されるサンプル点と重みを決定する。
 なお、数2のうちxはロボットの位置や向きなどのロボットの状態を示しており、f(x)は状態の良さを評価する関数である。また、p(x)は、状態xをとる確率密度を示している。
 図3は、計算装置200の構成例を示している。図3を参照すると、計算装置200は、主な構成要素として、例えば、操作入力部210と、画面表示部220と、通信I/F(interface)部230と、記憶部240と、演算処理部250と、を有している。
 なお、図3では、1台の情報処理装置を用いて計算装置200としての機能を実現する場合について例示している。しかしながら、計算装置200は、例えば、クラウド上に実現されるなど、複数台の情報処理装置を用いて実現されてもよい。また、計算装置200は、操作入力部や画面表示部を有さないなど上記例示した構成の一部を含まなくてもよいし、上記例示した以外の構成を有してもよい。
 操作入力部210は、キーボード、マウスなどの操作入力装置からなる。操作入力部210は、計算装置200を操作する操作者の操作を検出して演算処理部250に出力する。
 画面表示部220は、LCD(Liquid Crystal Display、液晶ディスプレイ)などの画面表示装置からなる。画面表示部220は、演算処理部250からの指示に応じて、記憶部240に格納されている各種情報などを画面表示することができる。
 通信I/F部230は、データ通信回路などからなる。通信I/F部230は、通信回線を介して接続された駆動装置300などの外部装置との間でデータ通信を行う。
 記憶部240は、ハードディスクやメモリなどの記憶装置である。記憶部240は、演算処理部250における各種処理に必要な処理情報やプログラム244を記憶する。プログラム244は、演算処理部250に読み込まれて実行されることにより各種処理部を実現する。プログラム244は、通信I/F部230などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部240に保存されている。記憶部240で記憶される主な情報としては、例えば、制御入力候補情報241、シミュレーション結果情報242、サンプル点情報243などがある。
 制御入力候補情報241は、駆動装置300に入力する可能性のある制御入力の候補を示している。例えば、制御入力候補情報241には、駆動装置300の状態が基準点(例えば、x=0、y=0、θ=0)である場合において、駆動装置300に入力する可能性のある制御入力の候補すべてが含まれる。制御入力候補情報241には、入力する可能性のあるすべての制御入力の候補のうち任意の方法で抽出した一部の制御入力の候補のみが含まれてもよい。例えば、制御入力候補情報241は、通信I/F部230を介して外部装置から取得する、操作入力部210を用いて入力する、などの方法を用いて予め取得されており、記憶部240に格納されている。
 図4は、制御入力候補情報241の一例を示している。図4を参照すると、制御入力候補情報241には、駆動装置300に入力する可能性のある制御入力の候補である速度vと角速度ωの組み合わせが複数含まれている。例えば、図4の場合、(v、ω)、…、(v、ω)というm個の速度vと角速度ωの組み合わせが含まれている。なお、mは任意の値であってよい。
 シミュレーション結果情報242は、後述するシミュレーション実行部251が駆動装置300の駆動結果をシミュレーションした結果を示している。例えば、シミュレーション結果情報242は、制御入力候補情報241が示す制御入力の候補を入力した場合における、駆動後の駆動装置300の状態を示すシミュレーション結果を制御入力の候補ごとに示している。また、シミュレーション結果情報242には、例えば、1秒後と2秒後と3秒後など、駆動装置300を駆動させた時間が異なる複数のシミュレーション結果を示す情報が含まれる。シミュレーション結果情報242には、0.5秒後など任意の時間の間、駆動装置300を駆動させた場合のシミュレーション結果を示す情報のみが含まれてもよい。例えば、シミュレーション結果情報242は、シミュレーション実行部251がシミュレーションを実行することなどに応じて更新される。
 後述するように、シミュレーション実行部251は、制御入力候補情報241が示す制御入力の候補ごとに、複数回シミュレーションを実行する。例えば、シミュレーション実行部251は、予め定められた任意の条件を満たすまで、複数回シミュレーションを実行する。また、本実施形態の場合、シミュレーション実行部251は、不確かさのある系でシミュレーションを実行する。そのため、シミュレーションを複数回行うと、その度に得られる解軌道が確率的に変動する。その結果、シミュレーション結果情報242には、シミュレーションの結果として特定される、駆動後の駆動装置300の位置(x、y)や向きθなどを示す駆動装置300の状態を示す情報が複数含まれる。例えば、図5は、ある制御入力の候補についてシミュレーション実行部251が複数回シミュレーションすることで特定される、駆動装置300が1秒間駆動した後の状態分布例を示している。図5で例示する場合、丸印の一つ一つが駆動装置300の駆動後の状態を示す。つまり、図5ではθの図示が省略されているものの、丸印の一つ一つが駆動後の駆動装置300の位置(x、y)や向きθを示す情報に対応する。シミュレーション結果情報242には、例えば、図5で示す丸印の一つ一つに対応する駆動装置300の状態を示す情報が含まれる。
 なお、上述したように、シミュレーション結果情報242には、制御入力の候補ごとに、駆動装置300の状態を示す情報が含まれる。また、シミュレーション結果情報242には、駆動装置300を駆動させた時間が異なる複数のシミュレーション結果を示す情報が含まれてよい。換言すると、シミュレーション結果情報242には、制御入力の候補や駆動装置300が駆動した時間に応じた、それぞれの状態分布に対応する駆動装置300の状態を示す情報が含まれてよい。
 サンプル点情報243は、後述するサンプル点選択部253がシミュレーション結果情報242に基づいて選択するサンプル点を示す情報を含んでいる。ここで、サンプル点は、シミュレーション実行部251がシミュレーションの結果として特定する駆動装置300の状態1つに対応している。換言すると、本実施形態の場合、サンプル点は、位置(x、y)と駆動装置300が向いている向きθを示す情報を含んでいる。また、サンプル点情報243には、後述する重み算出部254が算出するサンプル点の重みを示す情報が含まれる。例えば、サンプル点情報243は、サンプル点選択部253がサンプル点を選択すること、重み算出部254がサンプル点に対応する重みを算出すること、逆変換部256が逆変換を行うこと、などに応じて更新される。
 図6は、サンプル点情報243に含まれる情報の一例を示している。図6を参照すると、サンプル点情報243には、制御入力の候補ごとの、サンプル点や重みを示す情報が含まれている。換言すると、サンプル点情報243では、制御入力の候補を示す情報と、制御入力の候補を評価する際に用いる値であるサンプル点や重みを示す情報と、が関連付けられている。例えば、図6を参照すると、サンプル点情報243には、制御入力の候補が(v、ω)の場合において、n個のサンプル点と各サンプル点に対応する重みとを示す情報が含まれている。同様に、サンプル点情報243には、制御入力の候補(v、ω)まで各候補に対応する、サンプル点と重みを示す情報が含まれている。なお、図6中のnは、サンプル点の数に応じた値となる。nは任意の値であってよい。
 なお、上述したように、シミュレーション結果情報242には、駆動装置300が駆動した時間に応じた、それぞれの状態分布に対応する駆動装置300の状態を示す情報が含まれうる。サンプル点情報243も、シミュレーション結果情報242の場合と同様に、シミュレーション時に駆動装置300を駆動させた時間ごとに、制御入力の各候補に対応するサンプル点や重みを示す情報が含まれてよい。
 演算処理部250は、CPU(Central Processing Unit)などの演算装置とその周辺回路を有する。演算処理部250は、記憶部240からプログラム244を読み込んで実行することにより、上記ハードウェアとプログラム244とを協働させて各種処理部を実現する。演算処理部250で実現される主な処理部としては、例えば、シミュレーション実行部251、主成分分析実行部252、サンプル点選択部253、重み算出部254、データ変換部255、逆変換部256、出力部257などがある。なお、後述するように、サンプル点選択部253と重み算出部254とは、制御入力の候補を評価する際に用いる値であるサンプル点と重みを決定する処理を行う。そのため、サンプル点選択部253と重み算出部254とにより上記値を決定する決定部が構成されている、ということもできる。
 シミュレーション実行部251は、制御入力候補情報241が示す制御入力の候補ごとに、駆動装置300を所定の時間駆動させた後の駆動装置300の状態をシミュレーションする。例えば、シミュレーション実行部251は、制御入力の候補ごとに、予め定められた任意の条件を満たすまで複数回のシミュレーションを実行する。シミュレーション実行部251は、駆動装置300を駆動させた時間が異なる複数種類のシミュレーションを行ってもよい。本実施形態の場合、シミュレーション実行部251は、不確かさのある系でシミュレーションを実行する。そのため、シミュレーションを複数回行うと、その度に得られる解軌道が確率的に変動する。また、シミュレーション実行部251は、シミュレーションの結果として特定される駆動装置300の状態を示す情報を、シミュレーション結果情報242として記憶部240に格納する。
 例えば、シミュレーション実行部251は、非特許文献1中の式16で示すような運動モデルを用いた場合における、駆動装置300の状態をシミュレーションする。図5で示すように、シミュレーション実行部251は、制御入力の各候補において、複数のシミュレーションを実行することで、駆動後の駆動装置300の状態を複数特定する。なお、非特許文献1中の式16のうち、rω(t)は、上述した速度vに対応する。また、lは車輪間距離を示している。
 また、非特許文献1中の式16では、Dの部分がばらつきの尺度を表している。ここで、ばらつきの尺度は、例えば、任意の方法で定められてよい。例えば、ばらつきの尺度は、事前に予め定められていてもよいし、駆動装置300を実際に駆動させる現場の環境などに応じて定められてもよい。
 なお、シミュレーション実行部251がシミュレーションを行う際に用いる運動モデルは、上記例示した場合に限定されない。シミュレーション実行部251は、上記例示した以外の既知の運動モデルを用いてシミュレーションを行うよう構成してよい。また、本実施形態においては駆動装置300が二輪移動ロボットである場合について例示するが、上述したように、駆動装置300は二輪移動ロボット以外であってもよい。駆動装置300が二輪移動ロボット以外である場合、シミュレーション実行部251がシミュレーションを行う際に用いる運動モデルも、駆動装置300の種類などに応じたものであってよい。
 主成分分析実行部252(分析部)は、シミュレーション結果情報242が示す、制御入力の候補や駆動時間ごとの状態分布に対して主成分分析を行うことで、最も分散幅の大きくなる主成分軸を選定する。例えば、主成分分析実行部252は、上記状態分布における状態(状態データ)のばらつきが最大となるように、状態分布ごとに主成分軸を引く処理を実行する。
 図7は、主成分分析実行部252の処理を説明するための図である。図7で示すように、主成分分析実行部252は、主成分分析を行うことで、状態分布の中において一例として最も分散幅の大きくなる直線状の主成分軸を選定する。
 なお、本実施形態において、主成分分析実行部252は、一例として、分散幅が広い軸、つまり、第1主成分軸を選定する。しかしながら、例えば、状態分布の形状など状態分布の状況に応じて、主成分分析実行部252は、第1主成分軸のほかに、分散幅が2番目に大きな第2主成分軸を選定してもよい。同様に、主成分分析実行部252は、任意の条件などに応じて、第3主成分軸、第4主成分軸、…、と複数の軸を選定するよう構成してもよい。
 また、一例として、駆動装置300が3次元空間を自在に移動できるロボットとする場合、駆動装置300の状態には、位置だけで3次元、向きも3次元(ロール・ピッチ・ヨー)で6次元の情報を含むことになる。このような場合に第1主成分軸のみ選定して1次元に落とすと、情報の欠落が多数生じるおそれがある。そこで、主成分分析実行部252は、駆動装置300の種類などに応じて、複数の軸を選定するよう構成してもよい。例えば、以上のように、主成分分析実行部252は、状態分布の状況や駆動装置300の種類などの条件に応じて、選定する軸の数を選択するよう構成してもよい。
 サンプル点選択部253は、主成分軸上の状態データの中から所定の条件を満たすサンプル点を選択する。例えば、サンプル点選択部253は、状態分布ごと、つまり、制御入力の候補や駆動時間ごとに、サンプル点を選択する。また、サンプル点選択部253は、選択したサンプル点に対応する駆動装置300の状態を示す情報をサンプル点情報243として記憶部240に格納する。
 例えば、サンプル点選択部253は、主成分軸に向けて状態データを射影する。そして、サンプル点選択部253は、軸方向に射影された状態データの標準偏差をσとした際の、-kσから+kσまでに相当する点をサンプル点として選択する。例えば、図8は、kが3である場合におけるサンプル点選択部253による選択処理の一例を示している。図8を参照すると、例えば、サンプル点選択部253は、主成分軸上の状態データに応じた点のうち、-3σ、-2σ、-σ、0、σ、2σ、3σそれぞれに対応する状態データの点をサンプル点として選択する。なお、kの値は任意であってよい。
 例えば、以上のように、主成分分析実行部252とサンプル点選択部253とにより、図9で示すように、状態分布の中から主成分分析軸上のサンプル点を選択する。つまり、主成分分析実行部252とサンプル点選択部253とは、状態分布に含まれる複数の状態データの点の中から最も状態分布の状況を示す主成分分析軸上において所定の条件を満たす点をサンプル点として選択する。
 なお、上述したように、主成分分析実行部252が複数の軸を選定する場合がある。このような場合、サンプル点選択部253は、複数の軸上のデータ点からサンプル点を選択するよう構成してもよいし、例えば、第1主成分軸と第2主成分軸(または、それ以上)のそれぞれの方向ベクトルによって張られる部分空間からサンプル点を選択するよう構成してもよい。サンプル点選択部253がどのような手段でサンプル点を選択するかは、任意の方法により定められてよい。
 重み算出部254は、サンプル点選択部253が選択したサンプル点に対応する重みを算出する。例えば、重みは、主成分軸上における状態データの分布状況に応じた値を示す。また、重み算出部254は、算出した重みを示す情報をサンプル点情報243として記憶部240に格納する。
 例えば、重み算出部254は、サンプル点選択部253により軸方向に射影された状態データ点の分布が正規分布であると仮定して、状態データの分布を図10で示す範囲で積分することで、サンプル点に対応する重みを算出する。つまり、重み算出部254は、サンプル点選択部253により軸方向に射影された状態データ点の分布に基づいて、サンプル点ごとにサンプル点に対応する範囲で積分することで、各サンプル点に対応する重みを算出する。なお、図10は、kが3である場合について例示している。kが3以外である場合、積分する範囲もkの値に応じたものであってよい。
 また、重み算出部254は、状態データ点の数に基づいて重みを算出してもよい。例えば、図11で示すように、重み算出部254は、サンプル点選択部253により軸方向に射影された状態データ点の分布に基づいて、各サンプル点の中点で区切った区間内に入る状態データ点の数(つまり、状態の数)を数える。そして、重み算出部254は、数えた状態データ点の数を重みとして算出する。
 例えば、重み算出部254は、上記例示した方法のいずれかを用いて、サンプル点選択部253が選択した各サンプル点に対応する重みを算出する。重み算出部254は、上記例示した以外の方法を用いて状態の分布に応じた重みを算出してもよい。
 例えば以上説明したような方法により、計算装置200はサンプル点と重みを決定する。なお、上述したような方法によると、サンプル点は直線状の主成分軸上に置かれる。そのため、図12で示すような曲がった状態分布となっている場合、上述したような方法は適さない場合がある。
 そこで、計算装置200は、図13で示すように、データ変換部255を用いることで状態分布をまっすぐなデータ分布に変換して、変換した状態で主成分分析実行部252とサンプル点選択部253とにより主成分分析軸上のサンプル点を選択することができる。一例として、非特許文献2には、2次元平面上のロボットについての座標変換方法が記載されている。例えば、データ変換部255は、非特許文献2に記載されているような方法で非線形変換を行うことで、全体として曲がった形状の状態分布をまっすぐな形状に変換してよい。また、サンプル点を選択した後、逆変換部256は、変換部255の逆の処理を行うことなどにより、全体としてまっすぐな形状を元の曲がった状態分布に逆変換する。これにより、計算装置200は、曲がった状態分布に対応した適切な形でサンプル点を選択することができる。なお、データ変換部255は、上記例示した以外の既知の方法を用いて、サンプル点の選択に適さない形状の状態分布を主成分分析実行部252とサンプル点選択部253とによるサンプル点の選択に適した形状に変換するよう構成してもよい。
 なお、データ変換部255と逆変換部256とによる処理を行うか否かは、任意の方法で決定してよい。例えば、計算装置200は、データ変換部255と逆変換部256とによる処理を行わない場合と行う場合の両方でサンプル点を選択して、より適切な数を選択できたサンプル点を選択するなどより適切であると評価可能な選択結果を採用するよう構成してもよい。例えば、計算装置200は、データ変換部255と逆変換部256とによる処理を行わない場合で予め定められた数のサンプル点を抽出できなかった場合などにデータ変換部255と逆変換部256とによる処理を行うよう構成してもよい。計算装置200は、状態分布の様子が所定の条件を満たす、または、満たさない場合に、データ変換部255と逆変換部256とによる処理を行うよう構成してもよい。計算装置200は、上記例示した以外の条件に基づいて、データ変換部255と逆変換部256とによる処理を行うか否か判断するよう構成してもよい。
 出力部257は、サンプル点情報243などを出力する。例えば、出力部257は、サンプル点情報243などの記憶部240に格納された情報を画面表示部220上に表示させたり、通信I/F部230を介して駆動装置300などの外部装置に対して送信したりする。
 駆動装置300は、計算装置200が決定したサンプル点や重みなどを用いて制御入力の候補を評価して、評価した結果に応じて駆動するロボットである。上述したように、本実施形態において、駆動装置300は、当該駆動装置300が向いている方向のみに移動可能な、平面上を移動する二輪移動ロボットである。駆動装置300は、例示した以外であってもよい。
 図14は、駆動装置300の構成例を示している。図14を参照すると、駆動装置300は、主な構成要素として、例えば、通信I/F部310と、記憶部320と、演算処理部330と、を有している。
 通信I/F部310は、データ通信回路などからなる。通信I/F部310は、通信回線を介して接続された計算装置200などの外部装置との間でデータ通信を行う。
 記憶部320は、ハードディスクやメモリなどの記憶装置である。記憶部320は、演算処理部330における各種処理に必要な処理情報やプログラム323を記憶する。プログラム323は、演算処理部330に読み込まれて実行されることにより各種処理部を実現する。プログラム323は、通信I/F部310などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部320に保存されている。記憶部320で記憶される主な情報としては、例えば、制御入力候補情報321、サンプル点情報322などがある。
 制御入力候補情報321は、駆動装置300に入力する可能性のある制御入力の候補を示している。制御入力候補情報321には、計算装置200に記憶された制御入力候補情報に含まれる制御入力の候補のうち少なくとも一部が含まれる。例えば、制御入力候補情報321は、通信I/F部310を介して計算装置200などの外部装置から予め取得されており、記憶部320に格納されている。
 サンプル点情報322は、計算装置200が有するサンプル点情報243と同様に、上述したサンプル点選択部253がシミュレーション結果情報242に基づいて選択するサンプル点を示す情報を含んでいる。例えば、サンプル点情報322では、制御入力の候補を示す情報と、制御入力の候補を評価する際に用いる値であるサンプル点や重みを示す情報と、が関連付けられている。サンプル点情報322には、計算装置200に記憶されたサンプル点情報243に含まれるサンプル点や重みのうち少なくとも一部が含まれる。例えば、サンプル点情報322は、通信I/F部310を介して計算装置200などの外部装置から予め取得されており、記憶部320に格納されている。
 演算処理部330は、CPUなどの演算装置とその周辺回路を有する。演算処理部330は、記憶部320からプログラム323を読み込んで実行することにより、上記ハードウェアとプログラム323とを協働させて各種処理部を実現する。演算処理部330で実現される主な処理部としては、例えば、サンプル点抽出部331、評価値推定部332、選択部333、駆動部334などがある。
 サンプル点抽出部331は、サンプル点情報322などに基づいて、評価対象となる制御入力に応じたサンプル点などを抽出する。例えば、サンプル点抽出部331は、駆動装置300に入力する可能性のある制御入力の候補に応じた、サンプル点や重みを抽出する。
 例えば、サンプル点抽出部331は、ロボットの状態などに基づいて入力する可能性のある制御入力の候補を特定する。サンプル点抽出部331は、外部装置などから入力された目標地点や移動させたい方向などの制御の内容に応じて入力する可能性のある制御入力の候補を特定するなど、任意の方法を用いて入力する可能性のある制御入力の候補を特定してよい。また、サンプル点抽出部331は、サンプル点情報322を参照して、特定した制御入力の候補に対応する、サンプル点と重みを抽出する。例えば、サンプル点抽出部331は、複数の候補に対応するサンプル点と重みを抽出することができる。
 評価値推定部332は、サンプル点抽出部331が抽出したサンプル点や重みに基づいて、入力する可能性のある制御入力の各候補に対応する評価値を推定する。
 例えば、評価値推定部332は、駆動装置300の位置(x、y)や向きθなどの状態と、サンプル点抽出部331が抽出したサンプル点や重みなどと、に基づいて、制御入力の各候補に対応する評価値を推定する。一例として、制御入力の候補(v、ω)を評価する際、評価値推定部332は、数3で示す式を用いることで、数2で示す式を近似的に評価する。
 なお、数3中のxは駆動装置300の状態を示している。また、xmがサンプル点の値を示しており、pmが重みの値を示している。jには、1からnまでの値が入る。なお、mは評価対象となる制御入力の候補に応じた値になる。
 選択部333は、評価値推定部332による評価結果に基づいて、入力する可能性のある制御入力の候補のうち実際に入力する制御入力を選択する。例えば、選択部333は、制御入力の各候補に対応する評価結果を比較して、最も望ましい評価値に対応する制御入力の候補を実際に入力する制御入力の候補として選択する。
 例えば、選択部333は、制御入力の候補全部または一部について、制御入力の各候補に対して得られた評価結果を比較して、最大(評価関数を損失として定義した場合には最小)の評価値を与える制御入力の候補を実際に入力する制御入力として選択する。例えば、速度として低速(0.1)もしくは高速(1.0)の2パターン、角速度として左旋回(0.3)、直進(0)、右旋回(-0.3)の3パターンが制御入力の候補であった場合、すべての速度と角速度の組み合わせは2×3で6通りある。そこで、選択部333は、上記6通りの入力それぞれに対して評価値推定部332により得られた評価結果を比較して、最大の評価値を与えた制御入力の候補を実際に入力する制御入力として選択する。選択部333は、上記例示した以外の方法を用いて、より望ましい制御入力の候補を実際に入力する制御入力として選択するよう構成してもよい。
 駆動部334は、選択部333による選択の結果に基づいて、駆動装置300を実際に駆動させる。換言すると、駆動部334は、選択部333が選択した制御入力に応じた速度v、角速度ωで、制御入力に対応する時間の間、駆動装置300を駆動させる。
 以上が、駆動装置300の構成例である。
 ここで、図15は、本開示により選択される制御入力に対応する評価値の一例を示している。具体的に、図15では、速度vとして0.5の値を入力するとともに角速度ωの値として0を入力した場合における正解値と評価値との一例を示している。また、図15では、本開示との間の比較例として、各モンテカルロサンプル数を用いた場合におけるモンテカルロ法で推定される推定値を示している。モンテカルロ法を用いた場合、図15で示すエラーバーの大きさを標準偏差とする程度にばらけることになる。図15で示すように、バラツキの大きさはモンテカルロサンプル数が少ないほど大きくなり、特に本開示で一例として説明したサンプル数が7となる場合、バラツキが非常に大きくなることが分かる。一方、本開示で説明した方法によると、精度よく正解値に近い値を推定できていることが分かる。
 続いて、図16から図18までを参照して、計算装置200と駆動装置300の動作例について説明する。まず、図16、図17を参照して、計算装置200の動作例について説明する。
 図16は、計算装置200の動作例を示すフローチャートである。図16を参照すると、シミュレーション実行部251は、制御入力候補情報241が示す制御入力の候補ごとに、駆動装置300を所定の時間駆動させた後の駆動装置300の状態をシミュレーションする(ステップS101)。例えば、シミュレーション実行部251は、制御入力の候補ごとに、予め定められた任意の条件を満たすまで複数回のシミュレーションを実行する。シミュレーション実行部251は、駆動装置300を駆動させた時間が異なる複数種類のシミュレーションを行ってもよい。
 主成分分析実行部252は、シミュレーション実行部251によるシミュレーションの結果に基づいて、制御入力の候補や駆動時間ごとの状態分布に対して主成分分析を行うことで、一例として最も分散幅の大きくなる主成分軸を選定する(ステップS102)。
 サンプル点選択部253は、主成分軸上の状態データの中から所定の条件を満たすサンプル点を選択する(ステップS103)。例えば、サンプル点選択部253は、状態分布ごと、つまり、制御入力の候補や駆動時間ごとに、サンプル点を選択する。
 重み算出部254は、サンプル点選択部253が選択したサンプル点の重みを算出する(ステップS104)。例えば、重み算出部254は、主成分軸上における状態データの分布状況に応じて、各サンプル点に対応する重みを算出する。
 サンプル点選択部253は、選択したサンプル点を記憶部240に格納する。また、重み算出部254は、算出した重みを記憶部240に格納する(ステップS105)。ステップS105の処理は、ステップS103、ステップS104それぞれの処理の後に行われてよい。
 例えば、以上のような動作により、計算装置200はサンプル点と重みを決定する。計算装置200が決定したサンプル点と重みを示す情報は、例えば、任意のタイミングで駆動装置300などに対して出力することができる。
 また、図17は、計算装置200の他の動作例を示すフローチャートである。図17を参照すると、データ変換部255は、ステップS101の処理の後、任意の方法で非線形変換を行うことで、全体として曲がった形状の状態分布をまっすぐな形状に変換する(ステップS201)。
 ステップS201の処理の後、ステップS102からステップS104までの処理が行われる。ステップS104の処理の後、逆変換部256は、データ変換部255の逆の処理を行うことで、全体としてまっすぐな形状を元の曲がった状態分布に逆変換する(ステップS202)。その後、逆変換部256は、逆変換により元の曲がった状態分布に対応したサンプル点を記憶部240に格納する(ステップS203)。
 なお、上述したように、計算装置200は図16で例示した処理と図17で例示した処理のいずれを実行するかは、任意の方法で選択されてよい。計算装置200は、図16で例示した処理と図17で例示した処理の両方を行うよう構成してもよい。その場合、計算装置200は、図16の処理結果と図17の処理結果のいずれを採用するか、任意の方法で決定してよい。
 次に、図18を参照して駆動装置300の動作例について説明する。図18は、駆動装置300の動作例を示すフローチャートである。図18を参照すると、サンプル点抽出部331は、サンプル点情報322などに基づいて、評価対象となる制御入力に応じたサンプル点などを抽出する(ステップS301)。例えば、サンプル点抽出部331は、駆動装置300に入力する可能性のある制御入力の候補に応じた、サンプル点や重みを抽出する。
 評価値推定部332は、サンプル点抽出部331が抽出したサンプル点や重みに基づいて、入力する可能性のある制御入力の各候補に対応する評価値を推定する(ステップS302)。例えば、評価値推定部332は、駆動装置300の位置(x、y)や向きθなどの状態と、サンプル点抽出部331が抽出したサンプル点や重みなどと、に基づいて、制御入力の各候補に対応する評価値を推定する。
 選択部333は、評価値推定部332による評価結果に基づいて、入力する可能性のある制御入力の候補のうち実際に入力する制御入力を選択する(ステップS303)。選択部333は、任意の方法を用いて、最も望ましい評価値に対応する制御入力を選択してよい。
 駆動部334は、選択部333による選択の結果に基づいて、駆動装置300を実際に駆動させる(ステップS304)。これにより、駆動装置300は、選択部333による選択に応じて動作することになる。
 以上が、駆動装置300の動作例である。
 このように、計算装置200は、シミュレーション実行部251と主成分分析実行部252とサンプル点選択部253とを有している。このような構成によると、サンプル点選択部253は、主成分分析実行部252がシミュレーション実行部251によるシミュレーションの結果に基づいて選定した主成分軸上の状態データの中から、所定の条件を満たす状態データであるサンプル点を選択することができる。その結果、駆動装置300は、サンプル点選択部253が選択したサンプル点に基づく評価値の推定を行うことが可能となる。これにより、駆動装置300がより精度よく制御入力候補の評価を行うことが可能となり、制御精度を向上させることが可能となる。
 また、本実施形態で説明した方法によると、事前に計算装置200が決定したサンプル点などを用いて駆動装置300による推定を行う。このような事前の計算結果を用いることで、実際に制御入力の候補を評価する際の計算コストを抑制することができる。その結果、より高精度、かつ、より高速に制御入力の候補を評価することができる。
 なお、本実施形態においては、計算装置200においてサンプル点や重みの決定を事前に行っておき、計算装置200における決定の結果を駆動装置300が有する記憶装置などに予め格納しておくとした。しかしながら、上述したように、計算装置200と駆動装置300とは、駆動装置300の駆動中も通信可能なよう構成してもよい。例えば、計算装置200は、駆動装置300の駆動中もシミュレーション実行やサンプル点の選択などの処理を行って、処理の結果に基づくサンプル点情報322の更新情報などを駆動装置300に対して送信するよう構成してもよい。この場合、駆動装置300は、新たに制御入力の候補を評価する場合などにおいて、受信した更新情報などに応じて更新されたサンプル点情報322などに基づく評価を行うよう構成してよい。
 また、制御システム100の構成は、本開示で例示した場合に限定されない。例えば、計算装置200が有する機能のうちの少なくとも一部を駆動装置300が有していてもよい。例えば、駆動装置300が計算装置200としての機能をすべて有する場合などにおいて、制御システム100は計算装置200を有さなくてもよい。
[第2の実施形態]
 次に、本開示の第2の実施形態について、図19から図21までを参照して説明する。図19は、計算装置400のハードウェア構成例を示す図である。図20は、計算装置400の構成例を示すブロック図である。図21は、駆動装置500の構成例を示すブロック図である。
 本開示の第2の実施形態においては、駆動装置に対して入力可能な制御入力の値に基づいて、制御入力の候補を評価する際に用いる値を決定する情報処理装置である計算装置400について説明する。また、計算装置400が決定した値を用いた評価を行って評価結果に基づく選択を行う駆動装置500について説明する。
 図19は、計算装置400のハードウェア構成例を示している。図19を参照すると、計算装置400は、一例として、以下のようなハードウェア構成を有している。
 ・CPU(Central Processing Unit)401(演算装置)
 ・ROM(Read Only Memory)402(記憶装置)
 ・RAM(Random Access Memory)403(記憶装置)
 ・RAM403にロードされるプログラム群404
 ・プログラム群404を格納する記憶装置405
 ・情報処理装置外部の記録媒体410の読み書きを行うドライブ装置406
 ・情報処理装置外部の通信ネットワーク411と接続する通信インタフェース407
 ・データの入出力を行う入出力インタフェース408
 ・各構成要素を接続するバス409
 また、計算装置400は、プログラム群404をCPU401が取得して当該CPU401が実行することで、図20に示す実行部421と分析部422と決定部423としての機能を実現することができる。なお、プログラム群404は、例えば、予め記憶装置405やROM402に格納されており、必要に応じてCPU401がRAM403などにロードして実行する。また、プログラム群404は、通信ネットワーク411を介してCPU401に供給されてもよいし、予め記録媒体410に格納されており、ドライブ装置406が該プログラムを読み出してCPU401に供給してもよい。
 なお、図19は、計算装置400のハードウェア構成例を示している。計算装置400のハードウェア構成は上述した場合に限定されない。例えば、計算装置400は、ドライブ装置406を有さないなど、上述した構成の一部から構成されてもよい。
 実行部421は、駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて駆動装置が駆動した後の駆動装置の状態をシミュレーションする。なお、駆動装置の状態には、駆動装置の位置や向きを示す情報などが含まれうる。
 分析部422は、実行部421が複数回シミュレーションすることで特定される駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定する。
 決定部423は、分析部422が選定した結果に基づいて、駆動装置に対して入力する制御入力の候補を評価する際に用いる値を決定する。例えば、決定部423は、制御入力の候補を評価する際に用いる値として、サンプル点や重みを決定する。
 このように、計算装置400は、実行部421と分析部422と決定部423とを有している。このような構成によると、決定部423は、実行部421によるシミュレーション結果を用いて分析部422が選定した結果に基づいて、制御入力の候補を評価する際に用いる値を決定することができる。その結果、駆動装置は、決定部423が決定した値を用いた評価を行うことができる。これにより、制御精度を向上させることが可能となる。また、上記構成によると、駆動装置は、例えば、予め決定された値を用いて評価を行うことができる。その結果、より高速に評価を行うことができる。
 なお、上述した計算装置400は、当該計算装置400などの情報処理装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、計算装置400などの情報処理装置に、駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて駆動装置が駆動した後の駆動装置の状態をシミュレーションし、複数回シミュレーションすることで特定される駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定し、選定した結果に基づいて、駆動装置に対して入力する制御入力の候補を評価する際に用いる値を決定する、処理を実現するためのプログラムである。
 また、上述した計算装置400などの情報処理装置により実行される決定方法は、計算装置400などの情報処理装置が、駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて駆動装置が駆動した後の駆動装置の状態をシミュレーションし、複数回シミュレーションすることで特定される駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定し、選定した結果に基づいて、駆動装置に対して入力する制御入力の候補を評価する際に用いる値を決定する、という方法である。
 上述した構成を有する、プログラム、又は、プログラムを記録したコンピュータが読み取り可能な記録媒体、又は、決定方法であっても、上述した計算装置400と同様の作用・効果を奏するので、上述した本発明の目的を達成することができる。
 また、本発明の目的は、推定部521と選択部522とを有する駆動装置500によっても達成することができる。例えば、駆動装置500は、図19を参照して説明した計算装置400が有するハードウェア構成と同様の構成を有することができる。例えば、駆動装置500は、計算装置400の場合と同様には、プログラム群をCPUが取得して当該CPUが実行することで、図21に示す推定部521と選択部522としての機能を実現することができる。計算装置400の場合と同様に、駆動装置500のハードウェア構成は、図19で示す場合に限定されず様々な変形例が採用されてよい。
 推定部521は、駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、駆動装置に対して入力する制御入力の候補を評価する際に用いる値と、駆動装置の状態と、に基づいて、制御入力の候補に応じた評価値を推定する。例えば、制御入力の候補を評価する際に用いる値は、計算装置400などの外部装置などにより予め決定されている。
 選択部522は、推定部521による推定の結果に基づいて、複数の制御入力の候補の中から実際に入力する制御入力を選択する。選択部522は、任意の方法を用いて上記選択を行ってよい。
 駆動部523は、選択部522の選択結果に基づいて自装置を駆動させる。
 このように、駆動装置500は、推定部521と選択部522と駆動部523とを有している。このような構成によると、選択部522は、推定部521による推定の結果に基づいて、複数の制御入力の候補の中から実際に入力する制御入力を選択することができる。また、駆動部523は、選択部522の選択結果に基づいて自装置を駆動させることができる。その結果、として、制御精度を向上させることができる。
 なお、上述した駆動装置500は、当該駆動装置500などの情報処理装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、駆動装置500などの情報処理装置に、駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、駆動装置に対して入力する制御入力の候補を評価する際に用いる値と、駆動装置の状態と、に基づいて、制御入力の候補に応じた評価値を推定し、推定の結果に基づいて、複数の制御入力の候補の中から実際に入力する制御入力を選択する、処理を実現するためのプログラムである。
 また、上述した駆動装置500などの情報処理装置により実行される駆動方法は、駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、駆動装置に対して入力する制御入力の候補を評価する際に用いる値と、駆動装置の状態と、に基づいて、制御入力の候補に応じた評価値を推定し、推定の結果に基づいて、複数の制御入力の候補の中から実際に入力する制御入力を選択する、という方法である。
 上述した構成を有する、プログラム、又は、プログラムを記録したコンピュータが読み取り可能な記録媒体、又は、駆動方法であっても、上述した駆動装置500と同様の作用・効果を奏するので、上述した本発明の目的を達成することができる。
 <付記>
 上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における計算装置や駆動装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
 駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて前記駆動装置が駆動した後の前記駆動装置の状態をシミュレーションする実行部と、
 前記実行部が複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定する分析部と、
 前記分析部が選定した結果に基づいて、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値を決定する決定部と、
 を有する
 計算装置。
(付記2)
 付記1に記載の計算装置であって、
 前記決定部は、前記制御入力の候補を評価する際に用いる値として、前記駆動装置の状態を示すサンプル点を前記主成分軸上の状態の中から複数選択する
 計算装置。
(付記3)
 付記2に記載の計算装置であって、
 前記決定部は、前記サンプル点を選択するとともに、選択した前記サンプル点に対応する、前記主成分軸上における状態の分布状況に応じた重みを算出する
 計算装置。
(付記4)
 付記3に記載の計算装置であって、
 前記決定部は、前記駆動装置に対して入力する前記制御入力の候補に応じた評価値を推定する際に用いる値として、前記サンプル点と前記重みとを算出する
 計算装置。
(付記5)
 付記1から付記4までのうちのいずれか1項に記載の計算装置であって、
 前記決定部は、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値として、数4で示す式を近似的に評価する際に用いる値を決定する
 計算装置。
(付記6)
 付記1から付記5までのうちのいずれか1項に記載の計算装置であって、
 前記実行部が複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して所定の変換処理を行うデータ変換部を有し、
 前記分析部は、前記データ変換部による変換の結果に基づいて前記主成分軸を選定する
 計算装置。
(付記7)
 付記1から付記6までのうちのいずれか1項に記載の計算装置であって、
 前記決定部が決定した値を駆動装置に対して出力する出力部を有する
 計算装置。
(付記8)
 情報処理装置が、
 駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて前記駆動装置が駆動した後の前記駆動装置の状態をシミュレーションし、
 複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定し、
 選定した結果に基づいて、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値を決定する
 決定方法。
(付記9)
 情報処理装置に、
 駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて前記駆動装置が駆動した後の前記駆動装置の状態をシミュレーションし、
 複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定し、
 選定した結果に基づいて、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値を決定する
 処理を実現するためのプログラムを記録した、コンピュータが読み取り可能な記録媒体。
(付記10)
 駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値と、前記駆動装置の状態と、に基づいて、前記制御入力の候補に応じた評価値を推定する推定部と、
 前記推定部による推定の結果に基づいて、複数の前記制御入力の候補の中から実際に入力する制御入力を選択する選択部と、
 前記選択部の選択結果に基づいて自装置を駆動させる駆動部と、
 を有する
 駆動装置。
(付記11)
 付記10に記載の駆動装置であって、
 制御入力の候補を示す情報と、前記制御入力の候補を評価する際に用いる値と、を関連付けた情報を記憶する記憶部と、
 前記記憶部が記憶する情報の中から評価対象となる制御入力の候補に応じた値を抽出する抽出部と、を有し、
 前記推定部は、前記抽出部が抽出した値と、前記駆動装置の状態と、に基づいて、前記評価値を推定する
 駆動装置。
(付記12)
 付記11に記載の駆動装置であって、
 前記記憶部には、駆動装置に対して入力可能な制御入力の値に基づいて制御入力の候補を評価する際に用いる値を決定する計算装置により予め決定された値が、前記計算装置から予め取得されて記憶されている
 駆動装置。
(付記13)
 付記10から付記12までのうちのいずれか1項に記載の駆動装置であって、
 前記制御入力の候補を評価する際に用いる値は、前記駆動装置の状態を示すサンプル点を示す情報と、前記サンプル点に対応する重みを示す情報と、を含んでいる
 駆動装置。
(付記14)
 付記13に記載の駆動装置であって、
 前記推定部は、前記サンプル点と前記重みとを用いて、下記数5で示す式を解くことで前記評価値を推定する
 駆動装置。
(付記15)
 駆動装置が、
 駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値と、前記駆動装置の状態と、に基づいて、前記制御入力の候補に応じた評価値を推定し、
 推定の結果に基づいて、複数の前記制御入力の候補の中から実際に入力する制御入力を選択し、
 選択の結果に基づいて駆動する
 駆動方法。
(付記16)
 駆動装置に、
 駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値と、前記駆動装置の状態と、に基づいて、前記制御入力の候補に応じた評価値を推定し、
 推定の結果に基づいて、複数の前記制御入力の候補の中から実際に入力する制御入力を選択し、
 選択の結果に基づいて駆動する
 処理を実現するためのプログラムを記録した、コンピュータが読み取り可能な記録媒体。
 以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
100 制御システム
200 計算装置
210 操作入力部
220 画面表示部
230 通信I/F部
240 記憶部
241 制御入力候補情報
242 シミュレーション結果情報
243 サンプル点情報
244 プログラム
250 演算処理部
251 シミュレーション実行部
252 主成分分析実行部
253 サンプル点選択部
254 重み算出部
255 データ変換部
256 逆変換部
257 出力部
300 駆動装置
310 通信I/F部
320 記憶部
321 制御入力候補情報
322 サンプル点情報
323 プログラム
330 演算処理部
331 サンプル点抽出部
332 評価値推定部
333 選択部
334 駆動部
400 計算装置
401 CPU
402 ROM
403 RAM
404 プログラム群
405 記憶装置
406 ドライブ装置
407 通信インタフェース
408 入出力インタフェース
409 バス
410 記録媒体
411 通信ネットワーク
421 実行部
422 分析部
423 決定部
500 駆動装置
521 推定部
522 選択部
523 駆動部

 

Claims (16)

  1.  駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて前記駆動装置が駆動した後の前記駆動装置の状態をシミュレーションする実行部と、
     前記実行部が複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定する分析部と、
     前記分析部が選定した結果に基づいて、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値を決定する決定部と、
     を有する
     計算装置。
  2.  請求項1に記載の計算装置であって、
     前記決定部は、前記制御入力の候補を評価する際に用いる値として、前記駆動装置の状態を示すサンプル点を前記主成分軸上の状態の中から複数選択する
     計算装置。
  3.  請求項2に記載の計算装置であって、
     前記決定部は、前記サンプル点を選択するとともに、選択した前記サンプル点に対応する、前記主成分軸上における状態の分布状況に応じた重みを算出する
     計算装置。
  4.  請求項3に記載の計算装置であって、
     前記決定部は、前記駆動装置に対して入力する前記制御入力の候補に応じた評価値を推定する際に用いる値として、前記サンプル点と前記重みとを算出する
     計算装置。
  5.  請求項1から請求項4までのうちのいずれか1項に記載の計算装置であって、
     前記決定部は、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値として、数1で示す式を近似的に評価する際に用いる値を決定する
     計算装置。
  6.  請求項1から請求項5までのうちのいずれか1項に記載の計算装置であって、
     前記実行部が複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して所定の変換処理を行うデータ変換部を有し、
     前記分析部は、前記データ変換部による変換の結果に基づいて前記主成分軸を選定する
     計算装置。
  7.  請求項1から請求項6までのうちのいずれか1項に記載の計算装置であって、
     前記決定部が決定した値を駆動装置に対して出力する出力部を有する
     計算装置。
  8.  情報処理装置が、
     駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて前記駆動装置が駆動した後の前記駆動装置の状態をシミュレーションし、
     複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定し、
     選定した結果に基づいて、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値を決定する
     決定方法。
  9.  情報処理装置に、
     駆動装置に対して入力可能な制御入力の値に基づいて、当該制御入力に応じて前記駆動装置が駆動した後の前記駆動装置の状態をシミュレーションし、
     複数回シミュレーションすることで特定される前記駆動装置の状態分布に対して主成分分析を行うことで主成分軸を選定し、
     選定した結果に基づいて、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値を決定する
     処理を実現するためのプログラムを記録した、コンピュータが読み取り可能な記録媒体。
  10.  駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値と、前記駆動装置の状態と、に基づいて、前記制御入力の候補に応じた評価値を推定する推定部と、
     前記推定部による推定の結果に基づいて、複数の前記制御入力の候補の中から実際に入力する制御入力を選択する選択部と、
     前記選択部の選択結果に基づいて自装置を駆動させる駆動部と、
     を有する
     駆動装置。
  11.  請求項10に記載の駆動装置であって、
     制御入力の候補を示す情報と、前記制御入力の候補を評価する際に用いる値と、を関連付けた情報を記憶する記憶部と、
     前記記憶部が記憶する情報の中から評価対象となる制御入力の候補に応じた値を抽出する抽出部と、を有し、
     前記推定部は、前記抽出部が抽出した値と、前記駆動装置の状態と、に基づいて、前記評価値を推定する
     駆動装置。
  12.  請求項11に記載の駆動装置であって、
     前記記憶部には、駆動装置に対して入力可能な制御入力の値に基づいて制御入力の候補を評価する際に用いる値を決定する計算装置により予め決定された値が、前記計算装置から予め取得されて記憶されている
     駆動装置。
  13.  請求項10から請求項12までのうちのいずれか1項に記載の駆動装置であって、
     前記制御入力の候補を評価する際に用いる値は、前記駆動装置の状態を示すサンプル点を示す情報と、前記サンプル点に対応する重みを示す情報と、を含んでいる
     駆動装置。
  14.  請求項13に記載の駆動装置であって、
     前記推定部は、前記サンプル点と前記重みとを用いて、下記数1で示す式を解くことで前記評価値を推定する
     駆動装置。
  15.  駆動装置が、
     駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値と、前記駆動装置の状態と、に基づいて、前記制御入力の候補に応じた評価値を推定し、
     推定の結果に基づいて、複数の前記制御入力の候補の中から実際に入力する制御入力を選択し、
     選択の結果に基づいて駆動する
     駆動方法。
  16.  駆動装置に、
     駆動装置に対して入力可能な制御入力の値を用いたシミュレーションの結果に対する主成分分析の結果に基づいて決定された、前記駆動装置に対して入力する前記制御入力の候補を評価する際に用いる値と、前記駆動装置の状態と、に基づいて、前記制御入力の候補に応じた評価値を推定し、
     推定の結果に基づいて、複数の前記制御入力の候補の中から実際に入力する制御入力を選択し、
     選択の結果に基づいて駆動する
     処理を実現するためのプログラムを記録した、コンピュータが読み取り可能な記録媒体。
     

     
     
PCT/JP2022/006669 2022-02-18 2022-02-18 計算装置 WO2023157235A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/006669 WO2023157235A1 (ja) 2022-02-18 2022-02-18 計算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/006669 WO2023157235A1 (ja) 2022-02-18 2022-02-18 計算装置

Publications (1)

Publication Number Publication Date
WO2023157235A1 true WO2023157235A1 (ja) 2023-08-24

Family

ID=87578011

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/006669 WO2023157235A1 (ja) 2022-02-18 2022-02-18 計算装置

Country Status (1)

Country Link
WO (1) WO2023157235A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005092820A (ja) * 2003-09-19 2005-04-07 Sony Corp 環境認識装置及び方法、経路計画装置及び方法、並びにロボット装置
JP2009021378A (ja) * 2007-07-11 2009-01-29 Nec Electronics Corp 半導体集積回路の生産方法、設計方法及び設計システム
JP2015081831A (ja) * 2013-10-22 2015-04-27 株式会社国際電気通信基礎技術研究所 音源位置推定装置、移動体および移動体の制御方法
CN112465948A (zh) * 2020-11-24 2021-03-09 山东科技大学 一种保留空间特征的车载激光路面点云抽稀方法
WO2021199291A1 (ja) * 2020-03-31 2021-10-07 日本電気株式会社 検出装置、判定方法、及び非一時的なコンピュータ可読媒体
JP2021189508A (ja) * 2020-05-26 2021-12-13 学校法人早稲田大学 ロボット、移動経路生成装置及びそのプログラム、並びに、移動予測装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005092820A (ja) * 2003-09-19 2005-04-07 Sony Corp 環境認識装置及び方法、経路計画装置及び方法、並びにロボット装置
JP2009021378A (ja) * 2007-07-11 2009-01-29 Nec Electronics Corp 半導体集積回路の生産方法、設計方法及び設計システム
JP2015081831A (ja) * 2013-10-22 2015-04-27 株式会社国際電気通信基礎技術研究所 音源位置推定装置、移動体および移動体の制御方法
WO2021199291A1 (ja) * 2020-03-31 2021-10-07 日本電気株式会社 検出装置、判定方法、及び非一時的なコンピュータ可読媒体
JP2021189508A (ja) * 2020-05-26 2021-12-13 学校法人早稲田大学 ロボット、移動経路生成装置及びそのプログラム、並びに、移動予測装置
CN112465948A (zh) * 2020-11-24 2021-03-09 山东科技大学 一种保留空间特征的车载激光路面点云抽稀方法

Similar Documents

Publication Publication Date Title
US9811074B1 (en) Optimization of robot control programs in physics-based simulated environment
Urrea et al. Design, simulation, comparison and evaluation of parameter identification methods for an industrial robot
US20180036882A1 (en) Layout setting method and layout setting apparatus
EP3825075A1 (en) Parameter identifying device, method, and program
Debus et al. Contact state estimation using multiple model estimation and hidden Markov models
EP3166084B1 (en) Method and system for determining a configuration of a virtual robot in a virtual environment
JP2013242761A (ja) マルコフ決定過程システム環境下における方策パラメータを更新するための方法、並びに、その制御器及び制御プログラム
Vozar et al. Driver modeling for teleoperation with time delay
US20220019939A1 (en) Method and system for predicting motion-outcome data of a robot moving between a given pair of robotic locations
RU2308764C2 (ru) Перемещение виртуального сочлененного объекта в виртуальном пространстве с предотвращением столкновений сочлененного объекта с элементами окружающего пространства
CN111185909B (zh) 机器人运行工况获取方法、装置、机器人及存储介质
CN114967465A (zh) 轨迹规划方法、装置、电子设备及存储介质
Ozakyol et al. Advanced robotics analysis toolbox for kinematic and dynamic design and analysis of high‐DOF redundant serial manipulators
Caporali et al. Deformable Linear Objects Manipulation with Online Model Parameters Estimation
WO2023157235A1 (ja) 計算装置
Neves et al. An environment to support structural testing of autonomous vehicles
CN111708283B (zh) 一种机器人仿真方法、设备以及计算机可读存储介质
Howard et al. Learning transferable push manipulation skills in novel contexts
US11514268B2 (en) Method for the safe training of a dynamic model
Tafuri et al. Automatic collision free path planning in hybrid triangle and point models: a case study
Lind et al. Evaluating a digital twin concept for an automatic up-to-date factory layout setup
JP7374723B2 (ja) 情報処理方法、情報処理装置、およびロボットシステム
CN112991445A (zh) 模型训练方法、姿态预测方法、装置、设备及存储介质
CN117348577B (zh) 一种生产工艺仿真检测方法、装置、设备以及介质
Ganin et al. Redundant Manipulator Control System Simulation with Adaptive Neural Network and Newton-Raphson Refinement Algorithm

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: 22927136

Country of ref document: EP

Kind code of ref document: A1