WO2022196308A1 - データ加工装置、データ加工方法、及びプログラム - Google Patents
データ加工装置、データ加工方法、及びプログラム Download PDFInfo
- Publication number
- WO2022196308A1 WO2022196308A1 PCT/JP2022/008099 JP2022008099W WO2022196308A1 WO 2022196308 A1 WO2022196308 A1 WO 2022196308A1 JP 2022008099 W JP2022008099 W JP 2022008099W WO 2022196308 A1 WO2022196308 A1 WO 2022196308A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- time
- series data
- data
- processing
- interpolation
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims description 3
- 238000000034 method Methods 0.000 claims abstract description 121
- 230000008569 process Effects 0.000 claims abstract description 94
- 230000035807 sensation Effects 0.000 claims abstract description 46
- 238000010606 normalization Methods 0.000 claims description 44
- 230000006870 function Effects 0.000 claims description 38
- 230000014509 gene expression Effects 0.000 claims description 36
- 230000008859 change Effects 0.000 claims description 19
- 230000009471 action Effects 0.000 claims description 10
- 238000013500 data storage Methods 0.000 description 40
- 230000007246 mechanism Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 27
- 230000009466 transformation Effects 0.000 description 25
- 238000007726 management method Methods 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 14
- 230000009467 reduction Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000002146 bilateral effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 238000005094 computer simulation Methods 0.000 description 2
- 240000006829 Ficus sundaica Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J3/00—Manipulators of master-slave type, i.e. both controlling unit and controlled unit perform corresponding spatial movements
Definitions
- the present invention relates to a data processing device, a data processing method, and a program.
- Patent Document 1 An example of such technology is disclosed in Patent Document 1.
- the haptic sensation is transmitted to a multi-fingered device worn by the user by digitizing the haptic sensation when an object is gripped by a robot manipulator.
- Patent Document 1 only assumes that the detected haptic sensation itself is transmitted in real time by converting the detected haptic sensation into data. In addition to this, it is desirable to make more use of haptic data.
- An object of the present invention is to make more use of haptic data.
- a data processing device includes: Acquisition means for acquiring time-series data of parameters used for transmitting haptic sensations between devices; a processing means for processing the time-series data acquired by the acquisition means; interpolation means for generating interpolation data based on the values of the parameters included in the time-series data processed by the processing means, and interpolating the time-series data after processing with the interpolation data; characterized by comprising
- haptic data can be used more effectively.
- FIG. 1 is a block diagram showing an example of the overall configuration of a data processing system according to one embodiment of the present invention
- FIG. 2 is a block diagram showing the hardware configuration of a first driving device 10 and a second driving device 20
- FIG. 3 is a block diagram showing the hardware configuration and functional configuration of a control device 30
- FIG. 3 is a block diagram showing a control algorithm for transmitting a haptic sense in a haptic sense control unit 311.
- FIG. 3 is a block diagram showing the hardware configuration and functional configuration of the data processing device 40
- FIG. 10 is a schematic diagram showing waveforms corresponding to time-series data and various user interfaces for receiving operations from the user, which are displayed on the display by the presentation unit 412 in the data editing process.
- FIG. 10 is a diagram showing a graph when the value of the position of the interpolation target section 53 is interpolated using Linear (primary) as an interpolation method.
- FIG. 11 is a graph showing a case where EaseIn (quadratic) is used as an interpolation method to interpolate the value of the position of the interpolation target section 53;
- FIG. 10 is a graph showing a case where EaseOut (quadratic) is used as an interpolation method to interpolate the value of the position of the interpolation target section 53;
- FIG. 11 is a graph showing a case where the value of the position of the interpolation target section 53 is interpolated using EaseInOut (cubic) as an interpolation technique;
- FIG. 11 is a diagram showing a graph when the value of the position of the interpolation target section 53 is interpolated using the quintic as the interpolation method.
- FIG. 11 is a diagram showing a graph when the value of the position of the interpolation target section 53 is interpolated using the 7th order as the interpolation method.
- FIG. 10 is a schematic diagram of the display of the presentation unit 412 in a scene where “clipping”, which is one of processing involving interpolation, is performed.
- FIG. 10 is a schematic diagram of the display of the presentation unit 412 in a scene where “cutting”, which is one of the processing involving interpolation, is performed;
- FIG. 10 is a schematic diagram of the display of the presentation unit 412 in a scene where “value change”, which is one of the processing involving interpolation, is performed.
- FIG. 10 is a schematic diagram of the display of the presentation unit 412 in a scene where “value offset”, which is one of the processing involving interpolation, is performed.
- FIG. 10 is a schematic diagram of the display of the presentation unit 412 in a scene where “enlargement or reduction of value”, which is one of the processing accompanying the generation of approximate expressions, is performed.
- FIG. 11 is a schematic diagram of the display of the presentation unit 412 in a scene where “expansion or reduction of the time range”, which is one of the processing accompanied by the generation of approximate expressions, is performed.
- 4 is a flowchart for explaining the flow of time-series data acquisition processing executed by the data processing system S; 4 is a flowchart for explaining the flow of data editing processing executed by the data processing system S; 4 is a flowchart for explaining the flow of reproduction processing executed by the data processing system S;
- FIG. 1 is a block diagram showing the overall configuration of a data processing system S according to this embodiment.
- the data processing system S includes n sets (n is an arbitrary integer value equal to or greater than 1) consisting of a first drive device 10, a second drive device 20, and a control device 30, and data and a processing device 40 .
- the first driving device 10, the second driving device 20, and the control device 30 are communicably connected by wire or wirelessly. Also, each control device 30 and the data processing device 40 are connected via a network N so as to be communicable.
- This network N is implemented by a wired or wireless network such as a LAN (Local Area Network) or the Internet.
- this form of communication connection is merely an example.
- the first driving device 10, each second driving device 20, and the control device 30 may be communicably connected to the control device 30 via the network N or another network.
- each control device 30 and the data processing device 40 may be connected so as to be communicable without going through the network N.
- the first driving device 10 operates as a master device to drive the first mechanism that receives the operation from the user.
- the second drive device 20 operates as a slave device to drive a second mechanism that performs work involving contact with an object.
- the control device 30 performs control (bilateral control) to transmit the haptic sensation between the first mechanism driven by the first driving device 10 and the second mechanism driven by the second driving device 20. conduct.
- the user's operation (position and force input) to the first mechanism is transmitted to the second mechanism, and the reaction force (position and force response) from the second mechanism is transmitted to the first mechanism.
- each control device 30 acquires time-series data of parameters used for transmitting haptic sensations between devices in such bilateral control. Each control device 30 then transmits this time-series data to the data processing device 40 .
- the data processing device 40 processes the time-series data received from each control device 30 in accordance with user instructions.
- the data processing device 40 also generates interpolated data based on parameter values included in the processed time-series data, and interpolates the processed time-series data using this interpolated data. Further, the data processing device 40 transmits the interpolated data to any one of the control devices 30 to execute the interpolated data in the first driving device 10 or the second driving device 20 (that is, (Reproduce the operation based on the data after interpolation).
- the data processing system S processes the time-series data of the parameters used to transmit the haptic sensation, generates interpolation data in accordance with the values of the parameters of the processed time-series data, and processes the interpolation data. Appropriately interpolate time-series data after processing by data.
- the haptic data can be appropriately used not only for real-time transmission of the detected haptic itself, but also for other purposes. Therefore, according to the data processing system S, it is possible to solve the problem of making more use of the haptic data.
- the data processing system S does not only process the data, but also appropriately interpolates the processed time-series data as described above. By appropriately interpolating in this manner, it is possible to maintain the interrelationship and continuity of various parameters relating to haptic sensation even when processing is performed. Therefore, according to the data processing system S, it is possible to further utilize the haptic data.
- FIG. 2 is a block diagram showing the hardware configuration of the first driving device 10 and the second driving device 20.
- the first drive device 10 detects an actuator 12 for driving the first mechanism 15, a driver 11 for driving the actuator 12, and a position of a moving object moved by the actuator 12. and a position sensor 13 .
- the second driving device 20 includes an actuator 22 for driving the second mechanism 25, a driver 21 for driving the actuator 22, a position sensor 23 for detecting the position of the moving object moved by the actuator 22, It has
- the position of the moving object detected by the position sensor 13 is, for example, the position of a predetermined portion of the first mechanism 15 or the position of a predetermined portion of the user who operates the first mechanism 15 .
- the position of the object to be moved detected by the position sensor 23 is, for example, the position of a predetermined portion of the second mechanism 25, or the position of an object to be gripped, processed, or moved by contact with the second mechanism 25. is the position of a predetermined portion of
- the rotation angle of the output shaft of each actuator may be detected by a rotary encoder built into each actuator. That is, in the present embodiment, the concept of position includes an angle (for example, the rotation angle of the output shaft of the actuator), and the information on the position includes position, angle, velocity, angular velocity, acceleration, and angular acceleration. shall be included. Position and velocity (or acceleration) or angle and angular velocity (or angular acceleration) are parameters that can be replaced by calculus. It is possible to process from
- the first mechanism 15 is a mechanism that functions as an operation tool that receives user operations, and its shape and structure are not particularly limited.
- the first mechanism 15 is realized by a controller having a movable part that receives user's operation, or a finger-shaped device worn by the user.
- the second mechanism 25 is a mechanism that grips, processes, or moves an object in contact with it, and its shape and structure are not particularly limited.
- the second mechanism 25 is implemented by a robot manipulator that grips or moves an object in contact with it, or a robot arm equipped with (or attached with) a tool for processing an object.
- control device 30 outputs a control command to the driver 11 or the driver 21 based on position information detected by the position sensor 13 or the position sensor 23, thereby causing the first control device, which is the master device.
- a bilateral control that transmits a haptic sensation is realized between the driving device 10 and the second driving device 20, which is a slave device. A specific algorithm for realizing this control will be described later with reference to FIG.
- FIG. 3 is a block diagram showing the hardware configuration and functional configuration of the control device 30.
- the control device 30 includes a processor 31 , a storage section 32 , a ROM (Read Only Memory) 33 , a RAM (Random Access Memory) 34 and a communication section 35 .
- ROM Read Only Memory
- RAM Random Access Memory
- the processor 31 is composed of an arithmetic device such as a CPU (Central Processing Unit), and executes various processes according to programs recorded in the ROM 33 or programs loaded from the storage unit 32 to the RAM 34 .
- the RAM 34 also stores data necessary for the processor 31 to execute various types of processing.
- the processor 31 is interconnected with the ROM 33 and RAM 34 via a bus (not shown).
- the bus is further connected to a storage unit 32 and a communication unit 35 .
- the processor 31 is further connected to the position sensor 13, the driver 11, the position sensor 23, and the driver 21 described above with reference to FIG. 2 through signal lines.
- Circuits such as a D/A (digital to analog) conversion circuit and an A/D (analog to digital) conversion circuit for realizing signal transmission/reception, a pulse counter, and the like are appropriately arranged on the connection path.
- the transmission and reception of signals via this signal line may be realized by parallel communication or may be realized by serial communication.
- the storage unit 32 is composed of a hard disk, a DRAM (Dynamic Random Access Memory), or the like, and stores various data.
- the communication unit 35 controls communication with other devices via the network.
- the control device 30 having such a hardware configuration performs “time-series data acquisition processing” and “reproduction processing”.
- the time-series data acquisition process performs control for transmitting the haptic sensation between the first driving device 10 and the second driving device 20, and acquires time-series data of parameters used for transmitting the haptic sensation. It is a series of processing to do.
- the reproduction process is performed by the second driving device 20 on reproduction data generated by performing processing involving interpolation, non-normalization, etc. on time-series data (that is, an operation corresponding to the reproduction data is executed It is a series of processing to reproduce).
- the processor 31 When these processes are performed, in the processor 31, the haptic control unit 311, the time-series data acquisition unit 312, and the reproduction data acquisition unit 313 function. In addition, a time-series data storage unit 321 and a reproduced data storage unit 322 are formed in the storage unit 32 . Data necessary for realizing processing is appropriately transmitted and received between these functional blocks at appropriate timings, including cases not specifically mentioned below.
- the haptic control unit 311 controls the transmission of haptic sensations between the first driving device 10 and the second driving device 20 .
- the details of the control for transmitting the haptic sensation differ between the time-series data acquisition process and the reproduction process.
- the haptic control unit 311 when performing the time-series data acquisition process, performs control to transmit the haptic in both directions between the actuator 12 of the first driving device 10 and the actuator 22 of the second driving device 20. to run. For this purpose, the haptic control unit 311 acquires the position (specifically, position or angle) of the moving object moved by the actuator 12 from the position sensor 13 , and also acquires the position of the object moved by the actuator 22 from the position sensor 23 . Obtain the position (specifically, position or angle) of the moving object to be moved.
- the haptic control unit 311 controls the actuator of the second driving device 20 based on the reproduction data for controlling the operation of the second driving device 20 stored in the reproduction data storage unit 322. 22 performs control to reproduce the motion based on the reproduction data. That is, the haptic control unit 311 executes control to transmit the haptic sensation based on the reproduction data to the actuator 22 .
- the haptic control unit 311 acquires the position (specifically, position or angle) of the moving object moved by the actuator 22 from the position sensor 23 , and stores the position in the reproduction data storage unit 322 . Reproduction data for controlling the operation of the second driving device 20 is acquired.
- the position and reproduction data acquired by the haptic control unit 311 are used by the first driving device 10 and the second driving device 20 in the control algorithm for transmitting the haptic sensation.
- used as a reference value to control the operation of A control algorithm for transmitting this haptic sensation will be described in detail with reference to FIG.
- FIG. 4 is a block diagram showing a control algorithm for transmitting a haptic sense in the haptic sense control section 311.
- the control algorithm implemented in the haptic control unit 311 includes a functional force/velocity assignment conversion block FT, at least one of an ideal force source block FC or an ideal velocity (position) source block PC, It is represented as a control law including an inverse transform block IFT.
- the controlled system CS is configured by the first driving device 10 and the second driving device 20 .
- the function-specific force/velocity allocation conversion block FT is a block that defines the conversion of control energy into the velocity (position) and force regions set according to the function of the controlled system CS. Specifically, in the function-specific force/velocity assignment conversion block FT, a value (reference value) that serves as a reference for the function of the controlled system CS and the current positions (or current angles) of the actuators 12 and 22 are input.
- a coordinate transformation is defined to This coordinate transformation generally converts an input vector whose elements are a reference value and a current position (current angle) into an output vector consisting of a position (angle) for calculating a control target value of the position (angle), and a reference It converts an input vector whose elements are a value and a current force into an output vector composed of force for calculating a force control target value.
- the haptic transmission function between the first driving device 10 and the second driving device 20 is realized by setting the coordinate transformation in the functional force/velocity assignment transformation block FT to the content representing the haptic transmission function.
- the motion of transmitting the haptic sensation can be reproduced by the second driving device 20 without using the first driving device 10 .
- the position (angle) or force can be scaled by setting coefficients to the elements of the conversion matrix.
- the variables of the actuator 12 or the actuator 22 alone are converted into the variable group (coordinates) of the entire system expressing the haptic transmission function.
- the control energy is assigned to the control energy of the position (angle) and the control energy of the force.
- the coordinate transformation set in the function-specific force/velocity assignment transformation block FT converts real space coordinates (oblique coordinates) in which position (angle) and force are related to each other into coordinates in which position (angle) and force are independent of each other. It converts to the coordinates (orthogonal coordinates) of the virtual space.
- control energy of the position (angle) and the control energy of the force are given independently, that is, the position (angle) and It is possible to control the force independently.
- the positions (angles) of the members moved by the actuator 12 and these positions (angles) are calculated from Between the force input and the position (angle) and the reference value that is the reference for force control, the difference in position (angle) is zero, and the sum of forces is zero (an equal force is output in the opposite direction). condition, it is possible to calculate the state value in the space after the coordinate transformation.
- the position (angle) and the reference value that serves as the reference for force control are the positions (angles) of the members moved by the actuator 22 in the second driving device 20 and their positions (angles). ) is the force calculated from Note that the first driving device 10 does not operate in the reproduction process.
- the position (angle) of the member moved by the actuator 22 and the position (angle) calculated from these positions (angles) If the difference in the position (angle) is zero and the sum of the forces is zero (an equal force is output in the opposite direction) between the force input and the reference value that is the reference for position (angle) and force control.
- State values in the space after the coordinate transformation can be calculated on the condition that However, in the time-series data acquisition process, the position (angle) and the reference value that serves as the reference for force control are the positions (angles) of the members moved by the actuator 12 in the first driving device 10 and their positions (angles). ), and is the reproduction data read from the reproduction data storage unit 322 in the reproduction process.
- the ideal force source block FC is a block that performs calculations in the force domain according to the coordinate transformation defined by the functional force/velocity assignment transformation block FT.
- a target value is set for the force when performing calculations based on the coordinate transformation defined by the functional force/velocity assignment transformation block FT.
- This target value is set as a fixed value or a variable value depending on the function to be implemented. For example, to achieve a function similar to the function indicated by the reference value, set the target value to zero, or to perform scaling, set a value obtained by expanding or contracting the information representing the function indicated by the reference value.
- the ideal force source block FC can also set an upper limit for the force energy determined by the calculation in the force domain. Setting the upper limit of force energy limits the contact force when the second mechanism 25 contacts an object. Damage to the mechanism 25 and objects can be suppressed.
- the ideal velocity (position) source block PC is a block that performs calculations in the position (angle) area according to the coordinate transformation defined by the functional force/velocity assignment transformation block FT.
- target values relating to positions (angles) are set when performing calculations based on the coordinate transformation defined by the functional force/velocity assignment transformation block FT.
- This target value is set as a fixed value or a variable value depending on the function to be implemented. For example, when realizing a function similar to the function indicated by the reference value, set the target value to zero, or when performing scaling, set a value obtained by enlarging or reducing the information indicating the function to be reproduced. can.
- the ideal velocity (position) source block PC can also set an upper limit for the position (angle) energy determined by calculations in the position (angle) domain. Setting the upper limit of the energy of the position (angle) limits the distance that the second mechanism 25 can move. can be suppressed.
- the inverse transformation block IFT inversely transforms the values of the position (angle) and force domains into the values of the domain of inputs to the controlled system CS (for example, voltage values or current values, etc.) (i.e., real space command values ) block.
- time-series position (angle) detection values detected by the position sensors 13 and 23 are input to the haptic control unit 311 .
- the detected values of the position (angle) in this time series represent the operation of the actuator 12 and the actuator 22, and the haptic control unit 311 derives the input position (angle) and these positions (angles). Coordinate transformations that transmit haptic sensations are applied to the forces.
- the haptic control unit 311 receives time-series position (angle) detection values detected by the position sensor 23 .
- This time-series position (angle) detection value represents the operation of the actuator 22 .
- the haptic control unit 311 receives time-series position (angle) values in the reproduction data.
- the position (angle) value in this reproduction data represents the operation of the actuator 22 in the reproduction data.
- the haptic control unit 311 applies coordinate transformations that transmit haptic sensations to the input positions (angles) and the forces derived from these positions (angles). In this case, time-series data values of position (angle) and force parameters may be input as reproduction data.
- the haptic control unit 311 uses the time-series values of the position (angle) and force parameters in the reproduction data, the position (angle) input from the position sensor 23, and the force derived from this position (angle). Based on and apply a coordinate transformation that conveys haptic sensations.
- the time-series data acquisition unit 312 obtains control history time-series data (for example, the first driving device 10 and Time-series data of position and force parameters that change with the execution of the time-series data acquisition process in the second driving device 20) is acquired. Also, the time-series data acquisition unit 312 transmits the acquired time-series data to the data processing device 40 . Furthermore, the time-series data acquisition unit 312 stores the acquired time-series data in the time-series data storage unit 321 . That is, the time-series data storage unit 321 functions as a storage unit that stores time-series data. After transmitting the acquired time-series data to the data processing device 40, the time-series data acquisition unit 312 discards the time-series data without storing it in the time-series data storage unit 321, thereby reducing the storage capacity. can be
- the time-series data acquisition unit 312 adds an identifier for identifying the first drive device 10 and the second drive device 20, an identifier for identifying the first drive device 10 and the second drive device 20, and an identifier to the acquired time-series data as necessary. Attributes of the device 20 (for example, the type of each device, the number of axes, the movable range, the torque output range, etc.) and information such as the date and time when the process was executed are added, and then transmitted or stored. As a result, when the time-series data is to be processed, the user can instruct the processing after referring to this information.
- the reproduction data acquisition unit 313 acquires by receiving the reproduction data transmitted from the data processing device 40 when the reproduction process is executed.
- the reproduction data includes time-series data of position (angle) and force parameters for controlling the operation of the actuator 22 of the second drive unit 20 in the reproduction process, as described above.
- the time-series data of the position (angle) and force parameters correspond to the operation of the actuator 22 of the second driving device 20 in the reproduced data.
- the reproduction data acquisition unit 313 stores the acquired reproduction data in the reproduction data storage unit 322 . That is, the reproduction data storage unit 322 functions as a storage unit that stores reproduction data.
- FIG. 5 is a block diagram showing the hardware configuration and functional configuration of the data processing device 40.
- the data processing device 40 includes a processor 41, a storage unit 42, a ROM 43, a RAM 44, a communication unit 45, an input unit 46, an output unit 47, and a drive 48.
- the processor 41, the storage unit 42, the ROM 43, the RAM 44, and the communication unit 45 are the same as the hardware of the same name provided in the control device 30, so duplicate descriptions will be omitted. These units, the input unit 46, the output unit 47, and the drive 48 are connected via a bus (not shown).
- the input unit 46 is composed of various buttons and the like, and inputs various kinds of information according to instruction operations.
- the output unit 47 includes a display, a speaker, and the like, and outputs images and sounds.
- a removable medium 50 consisting of a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like is appropriately mounted in the drive 48 .
- a program read from the removable medium 50 by the drive 48 is installed in the storage unit 42 as required.
- the data processing device 40 having such a hardware configuration performs "time-series data acquisition processing", “data editing processing”, and “reproduction processing".
- the time-series data processing and the reproduction processing are as described above when explaining the control device 30 .
- the data editing process generates edited time-series data (hereinafter referred to as "edited data") by editing the time-series data by a method such as processing with interpolation and normalization. It is a series of processing to do.
- a time-series data acquisition unit 411, a presentation unit 412, and an interpolation unit 414 function.
- a time-series data storage section 421 and an edited data storage section 422 are formed in the storage section 42 . Data necessary for realizing processing is appropriately transmitted and received between these functional blocks at appropriate timings, including cases not specifically mentioned below.
- the time-series data acquisition unit 411 acquires the time-series data transmitted from the time-series data acquisition unit 312 of the control device 30 by receiving the time-series data. Also, the time-series data acquisition unit 411 stores the acquired time-series data in the time-series data storage unit 421 . That is, the time-series data storage unit 421 functions as a storage unit that stores time-series data. In addition, the time-series data acquisition unit 411 reads the time-series data to be edited from the time-series data storage unit 421 based on the user's selection instruction operation.
- the presentation unit 412 presents the time-series data read by the time-series data acquisition unit 411 to the user. This presentation is realized, for example, by displaying a waveform corresponding to time-series data on a display included in the output unit 47 . In this case, the presentation unit 412 also displays various user interfaces for receiving operations from the user.
- the processing unit 413 processes the time-series data to be processed based on the processing instruction operation by the user who referred to the presentation by the presentation unit 412 .
- Processing includes, for example, combining multiple pieces of time-series data, clipping time-series data, cutting time-series data, manipulating values of parameters of time-series data, and changing parameter values or time ranges of time-series data. , enlargement or reduction, etc.
- interpolation by the interpolation unit 414, generation of an approximate expression by the approximate expression generation unit 415, normalization by the normalization management unit 416, and the like are performed along with these processing, the edited data storage unit 422 Processing is performed in cooperation with these units.
- the processing unit 413 stores the time-series data that has undergone such processing involving interpolation, non-normalization, etc. in the edited data storage unit 422 as edited data. That is, the edited data storage unit 422 functions as a storage unit that stores edited data.
- the interpolation unit 414 generates interpolation data based on the parameter values included in the time-series data processed by the processing unit 413, and interpolates the processed time-series data using this interpolation data. As a result, it is possible to generate interpolation data that conforms to the parameter values of the time-series data to be interpolated this time, and to appropriately interpolate the processed time-series data using this interpolation data.
- the approximation formula generation unit 415 generates an approximation formula for the time series data based on the time series data. This makes it possible to formulate and express the time-series data and reduce the data amount of the time-series data. Further, by modifying the approximation formula, it is possible to change the values of the parameters, the time range, etc. without lowering the resolution of the time-series data.
- the normalization management unit 416 normalizes or denormalizes the time series data based on the time series data.
- the normalization management unit 416 corresponds to the time-series data before normalization or after non-normalization (that is, from which this time-series data was acquired, or from which this time-series data is reproduced).
- the reproduced data generation unit 417 reads out the edited data to be reproduced (that is, the reproduction data generation source) from the edited data storage unit 422 based on the user's selection instruction operation. Then, the reproduction data generation unit 417 generates reproduction data based on the read edited data. The reproduction data generation unit 417 also transmits the generated reproduction data to the control device 30 that reproduces the operation corresponding to the reproduction data. Furthermore, the reproduction data generation unit 417 stores the generated reproduction data in the reproduction data storage unit 423 . That is, the reproduction data storage unit 423 functions as a storage unit that stores reproduction data. After transmitting the generated reproduction data to the control device 30, the reproduction data generation unit 417 may discard the reproduction data without storing it in the reproduction data storage unit 423, thereby reducing the storage capacity. .
- FIG. 6 is a schematic diagram showing waveforms corresponding to time-series data displayed on the display by the presentation unit 412 in the data editing process, and various user interfaces for receiving operations from the user.
- connection which is one of the processing involving interpolation, is performed.
- the time series of parameter values in the time series data is displayed as a waveform. Specifically, it is displayed as a graph in which the vertical axis is the value of the parameter (the upper row is the value of the position of the axis A, and the lower row is the force value of the axis A), and the horizontal axis is the time. Although these graphs may actually show more minute changes, changes in the graphs are simplified in the drawing. Furthermore, as shown in FIG. 6, an operation pointer is also displayed for accepting an operation such as designation of a time range from the user.
- the processing unit 413 has a time range (that is, time length) between the first time-series data 51 and the second time-series data 52, but the parameter value does not exist. Processing is performed so that an interpolation target section 53 (indicated by a dashed frame in the drawing) is included adjacently. Note that the length of the time range of the interpolation target section 53 may be set in advance, or may be determined based on a user's operation instruction.
- the interpolation unit 414 interpolates the interpolation target section 53 included in the processed time-series data with the interpolation data.
- FIG. 6 shows the time-series data after this interpolation.
- the interpolation unit 414 for example, based on the value of the parameter at the end point of the first time-series data 51, the value of the parameter at the start point of the second time-series data 52, and the length of the time range of the interpolation target section 53 Then, interpolated data is generated so that these two pieces of time-series data are smoothly connected on the time axis, and the time-series data are interpolated.
- FIG. 7 shows a graph when the value of the position of the interpolation target section 53 is interpolated using Linear (primary) as an interpolation method.
- interpolation can be performed so as to change at a constant speed from the start point to the end point.
- FIG. 8 shows a graph when the value of the position of the interpolation target section 53 is interpolated using EaseIn (quadratic) as an interpolation method.
- interpolation can be performed so that the positional change of the starting point is smooth as shown in the figure.
- FIG. 9 shows a graph when the value of the position of the interpolation target section 53 is interpolated using EaseOut (secondary) as an interpolation method.
- EaseOut secondary
- FIG. 10 shows a graph when the value of the position of the interpolation target section 53 is interpolated using EaseInOut (cubic) as an interpolation method.
- EaseInOut cubic
- FIG. 11 shows a graph when the value of the position of the interpolation target section 53 is interpolated using the quintic as an interpolation method.
- the interpolation can be performed so that the position changes at both the start point and the end point are changed smoothly, and the speed change between the start point and the end point is smooth.
- FIG. 12 shows a graph when the value of the position of the interpolation target section 53 is interpolated using the 7th order as an interpolation method.
- interpolation can be performed so that the position changes at both the start point and the end point are changed smoothly, and the change in velocity and acceleration between the start point and the end point is smooth.
- the interpolation unit 414 can select various interpolation methods. Therefore, if the operation result when the reproduction data corresponding to the interpolated data is executed by the second driving device 20 (that is, the operation corresponding to the reproduction data is reproduced) is not preferable, the user may By selecting the interpolation method of and redoing the interpolation, more appropriate interpolation can be performed.
- the processing unit 413 includes the interpolation target section 53 adjacently between the end point of the first time-series data 51 and the start point of the second time-series data 52. I was processing to make it possible. That is, the processed time-series data is processed so as to include all of the first time-series data 51 and the second time-series data 52 . Alternatively, the processing unit 413 may process the interpolation target section 53 so that it overlaps part of the first time-series data 51 or the second time-series data 52 . For example, the interpolation target section 53 may overlap near the end of the first time-series data 51 or near the start of the second time-series data.
- the interpolation unit 414 When performing such partially overlapping processing, the interpolation unit 414, for example, sets the value of the parameter at the end point of the portion that does not overlap with the interpolation target section 53 of the first time-series data 51 and the second time-series data Based on the value of the parameter at the start point of the portion that does not overlap with the interpolation target section 53 of 52 and the length of the time range of the interpolation target section 53, these two time series data are smoothly connected on the time axis. Generate interpolated data. Then, the interpolation target section 53 (including the portion overlapping with the first time-series data 51 and the second time-series data 52) may be interpolated with this interpolation data.
- how much time range the interpolation target section 53 overlaps with the first time series data 51 and the second time series data 52 may be set in advance, or may be determined based on a user's operation instruction. This makes it possible to easily link any time range of the first time-series data 51 and any time range of the second time-series data 52 based on the user's intention.
- FIG. 13 is a schematic diagram of the display of the presentation unit 412 in the data editing process, similar to FIG. In FIG. 13, it is assumed that "clipping", which is one of the processing involving interpolation, is performed. It should be noted that duplicate descriptions of points common to FIG. 6 will be omitted. In addition, in FIG. 13, it is assumed that the axis A and the axis B exist. In this way, in each processing performed by the processing unit 413, the number of axes is not particularly limited, and time-series data corresponding to any number of axes can be processed.
- the time range of time series data specified by the user is clipped from the time series data to be clipped, while the time range of time series data that is not specified is deleted.
- a series of time-series data 54a, time-series data 55a, and time-series data 56a for the axis A is set by the user's designation instruction operation of the time range using the operation pointer.
- the time series data 54a is designated as a time range to be clipped (the designated time range is hatched).
- time series data 54b is specified as a time range to be clipped from a series of time series data consisting of time series data 54b, time series data 55b, and time series data 56b.
- the processing unit 413 cuts out the time-series data 54a and the time-series data 54b so as to leave the time-series data 54a and the time-series data 54b as shown in FIG.
- the series data 56a, the time series data 55b, and the time series data 56b are deleted.
- the interpolation unit 414 regenerates interpolation data corresponding to the value of the parameter of the end point of the time-series data 54a, and performs interpolation again on the interpolation target section 57a.
- the interpolation unit 414 repeats the interpolation data corresponding to the value of the parameter at the start point of the clipping target time-series data. Generate and re-interpolate the interpolation target section.
- the user can select the time-series data to be processed (that is, the first time-series data or the second time-series data adjacent to the interpolation target section) simply by specifying the time range. That is, an intuitive and simple user interface can be provided to the user.
- FIG. 14 is a schematic diagram of the display of the presentation unit 412 in the data editing process, similar to FIG. 6 and the like.
- cutting which is one of processing involving interpolation, is performed. It should be noted that redundant description of points common to those in FIG. 6 and the like will be omitted.
- cutting the time range of time series data specified by the user is deleted from the time series data to be cut, while the time range of time series data not specified is cut so as to remain.
- time-series data 59a is specified as a time range to be cut (the specified time range is hatched).
- time-series data 59b is specified as the time range to be clipped.
- the processing unit 413 cuts out the specified time series data 59b and the time series data 59b so as to delete them, Series data 58a and time series data 58b are left.
- the interpolation unit 414 regenerates interpolation data corresponding to the value of the parameter of the end point of the time-series data 58a, and performs interpolation on the interpolation target section 60a again.
- the interpolation unit 414 converts the interpolation data is generated again, and interpolation is performed again for the interpolation target section.
- the user can select the time-series data to be processed (that is, the first time-series data or the second time-series data adjacent to the interpolation target section) simply by specifying the time range. That is, an intuitive and simple user interface can be provided to the user.
- FIG. 15 is a schematic diagram of the display of the presentation unit 412 in the data editing process, similar to FIG. 6 and the like. In FIG. 15, it is assumed that "value change", which is one of the processing involving interpolation, is performed. It should be noted that redundant description of points common to those in FIG. 6 and the like will be omitted.
- the value change the value of the parameter at the point in time designated by the user is changed based on the user's designation from the time-series data to be changed. For example, as shown in FIG. 15A, a point 61 is specified by the user's specifying instruction operation using the operation pointer, and the changed parameter value (here, force value) at this point 61 is changed. is performed.
- the processing unit 413 changes the designated time point 61 to the parameter value (here, force value) designated by the user. However, if this is left as it is, at the time point 61, it will change instantaneously regardless of the values of the parameters before and after, and the continuity of the operation cannot be maintained. Therefore, as shown in FIG. 15B, the interpolation unit 414 treats a time range including the time point 61 as an interpolation target section 62 . Then, the interpolating unit 414 performs interpolation corresponding to the parameter value (here, the force value) at the starting point of the interpolation target section 62 and the changed parameter value (here, the force value) at the time point 61.
- the parameter value here, force value
- interpolation unit 414 generates , interpolation data is generated, and interpolation is performed by replacing the existing parameter value (here, force value) of the interpolation target section 62-2, which is the latter half of the interpolation target section 62, with the interpolation data.
- FIG. 16 is a schematic diagram of the display of the presentation unit 412 in the data editing process, similar to FIG. 6 and the like. In FIG. 16, it is assumed that a "value offset", which is one of the processing involving interpolation, is performed. It should be noted that redundant description of points common to those in FIG. 6 and the like will be omitted.
- the value offset is offset from the time series data for which the value is to be offset with respect to the time range of part or all of the time series data.
- the maximum value 63 of the position is assumed in, for example, the movable range of the first driving device 10 or the second driving device 20 from which the time-series data was obtained, or a predetermined operation corresponding to the time-series data. Determined by range of motion.
- the user's designating operation using the operation pointer designates the entire time width of the position value and designates "+10" as the offset value.
- the user intends to perform an offset in order to apply this time-series data to the first driving device 10 and the second driving device 20, for example, whose starting point value of the position is "10".
- the processing unit 413 interpolates the position value so that the position value is increased by "+10" over the entire time width of the position value. That is, interpolation is performed so as to be offset. As a result, as shown in FIG. 16B, the starting point value 66 of the position becomes “10” and the maximum value 63 of the position becomes "14" while the shape of the waveform in the time-series data is maintained.
- FIG. 17 is a schematic diagram of the display of the presentation unit 412 in the data editing process, similar to FIG. 6 and the like. In FIG. 17, it is assumed that "enlargement or reduction of values", which is one of the processing accompanied by the generation of approximate expressions, is performed. It should be noted that redundant description of points common to those in FIG. 6 and the like will be omitted.
- the values are expanded or contracted from the time-series data to be expanded or contracted to the time range of part or all of the time-series data.
- the maximum value 65 of the position is assumed in, for example, the movable range of the first driving device 10 or the second driving device 20 from which the time-series data is obtained, or a predetermined operation corresponding to the time-series data. Determined by range of motion.
- the user uses the operation pointer to specify the entire time width of the position value and to specify "300%" as the enlargement ratio.
- the user intends to perform enlargement in order to apply this time-series data to the first driving device 10 and the second driving device 20 whose movable range is "30", for example.
- the approximation formula generation unit 415 In response to this instruction operation, the approximation formula generation unit 415 generates an approximation formula for the time-series data based on the time-series data whose values are to be scaled up or down.
- a method for generating approximate expressions for example, linear approximation, polynomial approximation (e.g., spline interpolation, Lagrangian interpolation, etc.), exponential approximation, logarithmic approximation, power approximation, etc.
- existing methods for generating approximate expressions method can be used.
- the processing unit 413 performs processing to enlarge or reduce the parameter values of the time-series data from which the approximate expression is generated (here, the enlargement ratio “ 300%” processing) is performed. For example, the processing unit 413 performs processing by multiplying or dividing the approximate expression generated by the approximate expression generating unit 415 by a coefficient. As a result, as shown in FIG. 17B, the starting point value 66 of the position becomes "0" and the maximum value 65 of the position becomes "30" while the shape of the waveform in the time-series data is maintained.
- time-series data can be formulated and expressed, data with expanded or reduced parameter values can be generated as continuous data, and parameter values can be changed without lowering the resolution of the time-series data.
- an offset value to or from the approximate expression generated by the approximate expression generation unit 415, the value can be offset along with the expansion or reduction of the value, or separately from the expansion or reduction of the value. .
- FIG. 18 is a schematic diagram of the display of the presentation unit 412 in the data editing process, similar to FIG. 6 and the like.
- it is assumed that "expansion or reduction of the time range", which is one of the processing accompanied by the generation of approximate expressions, is performed. It should be noted that redundant description of points common to those in FIG. 6 and the like will be omitted.
- the time range is expanded or contracted from the time-series data to be expanded or contracted for part or all of the time-series data.
- FIG. 18A it is assumed that there is time-series data of time range t1.
- the time length of the time range t1 of this time-series data is "11 minutes and 26 seconds", and the operation pointer is currently selecting "1 minute and 8 seconds”. Is displayed.
- the entire time width is specified by the user's specification instruction operation using the operation pointer, and the specification instruction operation of "50%" as the reduction ratio is performed.
- the user intends to perform reduction in order to apply this time-series data to the first driving device 10 or the second driving device 20 at 0.5 times speed, for example.
- the approximation formula generation unit 415 In response to this instruction operation, the approximation formula generation unit 415 generates an approximation formula for the time-series data based on the time-series data whose values are to be scaled up or down. Existing techniques for generating approximate expressions are as described above.
- the processing unit 413 expands or reduces the time range of the time-series data from which the approximate expression was generated (here, the reduction rate is “50 %” processing) is performed. For example, the processing unit 413 performs processing by multiplying or dividing the approximate expression generated by the approximate expression generating unit 415 by a coefficient. As a result, as shown in FIG. 18B, the parameter value is reduced to the time range t2 while maintaining the starting point value and the maximum value.
- the display area 67 displays that the time length of the time range t2 of this time-series data is "5 minutes and 43 seconds" and that the operation pointer is currently selecting the point of time of "34 seconds.” be. That is, it is displayed that the image has been reduced to a reduction ratio of "50%".
- time-series data This makes it possible to formulate and express the time-series data and reduce the data amount of the time-series data.
- time-series data it is possible to formulate and express the time-series data, generate data with an expanded or reduced time width as continuous data, and change the time width without lowering the resolution of the time-series data.
- the time range can be offset (i.e. , processing to move the time range back and forth in time) can also be performed.
- the normalization management unit 416 normalizes or denormalizes the time series data based on the time series data. In this case, the normalization management unit 416 performs normalization or denormalization according to the attributes of the device that executes the time-series data before normalization or after denormalization.
- Methods for normalization or denormalization generation use existing methods for normalization or denormalization generation, such as min-max scale transformation, variance scale transformation, and scale transformation with quantiles. be able to. It should be noted that the parameter A different technique may be used for each.
- the minimum and maximum values used for normalization and non-normalization for example, the minimum and maximum values of the parameter values in the time series data can be used.
- the first drive corresponding to the time-series data to be normalized and denormalized that is, the time-series data from which this time-series data was obtained, or from which this time-series data is executed as reproduction data
- Minimum and maximum values based on attributes unique to the device 10 and the second driving device 20 eg, movable range and torque output range
- normalization can be performed based on the attributes (for example, movable range and torque output range) of each device from which the time-series data was acquired.
- the normalized time-series data can be de-normalized based on the attributes (for example, movable range and torque output range) of each device that executes this time-series data as reproduction data.
- normalized general-purpose time-series data can be generated simply by acquiring and normalizing the time-series data when any of the control devices 30 controls the device.
- denormalization is performed according to the attributes of the device that executes the reproduction data, reproduction data unique to the device is generated, and the corresponding operation is reproduced.
- human effort to prepare time-series data corresponding to each of various devices in advance can be reduced. can be omitted.
- time-series data can be managed easily.
- FIG. 19 is a flowchart for explaining the flow of time-series data acquisition processing executed by the data processing system S.
- the time-series data acquisition process is performed when the user has started a predetermined action using the first drive device 10 as a master device, or when the user has started a predetermined action using the first drive device 10 as a master device. It is executed in response to acceptance of the user's instruction to start the time-series data acquisition process.
- step S11 the haptic control unit 311 controls the position (specifically, position or angle) of the moving object moved by the actuator 12 and the position of the moving object moved by the actuator 22 (specifically, , position or angle) and .
- step S12 the haptic sense control unit 311 converts the input vector in the real space into a vector in the virtual space.
- step S13 the haptic control unit 311 performs calculation in the velocity (position) area and calculation in the force area.
- step S14 the haptic control unit 311 inversely transforms the values of the velocity (position) and force regions into the values of the input region (real space vector) to the controlled system CS.
- step S ⁇ b>15 the haptic control unit 311 outputs command values for the actuators 12 and 22 .
- step S16 the time-series data acquisition unit 312 acquires control history time-series data (for example, the first driving device 10 and the second driving device) calculated in the processes from steps S11 to S16 by the haptic control unit 311. 20, time-series data of position and force parameters that change with the execution of the time-series data acquisition process in 20).
- control history time-series data for example, the first driving device 10 and the second driving device
- step S17 the haptic control unit 311 determines whether or not the user has finished executing a predetermined action using the first driving device 10 as the master device. If the execution of the predetermined action has ended, it is determined as Yes in step S17, and the process proceeds to step S18. On the other hand, if the execution of the predetermined action has not ended, it is determined No in step S17, and the process returns to step S11 and is repeated.
- step S ⁇ b>18 the time-series data acquisition unit 312 transmits the time-series data acquired in step S ⁇ b>16 to the data processing device 40 .
- step S ⁇ b>19 the time series data acquisition unit 312 stores the time series data acquired in step S ⁇ b>16 in the time series data storage unit 321 .
- the time series data is temporarily stored each time step S16 is repeated, and all the temporarily stored time series data are collectively transmitted and stored in steps S18 and S19. .
- the same transmission and storage as steps S18 and S19 may be performed each time step S16 is repeated.
- step S21 the time-series data acquisition unit 411 acquires the time-series data transmitted from the time-series data acquisition unit 312 of the control device 30 by receiving the time-series data.
- step S ⁇ b>22 the time series data acquisition unit 411 stores the time series data acquired in step S ⁇ b>12 in the time series data storage unit 421 . This completes the processing.
- control is performed to transmit the haptic sensation between the first driving device 10 and the second driving device 20, and the time-series data of the parameters used for transmitting the haptic sensation are obtained. can be obtained.
- FIG. 20 is a flowchart for explaining the flow of data editing processing executed by the data processing system S. As shown in FIG. The data editing process is executed when the data processing device 40 receives an instruction to start the editing process by the user.
- step S ⁇ b>31 the time-series data acquisition unit 411 reads time-series data to be edited from the time-series data storage unit 421 based on the user's selection instruction operation.
- the time-series data acquisition unit 411 selects the time-series data to be edited (here, the existing edited data) based on the user's selection instruction operation.
- the presentation unit 412 presents the time-series data read by the edited data storage unit 422 to the user.
- step S33 the processing unit 413 determines whether or not to execute processing involving interpolation. For example, the processing unit 413 executes processing involving interpolation when there is a processing instruction operation from the user.
- processing accompanied by interpolation is, for example, combining multiple pieces of time-series data, clipping time-series data, clipping time-series data, and manipulating values of parameters of time-series data. If such processing involving interpolation is to be executed, a determination of Yes is made in step S33, and the process proceeds to step S34. On the other hand, if processing involving interpolation is not to be executed, the determination in step S33 is No, and the process proceeds to step S36.
- step S34 the processing unit 413 processes the time-series data.
- step S35 the interpolating unit 414 generates interpolated data based on the parameter values included in the processed time series data in step S34, and interpolates the processed time series data using this interpolated data.
- step S36 the processing unit 413 determines whether or not to execute processing involving generation of approximate expressions. For example, the processing unit 413 executes processing accompanied by generation of approximate expressions when there is a processing instruction operation from the user.
- the processing accompanied by the generation of the approximation formula is realized, for example, by expanding or contracting the values of the parameters of the time-series data or the time range. If processing involving the generation of such an approximation formula is to be executed, a determination of Yes is made in step S36, and the process proceeds to step S37. On the other hand, if the processing that accompanies the generation of the approximation formula is not executed, it is determined as No in step S36, and the process proceeds to step S39.
- step S37 the approximation formula generation unit 415 generates an approximation formula for the time series data based on the time series data.
- step S38 the processing unit 413 processes the approximate expression of the time-series data generated in step S37.
- step S39 the normalization management unit 416 determines whether or not to normalize the time series data. For example, the normalization management unit 416 normalizes the time-series data when there is a normalization instruction operation from the user. If the time-series data is to be normalized, a determination of Yes is made in step S39, and the process proceeds to step S40. On the other hand, when the time-series data is not normalized, it is determined as No in step S39, and the process proceeds to step S41. In step S40, the normalization management unit 416 normalizes the time series data based on the time series data.
- step S41 the processing unit 413 determines whether or not to end the editing process. For example, the processing unit 413 ends the editing process when the user instructs to end the editing process. If the editing process is to end, the determination in step S41 is Yes, and the process proceeds to step S42. On the other hand, if the editing process is not to be ended, a determination of No is made in step S41, and the process returns to step S32 and is repeated.
- step S42 the processing unit 413 stores the time-series data that has undergone processing involving interpolation, non-normalization, etc. in the processing from steps S31 to S41 as edited data in the edited data storage unit 422. This completes the processing.
- FIG. 21 is a flowchart for explaining the flow of reproduction processing executed by the data processing system S.
- the reproduction process is executed when the data processing device 40 receives a user's instruction to start the reproduction process.
- step S ⁇ b>51 the reproduction data generation unit 417 reads out edit data to be reproduced (that is, set as reproduction data) from the edit data storage unit 422 based on the user's selection instruction operation.
- step S52 the normalization management unit 416 determines whether or not to denormalize the edited data. For example, the normalization management unit 416 denormalizes the edited data when the user instructs denormalization. If the edited data is to be non-normalized, a determination of Yes is made in step S52, and the process proceeds to step S53. On the other hand, if the edited data is not to be denormalized, a determination of No is made in step S52, and the process proceeds to step S54.
- step S53 the normalization management unit 416 executes denormalization according to the attribute of the control device 30 that executes the reproduction data, which is the time-series data after denormalization.
- step S54 the reproduction data generation unit 417 generates reproduction data based on the edited data read out in step S51 or the non-normalized data in step S53.
- step S55 the reproduction data generator 417 transmits the reproduction data generated in step S54 to the control device 30 that reproduces the action corresponding to the reproduction data.
- step S ⁇ b>56 the reproduction data generation unit 417 stores the reproduction data generated in step S ⁇ b>54 in the reproduction data storage unit 423 .
- step S ⁇ b>61 the reproduction data acquisition unit 313 receives and acquires the reproduction data transmitted from the reproduction data generation unit 417 of the data processing device 40 .
- step S ⁇ b>62 the reproduction data acquisition unit 313 stores the reproduction data acquired in step S ⁇ b>61 in the reproduction data storage unit 322 .
- step S63 the haptic control unit 311 reads the reproduction data to be reproduced from the reproduction data storage unit 322 based on the user's selection instruction operation, ) to obtain the position (specifically, position or angle) of the moving object that is moved by .
- step S64 the haptic sense control unit 311 converts the input vector in the real space into a vector in the virtual space.
- step S65 the haptic control unit 311 performs calculation in the velocity (position) area and calculation in the force area.
- step S66 the haptic control unit 311 inversely transforms the values of the velocity (position) and force regions into the values of the input region (real space vector) to the controlled system CS.
- step S67 the haptic control unit 311 outputs a command value for one of the actuators (here, the actuator 22). In the reproduction process, the command value for the other actuator (here, actuator 12) is not output.
- step S68 the haptic control unit 311 determines whether or not the reproduction data being reproduced in this process has ended. If the reproduction data being reproduced has ended, it is determined as Yes in step S68, and this process ends. On the other hand, if the reproduction data being reproduced has not ended, it is determined as No in step S68, and the process returns to step S63 and is repeated.
- the reproduction data generated by performing processing involving interpolation and the like, non-normalization, etc., on the time-series data is executed in the second driving device 20 (that is, the reproduction data corresponds to the reproduction data). You can reproduce the behavior to do).
- the data processing system S processes the time-series data of the parameters used to transmit the haptic sensation, generates interpolation data in accordance with the values of the parameters of the processed time-series data, and processes the interpolation data. Appropriately interpolate time-series data after processing by data.
- the haptic data can be appropriately used not only for real-time transmission of the detected haptic itself, but also for other purposes. Therefore, according to the data processing system S, it is possible to solve the problem of making more use of the haptic data.
- control device 30 and the data processing device 40 are implemented as different devices. Not limited to this, for example, the control device 30 and the data processing device 40 may be implemented as an integrated device. In other words, time-series data may be obtained by controlling the transmission of haptic sensations, and the time-series data may be edited by the device itself. Alternatively, for example, off-line editing may be performed without connecting the data processing device 40 to a network. In addition, for example, a function of performing time-series data acquisition processing of acquiring time-series data and data editing processing of editing this time-series data by omitting the function of performing reproduction processing of generating reproduction data from the data processing device 40 The data processing device 40 may be realized as a device provided with
- the first driving device 10, the second driving device 20, and the control device 30 do not necessarily have to be included in the set.
- there may be a set of only two the second driving device 20 for performing operations based on existing time-series data or reproduction data, and the control device 30 for controlling these operations.
- the time-series data acquisition process is not performed for this set of only two units.
- this two-unit control device 30 can edit existing time-series data (for example, existing time-series data acquired in another set), and then edit this existing time-series data.
- the generated reproduction data is obtained from the data processing device 40 .
- the control device 30 controls the operation of the second driving device 20 based on the acquired existing time-series data and reproduction data.
- control device 30 and the data processing device 40 are realized as an integrated device, for example, existing time-series data can be downloaded and edited by oneself. , a robot or the like that controls the operation of the second driving device 20 by itself.
- control device 30 there may be a set including one control device 30 and a plurality of first driving devices 10 and a plurality of second driving devices 20 .
- a plurality of first drive devices 10 operate as master devices of the multi-degree-of-freedom robot arm
- a plurality of second drive devices 20 operate as slave devices of the multi-degree-of-freedom robot arm. All operations are controlled by one controller 30 .
- the control device 30 may be implemented as a device integrated with the first drive device 10 or the second drive device 20 .
- the data processing device 40 may be realized by a plurality of server devices constituting a cloud server. That is, the system configuration in the embodiment described above is merely an example, and can be appropriately modified into various configurations.
- the haptic control unit 311 controls the second driving device 20 based on the reproduction data for controlling the operation of the second driving device 20 stored in the reproduction data storage unit 322 . 20, the actuator 22 was controlled to reproduce the operation based on the reproduced data. That is, the haptic control unit 311 executes control to transmit the haptic sensation based on the reproduction data to the actuator 22 .
- the haptic control unit 311 controls the operation of the first driving device 10 based on the reproduction data for controlling the operation of the first driving device 10 stored in the reproduction data storage unit 322 . may be executed to reproduce the operation of the actuator 12 based on reproduction data. That is, the haptic control section 311 may perform control to transmit the haptic sensation to the actuator 12 based on the reproduced data.
- time-series position (angle) detection values detected by the position sensor 13 are input to the haptic control unit 311 .
- This time-series position (angle) detection value represents the operation of the actuator 12 .
- the haptic control unit 311 receives time-series position (angle) values in the reproduction data.
- the position (angle) value in this reproduction data represents the operation of the actuator 12 in the reproduction data.
- the haptic control unit 311 applies coordinate transformations that transmit haptic sensations to the input positions (angles) and the forces derived from these positions (angles).
- time-series data values of position (angle) and force parameters may be input as reproduction data.
- the haptic control unit 311 uses the time-series values of the position (angle) and force parameters in the reproduction data, the position (angle) input from the position sensor 13, and the force derived from this position (angle). Based on and apply a coordinate transformation that conveys haptic sensations. As a result, the haptic sensation based on the reproduced data can be transmitted to the actuator 12, and the data on the haptic sensation can be used for various purposes.
- a filter that passes only a predetermined frequency band and attenuates other frequency bands is used.
- high-frequency noise components in the time-series data can be removed by using a low-pass filter.
- outliers may be removed as preprocessing by ignoring detected values exceeding a predetermined threshold and replacing them with immediately preceding detected values. good.
- outlier saturation may be performed as preprocessing, for example, in which detected values of parameters included in time-series data that exceed a predetermined threshold value are saturated and replaced with the threshold value. This makes it possible to appropriately remove noise contained in the time-series data.
- the second driving device 20 acting as the slave device actually grips, moves, or moves an object that involves contact with the object. It is assumed that work such as processing will be executed.
- the data processing device 40 and the control device 30 cooperate to create a virtual slave based on a virtual user's operation on a virtual master device in a virtual space simulated by a computer.
- the device may be used to perform an operation such as grasping a virtual object.
- the virtual user's operation on the virtual master device is transmitted to the virtual slave device, and the reaction force input from the virtual object to the virtual slave device is transmitted to the master device.
- control device 30 performs control to transmit haptic sensations between the virtual first mechanism driven by the virtual master device and the virtual second mechanism driven by the virtual slave device. (bilateral control).
- control device 30 acquires time-series data of parameters used for transmitting haptic sensations in the control of transmitting haptic sensations between virtual devices.
- time-series data can be acquired by computer simulation without actually performing work such as gripping that involves contact with an object.
- the time-series data may be obtained by a technique other than simulation. For example, time-series data created based on a user's operation instruction may be obtained.
- time-series data created by a creation tool that automatically creates time-series data based on predetermined conditions may be acquired. Then, the time-series data acquired by this simulation, the time-series data acquired by the user's operation instruction, and the time-series data acquired by the creation tool are to be edited as in the above-described embodiment. As a result, it is possible to further utilize the haptic data.
- the data processing device 40 may display a preview of the operation of a virtual master device or a virtual slave device based on time-series data.
- the time-series data is time-series data acquired by simulation, time-series data acquired by user's operation instruction, time-series data acquired by the creation tool, or time-series data acquired by time-series data acquisition processing. Any time series data or the like may be used. Further, it may be reproduction data created by editing these time-series data.
- the preview display can be realized, for example, by representing the operations of a virtual master device or a virtual slave device in schematic computer graphics and displaying them. In this case, the virtual first mechanism, the virtual second mechanism, the virtual object to be touched, etc.
- the preview display are also represented by schematic computer graphics and included in the preview display. You may do so. By performing such a preview display, the user can reproduce the created time-series data or the reproduced data created with editing appropriately without actually operating the first driving device 10 or the second driving device 20. You can easily check if it works.
- the data processing system S includes the time-series data acquisition unit 411, the processing unit 413, and the interpolation unit 414.
- the time-series data acquisition unit 411 acquires time-series data of parameters used for transmitting haptic sensations between devices.
- the processing unit 413 processes the time-series data acquired by the time-series data acquisition unit 411 .
- the interpolation unit 414 generates interpolation data based on the values of parameters included in the time-series data processed by the processing unit 413, and interpolates the processed time-series data using the interpolation data.
- the data processing system S processes the time-series data of the parameters used to transmit the haptic sensation, generates interpolation data in accordance with the values of the parameters of the processed time-series data, and processes the interpolation data. Appropriately interpolate time-series data after processing by data.
- the haptic data can be appropriately used not only for real-time transmission of the detected haptic itself, but also for other purposes. Therefore, according to the data processing system S, it is possible to solve the problem of making more use of the haptic data.
- the processing unit 413 puts the processed time-series data in chronological order into the first time-series data to be processed, the section having the time range to be interpolated, and the second time-series data to be processed. , are processed to be included next to each other,
- the interpolation unit 414 interpolates a section having a time range to be interpolated, which is included in the processed time-series data, with interpolation data. As a result, it is possible to appropriately interpolate between data to be processed. Therefore, even when processing is performed, it is possible to maintain the interrelationship of various parameters related to the haptic sensation and the continuity between the front and back.
- the data processing system S further includes a presentation unit 412 .
- the presentation unit 412 presents the time-series data to the user.
- the processing unit 413 determines at least one of the first time-series data and the second time-series data based on the specification of the time range by the user who referred to the time-series data. As a result, the user can select time-series data to be processed simply by designating a time range. That is, according to the data processing system S, an intuitive and simple user interface can be provided to the user.
- the data processing system S further includes a presentation unit 412 .
- the presentation unit 412 presents the time-series data to the user.
- the processing unit 413 determines a section having a time range to be interpolated based on a user's specification of a change in the value of a parameter that accompanies specification of a time point by a user who refers to the time-series data. As a result, it is possible to select a section having a time range to be interpolated simply by designating a parameter value change that accompanies designation of a point in time. That is, according to the data processing system S, an intuitive and simple user interface can be provided to the user.
- the data processing system S further includes an approximate expression generator 415 .
- the approximation formula generation unit 415 generates an approximation formula for the time series data based on the time series data.
- the processing unit 413 performs processing to expand or reduce the parameter values of the time-series data from which the approximation formula was generated, and processing to offset the parameter values of the time-series data. Either or both processes are performed. This makes it possible to formulate and express the time-series data and reduce the data amount of the time-series data.
- time-series data can be formulated and expressed, and data with expanded or reduced parameter values or offset data can be generated as continuous data, and parameter values can be changed without lowering the resolution of time-series data. be able to.
- the data processing system S further includes an approximate expression generator 415 .
- the approximation formula generation unit 415 generates an approximation formula for the time series data based on the time series data. Based on the approximation formula, the processing unit 413 either expands or contracts the time range of the time series data from which the approximation formula is generated, or offsets the time range of the time series data, or Both sides are processed. This makes it possible to formulate and express the time-series data and reduce the data amount of the time-series data.
- time-series data can be formulated and expressed, and data with an expanded or reduced time range or offset data can be generated as continuous data, and the time range can be changed without reducing the resolution of the time-series data. can.
- the data processing system S further includes a normalization manager 416 .
- the normalization management unit 416 normalizes or denormalizes the time series data based on the time series data.
- the normalization management unit 416 performs normalization or denormalization according to the attribute of the device corresponding to the time-series data before normalization or after denormalization.
- normalized general-purpose time-series data can be generated simply by acquiring and normalizing the time-series data when any of the control devices 30 performs control.
- denormalization is performed according to the attributes of the device that executes the reproduction data, reproduction data unique to the device is generated, and the corresponding operation is reproduced.
- time-series data corresponding to each of various devices can be easily generated from normalized general-purpose time-series data. It is possible to omit the human effort to prepare in advance. In addition, time-series data can be managed easily.
- the actuator 12 moves the first moving object along with execution of a predetermined action.
- the position sensor 13 acquires first position information regarding the position of the first moving object moved by the actuator 12 .
- the actuator 22 moves the second moving object along with execution of a predetermined action.
- the position sensor 23 acquires second position information regarding the position of the second object moved by the actuator 22 .
- the haptic control unit 311 controls the actuator 12 so as to output the position and force corresponding to the motion represented by the second position information based on the first position information and the second position information serving as a reference for the motion of the actuator 12 .
- the time-series data acquisition unit 411 acquires at least part of the parameters used by the haptic control unit 311 to control the actuators 12 and 22 as time-series data.
- a function for executing a series of processes according to the above-described embodiment can be realized by hardware, software, or a combination thereof. In other words, it is sufficient that any one of the data processing systems S implements the function of executing the series of processes described above, and there is no particular limitation as to how the function is implemented.
- the processor that executes this arithmetic processing is composed of various single processing units such as a single processor, a multiprocessor, and a multicore processor. In addition to these, it also includes a combination of these various processing devices and a processing circuit such as ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array).
- ASIC Application Specific Integrated Circuit
- FPGA Field-Programmable Gate Array
- the programs that make up the software are installed in the computer via a network or a recording medium.
- the computer may be a computer in which dedicated hardware is installed, or a general-purpose computer capable of executing a predetermined function by installing a program (for example, a general-purpose personal computer, etc.). general electronic equipment).
- the steps of writing the program may include only processes performed in chronological order, but may also include processes performed in parallel or individually. Also, the steps of writing the program may be executed in any order without departing from the gist of the present invention.
- a recording medium recording such a program may be provided to the user by being distributed separately from the computer main body, or may be provided to the user in a state pre-installed in the computer main body.
- the storage medium distributed separately from the computer main body is, for example, the removable medium 50, which is composed of a magnetic disk (including a floppy disk), an optical disk, a magneto-optical disk, or the like.
- the optical disc is composed of, for example, a CD-ROM (Compact Disc-Read Only Memory), a DVD (Digital Versatile Disc), or a Blu-ray (registered trademark) Disc (Blu-ray Disc).
- the magneto-optical disc is composed of, for example, an MD (Mini Disc) or the like.
- the recording medium provided to the user in a state of being pre-installed in the computer main body is, for example, the storage unit 32 or storage unit 42 in which the program is recorded, and is a hard disk drive (HDD) or solid state SSD (SSD). Drive).
- HDD hard disk drive
- SSD solid state SSD
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
力触覚に関するデータを、より活用する。データ加工システム(S)は、時系列データ取得部(411)と、加工部(413)と、補間部(414)と、を備える。時系列データ取得部(411)は、装置間で力触覚を伝達するために用いられるパラメータの時系列データを取得する。加工部(413)は、時系列データ取得部(411)が取得した時系列データを加工する。補間部(414)は、加工部(413)による加工後の時系列データに含まれるパラメータの値に基づいて補間データを生成し、該補間データによって加工後の時系列データを補間する。
Description
本発明は、データ加工装置、データ加工方法、及びプログラムに関する。
従来、物体に接触した際の力触覚(例えば、物体の硬さや柔らかさ)をデータ化することにより、装置間での力触覚の伝達を実現する技術が存在する。これにより、例えば、ユーザからの操作を受け付ける一方の装置と、物体への接触を伴う作業をする他方の装置との間で、双方向に力触覚を伝達することが可能となる。
このような技術の一例が、特許文献1に開示されている。特許文献1に開示の技術では、ロボットマニピュレーターによって物体を把持した際の力触覚をデータ化することによって、ユーザが装着する多指型のデバイスに対して力触覚を伝達する。
しかしながら、特許文献1に開示されているような一般的な技術では、検出された力触覚をデータ化することによって、検出された力触覚そのものをリアルタイムに伝達することのみを想定している。これにとどまらず、力触覚に関するデータを、より活用することが望まれる。
本発明は、このような状況に鑑みてなされたものである。そして、本発明の課題は、力触覚に関するデータを、より活用することである。
上記課題を解決するため、本発明の一実施形態に係るデータ加工装置は、
装置間で力触覚を伝達するために用いられるパラメータの時系列データを取得する取得手段と、
前記取得手段が取得した前記時系列データを加工する加工手段と、
前記加工手段による加工後の時系列データに含まれる前記パラメータの値に基づいて補間データを生成し、該補間データによって前記加工後の時系列データを補間する補間手段と、
を備えることを特徴とする。
装置間で力触覚を伝達するために用いられるパラメータの時系列データを取得する取得手段と、
前記取得手段が取得した前記時系列データを加工する加工手段と、
前記加工手段による加工後の時系列データに含まれる前記パラメータの値に基づいて補間データを生成し、該補間データによって前記加工後の時系列データを補間する補間手段と、
を備えることを特徴とする。
本発明によれば、力触覚に関するデータを、より活用することができる。
以下、添付の図面を参照して本発明の実施形態の一例について説明する。
[システム構成]
図1は、本実施形態に係るデータ加工システムSの全体構成を示すブロック図である。図1に示すように、データ加工システムSは、第1駆動装置10、第2駆動装置20、及び制御装置30からなる組をn組(nは、1以上の任意の整数値)と、データ加工装置40と、を含む。
図1は、本実施形態に係るデータ加工システムSの全体構成を示すブロック図である。図1に示すように、データ加工システムSは、第1駆動装置10、第2駆動装置20、及び制御装置30からなる組をn組(nは、1以上の任意の整数値)と、データ加工装置40と、を含む。
各組において、第1駆動装置10及び第2駆動装置20と、制御装置30は、有線または無線により通信可能に接続される。また、各制御装置30と、データ加工装置40は、ネットワークNを介して通信可能に接続される。このネットワークNは、例えば、LAN(Local Area Network)やインターネット等の、有線または無線によるネットワークにより実現される。
ただし、この通信接続の態様は、あくまで一例である。例えば、各組において、第1駆動装置10及び各第2駆動装置20と、制御装置30は、ネットワークNや他のネットワークを介して制御装置30と通信可能に接続されていてもよい。他にも、例えば、各制御装置30と、データ加工装置40は、ネットワークNを介することなく通信可能に接続されていてもよい。
ただし、この通信接続の態様は、あくまで一例である。例えば、各組において、第1駆動装置10及び各第2駆動装置20と、制御装置30は、ネットワークNや他のネットワークを介して制御装置30と通信可能に接続されていてもよい。他にも、例えば、各制御装置30と、データ加工装置40は、ネットワークNを介することなく通信可能に接続されていてもよい。
各組において、第1駆動装置10は、マスタ装置として動作することにより、ユーザからの操作を受け付ける第1機構を駆動する。一方で、第2駆動装置20は、スレーブ装置として動作することにより、物体への接触を伴う作業をする第2機構を駆動する。
この場合に、制御装置30は、第1駆動装置10が駆動する第1機構と、第2駆動装置20が駆動する第2機構との間で、力触覚を伝達する制御(バイラテラル制御)を行う。これにより、第1機構に対するユーザの操作(位置と力の入力)が第2機構に伝達されると共に、第2機構からの反力(位置と力の応答)が第1機構に伝達される。
この場合に、制御装置30は、第1駆動装置10が駆動する第1機構と、第2駆動装置20が駆動する第2機構との間で、力触覚を伝達する制御(バイラテラル制御)を行う。これにより、第1機構に対するユーザの操作(位置と力の入力)が第2機構に伝達されると共に、第2機構からの反力(位置と力の応答)が第1機構に伝達される。
また、各制御装置30は、このようなバイラテラル制御にて、装置間で力触覚を伝達するために用いられるパラメータの時系列データを取得する。そして、各制御装置30は、この時系列データを、データ加工装置40に対して送信する。
データ加工装置40は、各制御装置30から受信した時系列データを、ユーザの指示に応じて加工する。また、データ加工装置40は、加工後の時系列データに含まれるパラメータの値に基づいて補間データを生成し、この補間データによって加工後の時系列データを補間する。
さらに、データ加工装置40は、この補間後のデータを何れかの制御装置30に対して送信することにより、第1駆動装置10や第2駆動装置20において、補間後のデータを実行(すなわち、補間後のデータに基づいた動作を再現)させる。
さらに、データ加工装置40は、この補間後のデータを何れかの制御装置30に対して送信することにより、第1駆動装置10や第2駆動装置20において、補間後のデータを実行(すなわち、補間後のデータに基づいた動作を再現)させる。
このように、データ加工システムSは、力触覚を伝達するために用いられるパラメータの時系列データを加工すると共に、加工後の時系列データのパラメータの値に即した補間データを生成し、この補間データによって加工後の時系列データを適切に補間する。これにより、力触覚に関するデータを、従来のように検出した力触覚そのものをリアルタイムに伝達する用途のみならず、他の用途にも適切に利用することができる。
従って、データ加工システムSによれば、力触覚に関するデータを、より活用する、という課題を解決することが可能となる。
従って、データ加工システムSによれば、力触覚に関するデータを、より活用する、という課題を解決することが可能となる。
また、時系列データに対して、単に加工のみを行った場合には、時系列データに含まれる力触覚に関する各種パラメータの相互関係性や前後の連続性が失われるおそれがある。しかしながら、データ加工システムSは、単に加工をするのみではなく、上述したようにして、加工後の時系列データを適切に補間する。このようにして、適切な補間を行うことにより、加工を行った場合であっても、力触覚に関する各種パラメータの相互関係性や前後の連続性を保持することが可能となる。
従って、データ加工システムSによれば、力触覚に関するデータを、より一層、活用することが可能となる。
従って、データ加工システムSによれば、力触覚に関するデータを、より一層、活用することが可能となる。
[装置構成]
次に、データ加工システムSに含まれる各装置の構成について説明する。
図2は、第1駆動装置10と、第2駆動装置20のハードウェア構成を示すブロック図である。
図2に示すように、第1駆動装置10は、第1機構15を駆動するためのアクチュエータ12と、アクチュエータ12を駆動するドライバ11と、アクチュエータ12によって移動される移動対象物の位置を検出する位置センサ13と、を備えている。また、第2駆動装置20は、第2機構25を駆動するためのアクチュエータ22と、アクチュエータ22を駆動するドライバ21と、アクチュエータ22によって移動される移動対象物の位置を検出する位置センサ23と、を備えている。
次に、データ加工システムSに含まれる各装置の構成について説明する。
図2は、第1駆動装置10と、第2駆動装置20のハードウェア構成を示すブロック図である。
図2に示すように、第1駆動装置10は、第1機構15を駆動するためのアクチュエータ12と、アクチュエータ12を駆動するドライバ11と、アクチュエータ12によって移動される移動対象物の位置を検出する位置センサ13と、を備えている。また、第2駆動装置20は、第2機構25を駆動するためのアクチュエータ22と、アクチュエータ22を駆動するドライバ21と、アクチュエータ22によって移動される移動対象物の位置を検出する位置センサ23と、を備えている。
この場合に、位置センサ13が検出する移動対象物の位置とは、例えば、第1機構15の所定の部位の位置や、第1機構15を操作するユーザの所定の部位の位置である。また、位置センサ23が検出する移動対象物の位置とは、例えば、第2機構25の所定の部位の位置や、第2機構25が接触することにより、把持や加工や移動の対象となる物体の所定の部位の位置である。
ただし、本実施形態では、これら移動対象物の位置に代えて、各アクチュエータの出力軸の回転角度を各アクチュエータに内蔵されたロータリーエンコーダによって検出することとしてもよい。すなわち、本実施形態において、位置の概念には角度(例えば、アクチュエータの出力軸の回転角度等)が含まれるものとし、位置に関する情報には、位置、角度、速度、角速度、加速度及び角加速度が含まれるものとする。また、位置と速度(または加速度)あるいは角度と角速度(または角加速度)は、微積分演算により置換可能なパラメータであるため、位置あるいは角度に関する処理を行う場合、適宜、速度あるいは角速度等に置換してから処理を行うことが可能である。
第1機構15は、ユーザの操作を受け付ける操作具として機能する機構であり、その形状や構造は特に限定されない。例えば、第1機構15は、ユーザの操作を受け付ける可動部を備えたコントローラや、ユーザが装着する手指等の形状のデバイスにより実現される。また、第2機構25は、物体に接触して把持や加工や移動を行う機構であり、その形状や構造は特に限定されない。例えば、第2機構25は、物体に接触して把持や移動を行うロボットマニュピレータや、物体を加工する工具を備えた(あるいは、工具が装着された)ロボットアームにより実現される。
このような構成において、制御装置30は、位置センサ13や位置センサ23が検出した位置の情報に基づいて、ドライバ11やドライバ21に対して制御指令を出力することにより、マスタ装置である第1駆動装置10と、スレーブ装置である第2駆動装置20との間で力触覚を伝達するバイラテラル制御を実現する。なお、この制御を実現するための具体的なアルゴリズムについては、図4を参照して後述する。
図3は、制御装置30のハードウェア構成及び機能的構成を示すブロック図である。
図3に示すように、制御装置30は、プロセッサ31と、記憶部32と、ROM(Read Only Memory)33と、RAM(Random Access Memory)34と、通信部35と、を備えている。
図3に示すように、制御装置30は、プロセッサ31と、記憶部32と、ROM(Read Only Memory)33と、RAM(Random Access Memory)34と、通信部35と、を備えている。
プロセッサ31は、CPU(Central Processing Unit)等の演算装置により構成され、ROM33に記録されているプログラム、または、記憶部32からRAM34にロードされたプログラムに従って各種の処理を実行する。
RAM34には、プロセッサ31が各種の処理を実行する上において必要なデータ等も適宜記憶される。
RAM34には、プロセッサ31が各種の処理を実行する上において必要なデータ等も適宜記憶される。
プロセッサ31は、ROM33、及びRAM34と、図示を省略したバスを介して相互に接続されている。このバスにはさらに、記憶部32と、通信部35と、が接続される。
また、プロセッサ31にはさらに、図2を参照して上述した、位置センサ13と、ドライバ11と、位置センサ23と、ドライバ21と、が信号線を介して相互に接続されている。この接続経路には、D/A(digital to analog)変換回路やA/D(analogd to digital)変換回路等の信号の送受を実現するための回路や、パルスカウンタ等が適宜配置される。また、この信号線を介した信号の送受は、パラレル通信により実現されてもよいし、シリアル通信により実現されてもよい。
また、プロセッサ31にはさらに、図2を参照して上述した、位置センサ13と、ドライバ11と、位置センサ23と、ドライバ21と、が信号線を介して相互に接続されている。この接続経路には、D/A(digital to analog)変換回路やA/D(analogd to digital)変換回路等の信号の送受を実現するための回路や、パルスカウンタ等が適宜配置される。また、この信号線を介した信号の送受は、パラレル通信により実現されてもよいし、シリアル通信により実現されてもよい。
記憶部32は、ハードディスクあるいはDRAM(Dynamic Random Access Memory)等で構成され、各種データを記憶する。
通信部35は、ネットワークを介して他の装置との間で行う通信を制御する。
通信部35は、ネットワークを介して他の装置との間で行う通信を制御する。
このようなハードウェア構成を有する制御装置30は、「時系列データ取得処理」や、「再現処理」を行う。
ここで、時系列データ取得処理は、第1駆動装置10及び第2駆動装置20の間で力触覚を伝達する制御を行うと共に、力触覚を伝達するために用いたパラメータの時系列データを取得する一連の処理である。
また、再現処理は、時系列データに対して、補間等を伴う加工や非正規化等を行うことによって生成した再現データを、第2駆動装置20において実行(すなわち、再現データに対応する動作を再現)させる一連の処理である。
ここで、時系列データ取得処理は、第1駆動装置10及び第2駆動装置20の間で力触覚を伝達する制御を行うと共に、力触覚を伝達するために用いたパラメータの時系列データを取得する一連の処理である。
また、再現処理は、時系列データに対して、補間等を伴う加工や非正規化等を行うことによって生成した再現データを、第2駆動装置20において実行(すなわち、再現データに対応する動作を再現)させる一連の処理である。
これらの処理が行われる場合、プロセッサ31において、力触覚制御部311と、時系列データ取得部312と、再現データ取得部313と、が機能する。また、記憶部32には、時系列データ記憶部321と、再現データ記憶部322と、が形成される。
以下で特に言及しない場合も含め、これら機能ブロック間では、処理を実現するために必要なデータを、適切なタイミングで適宜送受信する。
以下で特に言及しない場合も含め、これら機能ブロック間では、処理を実現するために必要なデータを、適切なタイミングで適宜送受信する。
力触覚制御部311は、第1駆動装置10及び第2駆動装置20の間で力触覚を伝達する制御を行う。この力触覚を伝達する制御の詳細は、時系列データ取得処理を行う場合と、再現処理を行う場合とで異なる。
具体的に、時系列データ取得処理を行う場合、力触覚制御部311は、第1駆動装置10のアクチュエータ12と第2駆動装置20のアクチュエータ22との間で双方向に力触覚を伝達する制御を実行する。そのために、力触覚制御部311は、位置センサ13から、アクチュエータ12によって移動される移動対象物の位置(具体的には、位置または角度)を取得すると共に、位置センサ23から、アクチュエータ22によって移動される移動対象物の位置(具体的には、位置または角度)を取得する。
一方で、再現処理を行う場合、力触覚制御部311は、再現データ記憶部322に記憶された第2駆動装置20の動作を制御するための再現データに基づいて、第2駆動装置20のアクチュエータ22における再現データに基づいた動作を再現する制御を実行する。すなわち、力触覚制御部311は、再現データに基づいた力触覚をアクチュエータ22に伝達する制御を実行する。そのために、力触覚制御部311は、位置センサ23から、アクチュエータ22によって移動される移動対象物の位置(具体的には、位置または角度)を取得すると共に、再現データ記憶部322に記憶された第2駆動装置20の動作を制御するための再現データを取得する。
このようにして、時系列データ取得処理や再現処理において、力触覚制御部311によって取得された位置及び再現データは、力触覚を伝達する制御アルゴリズムにおいて、第1駆動装置10や第2駆動装置20の動作を制御するための基準値として用いられる。この力触覚を伝達する制御アルゴリズムについて、図4を参照して詳細に説明をする。
図4は、力触覚制御部311における力触覚の伝達をする制御アルゴリズムを示すブロック図である。
図4に示すように、力触覚制御部311に実装される制御アルゴリズムは、機能別力・速度割当変換ブロックFTと、理想力源ブロックFCあるいは理想速度(位置)源ブロックPCの少なくとも1つと、逆変換ブロックIFTとを含む制御則として表される。なお、本実施形態において、制御対象システムCSは、第1駆動装置10及び第2駆動装置20によって構成される。
図4に示すように、力触覚制御部311に実装される制御アルゴリズムは、機能別力・速度割当変換ブロックFTと、理想力源ブロックFCあるいは理想速度(位置)源ブロックPCの少なくとも1つと、逆変換ブロックIFTとを含む制御則として表される。なお、本実施形態において、制御対象システムCSは、第1駆動装置10及び第2駆動装置20によって構成される。
機能別力・速度割当変換ブロックFTは、制御対象システムCSの機能に応じて設定される速度(位置)及び力の領域への制御エネルギーの変換を定義するブロックである。具体的には、機能別力・速度割当変換ブロックFTでは、制御対象システムCSの機能の基準となる値(基準値)と、アクチュエータ12やアクチュエータ22の現在位置(または現在角度)とを入力とする座標変換が定義されている。この座標変換は、一般に、基準値及び現在位置(現在角度)を要素とする入力ベクトルを位置(角度)の制御目標値を算出するための位置(角度)からなる出力ベクトルに変換すると共に、基準値及び現在の力を要素とする入力ベクトルを力の制御目標値を算出するための力からなる出力ベクトルに変換するものである。
機能別力・速度割当変換ブロックFTにおける座標変換を、力触覚の伝達機能を表す内容に設定することにより、第1駆動装置10と第2駆動装置20との間における力触覚の伝達機能を実現したり、力触覚を伝達する動作を、第1駆動装置10を用いることなく第2駆動装置20で再現したりすることができる。また、機能別力・速度割当変換ブロックFTにおける座標変換において、変換行列の要素に係数を設定することにより、位置(角度)あるいは力のスケーリングを行ったりすることができる。
すなわち、本実施形態においては、機能別力・速度割当変換ブロックFTにおいて、アクチュエータ12やアクチュエータ22単体の変数(実空間上の変数)を、力触覚伝達機能を表現するシステム全体の変数群(座標変換後の空間上の変数)に“変換”し、位置(角度)の制御エネルギーと力の制御エネルギーとに制御エネルギーを割り当てる。すなわち、機能別力・速度割当変換ブロックFTに設定される座標変換は、位置(角度)と力とが互いに関連する実空間の座標(斜交座標)を位置(角度)と力とが互いに独立した仮想空間の座標(直交座標)に変換するものである。そのため、アクチュエータ単体の変数(実空間上の変数)のまま制御を行う場合と比較して、位置(角度)の制御エネルギーと力の制御エネルギーとを独立に与えること、すなわち、位置(角度)と力とを独立に制御することが可能となっている。
本実施形態においては、例えば、第1駆動装置10が出力する位置(角度)及び力を制御する場合、アクチュエータ12によって移動される部材の位置(角度)及びこれらの位置(角度)から算出される力の入力と、位置(角度)及び力の制御の基準となる基準値とにおいて、位置(角度)の差がゼロ、力の和がゼロ(逆向きに等しい力が出力される)となることを条件として、座標変換後の空間における状態値の演算を行うことができる。ただし、位置(角度)及び力の制御の基準となる基準値は、時系列データ取得処理においては、第2駆動装置20におけるアクチュエータ22によって移動される部材の位置(角度)及びこれらの位置(角度)から算出される力である。なお、再現処理においては、第1駆動装置10は動作を行わない。
同様に、本実施形態において、例えば、第2駆動装置20が出力する位置(角度)及び力を制御する場合、アクチュエータ22によって移動される部材の位置(角度)及びこれらの位置(角度)から算出される力の入力と、位置(角度)及び力の制御の基準となる基準値とにおいて、位置(角度)の差がゼロ、力の和がゼロ(逆向きに等しい力が出力される)となることを条件として、座標変換後の空間における状態値の演算を行うことができる。ただし、位置(角度)及び力の制御の基準となる基準値は、時系列データ取得処理においては、第1駆動装置10におけるアクチュエータ12によって移動される部材の位置(角度)及びこれらの位置(角度)から算出される力であり、再現処理においては、再現データ記憶部322から読み出された再現データである。
理想力源ブロックFCは、機能別力・速度割当変換ブロックFTによって定義された座標変換に従って、力の領域における演算を行うブロックである。理想力源ブロックFCにおいては、機能別力・速度割当変換ブロックFTによって定義された座標変換に基づく演算を行う際の力に関する目標値が設定されている。この目標値は、実現される機能に応じて固定値または可変値として設定される。例えば、基準値が示す機能と同様の機能を実現する場合には、目標値としてゼロを設定したり、スケーリングを行う場合には、基準値が示す機能を表す情報を拡大・縮小した値を設定したりできる。また、理想力源ブロックFCは、力の領域における演算によって決定される力のエネルギーに対し、上限値を設定することができる。力のエネルギーの上限値を設定することは、第2機構25が物体に接触する際の接触力に制限を与えることとなり、第2機構25が物体に過度に強く押し当てられることにより、第2機構25や物体が破損すること等を抑制できる。
理想速度(位置)源ブロックPCは、機能別力・速度割当変換ブロックFTによって定義された座標変換に従って、位置(角度)の領域における演算を行うブロックである。理想速度(位置)源ブロックPCにおいては、機能別力・速度割当変換ブロックFTによって定義された座標変換に基づく演算を行う際の位置(角度)に関する目標値が設定されている。この目標値は、実現される機能に応じて固定値または可変値として設定される。例えば、基準値が示す機能と同様の機能を実現する場合には、目標値としてゼロを設定したり、スケーリングを行う場合には、再現する機能を示す情報を拡大・縮小した値を設定したりできる。また、理想速度(位置)源ブロックPCは、位置(角度)の領域における演算によって決定される位置(角度)のエネルギーに対し、上限値を設定することができる。位置(角度)のエネルギーの上限値を設定することは、第2機構25が移動する距離に制限を与えることとなり、第2機構25が過度に移動することにより、第2機構25や物体が破損すること等を抑制できる。
逆変換ブロックIFTは、位置(角度)及び力の領域の値を制御対象システムCSへの入力の領域の値(例えば、電圧値または電流値等)に逆変換する(すなわち、実空間の指令値を決定する)ブロックである。
このような制御アルゴリズムの下、時系列データ取得処理を行う場合、力触覚制御部311には、位置センサ13や位置センサ23によって検出された時系列の位置(角度)の検出値が入力される。この時系列の位置(角度)の検出値は、アクチュエータ12やアクチュエータ22の動作を表すものであり、力触覚制御部311は、入力された位置(角度)及びこれらの位置(角度)から導出された力に対して、力触覚を伝達する座標変換を適用する。
また、このような制御アルゴリズムの下、再現処理を行う場合、力触覚制御部311には、位置センサ23によって検出された時系列の位置(角度)の検出値が入力される。この時系列の位置(角度)の検出値は、アクチュエータ22の動作を表すものである。加えて、力触覚制御部311には、再現データにおける時系列の位置(角度)の値が入力される。この再現データにおける位置(角度)の値は、再現データにおけるアクチュエータ22の動作を表すものである。力触覚制御部311は、入力された位置(角度)及びこれらの位置(角度)から導出された力に対して、力触覚を伝達する座標変換を適用する。
なお、この場合に、再現データとして、位置(角度)及び力のパラメータの時系列データの値が入力されるようにしてもよい。この場合、力触覚制御部311は、再現データにおける位置(角度)及び力のパラメータの時系列の値と、位置センサ23から入力された位置(角度)及びこの位置(角度)から導出された力とに基づいて、力触覚を伝達する座標変換を適用する。
なお、この場合に、再現データとして、位置(角度)及び力のパラメータの時系列データの値が入力されるようにしてもよい。この場合、力触覚制御部311は、再現データにおける位置(角度)及び力のパラメータの時系列の値と、位置センサ23から入力された位置(角度)及びこの位置(角度)から導出された力とに基づいて、力触覚を伝達する座標変換を適用する。
図3に戻り、時系列データ取得部312は、時系列データ取得処理が実行される際に、力触覚制御部311により算出された制御の履歴の時系列データ(例えば、第1駆動装置10及び第2駆動装置20における、時系列データ取得処理の実行に伴い変化する、位置及び力のパラメータの時系列データ)を取得する。また、時系列データ取得部312は、取得した時系列データをデータ加工装置40に対して送信する。さらに、時系列データ取得部312は、取得した時系列データを時系列データ記憶部321に記憶する。すなわち、時系列データ記憶部321は、時系列データを記憶する記憶部として機能する。なお、時系列データ取得部312は、取得した時系列データをデータ加工装置40に送信した後に、その時系列データを時系列データ記憶部321に記憶せずに廃棄して、記憶容量を削減するようにしてもよい。
なお、時系列データ取得部312は、必要に応じて、取得した時系列データに、第1駆動装置10及び第2駆動装置20を識別するための識別子や、第1駆動装置10及び第2駆動装置20の属性(例えば、各装置の種類や軸数や可動範囲やトルク出力範囲等)や、処理を実行した日時等の情報を付加した上で、送信や記憶を行う。これにより、時系列データの加工等を行う場合に、ユーザはこれらの情報を参照した上で加工の指示を行うことが可能となる。
再現データ取得部313は、再現処理が実行される際に、データ加工装置40から送信された再現データを、受信することにより取得する。再現データは、上述したように、再現処理において第2駆動装置20のアクチュエータ22の動作を制御するための、位置(角度)及び力のパラメータの時系列データが含まれる。なお、この位置(角度)及び力のパラメータの時系列データは、再現データにおける第2駆動装置20のアクチュエータ22の動作に対応するものである。再現データ取得部313は、取得した再現データを再現データ記憶部322に記憶する。すなわち、再現データ記憶部322は、再現データを記憶する記憶部として機能する。
図5は、データ加工装置40のハードウェア構成及び機能的構成を示すブロック図である。
図5に示すように、データ加工装置40は、プロセッサ41と、記憶部42と、ROM43と、RAM44と、通信部45と、入力部46と、出力部47と、ドライブ48と、を備えている。
図5に示すように、データ加工装置40は、プロセッサ41と、記憶部42と、ROM43と、RAM44と、通信部45と、入力部46と、出力部47と、ドライブ48と、を備えている。
プロセッサ41と、記憶部42と、ROM43と、RAM44と、通信部45とについては、制御装置30が備える同名のハードウェアと同様なので、重複する再度の説明を省略する。これら各部と、入力部46、出力部47、及びドライブ48は、図示を省略したバスを介して接続されている。
入力部46は、各種ボタン等で構成され、指示操作に応じて各種情報を入力する。
出力部47は、ディスプレイやスピーカ等で構成され、画像や音声を出力する。
出力部47は、ディスプレイやスピーカ等で構成され、画像や音声を出力する。
ドライブ48には、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリ等よりなる、リムーバブルメディア50が適宜装着される。ドライブ48によってリムーバブルメディア50から読み出されたプログラムは、必要に応じて記憶部42にインストールされる。
このようなハードウェア構成を有するデータ加工装置40は、「時系列データ取得処理」や、「データ編集処理」や、「再現処理」を行う。ここで、時系列データ処理と、再現処理については、制御装置30の説明の際に上述したとおりである。
また、データ編集処理は、時系列データを、補間等を伴う加工や正規化等を行うといった方法で編集することにより、編集された時系列データ(以下、「編集データ」と称する。)を生成する一連の処理である。
これらの処理が行われる場合、プロセッサ41において、時系列データ取得部411と、提示部412と、補間部414と、が機能する。また、記憶部42には、時系列データ記憶部421と、編集データ記憶部422と、が形成される。
以下で特に言及しない場合も含め、これら機能ブロック間では、処理を実現するために必要なデータを、適切なタイミングで適宜送受信する。
また、データ編集処理は、時系列データを、補間等を伴う加工や正規化等を行うといった方法で編集することにより、編集された時系列データ(以下、「編集データ」と称する。)を生成する一連の処理である。
これらの処理が行われる場合、プロセッサ41において、時系列データ取得部411と、提示部412と、補間部414と、が機能する。また、記憶部42には、時系列データ記憶部421と、編集データ記憶部422と、が形成される。
以下で特に言及しない場合も含め、これら機能ブロック間では、処理を実現するために必要なデータを、適切なタイミングで適宜送受信する。
時系列データ取得部411は、制御装置30の時系列データ取得部312から送信された時系列データを、受信することにより取得する。また、時系列データ取得部411は、取得した時系列データを時系列データ記憶部421に記憶する。すなわち、時系列データ記憶部421は、時系列データを記憶する記憶部として機能する。
また、時系列データ取得部411は、ユーザからの選択指示操作に基づいて、データ編集の対象とする時系列データを、時系列データ記憶部421から読み出す。
また、時系列データ取得部411は、ユーザからの選択指示操作に基づいて、データ編集の対象とする時系列データを、時系列データ記憶部421から読み出す。
提示部412は、時系列データ取得部411が読み出した時系列データをユーザに対して提示する。この提示は、例えば、時系列データに対応する波形を、出力部47に含まれるディスプレイへ表示することにより実現される。この場合に、提示部412は、ユーザからの操作を受け付けるための各種ユーザインタフェースも表示する。
加工部413は、提示部412による提示を参照したユーザからの加工指示操作に基づいて、加工対象とする時系列データを加工する。加工には、例えば、複数の時系列データの結合や、時系列データの切り抜きや、時系列データの切り取りや、時系列データのパラメータの値操作や、時系列データのパラメータの値または時間範囲の、拡大または縮小等が含まれる。また、これらの加工に伴い、補間部414による補間や、近似式生成部415による近似式の生成や、正規化管理部416による正規化等が行われる場合には、編集データ記憶部422は、これら各部と協働して加工を行う。
そして、加工部413は、このような補間等を伴う加工や非正規化等を実施した時系列データを、編集データとして編集データ記憶部422に記憶する。すなわち、編集データ記憶部422は、編集データを記憶する記憶部として機能する。
そして、加工部413は、このような補間等を伴う加工や非正規化等を実施した時系列データを、編集データとして編集データ記憶部422に記憶する。すなわち、編集データ記憶部422は、編集データを記憶する記憶部として機能する。
なお、データ編集処理では、上述したように時系列データ記憶部421が記憶する時系列データを加工対象とするのみではなく、編集データ記憶部422が記憶する編集データを加工対象とするようにしてもよい。すなわち、一度補間等を伴う加工や非正規化等を実施して生成した編集データに対して、補間等を伴う加工や非正規化等を再度実施して(すなわち、再編集をして)、新たな編集データとして編集データ記憶部422に記憶するようにしてもよい。
補間部414は、加工部413による加工後の時系列データに含まれるパラメータの値に基づいて補間データを生成し、この補間データによって加工後の時系列データを補間する。これにより、今回補間対象とする時系列データのパラメータの値に即した補間データを生成し、この補間データによって加工後の時系列データを適切に補間することができる。
近似式生成部415は、時系列データに基づいて、この時系列データの近似式を生成する。これにより、時系列データを定式化して表現し、時系列データのデータ量を削減することができる。また、近似式を加工することにより、時系列データの分解能を低下させることなくパラメータの値や時間範囲等を変更することができる。
正規化管理部416は、時系列データに基づいて、この時系列データを正規化または非正規化する。この場合、例えば、正規化管理部416は、正規化前または非正規化後の時系列データに対応する(すなわち、この時系列データの取得元となった、または、これからこの時系列データを再現データとして実行する)装置の属性に応じて、正規化または非正規化を実行する。これにより、装置の属性に応じた時系列データを生成することができる。
再現データ生成部417は、ユーザからの選択指示操作に基づいて、再現対象とする(すなわち、再現データの生成元とする)編集データを、編集データ記憶部422から読み出す。そして、再現データ生成部417は、読み出した編集データに基づいて、再現データを生成する。また、再現データ生成部417は、生成した再現データを、再現データに対応する動作を再現する制御装置30に対して送信する。さらに、再現データ生成部417は、生成した再現データを再現データ記憶部423に記憶する。すなわち、再現データ記憶部423は、再現データを記憶する記憶部として機能する。なお、再現データ生成部417は、生成した再現データを制御装置30に送信した後に、その再現データを再現データ記憶部423に記憶せずに廃棄して、記憶容量を削減するようにしてもよい。
以上、データ加工システムSに含まれる各装置の構成について詳細に説明した。次に、データ加工装置40の各部が協働して実行するデータ編集処理における、編集データの生成の詳細について図6から図18までを参照して説明をする。
[編集データの生成]
図6は、データ編集処理において、提示部412がディスプレイに表示する、時系列データに対応する波形と、ユーザからの操作を受け付けるための各種ユーザインタフェースを示す模式図である。図6では、補間を伴う加工の1つである「連結」を行う場面を想定する。
図6は、データ編集処理において、提示部412がディスプレイに表示する、時系列データに対応する波形と、ユーザからの操作を受け付けるための各種ユーザインタフェースを示す模式図である。図6では、補間を伴う加工の1つである「連結」を行う場面を想定する。
図6に示すように、時系列データにおけるパラメータの値の時系列が波形として表示される。具体的には、縦軸をパラメータの値(上段は軸Aの位置の値であり、下段は軸Aの力の値)とし、横軸を時間としたグラフとして表示される。なお、これらのグラフは、実際にはより微小な変化をする場合もあるが、図中ではグラフの変化を簡略化して示す。さらに、図6に示すように、ユーザからの時間範囲の指定等の操作を受け付けるための操作用ポインタも表示される。
このような表示において、ユーザからの選択指示操作に基づいて、データ編集の対象として、第1時系列データ51と、第2時系列データ52とが選択されたとする。また、これら2つの時系列データを連結する旨の指示操作がなされたとする。
これらの指示操作に応じて、加工部413は、第1時系列データ51と第2時系列データ52の間に、時間範囲(すなわち、時間的な長さ)を有するがパラメータの値が存在しない補間対象区間53(図中において破線の枠で示す)を隣接して含ませる加工を行う。なお、補間対象区間53の時間範囲の長さは、予め設定しておいてもよいし、ユーザの操作指示に基づいて決定してもよい。
これらの指示操作に応じて、加工部413は、第1時系列データ51と第2時系列データ52の間に、時間範囲(すなわち、時間的な長さ)を有するがパラメータの値が存在しない補間対象区間53(図中において破線の枠で示す)を隣接して含ませる加工を行う。なお、補間対象区間53の時間範囲の長さは、予め設定しておいてもよいし、ユーザの操作指示に基づいて決定してもよい。
そして、補間部414は、加工後の時系列データに含まれる、補間対象区間53を補間対象として、補間データで補間する。図6には、この補間後の時系列データが示されている。このように、パラメータの値が存在しない補間対象区間53を敢えて設け、この補間対象区間53に対して補間を行うことにより、これら2つの時系列データが時間軸上で滑らかにつながるので、各種パラメータの相互関係性や前後の連続性を保持することが可能となる。
この場合、補間部414は、例えば、第1時系列データ51の終点におけるパラメータの値と、第2時系列データ52の始点におけるパラメータの値と、補間対象区間53の時間範囲の長さに基づいて、これら2つの時系列データが時間軸上で滑らかにつながるように補間データを生成し、時系列データを補間する。
このような時系列データの補間の手法としては、例えば、Linear(1次)、EaseIn(2次)、EaseOut(2次)、EaseInOut(3次)、5次、及び7次等の、補間に関する既存の手法を用いることができる。この場合に、説明のための一例として、補間対象区間53における始点の位置の値(ここでは、第1時系列データ51の終点における値)が「0」であり速度の値が「0」であり、補間対象区間53における終点のパラメータの値(ここでは、第2時系列データ52の始点における値)が「0」であり速度の値が「0」であったとする。この前提において、位置の値を補間することを想定する。なお、以下の説明では、説明を明確とするために、補間により変化した位置(Position)の値のみならず、この補間に伴い変化した速度(Velocity)の値と、この補間に伴い変化した加速度(Acceleration)の値もそれぞれ縦軸に示し、横軸を時間としたグラフを図示する。ここで、上述したように、位置と、速度と、加速度は、微積分演算により置換可能なパラメータであるので、補間に伴う位置の値の変化により、速度の値と加速度の値も変化する。
図7に補間の手法として、Linear(1次)を用いて、補間対象区間53の位置の値を補間した場合のグラフを示す。この場合、図示するように始点から終点まで一定速度で変化するように補間をすることができる。
図8に補間の手法として、EaseIn(2次)を用いて、補間対象区間53の位置の値を補間した場合のグラフを示す。この場合、図示するように始点の位置変化が滑らかとなるように補間をすることができる。
図9に補間の手法として、EaseOut(2次)を用いて、補間対象区間53の位置の値を補間した場合のグラフを示す。この場合、図示するように終点の位置変化が滑らかとなるように補間をすることができる。
図10に補間の手法として、EaseInOut(3次)を用いて、補間対象区間53の位置の値を補間した場合のグラフを示す。この場合、図示するように始点と終点の双方での位置変化が滑らかとなるように補間をすることができる。
図11に補間の手法として、5次を用いて、補間対象区間53の位置の値を補間した場合のグラフを示す。この場合、図示するように始点と終点の双方での位置変化を滑らかに変化し、且つ、始点と終点の速度変化が滑らかとなるように補間をすることができる。
図12に補間の手法として、7次を用いて、補間対象区間53の位置の値を補間した場合のグラフを示す。この場合、図示するように始点と終点の双方での位置変化を滑らかに変化し、且つ、始点と終点の速度及び加速度の変化が滑らかとなるように補間をすることができる。
このように、補間部414は、様々な補間の手法を選択することができる。そのため、ユーザは、補間後のデータに対応する再現データを、第2駆動装置20において実行(すなわち、再現データに対応する動作を再現)させた場合の動作結果が好ましくないような場合に、他の補間の手法を選択して補間をやり直すことにより、より適切な補間を行うことが可能となる。
なお、上述の「連結」を行う場合の説明において、加工部413は、第1時系列データ51終了時点と第2時系列データ52開始時点との間に、補間対象区間53を隣接して含ませる加工を行っていた。すなわち、加工後の時系列データに、第1時系列データ51と第2時系列データ52の全てが含まれるように加工をしていた。
これに限らず、加工部413は、補間対象区間53が、第1時系列データ51や、第2時系列データ52の一部と重複するように加工をしてもよい。例えば、第1時系列データ51の終了付近や第2時系列データの開始付近に、補間対象区間53が重複するようにしてもよい。このようにしても結果として、時系列の順に、第1時系列データ51の補間対象区間53と重複していない部分と、補間対象区間53と、第2時系列データ52の補間対象区間53と重複していない部分と、を隣接して含ませることができる。
これに限らず、加工部413は、補間対象区間53が、第1時系列データ51や、第2時系列データ52の一部と重複するように加工をしてもよい。例えば、第1時系列データ51の終了付近や第2時系列データの開始付近に、補間対象区間53が重複するようにしてもよい。このようにしても結果として、時系列の順に、第1時系列データ51の補間対象区間53と重複していない部分と、補間対象区間53と、第2時系列データ52の補間対象区間53と重複していない部分と、を隣接して含ませることができる。
このような一部が重複する加工を行う場合、補間部414は、例えば、第1時系列データ51の補間対象区間53と重複していない部分の終点におけるパラメータの値と、第2時系列データ52の補間対象区間53と重複していない部分の始点におけるパラメータの値と、補間対象区間53の時間範囲の長さに基づいて、これら2つの時系列データが時間軸上で滑らかにつながるように補間データを生成する。そして、この補間データで、補間対象区間53(第1時系列データ51や第2時系列データ52と重複する部分も含む)を、補間するようにすればよい。
なお、このような一部が重複する加工を行う場合に、補間対象区間53が、第1時系列データ51や第2時系列データ52と、どの程度の時間範囲だけ重複するか(すなわち、どの程度の時間の長さだけ重複するか)については、予め設定しておいてもよいし、ユーザの操作指示に基づいて決定してもよい。これにより、ユーザの意図に基づいて、第1時系列データ51の任意の時間範囲と、第2時系列データ52の任意の時間範囲とを容易に連結することが可能となる。
なお、このような一部が重複する加工を行う場合に、補間対象区間53が、第1時系列データ51や第2時系列データ52と、どの程度の時間範囲だけ重複するか(すなわち、どの程度の時間の長さだけ重複するか)については、予め設定しておいてもよいし、ユーザの操作指示に基づいて決定してもよい。これにより、ユーザの意図に基づいて、第1時系列データ51の任意の時間範囲と、第2時系列データ52の任意の時間範囲とを容易に連結することが可能となる。
図13は、図6と同様に、データ編集処理における、提示部412の表示の模式図である。図13では、補間を伴う加工の1つである「切り抜き」を行う場面を想定する。なお、図6と共通する点については、重複する説明を省略する。なお、図13では、軸Aと軸Bが存在することを想定する。このように、加工部413が行う各加工において、軸数について特に制限はなく、任意の軸数に対応する時系列データを加工対象とすることができる。
切り抜きでは、切り抜き対象の時系列データから、ユーザに指定された時系列データの時間範囲を残すように切り抜く一方で、指定されていない時系列データの時間範囲については削除する。
例えば、図13(A)に示すように、操作ポインタを用いたユーザの時間範囲の指定指示操作により、軸Aについては、時系列データ54a、時系列データ55a、及び時系列データ56aからなる一連の時系列データから、時系列データ54aが切り抜き対象の時間範囲として指定(指定された時間範囲にハッチングを付す)されたとする。同様に、軸Bについては、時系列データ54b、時系列データ55b、及び時系列データ56bからなる一連の時系列データから、時系列データ54bが切り抜き対象の時間範囲として指定されたとする。
これらの指示操作に応じて、加工部413は、図13(B)に示すように、時系列データ54aと時系列データ54bを残すように切り抜く一方で、指定されていない時系列データ55a、時系列データ56a、時系列データ55b、及び時系列データ56bについては削除する。また、これに伴い、補間部414は、時系列データ54aの終点のパラメータの値に対応して、補間データを再度生成し、補間対象区間57aに対して再度補間を行う。同様に、例えば、補間部414は、切り抜き対象の時系列データの前に補間対象区間が存在する場合には、切り抜き対象の時系列データの始点のパラメータの値に対応して、補間データを再度生成し、補間対象区間に対して再度補間を行う。
これにより、ユーザは時間範囲の指定をするのみで、加工対象とする時系列データ(すなわち、補間対象区間に隣接する第1時系列データまたは第2時系列データ)を選択することができる。すなわち、直感的で簡便なユーザインタフェースをユーザに対して提供することができる。
図14は、図6等と同様に、データ編集処理における、提示部412の表示の模式図である。図14では、補間を伴う加工の1つである「切り取り」を行う場面を想定する。なお、図6等と共通する点については、重複する説明を省略する。
切り取りでは、切り取り対象の時系列データから、ユーザに指定された時系列データの時間範囲を削除する一方で、指定されていない時系列データの時間範囲については残すように切り取る。
切り取りでは、切り取り対象の時系列データから、ユーザに指定された時系列データの時間範囲を削除する一方で、指定されていない時系列データの時間範囲については残すように切り取る。
例えば、図14(A)に示すように、操作ポインタを用いたユーザの時間範囲の指定指示操作により、軸Aについては、時系列データ58a、及び時系列データ59aからなる一連の時系列データから、時系列データ59aが切り取り対象の時間範囲として指定(指定された時間範囲にハッチングを付す)されたとする。同様に、軸Bについては、時系列データ58b、及び時系列データ59b(ここでは、加工前から、一部の時間範囲のパラメータは存在しない)からなる一連の時系列データから、時系列データ59bが切り取り対象の時間範囲として指定されたとする。
これらの指示操作に応じて、加工部413は、図14(B)に示すように、指定されている時系列データ59bと時系列データ59bを削除するように切り取る一方で、指定されていない時系列データ58a、及び時系列データ58bについては残す。また、これに伴い、補間部414は、時系列データ58aの終点のパラメータの値に対応して、補間データを再度生成し、補間対象区間60aに対して再度補間を行う。同様に、例えば、補間部414は、切り取り対象ではない時系列データの前に補間対象区間が存在する場合には、切り取り対象ではない時系列データの始点のパラメータの値に対応して、補間データを再度生成し、補間対象区間に対して再度補間を行う。
これにより、ユーザは時間範囲の指定をするのみで、加工対象とする時系列データ(すなわち、補間対象区間に隣接する第1時系列データまたは第2時系列データ)を選択することができる。すなわち、直感的で簡便なユーザインタフェースをユーザに対して提供することができる。
図15は、図6等と同様に、データ編集処理における、提示部412の表示の模式図である。図15では、補間を伴う加工の1つである「値変更」を行う場面を想定する。なお、図6等と共通する点については、重複する説明を省略する。
値変更では、値変更対象の時系列データから、ユーザに指定された時点におけるパラメータの値を、ユーザの指定に基づいて変更する。
例えば、図15(A)に示すように、操作ポインタを用いたユーザの指定指示操作により、時点61が指定されると共に、この時点61における変更後のパラメータの値(ここでは、力の値)の指定指示操作がなされたとする。
例えば、図15(A)に示すように、操作ポインタを用いたユーザの指定指示操作により、時点61が指定されると共に、この時点61における変更後のパラメータの値(ここでは、力の値)の指定指示操作がなされたとする。
これらの指示操作に応じて、加工部413は、指定された時点61を、ユーザの指定したパラメータの値(ここでは、力の値)に変更する。ただし、そのままでは、時点61において、前後のパラメータの値と関わりなく瞬間的に変化することになり、動作の連続性が保てない。そこで、図15(B)に示すように、補間部414は、時点61を含む時間範囲を補間対象区間62として扱う。そして、補間部414は、この補間対象区間62の始点のパラメータの値(ここでは、力の値)と時点61における変更後のパラメータの値(ここでは、力の値)に対応して、補間データを生成し、補間対象区間62の前半である補間対象区間62-1の既存のパラメータの値(ここでは、力の値)を補間データで置き換えることで補間する。同様にして、補間部414は、この補間対象区間62の終点のパラメータの値(ここでは、力の値)と時点61における変更後のパラメータの値(ここでは、力の値)に対応して、補間データを生成し、補間対象区間62の後半である補間対象区間62-2の既存のパラメータの値(ここでは、力の値)を補間データで置き換えることで補間する。
これにより、時点の指定を伴うパラメータの値の変更の指定をするのみで、補間対象となる時間範囲を有する区間を選択することができる。すなわち、直感的で簡便なユーザインタフェースをユーザに対して提供することができる。また、補間対象とする時系列データを適切に補間することにより、パラメータの値が瞬間的に変化することはなくなり、動作の連続性を保つことができる。
図16は、図6等と同様に、データ編集処理における、提示部412の表示の模式図である。図16では、補間を伴う加工の1つである「値のオフセット」を行う場面を想定する。なお、図6等と共通する点については、重複する説明を省略する。
値のオフセットでは、値のオフセット対象の時系列データから、時系列データの一部または全部の時間範囲に対して、値をオフセットする。
例えば、図16(A)に示すように、位置の始点の値66が「0」であり、位置の最大値63が「4」という時系列データが存在したとする。ここで、位置の最大値63は、例えば、時系列データの取得元となった第1駆動装置10や第2駆動装置20の可動範囲や、時系列データに対応する所定の動作において想定される可動範囲によって決定される。
例えば、図16(A)に示すように、位置の始点の値66が「0」であり、位置の最大値63が「4」という時系列データが存在したとする。ここで、位置の最大値63は、例えば、時系列データの取得元となった第1駆動装置10や第2駆動装置20の可動範囲や、時系列データに対応する所定の動作において想定される可動範囲によって決定される。
この場合に、操作ポインタを用いたユーザの指定指示操作により、位置の値の全部の時間幅が指定されると共に、オフセットの値として「+10」の指定指示操作がなされたとする。この場合、ユーザは、例えば、位置の始点の値が「10」の第1駆動装置10や第2駆動装置20に、この時系列データを適用するためにオフセットを行うことを意図している。
これらの指示操作に応じて、加工部413は、位置の値の全部の時間幅において、位置の値「+10」されるように位置の値の補間を行う。すなわち、オフセットされるように補間を行う。これにより、図16(B)に示すように、時系列データにおける波形の形状は保たれたまま、位置の始点の値66が「10」となり、位置の最大値63が「14」となる。
これにより、時間範囲の指定とオフセットする値の指定とをするのみで、ユーザの意図に沿ったオフセットを実現することができる。すなわち、直感的で簡便なユーザインタフェースをユーザに対して提供することができる。
図17は、図6等と同様に、データ編集処理における、提示部412の表示の模式図である。図17では、近似式の生成を伴う加工の1つである「値の拡大または縮小」を行う場面を想定する。なお、図6等と共通する点については、重複する説明を省略する。
図17は、図6等と同様に、データ編集処理における、提示部412の表示の模式図である。図17では、近似式の生成を伴う加工の1つである「値の拡大または縮小」を行う場面を想定する。なお、図6等と共通する点については、重複する説明を省略する。
値の拡大または縮小では、値の拡大または縮小対象の時系列データから、時系列データの一部または全部の時間範囲に対して、値を拡大または縮小する。
例えば、図17(A)に示すように、位置の始点の値66が「0」であり、位置の最大値65が「10」という時系列データが存在したとする。ここで、位置の最大値65は、例えば、時系列データの取得元となった第1駆動装置10や第2駆動装置20の可動範囲や、時系列データに対応する所定の動作において想定される可動範囲によって決定される。
例えば、図17(A)に示すように、位置の始点の値66が「0」であり、位置の最大値65が「10」という時系列データが存在したとする。ここで、位置の最大値65は、例えば、時系列データの取得元となった第1駆動装置10や第2駆動装置20の可動範囲や、時系列データに対応する所定の動作において想定される可動範囲によって決定される。
この場合に、操作ポインタを用いたユーザの指定指示操作により、位置の値の全部の時間幅が指定されると共に、拡大率として「300%」の指定指示操作がなされたとする。この場合、ユーザは、例えば、可動範囲が「30」の第1駆動装置10や第2駆動装置20に、この時系列データを適用するために拡大を行うことを意図している。
この指示操作に応じて、近似式生成部415は、値の拡大または縮小対象の時系列データに基づいて、この時系列データの近似式を生成する。この場合の近似式の生成の手法としては、例えば、線形近似、多項式近似(例えば、スプライン補間、ラグランジュ補間等)、指数近似、対数近似、及び累乗近似等についての、近似式の生成に関する既存の手法を用いることができる。
そして、加工部413は、この近似式生成部415が生成した近似式に基づいて、近似式の生成元となった時系列データのパラメータの値を拡大または縮小する加工(ここでは、拡大率「300%」となる加工)を行う。例えば、加工部413は、この近似式生成部415が生成した近似式に係数を乗算または除算することにより加工を行う。これにより、図17(B)に示すように、時系列データにおける波形の形状は保たれたまま、位置の始点の値66が「0」となり、位置の最大値65が「30」となる。
これにより、時系列データを定式化して表現し、時系列データのデータ量を削減することができる。また、時系列データを定式化して表現し、パラメータの値を拡大または縮小したデータを、連続したデータとして生成でき、時系列データの分解能を低下させることなくパラメータの値を変更することができる。 また、近似式生成部415が生成した近似式に、オフセット値を加算または減算することにより値の拡大や縮小と共に、あるいは、値の拡大や縮小と別途に、値のオフセット加工を行うこともできる。
図18は、図6等と同様に、データ編集処理における、提示部412の表示の模式図である。図18では、近似式の生成を伴う加工の1つである「時間範囲の拡大または縮小」を行う場面を想定する。なお、図6等と共通する点については、重複する説明を省略する。
時間範囲の拡大または縮小では、時間範囲の拡大または縮小対象の時系列データから、時系列データの一部または全部の時間範囲に対して、時間範囲を拡大または縮小する。
例えば、図18(A)に示すように、時間範囲t1の時系列データが存在したとする。なお、表示領域67には、この時系列データの時間範囲t1の時間の長さが「11分26秒」であり、操作ポインタが現在「1分8秒」の時点を選択していることが表示される。
この場合に、操作ポインタを用いたユーザの指定指示操作により、全部の時間幅が指定されると共に、縮小率として「50%」の指定指示操作がなされたとする。この場合、ユーザは、例えば、第1駆動装置10や第2駆動装置20に、この時系列データを0.5倍速で適用するために縮小を行うことを意図している。
例えば、図18(A)に示すように、時間範囲t1の時系列データが存在したとする。なお、表示領域67には、この時系列データの時間範囲t1の時間の長さが「11分26秒」であり、操作ポインタが現在「1分8秒」の時点を選択していることが表示される。
この場合に、操作ポインタを用いたユーザの指定指示操作により、全部の時間幅が指定されると共に、縮小率として「50%」の指定指示操作がなされたとする。この場合、ユーザは、例えば、第1駆動装置10や第2駆動装置20に、この時系列データを0.5倍速で適用するために縮小を行うことを意図している。
この指示操作に応じて、近似式生成部415は、値の拡大または縮小対象の時系列データに基づいて、この時系列データの近似式を生成する。近似式を生成するための既存の手法については、上述したとおりである。
そして、加工部413は、この近似式生成部415が生成した近似式に基づいて、近似式の生成元となった時系列データの時間範囲を拡大または縮小する加工(ここでは、縮小率「50%」となる加工)を行う。例えば、加工部413は、この近似式生成部415が生成した近似式に係数を乗算または除算することにより加工を行う。これにより、図18(B)に示すように、パラメータの値の始点の値や最大値は保たれたまま、時間範囲t2に縮小される。なお、表示領域67には、この時系列データの時間範囲t2の時間の長さが「5分43秒」であり、操作ポインタが現在「34秒」の時点を選択していることが表示される。すなわち、縮小率「50%」に縮小されていることが表示される。
これにより、時系列データを定式化して表現し、時系列データのデータ量を削減することができる。また、時系列データを定式化して表現し、時間幅を拡大または縮小したデータを、連続したデータとして生成でき、時系列データの分解能を低下させることなく時間幅を変更することができる。
また、近似式生成部415が生成した近似式に、オフセット値を加算または減算することにより時間範囲の拡大や縮小と共に、あるいは、時間範囲の拡大や縮小と別途に、時間範囲のオフセット加工(すなわち、時間範囲を時間的に前後に移動させる加工)を行うこともできる。
また、近似式生成部415が生成した近似式に、オフセット値を加算または減算することにより時間範囲の拡大や縮小と共に、あるいは、時間範囲の拡大や縮小と別途に、時間範囲のオフセット加工(すなわち、時間範囲を時間的に前後に移動させる加工)を行うこともできる。
次に、正規化管理部416による正規化及び非正規化について説明する。正規化管理部416は、時系列データに基づいて、この時系列データを正規化または非正規化する。この場合に、正規化管理部416は、正規化前または非正規化後の時系列データを実行する装置の属性に応じて、正規化または非正規化を実行する。
正規化または非正規化の生成の手法としては、例えば、最小最大スケール変換、分散スケール変換、及び分位数を用いたスケール変換等の、正規化または非正規化の生成に関する既存の手法を用いることができる。なお、位置のパラメータの値を正規化または非正規化する場合には第1手法を用い、力のパラメータの値を正規化または非正規化する場合には第2手法を用いるというように、パラメータごとに用いる手法を異ならせるようにしてもよい。
この場合に、正規化及び非正規化に用いる最小値や最大値としては、例えば、時系列データにおけるパラメータの値の最小値や最大値を用いることができる。また、他にも、正規化及び非正規化する時系列データに対応する(すなわち、この時系列データの取得元となった、または、これからこの時系列データを再現データとして実行する)第1駆動装置10や第2駆動装置20固有の属性(例えば、可動範囲やトルク出力範囲)に基づく最小値や最大値を用いることができる。この場合、時系列データの取得元となった各装置の属性(例えば、可動範囲やトルク出力範囲)に基づいて正規化を行うことができる。また、これらからこの時系列データを再現データとして実行する各装置の属性(例えば、可動範囲やトルク出力範囲)に基づいてこの正規化した時系列データの非正規化を行うことができる。
これにより、何れかの制御装置30が装置を制御した際の時系列データを取得して正規化するのみで、正規化された汎用の時系列データを生成することができる。また、この汎用の時系列データを再現データとして実行させる際には、再現データを実行する装置の属性に応じて非正規化を行い、その装置固有の再現データを生成し、対応する動作を再現させることができる。すなわち、正規化した汎用の時系列データから、多様な装置それぞれに対応した時系列データを容易に生成することができることから、多様な装置それぞれに応じた時系列データを予め用意する人的労力を省くことができる。また、時系列データの管理を容易にすることができる。
以上、データ編集処理における、編集データの生成の詳細について説明した、なお、データ編集処理では、時系列データに対して、上述した様々な加工等を任意に組み合わせて行うことも可能である。例えば、時系列データを結合して補間した後に、その時系列データをさら切り抜いてさらに補間したり、その時系列データをさらに拡大または縮小したり、その時系列データをさらに正規化等したりすることが可能である。また、例えば、パラメータの値や時間範囲の拡大または縮小以外の加工を行う場合に、データ削減等を目的として近似式を生成するようなことも可能である。
次に、データ加工システムSにより行われる各処理の処理内容の詳細について説明をする。
次に、データ加工システムSにより行われる各処理の処理内容の詳細について説明をする。
[時系列データ取得処理]
図19は、データ加工システムSが実行する時系列データ取得処理の流れを説明するフローチャートである。時系列データ取得処理は、ユーザが第1駆動装置10をマスタ装置として用いて所定の行為を開始したことや、ユーザが第1駆動装置10をマスタ装置として用いて所定の行為を開始した状態でユーザによる時系列データ取得処理の開始指示操作を受け付けたことに伴い実行される。
図19は、データ加工システムSが実行する時系列データ取得処理の流れを説明するフローチャートである。時系列データ取得処理は、ユーザが第1駆動装置10をマスタ装置として用いて所定の行為を開始したことや、ユーザが第1駆動装置10をマスタ装置として用いて所定の行為を開始した状態でユーザによる時系列データ取得処理の開始指示操作を受け付けたことに伴い実行される。
まず、制御装置30の処理内容について説明をする。
ステップS11において、力触覚制御部311は、アクチュエータ12によって移動される移動対象物の位置(具体的には、位置または角度)と、アクチュエータ22によって移動される移動対象物の位置(具体的には、位置または角度)と、を取得する。
ステップS11において、力触覚制御部311は、アクチュエータ12によって移動される移動対象物の位置(具体的には、位置または角度)と、アクチュエータ22によって移動される移動対象物の位置(具体的には、位置または角度)と、を取得する。
ステップS12において、力触覚制御部311は、実空間の入力ベクトルを仮想空間のベクトルに変換する。
ステップS13において、力触覚制御部311は、速度(位置)の領域における演算及び力の領域における演算を実行する。
ステップS13において、力触覚制御部311は、速度(位置)の領域における演算及び力の領域における演算を実行する。
ステップS14において、力触覚制御部311は、速度(位置)及び力の領域の値を制御対象システムCSへの入力の領域の値(実空間のベクトル)に逆変換する。
ステップS15において、力触覚制御部311は、アクチュエータ12及びアクチュエータ22の指令値を出力する。
ステップS15において、力触覚制御部311は、アクチュエータ12及びアクチュエータ22の指令値を出力する。
ステップS16において、時系列データ取得部312は、力触覚制御部311によるステップS11からステップS16までの処理で算出された制御の履歴の時系列データ(例えば、第1駆動装置10及び第2駆動装置20における、時系列データ取得処理の実行に伴い変化する、位置及び力のパラメータの時系列データ)を取得する。
ステップS17において、力触覚制御部311は、ユーザによる第1駆動装置10をマスタ装置として用いた所定の行為の実行が終了したか否かを判定する。所定の行為の実行が終了した場合は、ステップS17においてYesと判定され、処理はステップS18に進む。一方で、所定の行為の実行が終了していない場合は、ステップS17においてNoと判定され、処理はステップS11に戻り繰り返される。
ステップS18において、時系列データ取得部312は、ステップS16において取得された時系列データをデータ加工装置40に対して送信する。
ステップS19において、時系列データ取得部312は、ステップS16において取得された時系列データを時系列データ記憶部321に記憶する。
ステップS19において、時系列データ取得部312は、ステップS16において取得された時系列データを時系列データ記憶部321に記憶する。
なお、本フローチャートでは、ステップS16を繰り返すたびに時系列データを一時的に記憶しておき、ステップS18及びステップS19において、一時的に記憶した時系列データを全てまとめて送信及び記憶することとしている。これに限らず、ステップS16を繰り返す都度、ステップS18及びステップS19同様の送信及び記憶を行うようにしてもよい。
次に、データ加工装置40の処理内容について説明をする。
ステップS21において、時系列データ取得部411は、制御装置30の時系列データ取得部312から送信された時系列データを、受信することにより取得する。
ステップS22において、時系列データ取得部411は、ステップS12において取得した時系列データを時系列データ記憶部421に記憶する。これにより、本処理は終了する。
ステップS21において、時系列データ取得部411は、制御装置30の時系列データ取得部312から送信された時系列データを、受信することにより取得する。
ステップS22において、時系列データ取得部411は、ステップS12において取得した時系列データを時系列データ記憶部421に記憶する。これにより、本処理は終了する。
以上説明した時系列データ取得処理によれば、第1駆動装置10及び第2駆動装置20の間で力触覚を伝達する制御を行うと共に、力触覚を伝達するために用いたパラメータの時系列データを取得することができる。
[データ編集処理]
図20は、データ加工システムSが実行するデータ編集処理の流れを説明するフローチャートである。データ編集処理は、データ加工装置40が、ユーザによる編集処理の開始指示操作を受け付けたことに伴い実行される。
図20は、データ加工システムSが実行するデータ編集処理の流れを説明するフローチャートである。データ編集処理は、データ加工装置40が、ユーザによる編集処理の開始指示操作を受け付けたことに伴い実行される。
ステップS31において、時系列データ取得部411は、ユーザからの選択指示操作に基づいて、データ編集の対象とする時系列データを、時系列データ記憶部421から読み出す。なお、再編集が行われる場合には、ユーザからの選択指示操作に基づいて、時系列データ取得部411は、データ編集の対象とする時系列データ(ここでは、既存の編集データ)を、編集データ記憶部422から読み出す。
ステップS32において、提示部412は、編集データ記憶部422が読み出した時系列データをユーザに対して提示する。
ステップS32において、提示部412は、編集データ記憶部422が読み出した時系列データをユーザに対して提示する。
ステップS33において、加工部413は、補間を伴う加工を実行するか否かを判定する。例えば、加工部413は、ユーザからの加工指示操作があった場合に、補間を伴う加工を実行する。ここで、補間を伴う加工とは、例えば、複数の時系列データの結合や、時系列データの切り抜きや、時系列データの切り取りや、時系列データのパラメータの値操作である。このような補間を伴う加工を実行する場合は、ステップS33においてYesと判定され、処理はステップS34に進む。一方で、補間を伴う加工を実行しない場合は、ステップS33においてNoと判定され、処理はステップS36に進む。
ステップS34において、加工部413は、時系列データに対して加工を実行する。
ステップS35において、補間部414は、ステップS34における加工後の時系列データに含まれるパラメータの値に基づいて補間データを生成し、この補間データによって加工後の時系列データを補間する。
ステップS35において、補間部414は、ステップS34における加工後の時系列データに含まれるパラメータの値に基づいて補間データを生成し、この補間データによって加工後の時系列データを補間する。
ステップS36において、加工部413は、近似式の生成を伴う加工を実行するか否かを判定する。例えば、加工部413は、ユーザからの加工指示操作があった場合に、近似式の生成を伴う加工を実行する。ここで、近似式の生成を伴う加工とは、例えば、時系列データのパラメータの値または時間範囲の、拡大または縮小等により実現される。このような近似式の生成を伴う加工を実行する場合は、ステップS36においてYesと判定され、処理はステップS37に進む。一方で、近似式の生成を伴う加工を実行しない場合は、ステップS36においてNoと判定され、処理はステップS39に進む。
ステップS37において、近似式生成部415は、時系列データに基づいて、この時系列データの近似式を生成する。
ステップS38において、加工部413は、ステップS37において生成された時系列データの近似式に対して加工を実行する。
ステップS38において、加工部413は、ステップS37において生成された時系列データの近似式に対して加工を実行する。
ステップS39において、正規化管理部416は、時系列データを正規化するか否かを判定する。例えば、正規化管理部416は、ユーザからの正規化指示操作があった場合に、時系列データを正規化する。時系列データを正規化する場合は、ステップS39においてYesと判定され、処理はステップS40に進む。一方で、時系列データを正規化しない場合は、ステップS39においてNoと判定され、処理はステップS41に進む。
ステップS40において、正規化管理部416は、時系列データに基づいて、この時系列データを正規化する。
ステップS40において、正規化管理部416は、時系列データに基づいて、この時系列データを正規化する。
ステップS41において、加工部413は、編集処理を終了するか否かを判定する。例えば、加工部413は、ユーザによる編集処理の終了指示操作があった場合に、編集処理を終了する。編集処理を終了する場合は、ステップS41においてYesと判定され、処理はステップS42に進む。一方で、場合は、編集処理を終了しない場合は、ステップS41においてNoと判定され、処理はステップS32に戻り繰り返される。
ステップS42において、加工部413は、ステップS31からステップS41までの処理によって、補間等を伴う加工や非正規化等を実施した時系列データを、編集データとして、編集データ記憶部422に記憶する。これにより、本処理は終了する。
以上説明した、データ編集処理によれば、時系列データを、補間等を伴う加工や正規化等を行うといった方法で編集することにより、編集された時系列データを生成することができる。
[再現処理]
図21は、データ加工システムSが実行する再現処理の流れを説明するフローチャートである。再現処理は、データ加工装置40が、ユーザによる再現処理の開始指示操作を受け付けたことに伴い実行される。
図21は、データ加工システムSが実行する再現処理の流れを説明するフローチャートである。再現処理は、データ加工装置40が、ユーザによる再現処理の開始指示操作を受け付けたことに伴い実行される。
まず、データ加工装置40の処理内容について説明をする。
ステップS51において、再現データ生成部417は、ユーザからの選択指示操作に基づいて、再現対象とする(すなわち、再現データとする)編集データを、編集データ記憶部422から読み出す。
ステップS51において、再現データ生成部417は、ユーザからの選択指示操作に基づいて、再現対象とする(すなわち、再現データとする)編集データを、編集データ記憶部422から読み出す。
ステップS52において、正規化管理部416は、編集データを非正規化するか否かを判定する。例えば、正規化管理部416は、ユーザからの非規化指示操作があった場合に、編集データを非正規化する。編集データを非正規化する場合は、ステップS52においてYesと判定され、処理はステップS53に進む。一方で、編集データを非正規化しない場合は、ステップS52においてNoと判定され、処理はステップS54に進む。
ステップS53において、正規化管理部416は、非正規化後の時系列データである再現データを実行する制御装置30の属性に応じて、非正規化を実行する。
ステップS54において、再現データ生成部417は、ステップS51において読み出した編集データまたはステップS53において非正規化後のデータに基づいて、再現データを生成する。
ステップS54において、再現データ生成部417は、ステップS51において読み出した編集データまたはステップS53において非正規化後のデータに基づいて、再現データを生成する。
ステップS55において、再現データ生成部417は、ステップS54において生成した再現データを、再現データに対応する動作を再現する制御装置30に対して送信する。
ステップS56において、再現データ生成部417は、ステップS54において生成した再現データを、再現データ記憶部423に記憶する。
ステップS56において、再現データ生成部417は、ステップS54において生成した再現データを、再現データ記憶部423に記憶する。
次に、制御装置30の処理内容について説明をする。
ステップS61において、再現データ取得部313は、データ加工装置40の再現データ生成部417から送信された再現データを、受信することにより取得する。
ステップS62において、再現データ取得部313は、ステップS61において取得した再現データを再現データ記憶部322に記憶する。
ステップS61において、再現データ取得部313は、データ加工装置40の再現データ生成部417から送信された再現データを、受信することにより取得する。
ステップS62において、再現データ取得部313は、ステップS61において取得した再現データを再現データ記憶部322に記憶する。
ステップS63において、力触覚制御部311は、ユーザからの選択指示操作に基づいて、再現対象とする再現データを、再現データ記憶部322から読み出すと共に、一方の駆動装置のアクチュエータ(ここでは、アクチュエータ22)によって移動される移動対象物の位置(具体的には、位置または角度)を取得する。
ステップS64において、力触覚制御部311は、実空間の入力ベクトルを仮想空間のベクトルに変換する。
ステップS65において、力触覚制御部311は、速度(位置)の領域における演算及び力の領域における演算を実行する。
ステップS65において、力触覚制御部311は、速度(位置)の領域における演算及び力の領域における演算を実行する。
ステップS66において、力触覚制御部311は、速度(位置)及び力の領域の値を制御対象システムCSへの入力の領域の値(実空間のベクトル)に逆変換する。
ステップS67において、力触覚制御部311は、一方のアクチュエータ(ここでは、アクチュエータ22)の指令値を出力する。なお、再現処理においては、他方のアクチュエータ(ここでは、アクチュエータ12)の指令値は出力されない。
ステップS67において、力触覚制御部311は、一方のアクチュエータ(ここでは、アクチュエータ22)の指令値を出力する。なお、再現処理においては、他方のアクチュエータ(ここでは、アクチュエータ12)の指令値は出力されない。
ステップS68において、力触覚制御部311は、本処理で再現中の再現データが終了したか否かを判定する。再現中の再現データが終了した場合は、ステップS68においてYesと判定され、本処理は終了する。一方で、再現中の再現データが終了していない場合は、ステップS68においてNoと判定され、処理はステップS63に戻り繰り返される。
以上説明した再現処理によれば、時系列データに対して、補間等を伴う加工や非正規化等を行うことによって生成した再現データを、第2駆動装置20において実行(すなわち、再現データに対応する動作を再現)させることができる。
このように、データ加工システムSは、力触覚を伝達するために用いられるパラメータの時系列データを加工すると共に、加工後の時系列データのパラメータの値に即した補間データを生成し、この補間データによって加工後の時系列データを適切に補間する。これにより、力触覚に関するデータを、従来のように検出した力触覚そのものをリアルタイムに伝達する用途のみならず、他の用途にも適切に利用することができる。
従って、データ加工システムSによれば、力触覚に関するデータを、より活用する、という課題を解決することが可能となる。
従って、データ加工システムSによれば、力触覚に関するデータを、より活用する、という課題を解決することが可能となる。
[変形例]
以上、本発明の実施形態について説明したが、この実施形態は例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明は、本発明の要旨を逸脱しない範囲で、その他の様々な実施形態を取ることが可能である共に、省略及び置換等種々の変形を行うことができる。
以上、本発明の実施形態について説明したが、この実施形態は例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明は、本発明の要旨を逸脱しない範囲で、その他の様々な実施形態を取ることが可能である共に、省略及び置換等種々の変形を行うことができる。
[変形例1]
上述した実施形態では、制御装置30と、データ加工装置40とを異なる装置として実現していた。これに限らず、例えば、制御装置30とデータ加工装置40とを一体の装置として実現してもよい。すなわち、力触覚を伝達する制御を行うことにより時系列データを取得すると共に、この時系列データを自身で編集可能な装置として実現してもよい。他にも、例えば、データ加工装置40をネットワークと接続せずに、オフラインで編集できるようにしてもよい。他にも、例えば、データ加工装置40から再現データを生成する再現処理を行う機能を省き、時系列データを取得する時系列データ取得処理と、この時系列データを編集するデータ編集処理を行う機能を備える装置としてデータ加工装置40を実現してもよい。
上述した実施形態では、制御装置30と、データ加工装置40とを異なる装置として実現していた。これに限らず、例えば、制御装置30とデータ加工装置40とを一体の装置として実現してもよい。すなわち、力触覚を伝達する制御を行うことにより時系列データを取得すると共に、この時系列データを自身で編集可能な装置として実現してもよい。他にも、例えば、データ加工装置40をネットワークと接続せずに、オフラインで編集できるようにしてもよい。他にも、例えば、データ加工装置40から再現データを生成する再現処理を行う機能を省き、時系列データを取得する時系列データ取得処理と、この時系列データを編集するデータ編集処理を行う機能を備える装置としてデータ加工装置40を実現してもよい。
他にも、例えば、第1駆動装置10、第2駆動装置20、及び制御装置30の三台が必ずしも組に含まれてなくともよい。例えば、既存の時系列データや再現データに基づいた動作を行うための第2駆動装置20と、この動作を制御する制御装置30と、の二台のみの組が存在していてもよい。この場合、この二台のみの組において、時系列データ取得処理は行わない。それに代えて、この二台のみの組の制御装置30は、既存の時系列データ(例えば、他の組において取得された既存の時系列データ)や、この既存の時系列データを編集してから生成された再現データを、データ加工装置40から取得する。そして、制御装置30は、取得した、既存の時系列データや再現データに基づいて、第2駆動装置20の動作を制御する。なお、この場合に、制御装置30とデータ加工装置40とを一体の装置として実現する、上述の変形例を組み合わせることにより、例えば、既存の時系列データをダウンロードして、自身で編集を行ったり、自身で第2駆動装置20の動作を制御したりするロボット等を実現することができる。
他にも、例えば、1台の制御装置30と、複数の第1駆動装置10及び複数の第2駆動装置20が含まれる組が存在していてもよい。このような組においては、例えば、多自由度ロボットアームのマスタ装置として複数の第1駆動装置10が動作し、多自由度ロボットアームのスレーブ装置として複数の第2駆動装置20が動作し、これら全ての動作を1台の制御装置30で制御する。他にも、例えば、制御装置30を、第1駆動装置10または第2駆動装置20と一体の装置として実現してもよい。他にも、例えば、クラウドサーバを構成する複数のサーバ装置等により、データ加工装置40を実現するようにしてもよい。
すなわち、上述した実施形態におけるシステム構成は一例に過ぎず、様々な構成に適宜変形することができる。
すなわち、上述した実施形態におけるシステム構成は一例に過ぎず、様々な構成に適宜変形することができる。
[変形例2]
上述した実施形態では、再現処理を行う場合、力触覚制御部311は、再現データ記憶部322に記憶された第2駆動装置20の動作を制御するための再現データに基づいて、第2駆動装置20のアクチュエータ22における再現データに基づいた動作を再現する制御を実行していた。すなわち、力触覚制御部311は、再現データに基づいた力触覚をアクチュエータ22に伝達する制御を実行していた。
上述した実施形態では、再現処理を行う場合、力触覚制御部311は、再現データ記憶部322に記憶された第2駆動装置20の動作を制御するための再現データに基づいて、第2駆動装置20のアクチュエータ22における再現データに基づいた動作を再現する制御を実行していた。すなわち、力触覚制御部311は、再現データに基づいた力触覚をアクチュエータ22に伝達する制御を実行していた。
これに限らず、再現処理を行う場合、力触覚制御部311は、再現データ記憶部322に記憶された第1駆動装置10の動作を制御するための再現データに基づいて、第1駆動装置10のアクチュエータ12における再現データに基づいた動作を再現する制御を実行するようにしてもよい。すなわち、力触覚制御部311は、再現データに基づいた力触覚をアクチュエータ12に伝達する制御を実行するようにしてもよい。
この場合、力触覚制御部311には、位置センサ13によって検出された時系列の位置(角度)の検出値が入力される。この時系列の位置(角度)の検出値は、アクチュエータ12の動作を表すものである。加えて、力触覚制御部311には、再現データにおける時系列の位置(角度)の値が入力される。この再現データにおける位置(角度)の値は、再現データにおけるアクチュエータ12の動作を表すものである。力触覚制御部311は、入力された位置(角度)及びこれらの位置(角度)から導出された力に対して、力触覚を伝達する座標変換を適用する。
なお、この場合に、再現データとして、位置(角度)及び力のパラメータの時系列データの値が入力されるようにしてもよい。この場合、力触覚制御部311は、再現データにおける位置(角度)及び力のパラメータの時系列の値と、位置センサ13から入力された位置(角度)及びこの位置(角度)から導出された力とに基づいて、力触覚を伝達する座標変換を適用する。
これにより、再現データに基づいた力触覚をアクチュエータ12に伝達することができ、力触覚に関するデータを、より様々な用途に活用することが可能となる。
なお、この場合に、再現データとして、位置(角度)及び力のパラメータの時系列データの値が入力されるようにしてもよい。この場合、力触覚制御部311は、再現データにおける位置(角度)及び力のパラメータの時系列の値と、位置センサ13から入力された位置(角度)及びこの位置(角度)から導出された力とに基づいて、力触覚を伝達する座標変換を適用する。
これにより、再現データに基づいた力触覚をアクチュエータ12に伝達することができ、力触覚に関するデータを、より様々な用途に活用することが可能となる。
[変形例3]
上述した実施形態に対して、所定の処理を追加するようにしてもよい。例えば、時系列データ取得処理において取得した時系列データに対して、ノイズ除去を目的とした前処理を行うようにしてもよい。
上述した実施形態に対して、所定の処理を追加するようにしてもよい。例えば、時系列データ取得処理において取得した時系列データに対して、ノイズ除去を目的とした前処理を行うようにしてもよい。
前処理としては、例えば、所定の周波数帯域のみを通過させ他の周波数帯域を減衰させるフィルタを用いるようにする。この場合、例えば、ローパスフィルタを用いることにより、時系列データにおける高周波ノイズ成分を除去することができる。
また、他にも、時系列データに含まれるパラメータの検出値において、所定の閾値を超える検出値を無視することとし、直前の検出値に置き換える、外れ値除去を前処理として行うようにしてもよい。他にも、例えば、時系列データに含まれるパラメータの検出値において、所定の閾値を超える検出値を飽和させ、閾値に置き換える、外れ値飽和を前処理として行うようにしてもよい。
これにより、時系列データに含まれるノイズを適切に除去することが可能となる。
これにより、時系列データに含まれるノイズを適切に除去することが可能となる。
[変形例4]
上述した実施形態では、マスタ装置として動作する第1駆動装置10に対するユーザの実際の操作に基づいて、スレーブ装置として動作する第2駆動装置20により、実際に物体への接触を伴う把持や移動や加工等の作業を実行することを想定した。これに限らず、データ加工装置40と制御装置30とが協働することにより、コンピュータによるシミュレーションでの仮想空間における、仮想的なマスタ装置に対する仮想的なユーザの操作に基づいて、仮想的なスレーブ装置により、仮想的な物体に対して把持等の作業を実行するようにしてもよい。そして、仮想的なマスタ装置への仮想的なユーザの操作を仮想的なスレーブ装置に伝達すると共に、仮想的なスレーブ装置に対する仮想的な物体からの反力の入力をマスタ装置に伝達するようにしてもよい。
上述した実施形態では、マスタ装置として動作する第1駆動装置10に対するユーザの実際の操作に基づいて、スレーブ装置として動作する第2駆動装置20により、実際に物体への接触を伴う把持や移動や加工等の作業を実行することを想定した。これに限らず、データ加工装置40と制御装置30とが協働することにより、コンピュータによるシミュレーションでの仮想空間における、仮想的なマスタ装置に対する仮想的なユーザの操作に基づいて、仮想的なスレーブ装置により、仮想的な物体に対して把持等の作業を実行するようにしてもよい。そして、仮想的なマスタ装置への仮想的なユーザの操作を仮想的なスレーブ装置に伝達すると共に、仮想的なスレーブ装置に対する仮想的な物体からの反力の入力をマスタ装置に伝達するようにしてもよい。
この場合に、制御装置30は、仮想的なマスタ装置が駆動する仮想的な第1機構と、仮想的なスレーブ装置が駆動する仮想的な第2機構との間で、力触覚を伝達する制御(バイラテラル制御)を行う。また、制御装置30は、この仮想的な装置間で力触覚を伝達する制御において力触覚を伝達するために用いたパラメータの時系列データを取得する。これにより、実際に物体への接触を伴う把持等の作業を実行することなく、コンピュータによるシミュレーションにより時系列データを取得することができる。
また、シミュレーション以外の手法により、時系列データを取得するようにしてもよい。例えば、ユーザの操作指示に基づいて作成された、時系列データを取得するようにしてもよい。また、他にも所定の条件に基づいて時系列データを自動作成する作成ツールで作成された、時系列データを取得するようにしてもよい。
そして、このシミュレーションにより取得された時系列データや、ユーザの操作指示により取得された時系列データや、作成ツールにより取得された時系列データを、上述した実施形態のようにして編集する対象とすることにより、力触覚に関するデータを、より一層、活用することができる。
また、シミュレーション以外の手法により、時系列データを取得するようにしてもよい。例えば、ユーザの操作指示に基づいて作成された、時系列データを取得するようにしてもよい。また、他にも所定の条件に基づいて時系列データを自動作成する作成ツールで作成された、時系列データを取得するようにしてもよい。
そして、このシミュレーションにより取得された時系列データや、ユーザの操作指示により取得された時系列データや、作成ツールにより取得された時系列データを、上述した実施形態のようにして編集する対象とすることにより、力触覚に関するデータを、より一層、活用することができる。
また、このように、コンピュータによるシミュレーションを行う場合に、データ加工装置40は、時系列データに基づいた仮想的なマスタ装置や仮想的なスレーブ装置の動作を、プレビュー表示するようにしてもよい。この場合、時系列データは、シミュレーションにより取得された時系列データや、ユーザの操作指示により取得された時系列データや、作成ツールにより取得された時系列データや、時系列データ取得処理により取得された時系列データ等の何れであってもよい。また、これらの時系列データを編集して作成された再現データであってもよい。プレビュー表示は、例えば、仮想的なマスタ装置や仮想的なスレーブ装置の動作を、模式化したコンピュータグラフィックにて表現し、これを表示することにより実現できる。なお、この場合に、仮想的な第1機構や、仮想的な第2機構や、接触対象の仮想的な物体等についても、模式化したコンピュータグラフィックにて表現し、これをプレビュー表示に含ませるようにしてもよい。
このようなプレビュー表示を行うことにより、ユーザは、実際に第1駆動装置10や第2駆動装置20を実際に動作させることなく、作成した時系列データや編集を伴って作成した再現データが適切に動作するかについて、容易に確認を行うことができる。
このようなプレビュー表示を行うことにより、ユーザは、実際に第1駆動装置10や第2駆動装置20を実際に動作させることなく、作成した時系列データや編集を伴って作成した再現データが適切に動作するかについて、容易に確認を行うことができる。
以上のように、本実施形態に係るデータ加工システムSは、時系列データ取得部411と、加工部413と、補間部414と、を備える。
時系列データ取得部411は、装置間で力触覚を伝達するために用いられるパラメータの時系列データを取得する。
加工部413は、時系列データ取得部411が取得した時系列データを加工する。
補間部414は、加工部413による加工後の時系列データに含まれるパラメータの値に基づいて補間データを生成し、該補間データによって加工後の時系列データを補間する。
このように、データ加工システムSは、力触覚を伝達するために用いられるパラメータの時系列データを加工すると共に、加工後の時系列データのパラメータの値に即した補間データを生成し、この補間データによって加工後の時系列データを適切に補間する。これにより、力触覚に関するデータを、従来のように検出した力触覚そのものをリアルタイムに伝達する用途のみならず、他の用途にも適切に利用することができる。
従って、データ加工システムSによれば、力触覚に関するデータを、より活用する、という課題を解決することが可能となる。
時系列データ取得部411は、装置間で力触覚を伝達するために用いられるパラメータの時系列データを取得する。
加工部413は、時系列データ取得部411が取得した時系列データを加工する。
補間部414は、加工部413による加工後の時系列データに含まれるパラメータの値に基づいて補間データを生成し、該補間データによって加工後の時系列データを補間する。
このように、データ加工システムSは、力触覚を伝達するために用いられるパラメータの時系列データを加工すると共に、加工後の時系列データのパラメータの値に即した補間データを生成し、この補間データによって加工後の時系列データを適切に補間する。これにより、力触覚に関するデータを、従来のように検出した力触覚そのものをリアルタイムに伝達する用途のみならず、他の用途にも適切に利用することができる。
従って、データ加工システムSによれば、力触覚に関するデータを、より活用する、という課題を解決することが可能となる。
加工部413は、加工後の時系列データに、時系列の順に、加工対象とした第1時系列データと、補間対象となる時間範囲を有する区間と、加工対象とした第2時系列データと、を隣接して含ませる加工を行い、
補間部414は、加工後の時系列データに含まれる、補間対象となる時間範囲を有する区間を補間データで補間する。
これにより、加工対象としたデータ間を適切に補間することができる。したがって、加工を行った場合であっても、力触覚に関する各種パラメータの相互関係性や前後の連続性を保持することが可能となる。
補間部414は、加工後の時系列データに含まれる、補間対象となる時間範囲を有する区間を補間データで補間する。
これにより、加工対象としたデータ間を適切に補間することができる。したがって、加工を行った場合であっても、力触覚に関する各種パラメータの相互関係性や前後の連続性を保持することが可能となる。
データ加工システムSは、提示部412をさらに備える。
提示部412は、時系列データをユーザに対して提示する。
加工部413は、時系列データを参照したユーザからの時間範囲の指定に基づいて、第1時系列データ及び第2時系列データの少なくとも何れかを決定する。
これにより、ユーザは時間範囲の指定をするのみで、加工対象とする時系列データを選択することができる。すなわち、データ加工システムSによれば、直感的で簡便なユーザインタフェースをユーザに対して提供することができる。
提示部412は、時系列データをユーザに対して提示する。
加工部413は、時系列データを参照したユーザからの時間範囲の指定に基づいて、第1時系列データ及び第2時系列データの少なくとも何れかを決定する。
これにより、ユーザは時間範囲の指定をするのみで、加工対象とする時系列データを選択することができる。すなわち、データ加工システムSによれば、直感的で簡便なユーザインタフェースをユーザに対して提供することができる。
データ加工システムSは、提示部412をさらに備える。
提示部412は、時系列データをユーザに対して提示する。
加工部413は、時系列データを参照したユーザからの時点の指定を伴うパラメータの値の変更の指定に基づいて、補間対象となる時間範囲を有する区間を決定する。
これにより、時点の指定を伴うパラメータの値の変更の指定をするのみで、補間対象となる時間範囲を有する区間を選択することができる。すなわち、データ加工システムSによれば、直感的で簡便なユーザインタフェースをユーザに対して提供することができる。
提示部412は、時系列データをユーザに対して提示する。
加工部413は、時系列データを参照したユーザからの時点の指定を伴うパラメータの値の変更の指定に基づいて、補間対象となる時間範囲を有する区間を決定する。
これにより、時点の指定を伴うパラメータの値の変更の指定をするのみで、補間対象となる時間範囲を有する区間を選択することができる。すなわち、データ加工システムSによれば、直感的で簡便なユーザインタフェースをユーザに対して提供することができる。
データ加工システムSは、近似式生成部415をさらに備える。
近似式生成部415は、時系列データに基づいて、該時系列データの近似式を生成する。
加工部413は、近似式に基づいて、近似式の生成元となった時系列データのパラメータの値を拡大または縮小する加工、並びに、前記時系列データの前記パラメータの値をオフセットする加工、の何れかまたは双方の加工を行う。
これにより、時系列データを定式化して表現し、時系列データのデータ量を削減することができる。また、時系列データを定式化して表現し、パラメータの値を拡大または縮小したデータやオフセットしたデータを、連続したデータとして生成でき、時系列データの分解能を低下させることなくパラメータの値を変更することができる。
近似式生成部415は、時系列データに基づいて、該時系列データの近似式を生成する。
加工部413は、近似式に基づいて、近似式の生成元となった時系列データのパラメータの値を拡大または縮小する加工、並びに、前記時系列データの前記パラメータの値をオフセットする加工、の何れかまたは双方の加工を行う。
これにより、時系列データを定式化して表現し、時系列データのデータ量を削減することができる。また、時系列データを定式化して表現し、パラメータの値を拡大または縮小したデータやオフセットしたデータを、連続したデータとして生成でき、時系列データの分解能を低下させることなくパラメータの値を変更することができる。
データ加工システムSは、近似式生成部415をさらに備える。
近似式生成部415は、時系列データに基づいて、該時系列データの近似式を生成する。
加工部413は、近似式に基づいて、近似式の生成元となった時系列データの時間範囲を拡大または縮小する加工、並びに、前記時系列データの時間範囲をオフセットする加工、の何れかまたは双方の加工を行う。
これにより、時系列データを定式化して表現し、時系列データのデータ量を削減することができる。また、時系列データを定式化して表現し、時間範囲を拡大または縮小したデータやオフセットしたデータを、連続したデータとして生成でき、時系列データの分解能を低下させることなく時間範囲を変更することができる。
近似式生成部415は、時系列データに基づいて、該時系列データの近似式を生成する。
加工部413は、近似式に基づいて、近似式の生成元となった時系列データの時間範囲を拡大または縮小する加工、並びに、前記時系列データの時間範囲をオフセットする加工、の何れかまたは双方の加工を行う。
これにより、時系列データを定式化して表現し、時系列データのデータ量を削減することができる。また、時系列データを定式化して表現し、時間範囲を拡大または縮小したデータやオフセットしたデータを、連続したデータとして生成でき、時系列データの分解能を低下させることなく時間範囲を変更することができる。
データ加工システムSは、正規化管理部416をさらに備える。
正規化管理部416は、時系列データに基づいて、該時系列データを正規化または非正規化する。
正規化管理部416は、正規化前または非正規化後の時系列データに対応する装置の属性に応じて、正規化または非正規化を実行する。
これにより、何れかの制御装置30が制御をした際の時系列データを取得して正規化するのみで、正規化された汎用の時系列データを生成することができる。また、この汎用の時系列データを再現データとして実行させる際には、再現データを実行する装置の属性に応じて非正規化を行い、その装置固有の再現データを生成し、対応する動作を再現させることができる。すなわち、データ加工システムSによれば、正規化した汎用の時系列データから、多様な装置それぞれに対応した時系列データを容易に生成することができることから、多様な装置それぞれに応じた時系列データを予め用意する人的労力を省くことができる。また、時系列データの管理を容易にすることができる。
正規化管理部416は、時系列データに基づいて、該時系列データを正規化または非正規化する。
正規化管理部416は、正規化前または非正規化後の時系列データに対応する装置の属性に応じて、正規化または非正規化を実行する。
これにより、何れかの制御装置30が制御をした際の時系列データを取得して正規化するのみで、正規化された汎用の時系列データを生成することができる。また、この汎用の時系列データを再現データとして実行させる際には、再現データを実行する装置の属性に応じて非正規化を行い、その装置固有の再現データを生成し、対応する動作を再現させることができる。すなわち、データ加工システムSによれば、正規化した汎用の時系列データから、多様な装置それぞれに対応した時系列データを容易に生成することができることから、多様な装置それぞれに応じた時系列データを予め用意する人的労力を省くことができる。また、時系列データの管理を容易にすることができる。
アクチュエータ12と、位置センサ13と、アクチュエータ22と、位置センサ23と、力触覚制御部311と、が存在する場合に、
アクチュエータ12は、所定の行為の実行に伴い第1移動対象を移動させる。
位置センサ13は、アクチュエータ12によって移動される第1移動対象の位置に関する第1位置情報を取得する。
アクチュエータ22は、所定の行為の実行に伴い第2移動対象を移動させる。
位置センサ23は、アクチュエータ22によって移動される第2移動対象の位置に関する第2位置情報を取得する。
力触覚制御部311は、第1位置情報と、アクチュエータ12の動作の基準となる第2位置情報とに基づいて、第2位置情報が表す動作に対応する位置及び力を出力するようにアクチュエータ12を制御する一方で、第2位置情報と、アクチュエータ22の動作の基準となる第1位置情報とに基づいて、第1位置情報が表す動作に対応する位置及び力を出力するようにアクチュエータ22を制御する。
時系列データ取得部411は、力触覚制御部311がアクチュエータ12及びアクチュエータ22の制御に用いたパラメータの少なくとも一部を、時系列データとして取得する。
これにより、位置センサで位置を検出する簡易な構成で、位置(角度)の制御エネルギーと力の制御エネルギーとを独立に与えること、すなわち、位置(角度)と力とを独立に制御することができる。
アクチュエータ12は、所定の行為の実行に伴い第1移動対象を移動させる。
位置センサ13は、アクチュエータ12によって移動される第1移動対象の位置に関する第1位置情報を取得する。
アクチュエータ22は、所定の行為の実行に伴い第2移動対象を移動させる。
位置センサ23は、アクチュエータ22によって移動される第2移動対象の位置に関する第2位置情報を取得する。
力触覚制御部311は、第1位置情報と、アクチュエータ12の動作の基準となる第2位置情報とに基づいて、第2位置情報が表す動作に対応する位置及び力を出力するようにアクチュエータ12を制御する一方で、第2位置情報と、アクチュエータ22の動作の基準となる第1位置情報とに基づいて、第1位置情報が表す動作に対応する位置及び力を出力するようにアクチュエータ22を制御する。
時系列データ取得部411は、力触覚制御部311がアクチュエータ12及びアクチュエータ22の制御に用いたパラメータの少なくとも一部を、時系列データとして取得する。
これにより、位置センサで位置を検出する簡易な構成で、位置(角度)の制御エネルギーと力の制御エネルギーとを独立に与えること、すなわち、位置(角度)と力とを独立に制御することができる。
[ハードウェアやソフトウェアによる機能の実現]
上述した実施形態による一連の処理を実行させる機能は、ハードウェアにより実現することもできるし、ソフトウェアにより実現することもできるし、これらの組み合わせにより実現することもできる。換言すると、上述した一連の処理を実行する機能が、データ加工システムSの何れかにおいて実現されていれば足り、この機能をどのような態様で実現するのかについては、特に限定されない。
上述した実施形態による一連の処理を実行させる機能は、ハードウェアにより実現することもできるし、ソフトウェアにより実現することもできるし、これらの組み合わせにより実現することもできる。換言すると、上述した一連の処理を実行する機能が、データ加工システムSの何れかにおいて実現されていれば足り、この機能をどのような態様で実現するのかについては、特に限定されない。
例えば、上述した一連の処理を実行する機能を、演算処理を実行するプロセッサによって実現する場合、この演算処理を実行するプロセッサは、シングルプロセッサ、マルチプロセッサ及びマルチコアプロセッサ等の各種処理装置単体によって構成されるものの他、これら各種処理装置と、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)等の処理回路とが組み合わせられたものを含む。
また、例えば、上述した一連の処理を実行する機能を、ソフトウェアにより実現する場合、そのソフトウェアを構成するプログラムは、ネットワークまたは記録媒体を介してコンピュータにインストールされる。この場合、コンピュータは、専用のハードウェアが組み込まれているコンピュータであってもよいし、プログラムをインストールすることで所定の機能を実行することが可能な汎用のコンピュータ(例えば、汎用のパーソナルコンピュータ等の電子機器一般)であってもよい。また、プログラムを記述するステップは、その順序に沿って時系列的に行われる処理のみを含んでいてもよいが、並列的あるいは個別に実行される処理を含んでいてもよい。また、プログラムを記述するステップは、本発明の要旨を逸脱しない範囲内において、任意の順番に実行されてよい。
このようなプログラムを記録した記録媒体は、コンピュータ本体とは別に配布されることによりユーザに提供されてもよく、コンピュータ本体に予め組み込まれた状態でユーザに提供されてもよい。この場合、コンピュータ本体とは別に配布される記憶媒体は、例えば、リムーバブルメディア50であって、磁気ディスク(フロッピディスクを含む)、光ディスク、または光磁気ディスク等により構成される。光ディスクは、例えば、CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)、あるいはBlu-ray(登録商標) Disc(ブルーレイディスク)等により構成される。光磁気ディスクは、例えば、MD(Mini Disc)等により構成される。また、コンピュータ本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されている記憶部32や記憶部42であって、HDD(hard disk drive)やSSD(Solid State Drive)により構成される。
10-1,・・・,10-n 第1駆動装置、11,21 ドライバ、12,22 アクチュエータ、13,23 位置センサ、15 第1機構、20-1,・・・,20-n 第2駆動装置、25 第2機構、30-1,・・・,30-n 制御装置、31,41 プロセッサ、32,42 記憶部、33,43 ROM、34,44 RAM、35,45 通信部、46 入力部、47 出力部、48 ドライブ、40 データ加工装置、50 リムーバブルメディア、311 力触覚制御部、312,411 時系列データ取得部、313 再現データ取得部、321,421 時系列データ記憶部、322,423 再現データ記憶部、412 提示部、413 加工部、414 補間部、415 近似式生成部、416 正規化管理部、417 再現データ生成部、422 編集データ記憶部、CS 制御対象システム、FT 力・速度割当変換ブロック、FC 理想力源ブロック、PC 理想速度(位置)源ブロック、IFT 逆変換ブロック、N ネットワーク、S データ加工システム
Claims (10)
- 装置間で力触覚を伝達するために用いられるパラメータの時系列データを取得する取得手段と、
前記取得手段が取得した前記時系列データを加工する加工手段と、
前記加工手段による加工後の時系列データに含まれる前記パラメータの値に基づいて補間データを生成し、該補間データによって前記加工後の時系列データを補間する補間手段と、
を備えることを特徴とするデータ加工装置。 - 前記加工手段は、前記加工後の時系列データに、時系列の順に、加工対象とした第1時系列データと、補間対象となる時間範囲を有する区間と、加工対象とした第2時系列データと、を隣接して含ませる加工を行い、
前記補間手段は、前記加工後の時系列データに含まれる、前記補間対象となる時間範囲を有する区間を前記補間データで補間する、
ことを特徴とする請求項1に記載のデータ加工装置。 - 前記時系列データをユーザに対して提示する提示手段をさらに備え、
前記加工手段は、前記時系列データを参照したユーザからの時間範囲の指定に基づいて、前記第1時系列データ及び前記第2時系列データの少なくとも何れかを決定する、
ことを特徴とする請求項2に記載のデータ加工装置。 - 前記時系列データをユーザに対して提示する提示手段をさらに備え、
前記加工手段は、前記時系列データを参照したユーザからの時点の指定を伴う前記パラメータの値の変更の指定に基づいて、前記補間対象となる時間範囲を有する区間を決定する、
ことを特徴とする請求項2または3に記載のデータ加工装置。 - 前記時系列データに基づいて、該時系列データの近似式を生成する近似式生成手段をさらに備え、
前記加工手段は、前記近似式に基づいて、前記近似式の生成元となった前記時系列データの前記パラメータの値を拡大または縮小する加工、並びに、前記時系列データの前記パラメータの値をオフセットする加工、の何れかまたは双方の加工を行う、
ことを特徴とする請求項1から4の何れか1項に記載のデータ加工装置。 - 前記時系列データに基づいて、該時系列データの近似式を生成する近似式生成手段をさらに備え、
前記加工手段は、前記近似式に基づいて、前記近似式の生成元となった前記時系列データの時間範囲を拡大または縮小する加工、並びに、前記時系列データの時間範囲をオフセットする加工、の何れかまたは双方の加工を行う、
ことを特徴とする請求項1から5の何れか1項に記載のデータ加工装置。 - 前記時系列データに基づいて、該時系列データを正規化または非正規化する正規化管理手段をさらに備え、
前記正規化管理手段は、前記正規化前または前記非正規化後の時系列データに対応する装置の属性に応じて、前記正規化または前記非正規化を実行する、
ことを特徴とする請求項1から6の何れか1項に記載のデータ加工装置。 - 所定の行為の実行に伴い第1移動対象を移動させる第1駆動手段と、
前記第1駆動手段によって移動される前記第1移動対象の位置に関する第1位置情報を取得する第1位置情報取得手段と、
前記所定の行為の実行に伴い第2移動対象を移動させる第2駆動手段と、
前記第2駆動手段によって移動される前記第2移動対象の位置に関する第2位置情報を取得する第2位置情報取得手段と、
前記第1位置情報と、前記第1駆動手段の動作の基準となる前記第2位置情報とに基づいて、前記第2位置情報が表す動作に対応する位置及び力を出力するように前記第1駆動手段を制御する一方で、前記第2位置情報と、前記第2駆動手段の動作の基準となる前記第1位置情報とに基づいて、前記第1位置情報が表す動作に対応する位置及び力を出力するように前記第2駆動手段を制御する制御手段と、
が存在する場合に、
前記取得手段は、前記制御手段が前記第1駆動手段及び前記第2駆動手段の制御に用いたパラメータの少なくとも一部を、前記時系列データとして取得する、
ことを特徴とする請求項1から7の何れか1項に記載のデータ加工装置。 - 装置間で力触覚を伝達するために用いられるパラメータの時系列データを取得する取得ステップと、
前記取得ステップにて取得した前記時系列データを加工する加工ステップと、
前記加工ステップでの加工後の時系列データに含まれる前記パラメータの値に基づいて補間データを生成し、該補間データによって前記加工後の時系列データを補間する補間ステップと、
を含むことを特徴とするデータ加工方法。 - 装置間で力触覚を伝達するために用いられるパラメータの時系列データを取得する取得機能と、
前記取得機能が取得した前記時系列データを加工する加工機能と、
前記加工機能による加工後の時系列データに含まれる前記パラメータの値に基づいて補間データを生成し、該補間データによって前記加工後の時系列データを補間する補間機能と、
をコンピュータに実現させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023506924A JPWO2022196308A1 (ja) | 2021-03-17 | 2022-02-26 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021044155 | 2021-03-17 | ||
JP2021-044155 | 2021-03-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022196308A1 true WO2022196308A1 (ja) | 2022-09-22 |
Family
ID=83321252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/008099 WO2022196308A1 (ja) | 2021-03-17 | 2022-02-26 | データ加工装置、データ加工方法、及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2022196308A1 (ja) |
WO (1) | WO2022196308A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0946177A (ja) * | 1995-07-31 | 1997-02-14 | Nec Corp | 波形処理装置 |
JP6382203B2 (ja) * | 2013-09-19 | 2018-08-29 | 学校法人慶應義塾 | 位置・力制御装置、位置・力制御方法及びプログラム |
-
2022
- 2022-02-26 WO PCT/JP2022/008099 patent/WO2022196308A1/ja active Application Filing
- 2022-02-26 JP JP2023506924A patent/JPWO2022196308A1/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0946177A (ja) * | 1995-07-31 | 1997-02-14 | Nec Corp | 波形処理装置 |
JP6382203B2 (ja) * | 2013-09-19 | 2018-08-29 | 学校法人慶應義塾 | 位置・力制御装置、位置・力制御方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2022196308A1 (ja) | 2022-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110128292A1 (en) | Dynamics-based motion generation apparatus and method | |
US20220072701A1 (en) | Motion control method, device and system, and storage medium | |
WO2022196308A1 (ja) | データ加工装置、データ加工方法、及びプログラム | |
CN114063568B (zh) | 基于三次卷积插值实现数控***倍率调整控制的方法、装置、处理器及计算机可读存储介质 | |
US6798416B2 (en) | Generating animation data using multiple interpolation procedures | |
JP3735187B2 (ja) | 時系列データの符号化と編集を行うデータ変換装置および方法 | |
US11914343B2 (en) | Command generation device and command generation method to control motor | |
WO2021025087A1 (ja) | 位置・力制御装置、位置・力制御方法及びプログラム | |
Awan et al. | Model-Mediated Teleoperation for Remote Haptic Texture Sharing: Initial Study of Online Texture Modeling and Rendering | |
Singh et al. | Enhancing the command-following bandwidth for transparent bilateral teleoperation | |
JP4012557B2 (ja) | 時系列データ圧縮方法、時系列データ圧縮プログラムを記録した記録媒体、および時系列データ圧縮装置 | |
US20240208050A1 (en) | Function management system, function management method, and storage medium | |
JP2009276970A (ja) | 触覚の視覚的処理方法および触覚の視覚的処理装置 | |
CN111331577A (zh) | 机器人的控制装置及控制方法 | |
JP6933758B1 (ja) | 情報処理プログラム、情報処理装置及び情報処理方法 | |
JP6908907B1 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
US20230141048A1 (en) | Learning assistance system, learning assistance method, and learning assistance storage medium | |
WO2020162619A1 (ja) | 位置・力制御装置、位置・力制御方法及びプログラム | |
JP2002175541A (ja) | アニメーション生成方法および装置 | |
JP2020107127A (ja) | 同期制御装置、同期制御システム、同期制御方法及びシミュレーション装置 | |
JPH06324730A (ja) | 産業用ロボットの制御装置 | |
JPS6068474A (ja) | 画像変換方法 | |
JP2014174574A (ja) | 速度指令データ生成装置 | |
WO2022162960A1 (ja) | プログラム生成装置、プログラム生成プログラムおよびプログラム生成方法 | |
JP2900986B2 (ja) | B−スプライン曲線の階層化装置 |
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: 22771063 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2023506924 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22771063 Country of ref document: EP Kind code of ref document: A1 |