WO2017037690A1 - データ変換装置、ロボット、プログラム及び情報処理方法 - Google Patents
データ変換装置、ロボット、プログラム及び情報処理方法 Download PDFInfo
- Publication number
- WO2017037690A1 WO2017037690A1 PCT/IB2016/056444 IB2016056444W WO2017037690A1 WO 2017037690 A1 WO2017037690 A1 WO 2017037690A1 IB 2016056444 W IB2016056444 W IB 2016056444W WO 2017037690 A1 WO2017037690 A1 WO 2017037690A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- time
- robot
- predetermined
- model
- bone
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/003—Manipulators for entertainment
- B25J11/0035—Dancing, executing a choreography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/205—3D [Three Dimensional] animation driven by audio data
Definitions
- the present invention relates to robot operation control.
- the present invention has been made in view of this point, and an object of the present invention is to provide a data conversion device, a robot, a program, and an information processing method that can easily synchronize the operation of the robot with music.
- a data conversion apparatus includes an acquisition unit that acquires first time-series information for designating coordinates of components of a predetermined computer graphics (CG) model in units of beats in time series; Based on the first time series information, a control unit that detects a difference between the structure of the predetermined CG model and a structure of the predetermined robot, and corrects the first time series information based on the difference. And generating a second time-series information for specifying the coordinates of the constituent elements of the predetermined robot in time series in beat units.
- CG computer graphics
- the operation of the robot can be easily synchronized with the music.
- FIG. 2A and 2B are schematic views illustrating an example of a robot according to an embodiment of the present invention. It is a figure which shows an example of the function structure of the robot which concerns on one Embodiment of this invention.
- 4A and 4B are diagrams illustrating an example of a skeleton model having a skeleton structure (multi-joint structure). It is a conceptual explanatory view of a note-on signal. It is a figure which shows an example of the correspondence of the note-on signal of each channel in a data structure concerning one Embodiment of this invention, and a predetermined component.
- 14A and 14B are diagrams illustrating another example of balance adjustment when the skeleton of the CG model is different from the skeleton of the robot.
- 15A and 15B are diagrams illustrating an example of joint angle restriction according to an embodiment of the present invention.
- 16A and 16B are diagrams showing an example of speed limitation according to an embodiment of the present invention.
- 17A and 17B are diagrams showing another example of speed limitation according to an embodiment of the present invention.
- 18A and 18B are diagrams showing still another example of speed limitation according to an embodiment of the present invention. It is a figure which shows an example of the path
- the present inventors focused on three-dimensional computer graphics (also called 3DCG (Threee Dimensional Computer Graphics), or simply CG (Computer Graphics)) in examining a data structure suitable for robot motion control.
- 3DCG Three-dimensional computer graphics
- various data structures have been proposed to represent a character (CG model).
- CG model For example, a data structure suitable for a character having a complicated skeleton structure such as a human being has been proposed (for example, patents). No. 3337938 and Japanese Patent No. 3380158).
- a CG animation movie can be created.
- the inventors first examined the data structure of motion data (motion data) of a CG model that can be easily synchronized with sound data (for example, music data, audio data, etc.). The idea was to generate a robot motion using the motion of the CG model generated according to the data structure. At this time, the present inventors have found a method for correcting the motion in consideration of the difference between the CG model and the robot. Thereby, the motion of the robot can be easily synchronized with the sound data. In addition, since it is based on a data structure common to the CG model, new services such as CG animation and robot synchronous control can be developed.
- the unit of beat (the actual length of time changes according to the tempo), not the unit of frames (still images constituting a CG video) or the unit of real time.
- CG model motion data can be constructed in units of beats.
- the operation of the robot can be controlled in units of beats.
- the data structure according to one embodiment of the present invention may be referred to as a choreography data format, a corio data format, or the like.
- data that is compatible with the Corio data format such as data expressed in the Corio data format, data that conforms to the Corio data format (including time-series data in frame units that can be converted to the Corio data format) It may also be called corio data or dance corio data.
- FIG. 1 is a diagram illustrating an example of a schematic configuration of an information processing system according to an embodiment of the present invention.
- the information processing system 1 illustrated in FIG. 1 includes a robot 10, a user terminal 20, a server 30, an electronic musical instrument 40, and a network 50.
- the robot 10 is assumed to be a robot having relatively high-performance information processing capability, such as PEPPER (registered trademark) of Aldebaran Robotics, and ASIMO (registered trademark) of Nissan Motor Co., Ltd., but is not limited thereto. is not.
- PEPPER registered trademark
- ASIMO registered trademark
- the structure and functional blocks of the robot 10 will be described later with reference to FIGS.
- the user terminal 20 may be a mobile terminal (mobile communication terminal) such as a mobile phone, a smartphone, or a tablet terminal, or a personal computer, a multi-function TV, a set-top box (for example, Apple TV (registered trademark), Chromecast ( It may be a fixed communication terminal such as a registered trademark)).
- a mobile terminal mobile communication terminal
- a smartphone such as a smartphone
- a tablet terminal such as a tablet terminal
- a personal computer a multi-function TV
- a set-top box for example, Apple TV (registered trademark), Chromecast ( It may be a fixed communication terminal such as a registered trademark)
- the server 30 is a device having a function of transmitting and / or receiving corio data between the robot 10, the user terminal 20, and / or the electronic musical instrument 40.
- the transmission / reception of the corio data may be performed according to a request from the robot 10, the user terminal 20, and / or the electronic musical instrument 40, or may be performed periodically or at a predetermined timing.
- the server 30 may transmit / receive data (for example, a moving image) generated using the corio data to / from the robot 10, the user terminal 20, and / or the electronic musical instrument 40.
- the electronic musical instrument 40 is a device having a function of generating a sound corresponding to performance information such as MIDI (Musical Instrument Digital Interface) data.
- the electronic musical instrument 40 is an electronic piano, a synthesizer, or the like, but is not limited thereto.
- the network 50 connects devices and enables information communication.
- the network 50 includes various networks such as the Internet, a mobile network, a LAN (Local Area Network), and a WAN (Wide Area Network).
- the network 50 may be configured wirelessly or may be configured wired.
- the system configuration is an example, and the present invention is not limited to this.
- a plurality of robots 10, user terminals 20, servers 30, and electronic musical instruments 40 are included in FIG. 1, but the number of devices is not limited thereto.
- the information processing system 1 may be configured not to include a part of the robot 10, the user terminal 20, the server 30, and the electronic musical instrument 40.
- the input / output of the corio data may be performed via the storage medium by connecting a predetermined storage medium, or a built-in storage device may be provided. Corio data may be acquired via
- FIG. 2 is a schematic diagram showing an example of a robot according to an embodiment of the present invention.
- FIG. 2 mainly shows the joints constituting the skeleton structure.
- the robot in FIG. 2 is a robot having a plurality of joints.
- FIG. 2A is a humanoid robot capable of biped upright walking.
- FIG. 2B has a configuration in which the robot of FIG. 2A is simplified, and some joint portions are omitted as compared with FIG. 2A.
- the robot in FIG. 2B has no clavicle and the shoulder is independent of the torso. Also, the spine and leg bones are each represented as one.
- the robot in FIG. 2B has a shape in which, for example, the leg portion is integrated with the body portion, and when a wheel (for example, an omni wheel) or an endless track is arranged at the tip of the leg portion, It may be possible.
- joints may be fixed within the robot as reference points (routes). For example, in FIG. 2, a joint portion at a position corresponding to the waist is set as the reference point.
- Each joint is composed of a roll / pitch / yaw axis and the like that are explained based on common recognition in the technical field according to the present invention.
- the shoulder has two axes (roll / pitch)
- the elbow has two axes (roll / yaw)
- the wrist has one axis (yaw).
- it is good also as a structure which drives a head, a finger
- the number of joint parts and the freedom degree in a joint part are not restricted to the structure of FIG.
- FIG. 3 is a diagram illustrating an example of a functional configuration of a robot according to an embodiment of the present invention.
- the robot 10 includes a transmission / reception unit 11, an acquisition unit 12, a reproduction unit (control signal generation unit) 13, an output unit (drive unit) 14, an input unit 15, and a generation unit 16. And a control unit 17.
- the robot 10 can constitute a data conversion apparatus as an information processing apparatus according to the present invention. Further, the robot 10 can realize the information processing method according to one aspect of the present invention, and can execute a step of performing information processing using the corio data.
- FIG. 3 mainly shows functional blocks of characteristic portions in the present embodiment, and the robot 10 may also have other functional blocks necessary for other processing.
- the transmission / reception unit 11 transmits / receives corio data and necessary information to / from another robot 10, the user terminal 20, the server 30, and the electronic musical instrument 40 via the network 50.
- the transmission / reception unit 11 outputs the received corio data to the acquisition unit 12.
- the transmission / reception unit 11 may also output the received predetermined data (for example, CG model motion data) to the generation unit 16. Further, the transmission / reception unit 11 outputs various received information to the control unit 17.
- the transmission / reception unit 11 can be configured by a transmitter / receiver, a transmission / reception circuit, or a transmission / reception device described based on common recognition in the technical field according to the present invention.
- the transmission / reception part 11 may be comprised from the transmission part and the receiving part.
- the acquisition unit 12 acquires corio data from the transmission / reception unit 11 and / or the generation unit 16.
- the acquisition unit 12 outputs the acquired corio data to the transmission / reception unit 11 and / or the reproduction unit 13.
- the reproduction unit (control signal generation unit) 13 reproduces the data input from the acquisition unit 12 and outputs it to the output unit 14.
- the reproduction unit (control signal generation unit) 13 interprets the corio data corrected by the generation unit 16 described later, and generates a signal (control signal) for controlling the operation of the robot (operation of the joint unit). Output to the output unit 14.
- the reproduction unit (control signal generation unit) 13 generates corio data for the CG model based on an instruction from the control unit 17 (for example, including information on a difference between the structure of the CG model and the structure of the robot 10). Interpreting and generating a signal (control signal) for controlling the movement that can be realized by the robot in consideration of the structure of the robot 10 and the restriction of the movement (for example, the restriction of the angle and moving speed of each joint point). You may output to the part 14.
- a part of the reproduction unit (control signal generation unit) 13 can be configured by a signal generator, a signal generation circuit, or a signal generation device described based on common recognition in the technical field according to the present invention.
- the playback unit 13 may play back predetermined content (for example, sound data such as music and voice) and output it to the output unit 14.
- predetermined content for example, sound data such as music and voice
- the content is sound data, it is converted into a reproduction signal in a format that can be recognized by the output unit 14 in accordance with the audio file format related to the content.
- a part of the reproduction unit 13 can be configured by a player, an image / video / audio processing circuit, an image / video / audio processing device, an amplifier, and the like described based on common recognition in the technical field according to the present invention. .
- the output unit (drive unit) 14 drives the plurality of joint units based on the control signal input from the reproduction unit 13 to realize the operation of the robot 10. Specifically, a part of the output unit 14 constitutes a joint part of the robot 10, and each joint part detects a motor that rotates around a predetermined axis based on a control signal, and detects the rotational position of the motor. And a driver for controlling the rotational position and speed of the motor based on the output of the encoder.
- the configuration of the output unit (drive unit) 14 is not limited to this, and can be configured by an actuator, a drive circuit, a drive device, and the like described based on common recognition in the technical field according to the present invention.
- the output unit 14 outputs a playback signal of the content input from the playback unit 13.
- a part of the output unit 14 may include a display unit that displays visual data (for example, a CG moving image) and an audio output unit that outputs sound data.
- the display unit can be configured by a display device such as a display or a monitor described based on common recognition in the technical field according to the present invention.
- the audio output unit can be configured by an output device such as a speaker described based on common recognition in the technical field according to the present invention.
- the input unit 15 acquires external environment information.
- a part of the input unit 15 includes a camera that acquires a still image and / or a moving image, a microphone that acquires sound, various sensors (touch sensor, ground sensor, acceleration sensor, tilt sensor, gyro, temperature sensor (thermography)). , An ultrasonic sensor, a range sensor (laser scan sensor), a radio beam (radar), or the like) or a combination thereof.
- the input unit 15 may receive an input to the robot 10 by an operation from the user and output an input result to the control unit 17.
- a part of the input unit 15 can be configured by an input device such as a keyboard and a mouse described based on common recognition in the technical field according to the present invention. Further, a part of the input unit 15 may be configured to be integrated with the display unit (for example, a touch panel).
- the input unit 15 may be connected to a predetermined device or storage medium and accept data input.
- the input result is output to the control unit 17 and the generation unit 16.
- a part of the input unit 15 can include an input / output terminal, an input / output circuit, and the like described based on common recognition in the technical field according to the present invention.
- the generation unit 16 generates corio data using data input from the transmission / reception unit 11, the input unit 15 and the like via the acquisition unit 12.
- the generation unit 16 corrects the corio data for the CG model based on an instruction from the control unit 17 (for example, including information on the difference between the structure of the CG model and the structure of the robot 10), and Corio data may be generated (corio data is converted).
- the generated corio data may be output to the transmission / reception unit 11, the acquisition unit 12, the playback unit 13, and the like.
- the generation unit 16 can be configured by an arithmetic unit, an arithmetic circuit, an arithmetic device, and the like described based on common recognition in the technical field according to the present invention.
- the control unit 17 controls the entire robot 10. For example, the control unit 17 may control the timing at which the acquisition unit 12 acquires or outputs the corio data. Further, the control unit 17 may perform control such that the corio data generated by the generation unit 16 is stored in the robot 10.
- the control part 17 can be comprised by the controller, control circuit, or control apparatus demonstrated based on the common recognition in the technical field which concerns on this invention.
- control unit 17 detects (determines) a difference between the structure of the CG model and the structure of the robot 10 based on the corio data for the CG model acquired by the acquisition unit 12, and based on the difference, The conversion of the corio data in the generation unit 16 (and / or the reproduction unit 13) is controlled.
- the control unit 17 has information related to the structure of the robot 10 in advance.
- the information on the structure of the robot 10 is, for example, information on the skeleton structure, the initial state of the hierarchical structure related to the skeleton structure, the reference posture, the length of each bone, the movable range of each joint, and the like. I can't.
- the skeleton structure will be described later with reference to FIG.
- control unit 17 can perform control so that the converted corio data for the robot 10 is output to the reproduction unit 13 via the acquisition unit 12.
- control unit 17 may control the generation unit 16 to generate the corio data for the other robot 10.
- the user terminal 20, the server 30, the electronic musical instrument 40, and the like may also have all or part of the functional blocks illustrated in FIG. 3 and realize the information processing method according to an aspect of the present invention, similar to the robot 10.
- the data conversion apparatus according to one embodiment of the present invention may be configured.
- the user terminal 20, the server 30, the electronic musical instrument 40, etc. may generate corio data for a predetermined robot 10 by correcting corio data for a predetermined CG model instead of the robot 10.
- the generated corio data for the robot 10 may be stored in the server 30 or may be transmitted to the robot 10.
- the data conversion apparatus includes at least an acquisition unit 12, a generation unit 16, and a control unit 17.
- the generation unit 16 corrects the corio data for the CG model acquired by the acquisition unit 12 based on an instruction from the control unit 17 to generate corio data for the robot 10. be able to.
- each functional block is realized by one physically coupled device, or may be realized by two or more physically separated devices connected by wire or wirelessly and by a plurality of these devices. Good.
- the robot 10 and the user terminal 20 are implemented using ASIC (Application Specific Integrated Circuit), PLD (Programmable Logic Device), FPGA (Field Programmable Gate Hardware, etc.). May be.
- the robot 10 and the user terminal 20 are realized by a computer device including a processor (CPU: Central Processing Unit), a communication interface for network connection, a memory, and a computer-readable storage medium holding a program. May be. That is, the robot 10 or the user terminal 20 according to an embodiment of the present invention functions as a computer that performs processing for converting a data structure (corio data) for the CG model into a data structure (corio data) for the robot 10. May be.
- Computer-readable recording media include, for example, flexible disks, magneto-optical disks, ROM (Read Only Memory), EPROM (Erasable Programmable ROM), CD-ROM (Compact Disc-ROM), RAM (Random Access Memory), A storage medium such as a hard disk.
- the program may be transmitted from the network 50 via an electric communication line.
- Functional configurations of the robot 10 and the user terminal 20 may be realized by the hardware described above, may be realized by a software module executed by a processor, or may be realized by a combination of both.
- the processor controls the entire user terminal by operating an operating system. Further, the processor reads programs, software modules and data from the storage medium into the memory, and executes various processes according to these.
- the program may be a program that causes a computer to execute information processing related to corio data according to an aspect of the present invention.
- the control unit 17 of the robot 10 may be realized by a control program stored in a memory and operated by a processor, and may be similarly realized for other functional blocks.
- software, instructions, etc. may be transmitted / received via a transmission medium.
- software may use websites, servers, or other devices using wired technology such as coaxial cable, fiber optic cable, twisted pair and digital subscriber line (DSL) and / or wireless technology such as infrared, wireless and microwave.
- wired technology such as coaxial cable, fiber optic cable, twisted pair and digital subscriber line (DSL) and / or wireless technology such as infrared, wireless and microwave.
- DSL digital subscriber line
- wireless technology such as infrared, wireless and microwave.
- each device as described above uses corio data.
- the corio data format will be described, and a robot operation method using the corio data and a corio data adjustment method considering the difference between the structure of the CG model and the robot structure will be described.
- the corio data format is a data format including time series information for designating the coordinates of the components of the CG model in time series in beat units.
- beat unit means a unit that can be specified by “beat”, and is not limited to one beat unit, but is a fractional beat unit such as 1/8 beat unit or a plurality of beats such as two beat units. Includes units.
- the present inventors examined motion data of a CG model that can be easily synchronized with sound data. As a result of considering the reproducibility of movement, the amount of data, cooperation with other systems, etc., the present inventors have found that the performance information storage format of the electronic musical instrument is suitable for expressing the data structure in beat units.
- the Corio data format according to one aspect of the present invention has been reached.
- a skeleton model having a skeletal structure multi-joint structure
- a CG model to which the present invention can be applied is not limited thereto.
- FIG. 4 is a diagram showing an example of a skeleton model having a skeletal structure (multi-joint structure).
- FIG. 4A shows each component and reference posture of the skeleton model
- FIG. 4B shows a relationship between the components of the skeleton model.
- the example shown in FIG. 4 is a basic configuration, and may have additional structures (for example, skin, fingers, hair, costumes, hats, walking sticks, etc.).
- the model shown in FIG. 4A is composed of a plurality of skeletons, and each skeleton is composed of two joint points and bones (bones) connecting them.
- N”, “RS”, etc. in FIG. 4A are bone names, and in this example, 18 bones are shown.
- the skeleton model is configured such that a bone connected through each joint point has a hierarchical structure with a certain joint point as a reference point (root).
- the hierarchical structure of FIG. 4A is represented as shown in FIG. 4B.
- the joint point between B1 and W is the route.
- the model When placing a CG model in a three-dimensional space, the model is modeled on a coordinate system (local coordinate system) for the model based on the position of the route. Then, the modeled CG model is mapped to a coordinate system (world coordinate system, global coordinate system) representing the entire three-dimensional space.
- a coordinate system local coordinate system
- a coordinate system world coordinate system, global coordinate system
- the coordinates of components may be expressed as absolute coordinates or relative coordinates in a three-dimensional space, or may be expressed as relative angles of a predetermined bone with reference to a predetermined joint point.
- the reference posture of the CG model may be a T-shape posture as shown in FIG. 4A, and the angle of each bone at the posture may be 0 °.
- the hierarchical structure and the position of the route are not limited to the example in FIG.
- the position of the route may be between both feet (between RF3 and LF3).
- the coordinates and / or angles of each component may be calculated using forward kinematics that calculates in order from the root to the end, or inverse kinematics that reversely calculates the parent position from the child position. May be calculated, or a combination of the two or other methods may be used.
- the skeletal structure not only the hierarchical structure described above, but also the initial state of the hierarchical structure, the length of each bone, the movable range of each joint, and the like may be set.
- the corio data format in one aspect of the present invention preferably conforms to the storage format of performance information of electronic musical instruments.
- the MIDI data storage format that is widely used is suitable.
- SMF Standard MIDI File
- a corio data format compliant with the SMF format will be described.
- the SMF format is composed of a header chunk containing predetermined control information and a track chunk containing performance data.
- the performance data is composed of a combination of delta time and MIDI event.
- the delta time represents the time until the next MIDI event occurs.
- the MIDI event represents the performance content, and includes, for example, note-on (sound) and note-off (stop sound).
- the note-on signal is a signal for producing a specific sound after the corresponding delta time has elapsed.
- the note-on signal can be expressed by, for example, 3 bytes of “9n kk vv” in hexadecimal, which means that “the sound of note number kk is generated with velocity vv in channel n”.
- FIG. 5 is a conceptual explanatory diagram of a note-on signal. As shown in FIG. 5, a channel represents a part in a musical score (a performance part of a predetermined musical instrument), a note number represents a pitch, and a velocity represents a speed (strength) of hitting the musical instrument (keyboard).
- Note-off signal is a signal to turn off a specific sound after the corresponding delta time has elapsed.
- the note-off signal can be expressed by, for example, 3 bytes of “8n kk vv” in hexadecimal, which means that “the sound of note number kk is muted with velocity vv in channel n”.
- Note number and velocity can both be decimal numbers from 0 to 127. Note that a note-on signal “9n kk 00” with a velocity of 0 represents the same meaning as a note-off signal “mute note number kk on channel n”.
- Note-on signals corresponding to quarter notes shown in channels 0 and 1 in FIG. 5 can be expressed as “90 3E 04” and “91 3C 02”, respectively.
- each channel is handled as information related to the coordinates of any component of the CG model.
- the corio data format may include a plurality of time-series information in beat units relating to the coordinates of the components of the CG model.
- the information related to the coordinates of the component eg, bone, joint point, etc.
- the information related to the coordinates of the component may be information related to the absolute coordinate or relative coordinate of the component, or the relative angle of the component (eg, bone). May be represented as
- the note number and / or velocity of the note-on signal can be used.
- the angle and / or coordinates of a specific axis of a predetermined component can be obtained from a note-on signal arranged at a beat corresponding to the timing.
- the delta time of the note-on signal and / or the note-off signal may be used as information related to the length of the beat in which the coordinates of the components of the CG model change.
- the delta time corresponding to the note-off signal is calculated from the angle (or coordinates) calculated from the note-on signal immediately before the note-off signal, or from the angle (or coordinate) calculated from the note-on signal immediately after the note-off signal.
- the length of the beat required to change to (coordinates) may be indicated.
- the transition of the angle and / or coordinates of the predetermined component associated with each note may be made according to a predetermined rule. For example, the speed and acceleration during the transition may be determined and used based on a predetermined interpolation method.
- the delta time is preferably a positive number.
- the note on / off signal is the most frequently used signal in the SMF format, it can be processed at high speed in an electronic musical instrument or the like that supports MIDI.
- the coordinates or angle may be roughly specified in a relatively large unit based on the note number, and the coordinates or angle may be specified in detail in a relatively small unit based on the velocity.
- the angle ⁇ may be calculated by the following Equation 1.
- ⁇ (N ⁇ N 0 ) ⁇ ⁇ N + (V ⁇ V 0 ) ⁇ ⁇ V
- N is a note number
- N 0 is a reference note number
- ⁇ N is an angle increment per note number increment
- V is a velocity
- V 0 is a reference velocity
- N 0 may be 60 (corresponding to the “C” sound at the center of the keyboard), V 0 may be 1, ⁇ N may be 5 °, and ⁇ V 0.05 °. Note that N 0 , V 0 , ⁇ N , ⁇ V, and the like are not limited to the above values.
- the coordinate position P may be calculated by the following equation 2.
- N (N ⁇ N 0 ) ⁇ P N + (V ⁇ V 0 ) ⁇ P V
- N is a note number
- N 0 is a reference note number
- P N is a coordinate increment per note number increment
- V is velocity
- V 0 is a reference velocity
- P V is a coordinate increment per velocity increment. Amount.
- N 0 may be 60 (corresponding to the “C” sound at the center of the keyboard), V 0 may be 1, P N may be 64 cm, and P V may be 0.5 cm. Further, PN may be 127 cm and ⁇ V may be 1 cm. N 0 , V 0 , P N , P V and the like are not limited to the above values.
- the coordinates or angle may be roughly specified in a relatively large unit by velocity, and the coordinates or angle may be specified in detail in a relatively small unit by note number.
- information related to the coordinates of the components of the CG model may be specified using a signal other than note on / off, such as a system exclusive (SysEx) event.
- Information relating to the coordinates of the constituent elements can be classified into, for example, position information and pose information.
- the position information is information indicating a relative position from the initial position of the CG model (for example, the position at the start of the CG moving image).
- the x-axis coordinate, y-axis coordinate, and z-axis of the reference point (root) of the CG model It may be expressed by coordinates and a rotation angle of the reference point.
- the pose information is information indicating an angle or a position based on the reference posture of the CG model. For example, the T-shape posture as shown in FIG. X-axis relative angle, y-axis relative angle, and z-axis relative angle.
- a plurality of pieces of information related to the coordinates of the constituent elements may be assigned per channel.
- one channel can be configured to express the x-axis relative angle, the y-axis relative angle, and the z-axis relative angle of a predetermined bone.
- the note number is divided into three, a relatively small note number (for example, 0 to 42) is an x-axis relative angle, a relatively intermediate note number (for example, 43 to 85) is a y-axis relative angle, A relatively large note number (for example, 86 to 127) may be used as the z-axis relative angle.
- the allocation method is not limited to this.
- the SMF format to which the corio data format conforms is not particularly limited.
- the format 0 may include information on all channels in one track
- the format 1 may be composed of a plurality of tracks
- the format 2 may be used.
- a new format other than the existing formats 0 to 2 may be used.
- the corio data format is not limited to the SMF format as long as it has information for designating the coordinates of the components of the CG model in time series in beat units.
- FIG. 6 is a diagram showing an example of a correspondence relationship between the note-on signal of each channel and predetermined components in the data structure according to the present invention.
- the angle of each joint (or bone) is expressed by three elements of an x-axis angle, a y-axis angle, and a z-axis angle.
- information indicating the x-axis angle, the y-axis angle, and the z-axis angle of the bone of the “RA1” portion shown in FIG. 4 is assigned to different channels.
- Equation 1 N 0 is 60, V 0 is 1, ⁇ N is 5 °, and ⁇ V is 0. 05 °.
- the note-on signal of the channel corresponding to the x-axis angle has a note number of 70 in decimal and a velocity of 1. Therefore, according to Equation 1, the x-axis angle is + 50 °.
- the note-on signal of the channel corresponding to the y-axis angle has a note number of 62 and a velocity of 3. Therefore, according to Equation 1, the y-axis angle is + 10.1 °.
- the note-on signal of the channel corresponding to the z-axis angle has a note number of 60 and a velocity of 1. Therefore, according to Equation 1, the z-axis angle is 0 °.
- FIG. 7 is a diagram showing a specific data example conforming to the corio data format according to the present invention.
- a data string in byte units and corresponding information are shown.
- the data string is shown over a plurality of rows, but it is actually continuous data.
- the corio data format in FIG. 7 conforms to the SMF format 1, but is not limited to this.
- the data column in the first row in FIG. 7 corresponds to the MIDI header.
- the resolution of the quarter note is set to 48.
- the data column in the second row in FIG. 7 corresponds to the conductor track.
- the tempo is specified by a conductor track using a BPM (Beats Per Minute) unit.
- BPM is set to 120.
- the data strings in the third and fourth rows in FIG. 7 correspond to normal tracks (performance tracks).
- the note-on signal 100 indicates the start of sound generation of note number 3C and velocity 7F in channel 0 (for example, corresponding to the x-axis angle of bone ID 0).
- Note-on signal 100 ends with a corresponding note-off signal 110.
- the delta time of the note-off signal 110 is 6 (corresponding to 1/8 beat). Therefore, the transition time from the angle indicated by the note-on signal 100 to the angle indicated by the next note-on signal (note-on signal 120) is 1/8 beat.
- note-on signals 110 and 120 when the signals of the same channel are continuous, the second and subsequent status bytes can be omitted using the running status (note-on signals 110 and 120).
- the note-on signal 130 includes information regarding another channel (channel 1).
- Note-off signals 140 and 150 correspond to note-on signals 120 and 130, respectively.
- the corio data format according to the present invention is compatible with, for example, the SMF format, and is a time series for designating the coordinates of the components of the CG model in time series for each channel in MIDI. Contains information (repeat of note on / off signal).
- SMF format a time series for designating the coordinates of the components of the CG model in time series for each channel in MIDI.
- Contains information (repeat of note on / off signal).
- the predetermined frame period can be specified based on a predetermined tempo (for example, BPM).
- the predetermined frame period may be a period corresponding to a certain beat length (for example, one beat, one eighth beat, etc.) at a predetermined tempo.
- the predetermined frame period can be calculated by multiplying the length of the beat by the number of frames per unit time (for example, FPS (Frames Per Second)).
- the corio data preferably holds information in units of 1/8 beat. The reason for this will be described with reference to FIGS.
- FIG. 8 is a diagram showing an example of a typical angle change pattern in one beat
- FIG. 9 is a diagram showing an example of extracting each eighth beat in one beat.
- the present inventors have found that changes in movement (for example, an angle) of a component of an organism (for example, a human being, an animal, etc.) increase, decrease, decrease, monotonically increase, or monotone as shown in FIG. We focused on the fact that it is almost expressed in either pattern of decrease.
- the present inventors extract eight points in one beat as shown in FIG. I found that I could reproduce the rough shape of, and came up with the idea of holding information in 1/8 beat units as corio data.
- time-series information included as the corio data is not limited to 1/8 beat units, and may be appropriately increased or decreased in consideration of a trade-off between the data amount and the reproducibility of the original motion data.
- FIG. 10 shows an example of a flow when the robot operates using motion data conforming to the corio data format. Further, as an example of the flow of FIG. 10, an example of specific processing contents performed by each functional block shown in FIG. 3 will be described with reference to FIGS.
- FIG. 11 is a diagram illustrating an example of an operation based on the stored corio data.
- FIG. 12 is a diagram illustrating an example of an operation based on corio data generated in real time.
- FIG. 11 shows a case where the robot 10 operates based on the corio data stored in another robot 10, the user terminal 20, or the server 30.
- the robot 10 is output from the electronic musical instrument 40.
- the robot 10 can operate based on the corio data stored in its own device.
- the sequencer since the sequencer acquires MIDI data (corio data), it corresponds to the acquisition unit 12 of FIG.
- the sequencer since the sequencer generates and acquires MIDI signals (corio data), it corresponds to the generation unit 16 (and acquisition unit 12) of FIG. 11 and 12, the MIDI through box is for acquiring a MIDI signal (corio data), and corresponds to the acquisition unit 12 of FIG.
- the MIDI signal is transmitted / received via the network 50 using the transmission / reception unit 11.
- the MIDI signal received by the robot 10 is called a channel (which may be referred to as a motion channel) indicating the corio data and a channel (audio channel, music channel, etc.) indicating the sound data.
- a channel which may be referred to as a motion channel
- a channel audio channel, music channel, etc.
- the present invention is not limited to this, and at least corio data may be included.
- step S21 information (such as a relative angle) regarding the coordinates of the components of the CG model at each predetermined beat is acquired (step S21). Specifically, in step S ⁇ b> 21, the acquisition unit 12 (MIDI through box) acquires a MIDI signal, separates it into a motion channel and an audio channel, and outputs the motion channel to the generation unit 16.
- the acquisition unit 12 MIDI through box
- the information on the coordinates of the components of the CG model at each beat is converted into information on the coordinates of the components of the robot 10 (step S22).
- the generation unit 16 performs the conversion and outputs the conversion result to the reproduction unit 13.
- the conversion includes the CG model and the initial structure of the hierarchical structure of the robot 10, the initial state of the hierarchical structure, the reference posture, the length of each bone, and the restrictions on the structure and operation of the robot 10 as described later (for example, the movable range of each joint, This may be realized by performing coordinate conversion (for example, adjustment of position and angle) for each component of the CG model in consideration of the limitation of the movement speed. Further, these parameters considered in the conversion may be included in the corio data.
- step S23 the reproducing unit 13 first analyzes the corio data (SMF format) output from the generating unit 16 by a decoder, and based on the note on / off signal of each channel, the time series regarding the coordinates of each component. Get information.
- SMF format corio data
- the association in step S23 may be performed based on a predetermined tempo (for example, BPM) and a control unit time of the robot 10 (for example, a minimum time as a control unit determined by the performance of the CPU or motor). it can.
- the control unit time of the robot 10 may be associated with the number of frames (for example, FPS) to be processed per unit time when the CG model is displayed as a moving image.
- the predetermined tempo here may be acquired from the information when the corio data includes information about the tempo. Further, it may be a tempo detected from other data (for example, music data) reproduced in synchronization with the operation of the robot 10, or may be a tempo set externally or stored in advance. .
- step S23 the reproducing unit 13 acquires the first BPM from the corio data in step S21 (or the conversion result in step S22). Further, the playback unit 13 may acquire the second BPM from data (for example, music data) that is played back in synchronization with the operation of the robot 10. Then, the playback unit 13 adjusts the time series information acquired in step S21 in the time direction based on the first BPM and the second BPM. For example, when the first BPM and the second BPM are different, the reproducing unit 13 expands / contracts the time series information acquired in step S21 by a value obtained by dividing the first BPM by the second BPM.
- the reproduction unit 13 determines the coordinates of each component at the time corresponding to each control unit time of the robot 10 based on the time series information acquired in step S21 or the time series information to which the expansion / contraction is applied. Determine (position, angle, etc.).
- the reproduction unit 13 determines a predetermined interpolation method (for example, sine curve interpolation) from the information regarding the coordinates at a near time. May be used to determine the coordinates at that timing.
- the reproducing unit 13 may suppress rattling by applying an interpolation process to the angle and / or coordinates.
- an interpolation processing for example, an exponential moving average using a low-pass filter can be used as shown in FIG. In the case of real-time reproduction as shown in FIG. 12, since future data cannot be used, the low-pass filter processing is preferable.
- a control signal is generated based on the coordinates of each component (joint part) determined in step S23, and processing of each joint part is controlled based on the control signal (step S24).
- the reproduction unit (control signal generation unit) 13 generates a control signal including information instructing the rotation speed of the motor in the joint unit for each control unit time.
- the output part 14 transmits a control signal with respect to each joint part, drives a joint part, and operates the robot 10.
- FIG. It should be noted that control signals for a plurality of control unit times may be transmitted collectively, and for a predetermined control unit time, a control signal may not be transmitted to a predetermined joint part (for example, the predetermined control unit time). Such as when the joint position and angle do not change).
- step S22 the acquisition unit 12 outputs the motion channel directly to the reproduction unit 13 in step S21, and the reproduction unit 13 interprets the corio data for the CG model in step S22 to restrict the structure and operation of the robot 10 (for example, each In consideration of the joint point angle and the movement speed limitation, the coordinate conversion and / or correction processing may be performed.
- the playback unit 13 when the audio channel is input, the playback unit 13 performs playback so as to synchronize with the operation of the robot 10 indicated by the motion channel by the MIDI sound source, and the output unit 14 Can be configured to output sound through speakers.
- other data for example, music data
- other data reproduced in synchronization with the operation of the robot 10 may be obtained in real time (streamed distribution) in the same manner as the corio data.
- the robot moves appropriately according to the music beat as the streaming progresses. Can be controlled.
- the skeleton structure of the robot is not necessarily the same as the skeleton structure of the CG model specified by the corio data. Generally, there are more cases where the number of bones decreases than when the number of bones increases compared to the CG model, for the sake of simplification of hardware implementation. If the skeletal structures do not match, there is a concern that the robot will perform unexpected movements unless the bones are adjusted properly.
- the present inventors have information (for example, information on coordinates (non-existing bone, abbreviated bone, etc.) carried on the CG model that is not present in the robot. Focusing on how important it is to inherit the bone's inclination, etc.) to other bones (also called existing bones, non-omitted bones, etc.), the following three inheritance methods were conceived: (1 ) Blend the omitted bone information with the existing bone information close to the omitted bone according to a predetermined ratio (for example, 100: 0, 90:10, etc.). (2) Close the omitted bone information to the omitted bone. (3) Ignoring omitted bone information and calculating existing bone information by a predetermined method.
- a predetermined ratio for example, 100: 0, 90:10, etc.
- the predetermined method is, for example, calculating information on existing bones close to the omitted bone so that the robot does not fall down (maintaining an initial state (for example, an upright state)). It may be calculated based on information on other existing bones.
- adjacent bones are not limited to neighboring bones.
- the adjacent bone may be the next adjacent bone.
- bones that are highly related to the omitted bones may be used as inheritance targets.
- FIG. 13 is a diagram illustrating an example of balance adjustment when the skeleton of the CG model and the skeleton of the robot are different.
- FIG. 13A shows the skeleton of the CG model
- FIG. 13B shows the skeleton of the robot.
- two clavicles, one spine, and leg bones are omitted bones.
- the robots in FIGS. 13A and 13B have the same configuration as the robots in FIGS. 2A and 2B, respectively.
- the reproducing unit 13 in FIG. 3 may determine the coordinates (position, angle, etc.) of the bone B in FIG. 13B by blending the coordinates of the bones B1 and B2 in FIG. 13A at a predetermined ratio.
- the clavicle since there are many movements that assist the upper arm, it is preferable to add information on the clavicle to the upper arm by the method (2). 3 determines the coordinates (position, angle, etc.) of the bone RA1 (LA1) in FIG. 13B by adding the coordinates of the bone RS (LS) to the coordinates of the bone RA1 (LA1) in FIG. 13A. May be.
- the robot can be adjusted so as not to fall down.
- 3 ignores the coordinates (position, angle, etc.) of the bone W (and / or F) in FIG. 13B and ignores the coordinates of the bone W, RF1-3, and LF1-3 in FIG. 13A.
- And may be determined based on the coordinates of other bones (for example, the bones B, W, and F may be determined to be located on a straight line).
- the method (1) is preferable.
- the position of the joint point is important (for example, a part such as a leg or a trunk that is important for the operation of the robot such as the balance of the robot is lost when the position is changed)
- the method (2) is preferable.
- FIG. 14 is a diagram showing another example of balance adjustment when the skeleton of the CG model is different from the skeleton of the robot.
- 14A and 14B show the above methods (1) and (2), respectively, when the number of bones is increased.
- the skeleton corresponding to bone B2 in the CG model is increased to bones B2a and B2b in the robot.
- the bone B1 is a bone adjacent to the bone (bone B2a) at one end of the increased plurality of bones (bones B2a and B2b).
- FIG. 14 and FIGS. 15-17 to be described later show plan views (for example, an xy plane) of the robot bone as seen from a predetermined viewpoint.
- the angle of the bone B2b with respect to the bone B1 is controlled by the method 1 so as to be the same ⁇ (bone angle existing in the CG model) in the case of the original data (CG model) and the robot. Yes.
- the coordinates of the joint point at the end of the bone B2b before and after the increase of the bone are different from the coordinates of the joint point at the end of the bone B2 of the CG model.
- the angle of the bone at the other end of the bone) with respect to the bone B1 can be maintained.
- the coordinates (angle, position, etc.) of the bone adjacent to the increased bone may also be corrected by these methods.
- the adjacent bone in the CG model and the adjacent bone in the robot may be controlled to have the same position or angle.
- the bone can be adjusted appropriately. For this reason, the motion of the CG model once created can be widely applied to robots.
- the robot has a limit in the angle at which the joint operates. This is also called a limit angle.
- a limit angle is defined (set) for each joint (and / or bone)
- the inventors have been requested an unreasonable angle from the corio data (that is, a predetermined bone exceeds the limit angle). It was important to limit the angle so that it would not be unnatural for humans to watch as much as possible.
- angle restrictions may be applied before bone adjustment.
- An angle exceeding a predetermined angle for example, a limit angle
- the angle of the bone is set as the limit angle, and the angle that cannot be bent (the difference between the specified angle and the limit angle) is replaced with the parent bone.
- whether the final angle is given priority or the position is given priority may differ depending on the bone.
- FIG. 15 is a diagram showing an example of the joint angle restriction according to the embodiment of the present invention.
- FIGS. 15A and 15B show the above methods (1) and (2) of joint angle restriction, respectively.
- the CG model and robot bones B1 and B2 are shown.
- FIG. 15 shows an example in which the corio data designates the angle ⁇ ( ⁇ > ⁇ ) as the angle of the bone B2 when the limit angle of the bone B2 is ⁇ .
- the robot interprets an angle exceeding a predetermined angle (limit angle ⁇ ) as a predetermined angle, so that the bone B2 is bent by ⁇ .
- the predetermined angle is not limited to the limit angle, and may be an angle smaller than the limit angle.
- the robot first recognizes that the angle ⁇ specified for the bone B2 exceeds the limit angle ⁇ . Therefore, first, the angle of the bone B2 is corrected to the limit angle ⁇ . Then, the angle of the bone B1 which is the parent of the bone B2 is set to ⁇ - ⁇ which is an angle that cannot be bent. Thus, the angle ( ⁇ ) exceeding the limit angle set for the bone B2 is equal to the sum of the angle ( ⁇ ) of the bone B2 and the angle ( ⁇ ) of the bone B1 that is the parent of the bone B2. By doing so, it is possible to maintain the final bone angle while preventing the angle of each bone from exceeding the limit angle.
- ⁇ - ⁇ has been described as not exceeding the limit angle (for example, ⁇ ) of the bone B1, but if it exceeds, the angle of the parent bone of the bone B1 is
- the bones B1 and B2 may be ⁇ - ⁇ - ⁇ that cannot be bent. Thus, the angle that cannot be bent may be further propagated to the parent.
- the robot has a limit on the speed at which each bone can transition. This is also called a critical speed.
- a limit speed is defined (set) for each joint (and / or bone)
- the present inventors are requested an unreasonable speed from the corio data (that is, a predetermined bone is changed at the limit speed).
- the next specified coordinate cannot be reached by the next specified time (for example, the next beat)
- the inventors of the present invention particularly examined the case where the corio data shows a dance movement.
- the inventors of the present invention pay attention to the fact that the dance appears to be a continuous movement of the table beat, but it does not become like a dance simply by connecting the poses of the table beat.
- By emphasizing the pose of the beat the idea was to express a dynamic action that seems to be a dance.
- the back beat corresponds to the second half of the beat in the corio data.
- the bones are adjusted as described above, and angle data is stored in each bone, and an excessive speed (speed exceeding the limit speed) is required without exceeding the limit angle of each joint.
- speed limits may be applied before bone adjustment or angle limits.
- the following two methods can be considered to limit the speed: (1) The bone transition is performed within a possible range (a range not exceeding the limit speed). (2) Priority is given to the back beat (so that the back pose is reproduced).
- FIG. 16 is a diagram showing an example of speed limitation according to an embodiment of the present invention.
- FIGS. 16A and 16B show the movement of each beat of the original data (CG model) and the movement of each beat when the above method (1) for limiting the speed is applied to the original data.
- FIG. 16 shows an example in which the bone B2 repeats the left rotation and the right rotation with the bone B1 as a base point. In both FIGS. 16A and 16B, it is assumed that the poses at the back beat 600 match.
- FIG. 16A corresponds to the case where the limit speed is not particularly defined. If the critical speed is not specified, the transition can be made so as to surely reach no matter how far the bone transition distance is.
- the robot rotates the bone B2 to the right at the limit speed, and starts the next transition (left rotation) from the back beat 601.
- the beat defined by the corio data can be maintained by aborting the transition in the middle.
- FIG. 17 is a diagram showing another example of speed limitation according to an embodiment of the present invention.
- FIGS. 17A and 17B respectively show the movement of each beat of the original data (CG model) and the movement of each beat when the above method (2) for limiting the speed is applied to the original data.
- Other environments are the same as in FIG. 16, for example, FIG. 17A is the same as FIG. 16A.
- the robot since there is a limit speed in bone B2, it is not possible to make a transition from the angle of back beat 600 to the angle of front beat 500 in half-beat time. Therefore, the robot pre-reads the time series of the corio data and refers to the next back beat (back beat 601), so that the transition to the angle (and / or position) of the next back beat can be reliably executed.
- the coordinates (angle and / or position) of bone B2 at table beat 500 are determined. Then, the bone B2 is shifted from the angle of the back beat 600 to the determined angle of the front beat 500.
- the robot rotates the bone B 2 to the right at a speed equal to or lower than the limit speed, and makes the back beat 601 the same angle as the original data. .
- the pose of each back beat can be reproduced by pre-reading the corio data, so that a sharp movement can be realized.
- each table beat pose is maintained as much as possible.
- the table beat pose may be adjusted to be completely different from the original data. Good.
- method (2) if it is difficult to keep several back beat poses, keep as many back beat poses as possible and / or keep important back beat poses. In this way, not only the front beat pose but also the back beat pose may be adjusted. That is, the corio data and / or the operation of each bone may be modified so that at least some of the timing coordinates corresponding to the back beat are preferentially maintained.
- the present inventors ensure that the origin of the corio data (including the above-mentioned bone adjustment and the corio data to which the limit not exceeding the limit angle is applied) in order to prevent unnatural movement of the robot.
- the corio data may be created by connecting choreography defined in units of 8 beats (one eight) or 8 beats ⁇ 4 32 beats (four eights). Such a series of operations may be called, for example, “move”.
- the inventors of the present invention are required to match the movement before and after the connecting point (matching point) of the move and move the movement smoothly. Focused on. The idea was to apply angle and / or speed limits so that the back beat just before the connecting point, ie the pose of the last back beat of the move, is retained.
- FIG. 18 is a diagram showing still another example of speed limitation according to an embodiment of the present invention.
- 18A and 18B show the movement of each beat of the original data (CG model) and the movement of each beat when the above method (2) for limiting the speed is applied to the original data.
- FIG. 18 illustrates a series of movements (move) of bones B1 (corresponding to the upper arm) and B2 (corresponding to the forearm) from the viewpoint of the CG model or the robot as viewed from above. In both FIGS. 18A and 18B, it is assumed that the poses at the back beat 600 match.
- each bone can be calculated based on the final position of the end of each bone (joint point far from the root). The bone path calculation will be described with reference to FIG.
- FIG. 19 is a diagram showing an example of bone path calculation in the speed limit according to the embodiment of the present invention.
- the route calculation of the end of the bone B2 in FIG. 18 will be described, but the same route calculation can be applied to other bones.
- the robot confirms the reachability of the position of the following beat in time (Step 0 not shown).
- it is determined whether it is possible to reach the position of the front beat 500 from the position of the back beat 600 of the original data in a half-beat time. In this example, it is assumed that it is reachable. If it is not reachable, the position of the front beat 500 may be adjusted closer to the position of the back beat 600 so that it can be reached.
- the robot confirms the reachability of the position of the subsequent back beat in terms of time from the position of each front beat of the original data (step 1).
- it is determined whether it is possible to reach the position of the back beat 601 of the original data from the position of the front beat 500 in Step 0 in a half-beat time. In this example, it is not reachable. For this reason, the robot brings the position of the front beat 500 closer to the position of the back beat 601.
- the value of only one coordinate axis for example, the front-rear direction of the robot
- the robot is set so that the movement change from the position of the back beat 600 of the original data to the position of the table beat 500 is reduced as much as possible. Adjustments are preferred.
- the robot confirms the reachability between the positions of the back beat (step 2).
- it is determined whether the positions of the back beat 601 and the back beat 600 of the original data and the positions of the back beat 601 and the back beat 602 can be reached in one beat time.
- it is assumed that it is not possible to reach the position of the back beat 602 of the original data from the position of the back beat 601 of the original data. For this reason, the robot brings the position of the back beat 601 closer to the position of the back beat 602.
- the robot re-adjusts the position of the table beat adjusted in Step 1 in consideration of the position of the back beat adjusted in Step 2 (Step 3).
- it is preferable that readjustment is performed so that the movement of the robot does not become unnatural while maintaining the reachability from the position of the front beat to the position of the back beat.
- the position of the table beat 500 is determined on the trajectory connecting the position of the table beat 500 shortened in step 1 and the position of the back beat 601 of the original data.
- Steps 0 to 3 described above with reference to FIG. 19 need not be executed in this order. Moreover, each process of step 0-3 may be performed repeatedly. In addition, it is preferable that the front beat / back beat adjustment related to the speed limit is performed collectively based on the beats of the entire corio data. It may be performed only for near beats. Further, the route calculation is not limited to the processing in Step 0-3 described above.
- FIG. 19 shows an example in which the speed is adjusted so that the pose of the last beat of the move is reliably maintained.
- the reproducibility of the pose (for example, the coordinates and angles of each bone is the correlation data).
- the timing for guaranteeing that it is the same as the value indicated by is not limited to the last beat of the move.
- the timing for guaranteeing the reproducibility of the pose may be another back beat, a front beat, or a set specific beat.
- a priority that guarantees the reproducibility of the pose may be set at a predetermined timing. In this case, for example, it is preferable to set the priority of the last back beat of the move higher than the priority of other beats. .
- the priority of each timing (beat) may be notified to the robot by a note on / off signal corresponding to the beat in the corio data, or other events (MIDI event, SysEx event, etc.).
- a beat forcibly adjusting the pose to the corio data may be defined.
- the beat forcibly adjusting the pose to the corio data may be notified to the robot by a note on / off signal corresponding to the beat in the corio data or another event (such as a MIDI event or a SysEx event).
- information indicating that each bone is reset to a predetermined state (for example, an initial state) at a predetermined timing
- a predetermined state for example, an initial state
- the robot may control the bones to transition to the initial state over a predetermined time (for example, one beat) from the detected timing. In this way, even if the pose adjustment is accumulated by forcibly prohibiting the pose adjustment or resetting the pose, even if an unnatural pose is generated, the original normal pose is generated. It becomes possible to return to.
- control information indicating the control method at the time of balance adjustment and / or restriction as described above is included in the note on / off signal in the corio data and other events (MIDI event, SysEx event, etc.). You may be notified.
- the robot may change the adjustment method such as balance adjustment and angle / speed limitation during the robot operation based on the information included in the corio data. As a result, appropriate adjustments can be made according to the content of the operation performed by the robot.
- the corio data shows an action that changes from a normal action (walking, etc.) to a violent action (dance, etc.)
- Control information may be included in the corio data so as to apply the method (2).
- the robot can be dynamically controlled so that the back beat is emphasized during dance.
- the balance adjustment and the adjustment considering the limitation of the angle / speed are performed in accordance with the generation unit 16 shown in FIG. 3 when generating the corio data for the robot 10 from the corio data for the CG model. It may be broken. Further, these adjustments may be performed by the reproducing unit 13 illustrated in FIG. 3 when time-series information regarding the coordinates of each component in step S22 in FIG. 10 is converted.
- each embodiment described above is not limited to the case where motion data of a CG model is used for a robot.
- the above-described balance adjustment, angle / speed limitation, and the like may be performed.
- Such control may be realized in consideration of differences in the skeleton structure between the CG models, the initial state of the hierarchical structure, the reference posture, the length of each bone, the movable range of each joint, and the like. Further, these parameters considered in the control may be included in the corio data.
- notification of predetermined information is not limited to explicitly performed, but is performed implicitly (for example, by not performing notification of the predetermined information). May be.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Multimedia (AREA)
- Manipulator (AREA)
- Toys (AREA)
- Processing Or Creating Images (AREA)
Abstract
ロボットの動作を楽曲と容易に同期させること。本発明の一態様に係るデータ変換装置は、所定のコンピュータグラフィックス(CG)モデルの構成要素の座標を拍単位で時系列に指定するための第1の時系列情報を取得する取得部と、前記第1の時系列情報に基づいて、前記所定のCGモデルの構造と所定のロボットの構造との差分を検出する制御部と、前記差分に基づいて、前記第1の時系列情報を修正して前記所定のロボットの構成要素の座標を拍単位で時系列に指定するための第2の時系列情報を生成する生成部と、を有する。
Description
本発明は、ロボットの動作制御に関する。
近年、産業分野だけではなく、医療、サービス業など他の業種や、一般家庭においてもロボットの導入が増加してきている。現代のロボットは、高い情報処理能力を持つものが存在することから、例えばロボットのモーションをソフトウェア制御する方法が提案されている(例えば、特許文献1)。これにより、例えば振付師や設計者が考案した動作(例えば、ダンス)を行わせるようなプログラムをロボットに実行させることで、ロボットに所望の動作を実現させることが可能となる。
従来のロボット制御の動作プログラミングにおいては、設計者がロボットの各制御点(関節など)における位置や速度(間節角度、角速度など)を入力する必要がある。しかしながら、例えばロボットに楽曲に合わせて踊らせる動作を作成することを考えると、動きを楽曲に同期させるための微妙な調整が必要となってしまい、動作の作成が困難であるという課題がある。
本発明は、かかる点に鑑みてなされたものであり、ロボットの動作を楽曲と容易に同期させることができるデータ変換装置、ロボット、プログラム及び情報処理方法を提供することを目的の1つとする。
本発明の一態様に係るデータ変換装置は、所定のコンピュータグラフィックス(CG)モデルの構成要素の座標を拍単位で時系列に指定するための第1の時系列情報を取得する取得部と、前記第1の時系列情報に基づいて、前記所定のCGモデルの構造と所定のロボットの構造との差分を検出する制御部と、前記差分に基づいて、前記第1の時系列情報を修正して前記所定のロボットの構成要素の座標を拍単位で時系列に指定するための第2の時系列情報を生成する生成部と、を有する。
本発明によれば、ロボットの動作を楽曲と容易に同期させることができる。
本発明者らは、ロボットの動き制御に適したデータ構造を検討する上で、3次元コンピュータグラフィックス(3DCG(Three Dimensional Computer Graphics)、単にCG(Computer Graphics)などともいう)に着目した。3DCGでは、キャラクタ(CGモデル)を表現するために、様々なデータ構造が提案されており、例えば、人間などの複雑な骨格構造を持つキャラクタに適したデータ構造が提案されている(例えば、特許第3337938号公報、特許第3380158号公報など)。このようなCGモデル及びデータ構造を用いて、CGのアニメーション動画を作成することができる。
本発明者らは、まず、音データ(例えば、楽曲データ、音声データなど)と同期が容易にできるCGモデルの動きデータ(モーションデータ)のデータ構造を検討した。そして、当該データ構造に従って生成されたCGモデルのモーションを用いて、ロボットのモーションを生成することを着想した。この際、CGモデルとロボットとの違いを考慮してモーションを修正する方法を見出した。これにより、ロボットのモーションを音データと容易に同期することができる。また、CGモデルと共通のデータ構造に基づくため、CGアニメーションとロボットの同期制御など、新たなサービスの展開が可能となる。
具体的には、本発明の一態様によるデータ構造によれば、フレーム(CG動画を構成する静止画)単位や実時間単位ではなく、テンポに応じて実際の時間の長さが変化する拍単位(ビート単位)でCGモデルのモーションデータを構成することができる。当該データ構造を利用することにより、ロボットの動作を拍単位で制御することができる。
なお、本発明の一態様に係る上記データ構造は、振り付け(choreography)データフォーマット、コリオデータフォーマットなどと呼ばれてもよい。また、コリオデータフォーマットで表現されるデータ、コリオデータフォーマットに準拠するデータ(例えば、コリオデータフォーマットに変換可能なフレーム単位の時系列データを含む)などのコリオデータフォーマットと互換性のあるデータは、コリオデータ、ダンスコリオデータなどと呼ばれてもよい。
以下、本発明に係る実施形態について、添付図面を参照して詳細に説明する。
(情報処理システム)
まず、本発明が適用される情報処理システムについて説明する。図1は、本発明の一実施形態に係る情報処理システムの概略構成の一例を示す図である。図1に示す情報処理システム1は、ロボット10と、ユーザ端末20と、サーバ30と、電子楽器40と、ネットワーク50と、を含む。
まず、本発明が適用される情報処理システムについて説明する。図1は、本発明の一実施形態に係る情報処理システムの概略構成の一例を示す図である。図1に示す情報処理システム1は、ロボット10と、ユーザ端末20と、サーバ30と、電子楽器40と、ネットワーク50と、を含む。
ロボット10は、例えば、アルデバランロボティクス社のPEPPER(登録商標)、本田技研工業株式会社のASIMO(登録商標)など、比較的高性能な情報処理能力を有するロボットを想定するが、これらに限られるものではない。ロボット10の構造及び機能ブロックについては、図2及び図3で後述する。
ユーザ端末20は、携帯電話、スマートフォン、タブレット型端末などの携帯端末(移動通信端末)であってもよいし、パソコン、多機能テレビ、セットトップボックス(例えば、Apple TV(登録商標)、Chromecast(登録商標))などの固定通信端末であってもよい。
サーバ30は、ロボット10、ユーザ端末20及び/又は電子楽器40との間でコリオデータを送信及び/又は受信する機能を有する装置である。なお、当該コリオデータの送受信は、ロボット10、ユーザ端末20及び/又は電子楽器40からの要求により行われてもよいし、周期的又は所定のタイミングで行われてもよい。また、サーバ30は、コリオデータを用いて生成したデータ(例えば、動画など)を、ロボット10、ユーザ端末20及び/又は電子楽器40との間で送受信してもよい。
電子楽器40は、MIDI(Musical Instrument Digital Interface)データ等の演奏情報に応じた音を発生する機能を有する装置である。例えば、電子楽器40は、電子ピアノ、シンセサイザーなどであるが、これに限られない。
ネットワーク50は、機器間を接続し情報の通信を可能とする。例えば、ネットワーク50は、インターネット、モバイルネットワーク、LAN(Local Area Network)、WAN(Wide Area Network)などの様々なネットワークを含む。なお、ネットワーク50は、無線で構成されてもよいし、有線で構成されてもよい。
なお、当該システム構成は一例であり、これに限られない。例えば、ロボット10、ユーザ端末20、サーバ30及び電子楽器40は、図1ではそれぞれ複数含まれる構成としたが、各機器の数はこれに限られない。また、情報処理システム1は、ロボット10、ユーザ端末20、サーバ30及び電子楽器40の一部を含まない構成であってもよい。また、ネットワーク50に接続していないロボット10などであっても、所定の記憶媒体を接続することで、当該記憶媒体を介してコリオデータの入出力を行ってもよいし、内蔵する記憶装置を介してコリオデータを取得してもよい。
図2は、本発明の一実施形態に係るロボットの一例を示す模式図である。図2では骨格構造を構成する関節部を主に示している。図2のロボットは、複数の関節部を有するロボットである。図2Aは、2足直立歩行が可能な人間型ロボット(humanoid robot)である。図2Bは、図2Aのロボットを簡略化したような構成となっており、図2Aに比べて一部の関節部が省略されている。
図2Bのロボットは、鎖骨がなく、肩は胴体と独立した構成となっている。また、背骨や脚の骨がそれぞれ1本で表現されている。なお、図2Bのロボットは、例えば脚部が胴体部と一体となった形状を有し、脚部の先に車輪(例えば、オムニホイール)、無限軌道などが配置される場合には、自走することが可能であってもよい。
関節部のうち、一部は基準点(ルート)として、ロボット内で固定されていてもよい。例えば、図2では、腰に相当する位置の関節部が、基準点として設定されている。
各関節部は、本発明に係る技術分野での共通認識に基づいて説明されるロール/ピッチ/ヨー軸などで構成される。例えば、図2において、肩に2軸(ロール/ピッチ)、肘に2軸(ロール/ヨー)、手首に1軸(ヨー)の自由度がある構成とすることができる。また、頭、指、足なども駆動する構成としてもよい。なお、関節部の数や、関節部における自由度は、図2の構成に限られるものではない。
図3は、本発明の一実施形態に係るロボットの機能構成の一例を示す図である。図2に示すように、ロボット10は、送受信部11と、取得部12と、再生部(制御信号生成部)13と、出力部(駆動部)14と、入力部15と、生成部16と、制御部17と、を有する。ロボット10は、本発明に係る情報処理装置として、データ変換装置を構成することができる。また、ロボット10は、本発明の一態様に係る情報処理方法を実現することができ、コリオデータを用いて情報処理を行うステップを実行することができる。
なお、図3では、本実施形態における特徴部分の機能ブロックを主に示しており、ロボット10は、他の処理に必要な他の機能ブロックも有してもよい。
送受信部11は、ネットワーク50を介して、他のロボット10、ユーザ端末20、サーバ30、電子楽器40との間で、コリオデータや必要な情報などの送受信を行う。送受信部11は、受信したコリオデータを、取得部12に出力する。また、送受信部11は、受信した所定のデータ(例えば、CGモデルのモーションデータ)を、生成部16に出力してもよい。また、送受信部11は、受信した種々の情報を制御部17に出力する。送受信部11は、本発明に係る技術分野での共通認識に基づいて説明されるトランスミッター/レシーバー、送受信回路又は送受信装置により構成することができる。なお、送受信部11は、送信部及び受信部から構成されてもよい。
取得部12は、送受信部11及び/又は生成部16からコリオデータを取得する。取得部12は、取得したコリオデータを、送受信部11及び/又は再生部13に出力する。
再生部(制御信号生成部)13は、取得部12から入力されたデータの再生を行って、出力部14に出力する。再生部(制御信号生成部)13は、例えば、後述の生成部16で修正されたコリオデータを解釈して、ロボットの動作(関節部の動作)を制御する信号(制御信号)を生成し、出力部14に出力する。
また、再生部(制御信号生成部)13は、制御部17からの指示(例えば、CGモデルの構造とロボット10の構造との差分に関する情報を含む)に基づいて、CGモデル向けのコリオデータを解釈して、ロボット10の構造や動作の制限(例えば、各関節点の角度や移動速度の制限)を考慮して、ロボットが実現可能な動作を制御する信号(制御信号)を生成し、出力部14に出力してもよい。再生部(制御信号生成部)13の一部は、本発明に係る技術分野での共通認識に基づいて説明される信号生成器、信号生成回路又は信号生成装置から構成することができる。
また、再生部13は、所定のコンテンツ(例えば、楽曲、音声などの音データ)の再生を行って、出力部14に出力してもよい。例えば、コンテンツが音データであれば、コンテンツに係る音声ファイルフォーマットに従って、出力部14が認識できる形式で再生用信号に変換する。再生部13の一部は、本発明に係る技術分野での共通認識に基づいて説明されるプレイヤー、画像/映像/音声処理回路、画像/映像/音声処理装置、アンプなどにより構成することができる。
出力部(駆動部)14は、再生部13から入力された制御信号に基づいて、複数の関節部を駆動して、ロボット10の動作を実現する。具体的には、出力部14の一部は、ロボット10の関節部を構成し、各関節部は、制御信号に基づいて所定の軸周りの回転動作を行うモータ、当該モータの回転位置を検出するエンコーダ、当該エンコーダの出力に基づいて上記モータの回転位置・速度を制御するドライバなどにより構成される。なお、出力部(駆動部)14の構成はこれに限られず、本発明に係る技術分野での共通認識に基づいて説明されるアクチュエータ、駆動回路、駆動装置などにより構成することができる。
また、出力部14は、再生部13から入力されたコンテンツの再生信号の出力を行う。例えば、出力部14の一部は、視覚的なデータ(例えば、CG動画)を表示する表示部と、音データを出力する音声出力部と、から構成されてもよい。表示部は、本発明に係る技術分野での共通認識に基づいて説明されるディスプレイ、モニタなどの表示装置により構成することができる。また、音声出力部は、本発明に係る技術分野での共通認識に基づいて説明されるスピーカーなどの出力装置により構成することができる。
入力部15は、外部環境の情報を取得する。例えば、入力部15の一部は、静止画像及び/又は動画像を取得するカメラ、音声を取得するマイクロフォン、各種センサ(タッチセンサ、接地センサ、加速度センサ、傾斜センサ、ジャイロ、温度センサ(サーモグラフィ)、超音波センサ、測域センサ(レーザスキャンセンサ)、無線ビーム(レーダー)など)のいずれか又はこれらの組み合わせにより構成されてもよい。
また、入力部15は、ユーザからの操作により、ロボット10に対する入力を受け付け、入力結果を制御部17に出力してもよい。入力部15の一部は、本発明に係る技術分野での共通認識に基づいて説明されるキーボード、マウスなどの入力装置により構成することができる。また、入力部15の一部は、表示部と一体となった構成(例えば、タッチパネル)としてもよい。
また、入力部15は、所定の機器や記憶媒体と接続され、データの入力を受け付けてもよい。当該入力結果は、制御部17や、生成部16に出力される。この場合、入力部15の一部は、本発明に係る技術分野での共通認識に基づいて説明される入出力端子、入出力回路などを含んで構成することができる。
生成部16は、送受信部11、入力部15などから取得部12を介して入力されたデータを用いて、コリオデータを生成する。生成部16は、制御部17からの指示(例えば、CGモデルの構造とロボット10の構造との差分に関する情報を含む)に基づいて、CGモデル向けのコリオデータを修正して、ロボット10向けのコリオデータを生成(コリオデータを変換)してもよい。生成したコリオデータは、送受信部11や取得部12、再生部13などに出力されてもよい。生成部16は、本発明に係る技術分野での共通認識に基づいて説明される演算器、演算回路、演算装置などにより構成することができる。
制御部17は、ロボット10全体の制御を実施する。例えば、制御部17は、取得部12がコリオデータを取得したり、出力したりするタイミングを制御してもよい。また、制御部17は、生成部16が生成したコリオデータをロボット10に保存するように制御してもよい。制御部17は、本発明に係る技術分野での共通認識に基づいて説明されるコントローラ、制御回路又は制御装置により構成することができる。
また、制御部17は、取得部12が取得したCGモデル向けのコリオデータに基づいて、当該CGモデルの構造と、ロボット10の構造との差分を検出(判断)し、当該差分に基づいて、生成部16(及び/又は再生部13)におけるコリオデータの変換を制御する。制御部17は、ロボット10の構造に関する情報を、予め有するものとする。ここで、ロボット10の構造に関する情報は、例えば、骨格構造、骨格構造に係る階層構造の初期状態、基準姿勢、各骨の長さ、各関節の可動範囲などに関する情報であるが、これらに限られない。なお、骨格構造については図4を用いて後述する。
また、制御部17は、変換されたロボット10向けのコリオデータを、取得部12を介して再生部13に出力するように制御することができる。なお、制御部17は、他のロボット10の構造に関する情報を保持する場合には、当該他のロボット10向けのコリオデータを生成するように生成部16を制御してもよい。
なお、ユーザ端末20、サーバ30、電子楽器40なども、図3に示す機能ブロックの全部又は一部を有してもよく、ロボット10と同様に本発明の一態様に係る情報処理方法を実現し、本発明の一態様に係るデータ変換装置を構成してもよい。例えば、ユーザ端末20、サーバ30、電子楽器40などが、ロボット10の代わりに、所定のCGモデル向けのコリオデータを修正して、所定のロボット10向けのコリオデータを生成してもよい。生成されたロボット10向けのコリオデータは、サーバ30などに保存されてもよいし、ロボット10に送信されてもよい。
図3で示した機能ブロックのうち、一部がまとめられて本発明の一実施形態に係るデータ変換装置を構成してもよい。当該データ変換装置は、少なくとも、取得部12と、生成部16と、制御部17と、から構成される。当該データ変換装置によれば、生成部16が、制御部17からの指示に基づいて、取得部12で取得されたCGモデル向けのコリオデータを修正して、ロボット10向けのコリオデータを生成することができる。
なお、上記実施形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及びソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線又は無線で接続し、これら複数の装置により実現されてもよい。
例えば、ロボット10やユーザ端末20などの各機能の一部又は全ては、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを用いて実現されてもよい。また、ロボット10やユーザ端末20などは、プロセッサ(CPU:Central Processing Unit)と、ネットワーク接続用の通信インターフェースと、メモリと、プログラムを保持したコンピュータ読み取り可能な記憶媒体と、を含むコンピュータ装置によって実現されてもよい。つまり、本発明の一実施形態に係るロボット10やユーザ端末20などは、CGモデル向けのデータ構造(コリオデータ)をロボット10向けのデータ構造(コリオデータ)に変換する処理を行うコンピュータとして機能してもよい。
ここで、プロセッサやメモリなどは情報を通信するためのバスで接続される。また、コンピュータ読み取り可能な記録媒体は、例えば、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、CD−ROM(Compact Disc−ROM)、RAM(Random Access Memory)、ハードディスクなどの記憶媒体である。また、プログラムは、電気通信回線を介してネットワーク50から送信されてもよい。
ロボット10やユーザ端末20などの機能構成は、上述のハードウェアによって実現されてもよいし、プロセッサによって実行されるソフトウェアモジュールによって実現されてもよいし、両者の組み合わせによって実現されてもよい。プロセッサは、オペレーティングシステムを動作させてユーザ端末の全体を制御する。また、プロセッサは、記憶媒体からプログラム、ソフトウェアモジュールやデータをメモリに読み出し、これらに従って各種の処理を実行する。
ここで、当該プログラムは、本発明の一態様に係るコリオデータに関する情報処理を、コンピュータに実行させるプログラムであればよい。例えば、ロボット10の制御部17は、メモリに格納され、プロセッサで動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。
また、ソフトウェア、命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線(DSL)などの有線技術及び/又は赤外線、無線及びマイクロ波などの無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び/又は無線技術は、伝送媒体の定義内に含まれる。
本発明の一態様においては、上述したような各装置がコリオデータを利用する。以下では、まずコリオデータフォーマットについて説明し、コリオデータを用いたロボットの動作方法や、CGモデルの構造とロボットの構造との違いを考慮したコリオデータ調整方法について説明する。
(コリオデータフォーマット)
本発明の一態様に係るコリオデータフォーマットは、CGモデルの構成要素の座標を、拍単位で時系列に指定するための時系列情報を含むデータのフォーマットである。なお、「拍単位」とは、「拍」で特定可能な単位であることをいい、1拍単位に限られず、8分の1拍単位などの分数拍単位や、2拍単位などの複数拍単位も含む。
本発明の一態様に係るコリオデータフォーマットは、CGモデルの構成要素の座標を、拍単位で時系列に指定するための時系列情報を含むデータのフォーマットである。なお、「拍単位」とは、「拍」で特定可能な単位であることをいい、1拍単位に限られず、8分の1拍単位などの分数拍単位や、2拍単位などの複数拍単位も含む。
上述のように、本発明者らは、音データと同期が容易にできるCGモデルの動きデータを検討した。動きの再現性やデータ量、他システムとの連携などを鑑みた結果、本発明者らは、電子楽器の演奏情報の保存形式が、拍単位でのデータ構造の表現に好適であることを見出し、本発明の一態様に係るコリオデータフォーマットに至った。
具体的なフォーマットの説明の前に、まずCGモデルの表現方法について説明する。本明細書では、骨格構造(多関節構造)を有するスケルトンモデルをCGモデルとして用いる場合を例に説明するが、本発明を適用可能なCGモデルはこれに限られるものではない。
図4は、骨格構造(多関節構造)を有するスケルトンモデルの一例を示す図である。図4Aは、スケルトンモデルの各構成要素及び基準姿勢を示し、図4Bは、スケルトンモデルの構成要素間の関係を示す。なお、図4に示す例は基本的な構成であり、さらに追加の構造(例えば、皮膚、指、毛髪、衣装、帽子、ステッキなど)を有していてもよい。
図4Aに示すモデルは、複数の骨格から構成されており、各骨格は2つの関節点及びこれらをつなぐ骨(ボーン)から構成されている。図4Aの「N」、「RS」などは骨の名称であり、この例では18本の骨が示されている。
一般的にスケルトンモデルは、ある関節点を基準点(ルート)として、各関節点を介して接続される骨が階層構造を有するように構成されている。例えば、図4Aの階層構造は図4Bのように表される。図4の場合、B1及びWの間の関節点がルートである。また、関節点や骨を比較する際、ルートに近い方を親といい、ルートから遠い方を子という。
CGモデルを3次元空間に配置する際は、当該モデルを、ルートの位置を基準とした当該モデル用の座標系(ローカル座標系)上にモデリングする。そして、3次元空間全体を表す座標系(ワールド座標系、グローバル座標系)に、モデリングされたCGモデルをマッピングする。
構成要素(関節点、骨など)の座標は、3次元空間の絶対座標又は相対座標として表されてもよいし、所定の関節点を基準とした所定の骨の相対角度として表されてもよい。例えば、骨の相対角度で座標を表現する場合、CGモデルの基準姿勢を図4AのようなT字姿勢とし、当該姿勢時の各骨の角度を0°としてもよい。
なお、階層構造やルートの位置は図4の例に限られない。例えば、ルートの位置は両足の間(RF3とLF3との間)であってもよい。また、各構成要素の座標及び/又は角度は、ルートから末端にかけて順番に計算するフォワードキネマティクスを用いて算出してもよいし、子の位置から親の位置を逆計算するインバースキネマティクスを用いて算出してもよいし、両者の組み合わせ又はその他の方法を用いてもよい。また、骨格構造においては、上記の階層構造だけでなく、階層構造の初期状態や、各骨の長さや、各関節の可動範囲などが設定されてもよい。
(SMFフォーマットとコリオデータフォーマット)
上述のように、本発明の一態様におけるコリオデータフォーマットは、電子楽器の演奏情報の保存形式に準拠することが好ましい。特に、広く普及しているMIDIデータの保存形式が好適である。次に、MIDIデータの保存形式の1つであるSMF(Standard MIDI File)フォーマットの概略を説明し、SMFフォーマットに準拠するコリオデータフォーマットを説明する。
上述のように、本発明の一態様におけるコリオデータフォーマットは、電子楽器の演奏情報の保存形式に準拠することが好ましい。特に、広く普及しているMIDIデータの保存形式が好適である。次に、MIDIデータの保存形式の1つであるSMF(Standard MIDI File)フォーマットの概略を説明し、SMFフォーマットに準拠するコリオデータフォーマットを説明する。
SMFフォーマットは、所定の制御情報を含むヘッダチャンクと、演奏データを含むトラックチャンクから構成される。演奏データは、デルタタイム及びMIDIイベントの組み合わせで構成される。ここで、デルタタイムは次のMIDIイベントが起こるまでの時間を表す。また、MIDIイベントは演奏内容を表すものであり、例えば、ノートオン(音を出す)、ノートオフ(音を止める)などがある。
ノートオン信号は、対応するデルタタイムの経過後に特定の音を出すという信号である。ノートオン信号は、例えば、16進数で「9n kk vv」という3byteで表現でき、これは「チャンネルnでノート番号kkの音をベロシティvvで発音する」ということを意味する。図5は、ノートオン信号の概念説明図である。図5に示すように、チャンネルは楽譜におけるパート(所定の楽器の演奏パート)、ノート番号は音の高さ、ベロシティは楽器(鍵盤)を叩く速度(強さ)を表す。
ノートオフ信号は、対応するデルタタイムの経過後に特定の音を消すという信号である。ノートオフ信号は、例えば、16進数で「8n kk vv」という3byteで表現でき、これは「チャンネルnでノート番号kkの音をベロシティvvで消音する」ということを意味する。
ノート番号及びベロシティはいずれも10進数で0~127の数値を取ることができる。なお、ベロシティが0のノートオン信号「9n kk 00」は、「チャンネルnでノート番号kkの音を消音する」というノートオフ信号と同じ意味を表す。
図5におけるチャンネル0及び1に示される4分音符に対応するノートオン信号は、それぞれ「90 3E 04」及び「91 3C 02」のように表すことができる。
本発明の一態様においては、各チャンネルを、それぞれCGモデルのいずれかの構成要素の座標に関する情報として扱う。つまり、コリオデータフォーマットは、CGモデルの構成要素の座標に関する拍単位の時系列情報を、複数含んで構成されてもよい。ここで、構成要素(例えば、骨、関節点など)の座標に関する情報とは、例えば、構成要素の絶対座標又は相対座標に関する情報であってもよいし、構成要素(例えば、骨)の相対角度として表されてもよい。
CGモデルの構成要素の座標に関する情報としては、ノートオン信号のノート番号及び/又はベロシティを用いることができる。この場合、あるタイミングにおいて、所定の構成要素の特定の軸の角度及び/又は座標は、当該タイミングに対応する拍に配置されたノートオン信号から取得することができる。また、ノートオン信号及び/又はノートオフ信号のデルタタイムは、CGモデルの構成要素の座標が変化する拍の長さに関する情報として用いられてもよい。
例えば、ノートオフ信号に対応するデルタタイムは、当該ノートオフ信号の直前のノートオン信号から算出される角度(又は座標)から、当該ノートオフ信号の直後のノートオン信号から算出される角度(又は座標)に遷移するのにかかる拍の長さを示してもよい。各ノートに関連付けられた所定の構成要素の角度及び/又は座標の遷移は、所定の規則に従って行われてもよい。例えば、所定の補間方法に基づいて、遷移中の速度や加速度を決定して用いてもよい。なお、デルタタイムは、正数であることが好ましい。
ノートオン/オフ信号はSMFフォーマットで最も頻繁に用いられる信号であるため、MIDIに対応した電子楽器などにおいて、処理を高速に行うことが可能である。
ノートオン信号においては、ノート番号により、比較的大きな単位で座標又は角度を大まかに特定し、ベロシティにより、比較的小さな単位で座標又は角度を詳細に特定してもよい。例えば、あるチャンネルにおけるノートオン信号が特定の軸方向の角度(例えば、x軸相対角度)を示す場合には、以下の式1で当該角度θを算出してもよい。
(式1)
θ=(N−N0)×θN+(V−V0)×θV
ここで、Nはノート番号、N0は基準とするノート番号、θNはノート番号増分あたりの角度増加量、Vはベロシティ、V0は基準とするベロシティ、θVベロシティ増分あたりの角度増加量である。
θ=(N−N0)×θN+(V−V0)×θV
ここで、Nはノート番号、N0は基準とするノート番号、θNはノート番号増分あたりの角度増加量、Vはベロシティ、V0は基準とするベロシティ、θVベロシティ増分あたりの角度増加量である。
例えば、N0は60(鍵盤の中央の「C(ド)」音に対応)、V0は1、θNは5°、θV0.05°としてもよい。なお、N0、V0、θN、θVなどは上記の値に限られない。
また、あるチャンネルにおけるノートオン信号が特定の軸方向の座標を示す場合には、以下の式2で当該座標位置Pを算出してもよい。
(式2)
P=(N−N0)×PN+(V−V0)×PV
ここで、Nはノート番号、N0は基準とするノート番号、PNはノート番号増分あたりの座標増加量、Vはベロシティ、V0は基準とするベロシティ、PVはベロシティ増分あたりの座標増加量である。
P=(N−N0)×PN+(V−V0)×PV
ここで、Nはノート番号、N0は基準とするノート番号、PNはノート番号増分あたりの座標増加量、Vはベロシティ、V0は基準とするベロシティ、PVはベロシティ増分あたりの座標増加量である。
例えば、N0は60(鍵盤の中央の「C(ド)」音に対応)、V0は1、PNは64cm、PVは0.5cmとしてもよい。また、PNは127cm、θVは1cmとしてもよい。なお、N0、V0、PN、PVなどは上記の値に限られない。
また、上記とは逆に、ベロシティにより、比較的大きな単位で座標又は角度を大まかに特定し、ノート番号により、比較的小さな単位で座標又は角度を詳細に特定する構成としてもよい。さらに、システムエクスクルーシブ(SysEx)イベントなど、ノートオン/オフ以外の信号を用いてCGモデルの構成要素の座標に関する情報が特定されてもよい。
構成要素の座標に関する情報は、例えば、ポジション情報及びポーズ情報に分類することができる。ポジション情報は、CGモデルの初期位置(例えば、CG動画の開始時における位置)からの相対位置を示す情報であり、例えばCGモデルの基準点(ルート)のx軸座標、y軸座標、z軸座標及び当該基準点の回転角度で表されてもよい。また、ポーズ情報は、CGモデルの基準姿勢に基づく角度又は位置を示す情報であり、例えば図4AのようなT字姿勢を0°とし、いくつかの数の指定ボーンに関して、親骨と子骨との間のx軸相対角度、y軸相対角度及びz軸相対角度で表されてもよい。
各構成要素(例えば、骨)の各座標に関する情報を、いずれのチャンネルに割り当てるかは、システムの運用形態などに応じて適宜選択することができる。1チャンネルにつき1つの構成要素の座標に関する情報を割り当てる場合、CGモデルを表現するのに必要なチャンネル数は、指定ボーン数を18とすると計58チャンネルである。具体的には、ポーズ情報のために18(ボーン数)×3(軸数)=54(チャンネル)が必要となり、ポジション情報のために3(ポジション座標)+1(ポジション基準角度)=4(チャンネル)が必要となる。MIDIポートは16チャンネルを含むことができるため、4MIDIポートあれば、ボーン数18から成るCGモデルの座標及び姿勢を表現することができる。なお、CGモデルの表情や指先などを表現する場合には、さらに追加でチャンネルが必要になるため、必要なMIDIポート数も増加する。
一方、1チャンネルにつき構成要素の座標に関する情報を複数割り当ててもよい。例えば、1チャンネルで、所定の骨のx軸相対角度、y軸相対角度及びz軸相対角度を表現するように構成することができる。この場合、例えば、ノート番号を3分割して、比較的小さなノート番号(例えば、0~42)をx軸相対角度、比較的中間のノート番号(例えば、43~85)をy軸相対角度、比較的大きなノート番号(例えば、86~127)をz軸相対角度として用いてもよい。なお、割り当て方法はこれに限られない。
また、コリオデータフォーマットが準拠するSMFフォーマットは、特に制限されない。例えば、1トラックに全チャンネルの情報を含むフォーマット0であってもよいし、複数トラックで構成されるフォーマット1であってもよいし、フォーマット2であってもよい。さらに、既存のフォーマット0~2でない新たなフォーマットを用いてもよい。また、コリオデータフォーマットは、CGモデルの構成要素の座標を拍単位で時系列に指定するための情報を有するものであれば、SMFフォーマットに限られない。
図6は、本発明におけるデータ構造における各チャンネルのノートオン信号と、所定の構成要素との対応関係の一例を示す図である。上述のように、スケルトンモデルの一実施形態としては、各関節(又は骨)の角度はx軸角度、y軸角度及びz軸角度の3要素で表現される。図6においては、図4で示した「RA1」部分の骨のx軸角度、y軸角度及びz軸角度を示す情報が、それぞれ異なるチャンネルに割り当てられている。なお、図6のx軸角度、y軸角度及びz軸角度が示す方向は一例であり、これに限られない。また、図6に示す五線譜の中央の線に対応するノート番号が10進数で60であるものとし、式1においてN0を60、V0を1、θNを5°、θVを0.05°とする。
図6において、x軸角度に対応するチャンネルのノートオン信号は、ノート番号が10進数で70、ベロシティが1である。したがって、式1によればx軸角度は+50°となる。また、y軸角度に対応するチャンネルのノートオン信号は、ノート番号が62、ベロシティが3である。したがって、式1によればy軸角度は+10.1°となる。また、z軸角度に対応するチャンネルのノートオン信号は、ノート番号が60、ベロシティが1である。したがって、式1によればz軸角度は0°となる。
図7は、本発明に係るコリオデータフォーマットに準拠する具体的なデータ例を示す図である。図7では、バイト単位のデータ列と、対応する情報と、が示されている。なお、図7ではデータ列が複数の行に亘って示されているが、実際には連続したデータである。また、図7のコリオデータフォーマットはSMFフォーマット1に準拠するものであるが、これに限られない。
図7の一行目のデータ列は、MIDIヘッダに対応している。ここでは四分音符の分解能は48と設定されている。図7の二行目のデータ列は、コンダクタトラックに対応している。一般的に、テンポはBPM(Beats Per Minute)単位を用いてコンダクタトラックで指定される。図7ではBPMは120に設定されている。図7の三行目及び四行目のデータ列は、通常のトラック(演奏トラック)に対応している。
ノートオン信号100は、チャンネル0(例えば、ボーンID 0のx軸角度に対応する)においてノート番号3C、ベロシティ7Fの発音開始を指示している。ノートオン信号100は、対応するノートオフ信号110によって終了する。また、ノートオフ信号110のデルタタイムは6(8分の1拍に相当)である。このため、ノートオン信号100によって示される角度から、次のノートオン信号(ノートオン信号120)によって示される角度への遷移時間が8分の1拍であることを示している。
また、同じチャンネルの信号が連続する場合には、ランニングステータスを用いて2回目以降のステータスバイトを省略することができる(ノートオン信号110、120)。ノートオン信号130は、別のチャンネル(チャンネル1)に関する情報を含んでいる。また、ノートオフ信号140及び150は、それぞれノートオン信号120及び130に対応する。
以上説明したように、本発明に係るコリオデータフォーマットは、例えばSMFフォーマットと互換性を持ち、MIDIにおけるチャンネルごとに、CGモデルの構成要素の座標を拍単位で時系列に指定するための時系列情報(ノートオン/オフ信号の繰り返し)を含む。データ構造をSMFフォーマットとすることで、CGモデルの動作(ひいては、ロボットの動作)と、電子楽器など他の機器又はシステムとの連携が容易になる。
コリオデータとしては、所定の拍の長さに対応するフレーム周期ごとに、所定の数の指定ボーンの3つの特定角によるポーズ情報と、4軸からなるポジション情報と、を持つデータが好適である。当該所定のフレーム周期は、所定のテンポ(例えば、BPM)に基づいて特定することができる。例えば、当該所定のフレーム周期は、所定のテンポにおけるある拍の長さ(例えば、1拍分、8分の1拍分など)に対応する周期であってもよい。また、当該所定のフレーム周期は、拍の長さに、単位時間あたりのフレーム数(例えば、FPS(Frames Per Second))を掛けることで算出できる。
より具体的には、コリオデータは、8分の1拍単位で情報を保持することが好ましい。この理由について図8及び9を用いて説明する。図8は、1拍の中における典型的な角度変化のパターンの一例を示す図であり、図9は、1拍の中における各8分の1拍を抽出する一例を示す図である。
本発明者らは、生物(例えば、人、動物など)の構成要素の動き(例えば、角度)の変化が、拍単位で見ると、図8に示すような加減、減加、単調増加又は単調減少のいずれかのパターンでほとんど表現されることに着目した。また、本発明者らは、当該着目点を鑑みた結果、図9に示すように、1拍中に8つの点を抽出することで、動きの変化のパターンの判別と、動きが遷移するカーブの大まかな形の再現と、を行えることを見出し、コリオデータとして8分の1拍単位で情報を保持するという発想に至った。
なお、コリオデータとして含まれる時系列情報は、8分の1拍単位に限られず、データ量と元モーションデータの再現性とのトレードオフなどを考慮して適宜増減させてもよい。
(コリオデータフォーマットに従うデータを用いたロボット動作フロー)
図10は、コリオデータフォーマットに準拠したモーションデータを用いてロボットが動作する場合のフローの一例を示す。また、図10のフローの実施例として、図3に示した各機能ブロックが行う具体的な処理内容の一例について、図11及び12を参照して説明する。
図10は、コリオデータフォーマットに準拠したモーションデータを用いてロボットが動作する場合のフローの一例を示す。また、図10のフローの実施例として、図3に示した各機能ブロックが行う具体的な処理内容の一例について、図11及び12を参照して説明する。
図11は、保存されたコリオデータに基づく動作の一例を示す図である。また、図12は、リアルタイムで生成されるコリオデータに基づく動作の一例を示す図である。図11では、ロボット10が、別のロボット10、ユーザ端末20又はサーバ30に保存されるコリオデータに基づいて動作する場合を示し、図12では、ロボット10が、電子楽器40から出力されるコリオデータに基づいて動作する場合を示すが、これに限られるものではない。例えば、ロボット10は、自装置に記憶されるコリオデータに基づいて動作することができる。
図11において、シーケンサはMIDIデータ(コリオデータ)を取得するものであるから、図3の取得部12に相当する。また、図12において、シーケンサはMIDI信号(コリオデータ)を生成して取得するものであるから、図3の生成部16(及び取得部12)に相当する。また、図11及び12において、MIDIスルーボックスは、MIDI信号(コリオデータ)を取得するものであるから、図3の取得部12に相当する。なお、図11及び12では簡単のため省略しているが、MIDI信号は送受信部11を用いてネットワーク50を介して送受信される。
また、図11及び12では、ロボット10が受信するMIDI信号は、コリオデータを示すチャンネル(モーションチャンネルなどと呼ばれてもよい)及び音データを示すチャンネル(音声チャンネル、音楽チャンネルなどと呼ばれてもよい)を含むものとするが、これに限られず、少なくともコリオデータが含まれればよい。
図10に示すフローでは、まず、各所定の拍におけるCGモデルの構成要素の座標に関する情報(相対角度など)を取得する(ステップS21)。具体的には、ステップS21において、取得部12(MIDIスルーボックス)はMIDI信号を取得して、モーションチャンネル及び音声チャンネルに分離し、モーションチャンネルを生成部16に出力する。
次に、各拍におけるCGモデルの構成要素の座標に関する情報を、ロボット10の構成要素の座標に関する情報に変換する(ステップS22)。例えば、生成部16が当該変換を行って、変換結果を再生部13に出力する。当該変換は、CGモデル及びロボット10それぞれの骨格構造、階層構造の初期状態、基準姿勢、各骨の長さや、後述するようなロボット10の構造や動作の制限(例えば、各関節の可動範囲、移動速度の制限など)を考慮して、CGモデルの各構成要素について座標変換(例えば、位置、角度の調整)を行うことで実現されてもよい。また、当該変換で考慮されるこれらのパラメータは、コリオデータに含まれる構成としてもよい。
次に、ロボット10の構成要素の座標を、ロボット10の制御単位時間に対応付ける(ステップS23)。ステップS23では、まず、再生部13は、生成部16から出力されたコリオデータ(SMFフォーマット)をデコーダにより解析し、各チャンネルのノートオン/オフ信号に基づいて、各構成要素の座標に関する時系列情報を取得する。
ステップS23の対応付けは、所定のテンポ(例えば、BPM)と、ロボット10の制御単位時間(例えば、CPUやモータの性能などによって決まる、制御単位となる最小時間)と、に基づいて行うことができる。なお、ロボット10の制御単位時間は、CGモデルを動画として表示する際に単位時間あたりに処理させるフレーム数(例えば、FPS)に関連付けられていてもよい。
ここでの所定のテンポは、コリオデータがテンポに関する情報を含む場合には、当該情報から取得されてもよい。また、ロボット10の動作と同期して再生される他のデータ(例えば、楽曲データ)から検出されたテンポであってもよいし、外部から設定された又は予め記憶されるテンポであってもよい。
具体的には、ステップS23においては、再生部13は、ステップS21のコリオデータ(又はステップS22の変換結果)から第1のBPMを取得する。また、再生部13は、ロボット10の動作と同期して再生するデータ(例えば、楽曲データ)から第2のBPMを取得してもよい。そして、再生部13は、ステップS21で取得された時系列情報を、第1のBPMと第2のBPMとに基づいて時間方向に調整する。例えば、再生部13は、第1のBPMと第2のBPMとが異なる場合、ステップS21で取得された時系列情報を、第1のBPMを第2のBPMで割った値だけ伸縮させる。
このようにして、再生部13は、ステップS21で取得された時系列情報又は上記伸縮が適用された時系列情報に基づいて、ロボット10の各制御単位時間に対応する時刻における各構成要素の座標(位置、角度など)を決定する。また、再生部13は、制御単位時間の所定のタイミング(例えば、開始タイミング)に対応する座標に関する情報がない場合には、近い時間の座標に関する情報から所定の補間方法(例えば、サインカーブ補間)を用いて、当該タイミングにおける座標を決定してもよい。
コリオデータが含む角度又は座標に関する情報は量子化されているため、元データが閾値付近で微動するものであった場合は、ロボット10の動作にガタツキが生じる恐れがある。そこで、再生部13は、角度及び/又は座標に対して、補間処理を適用することで、ガタツキを抑制してもよい。この補間処理としては、例えば、図12に示すように、ローパスフィルタを用いた指数移動平均などを用いることができる。図12のようなリアルタイム再生の場合、未来のデータは利用できないため、ローパスフィルタの処理が好適である。
最後に、ステップS23で決定された各構成要素(関節部)の座標に基づいて制御信号を生成し、当該制御信号に基づいて、各関節部の処理を制御する(ステップS24)。具体的には、ステップS24においては、再生部(制御信号生成部)13は、制御単位時間ごとに、関節部におけるモータの回転速度などを指示する情報を含む制御信号を生成する。そして、出力部14は、各関節部に対して制御信号を送信し、関節部を駆動させてロボット10を動作させる。なお、複数の制御単位時間の制御信号をまとめて送信してもよいし、所定の制御単位時間については、所定の関節部に対して制御信号が送信されなくてもよい(例えば、当該所定の関節部の位置及び角度が変わらない場合など)。
なお、図10では、ステップS22の処理を生成部16が行う例を示したが、これに限られない。例えば、ステップS21で取得部12がモーションチャンネルを直接再生部13に出力し、ステップS22で再生部13がCGモデル向けのコリオデータを解釈して、ロボット10の構造や動作の制限(例えば、各関節点の角度や移動速度の制限)を考慮して、座標を変換及び/又は修正する処理を行う構成としてもよい。
また、図11及び12に示すように、再生部13は、音声チャンネルを入力された場合には、MIDI音源によりモーションチャンネルが示すロボット10の動作と同期するように再生を行って、出力部14がスピーカーにより出力して音を出す構成とすることができる。
また、図12の例において、ロボット10の動作と同期して再生される他のデータ(例えば、楽曲データ)もコリオデータと同様にリアルタイムで取得される(ストリーミング配信される)構成としてもよい。当該構成では、通信状況の悪化により、パケットロス、遅延などが発生してストリーミング音源の再生が停止などする場合であっても、ストリーミングの進行に従って、適切に楽曲の拍に合わせてロボットの動作を制御することができる。
以上までで、コリオデータのデータ構造、及びコリオデータを用いたロボットの動作方法について説明してきたが、CGモデルの構造(例えば、骨格構造)とロボットの構造との違いを考慮すると、さらに検討すべき課題が存在する。以下では、これらの課題とその解決方法について詳しく説明する。
(ボーンのバランス調整)
ロボットの骨格構造は、コリオデータにより特定されるCGモデルの骨格構造と必ずしも同じとは限らない。一般的には、ハードウェア実装の簡単化などのため、CGモデルと比較してボーンが増える場合よりも減る場合の方が多い。骨格構造が一致しない場合に、適切にボーンの調整を行わなければ、ロボットが予期せぬ動作を行うことが懸念される。
ロボットの骨格構造は、コリオデータにより特定されるCGモデルの骨格構造と必ずしも同じとは限らない。一般的には、ハードウェア実装の簡単化などのため、CGモデルと比較してボーンが増える場合よりも減る場合の方が多い。骨格構造が一致しない場合に、適切にボーンの調整を行わなければ、ロボットが予期せぬ動作を行うことが懸念される。
<ボーンが減る場合>
本発明者らは、CGモデルと比べてロボットのボーンが減る場合、ロボットに存在しないボーン(非存在ボーン、省略ボーンなどとも呼ぶ)がCGモデル上で担っていた情報(例えば、座標に関する情報(ボーンの傾きなど))を、どのように他のボーン(存在ボーン、非省略ボーンなどとも呼ぶ)に継承するかが重要であることに着目し、以下の3つの継承方法を着想した:(1)所定の割合(例えば、100:0、90:10など)に従って、省略ボーンの情報を、省略ボーンに近接する存在ボーンの情報にブレンドする、(2)省略ボーンの情報を、省略ボーンに近接する存在ボーンの情報に足し合わせる、(3)省略ボーンの情報は無視し、所定の方法で存在ボーンの情報を算出する。
本発明者らは、CGモデルと比べてロボットのボーンが減る場合、ロボットに存在しないボーン(非存在ボーン、省略ボーンなどとも呼ぶ)がCGモデル上で担っていた情報(例えば、座標に関する情報(ボーンの傾きなど))を、どのように他のボーン(存在ボーン、非省略ボーンなどとも呼ぶ)に継承するかが重要であることに着目し、以下の3つの継承方法を着想した:(1)所定の割合(例えば、100:0、90:10など)に従って、省略ボーンの情報を、省略ボーンに近接する存在ボーンの情報にブレンドする、(2)省略ボーンの情報を、省略ボーンに近接する存在ボーンの情報に足し合わせる、(3)省略ボーンの情報は無視し、所定の方法で存在ボーンの情報を算出する。
ここで、当該方法(3)において、所定の方法とは、例えば、ロボットが倒れないように省略ボーンに近接する存在ボーンの情報を算出する(初期状態(例えば、直立状態)を維持するなど)、他の存在ボーンの情報に基づいて算出する、などであってもよい。
なお、近接するボーンとは、隣り合うボーンに限られない。例えば、近接するボーンは、隣の隣のボーンであってもよい。また、省略ボーンと関連性の高い(例えば、一緒に動くことが多い)ボーンを継承対象として用いてもよい。
図13は、CGモデルの骨格とロボットの骨格が異なる場合のバランス調整の一例を示す図である。図13AはCGモデルの骨格を示し、図13Bはロボットの骨格を示す。図13の例では、ロボットの骨格において、2本の鎖骨、1本の背骨及び脚の骨が省略ボーンである。なお、図13A及び13Bのロボットは、それぞれ図2A及び2Bのロボットの構成と同じである。
背骨に関しては、2本の背骨の動きを1本でも表現できると考えられるため、上記(1)の方法によりブレンドすることが好ましい。したがって、図3の再生部13は、図13BにおけるボーンBの座標(位置、角度など)を、図13AにおけるボーンB1及びB2の座標を所定の割合でブレンドすることで決定してもよい。
また、鎖骨に関しては、上腕を補助する動きが多いため、上記(2)の方法により上腕に鎖骨の情報を加えることが好ましい。したがって、図3の再生部13は、図13BにおけるボーンRA1(LA1)の座標(位置、角度など)を、図13AにおけるボーンRA1(LA1)の座標にボーンRS(LS)の座標を加えて決定してもよい。
また、脚に関しては、存在しない脚を無理に再現しようとするとバランスが崩れるので、上記(3)の方法により、CGモデルの脚の情報は無視して、ロボットが倒れないように調整することが好ましい。したがって、図3の再生部13は、図13BにおけるボーンW(及び/又はF)の座標(位置、角度など)を、図13AにおけるボーンW、RF1−3及びLF1−3の座標を無視して、他のボーンの座標に基づいて決定してもよい(例えば、ボーンB、W及びFが直線上に位置するように決定してもよい)。
<ボーンが増える場合>
例えば、より細かな動きを表現するため、標準ボーンモデルに含まれる骨(背骨など)を中割りにする形で増やす(分割して増やす)ことが考えられる。本発明者らは、CGモデルと比べてロボットのボーンが増える場合(つまり、所定のボーンを複数のボーンにより表現する場合)、増えるボーンの特性を維持することが重要であることに着目し、以下の2つの継承方法を着想した:(1)中割りされるボーンの角度を所定の割合(例えば、50:50)で保持して、最終的な角度を一致させる、(2)中割りされるボーンの到達位置を保持するように、増えたボーンの角度を算出する。
例えば、より細かな動きを表現するため、標準ボーンモデルに含まれる骨(背骨など)を中割りにする形で増やす(分割して増やす)ことが考えられる。本発明者らは、CGモデルと比べてロボットのボーンが増える場合(つまり、所定のボーンを複数のボーンにより表現する場合)、増えるボーンの特性を維持することが重要であることに着目し、以下の2つの継承方法を着想した:(1)中割りされるボーンの角度を所定の割合(例えば、50:50)で保持して、最終的な角度を一致させる、(2)中割りされるボーンの到達位置を保持するように、増えたボーンの角度を算出する。
ボーンの角度が重要な場合(例えば、ロボットを視聴する人が、ボーンの角度が変わることにより、異なる体勢や表現に感じやすい、手などの部分について)には、上記(1)の方法が好ましい。また、関節点の位置が重要な場合(例えば、位置が変わるとロボットのバランスが崩れるなど、ロボットの動作に重要な脚、体幹部などの部分について)には、上記(2)の方法が好ましい。
図14は、CGモデルの骨格とロボットの骨格が異なる場合のバランス調整の別の一例を示す図である。図14A及び14Bは、ボーンが増える場合の上記方法(1)及び(2)をそれぞれ示す。図14では、CGモデルにおけるボーンB2に対応する骨格が、ロボットではボーンB2a及びB2bに増加している。ボーンB1は、増加した複数の骨(ボーンB2a及びB2b)の一端の骨(ボーンB2a)に隣接する骨である。なお、図14及び後述の図15−17は、ロボットのボーンを所定の視点から見た平面図(例えば、x−y平面)を示している。
図14Aでは、方法1により、ボーンB1に対するボーンB2bの角度が、元データ(CGモデル)の場合とロボットの場合とで同じα(CGモデルに存在する骨の角度)となるように制御されている。これにより、ボーンの増加前後で、ボーンB2bの末端の関節点の座標は、CGモデルのボーンB2の末端の関節点の座標と異なってしまうものの、ボーン増加範囲の末端のボーンB2b(増加した複数の骨の他端の骨)の、ボーンB1に対する角度を維持することができる。
図14Bでは、方法2により、ボーンB2bの末端の関節点の位置(複数の骨の末端の位置)が、CGモデルのボーンB2の末端の関節点の位置(CGモデルに存在する骨の末端の位置)と同じになるように制御されている。これにより、ボーン増加範囲の調整が他のボーンに与える影響を好適に抑制することができる。
なお、これらの方法で、増えたボーンに隣接するボーンの座標(角度、位置など)も合わせて修正されてもよい。例えば、CGモデルにおける隣接するボーンと、ロボットにおける隣接するボーンと、が同じ位置又は角度となるように制御されてもよい。
以上の実施形態によれば、ロボットの骨格構造がコリオデータにより特定されるCGモデルの骨格構造と一致しない場合であっても、適切にボーンの調整を行うことが可能となる。このため、一旦作成したCGモデルのモーションを、広くロボットに適用することができる。
(関節角度の制限)
ロボットはCGモデルと異なり、関節の稼働する角度に限界がある。これを限界角度ともいう。本発明者らは、各関節部(及び/又はボーン)に限界角度が規定(設定)される場合において、コリオデータから無理な角度を要求された(つまり、所定のボーンを、限界角度を超える角度にするように指示された)とき、なるべく見る側の人間にとって不自然でないように角度を制限することが重要であることに着目した。
ロボットはCGモデルと異なり、関節の稼働する角度に限界がある。これを限界角度ともいう。本発明者らは、各関節部(及び/又はボーン)に限界角度が規定(設定)される場合において、コリオデータから無理な角度を要求された(つまり、所定のボーンを、限界角度を超える角度にするように指示された)とき、なるべく見る側の人間にとって不自然でないように角度を制限することが重要であることに着目した。
ここでは、前述のボーンの調整を済ませ、それぞれのボーンの角度(関節角度)のデータが保持されているが、まだ角度の制限が加えられていない場合を考える。なお、ボーンの調整を行う前に角度制限を適用してもよい。無理な角度を要求された場合、角度に制限を加える方法として、以下の2つの方法が考えられる:(1)所定の角度(例えば、限界角度)を超える角度は無視する(つまりボーンの角度を所定の角度とする)、(2)ボーンの角度を限界角度とし、曲げきれなかった角度(指定された角度と限界角度との差分)を親のボーンで代替する。なお、いずれのパターンであっても、最終的な角度を優先するか、位置を優先するかはボーンによって異なってもよい。
図15は、本発明の一実施形態に係る関節角度の制限の一例を示す図である。図15A及び15Bは、関節角度の制限の上記方法(1)及び(2)をそれぞれ示す。図15では、CGモデル及びロボットのボーンB1及びB2が示されている。図15では、ボーンB2の限界角度がβである場合に、コリオデータが角度α(α>β)をボーンB2の角度として指定する例を示す。
図15Aでは、方法1により、ロボットは、所定の角度(限界角度β)を超える角度を所定の角度として解釈するため、ボーンB2がβだけ曲げられている。なお、所定の角度は限界角度に限られず、限界角度より小さい角度であってもよい。
図15Bでは、方法2により、ロボットは、まずボーンB2に指定される角度αが限界角度βを超えることを認識する。そのため、まずボーンB2の角度を限界角度βに修正する。そして、ボーンB2の親であるボーンB1の角度を、曲げきれなかった角度であるα−βに設定する。このように、ボーンB2に設定される限界角度を超える角度(α)が、ボーンB2の角度(β)と、ボーンB2の親であるボーンB1の角度(α−β)と、の和と等しくなるようにすることで、各ボーンの角度が限界角度を超えないようにしつつ、最終的なボーンの角度を維持することができる。
なお、図15Bの例について、α−βがボーンB1の限界角度(例えば、γとする)を超えないものとして説明したが、超えた場合には、さらにボーンB1の親のボーンの角度を、ボーンB1及びB2が曲げきれなかったα−β−γとしてもよい。このように、曲げきれなかった角度はさらに親に伝搬させてもよい。
(スピードの制限)
ロボットはCGモデルと異なり、各ボーンが遷移可能な速度には限界がある。これを限界速度ともいう。本発明者らは、各関節部(及び/又はボーン)に限界速度が規定(設定)される場合において、コリオデータから無理な速度を要求された(つまり、所定のボーンを限界速度で遷移させても、次の指定時間(例えば、次の拍)までに次の指定座標に到達できない)とき、なるべく動作の形(流れ)を保持したまま速度を落とす(速度を制限する)ことが重要であることに着目した。
ロボットはCGモデルと異なり、各ボーンが遷移可能な速度には限界がある。これを限界速度ともいう。本発明者らは、各関節部(及び/又はボーン)に限界速度が規定(設定)される場合において、コリオデータから無理な速度を要求された(つまり、所定のボーンを限界速度で遷移させても、次の指定時間(例えば、次の拍)までに次の指定座標に到達できない)とき、なるべく動作の形(流れ)を保持したまま速度を落とす(速度を制限する)ことが重要であることに着目した。
本発明者らは、特に、コリオデータがダンスの動きを示す場合を検討した。そして、本発明者らは、ダンスは一見表拍の動作の連続に見えるが、単に表拍におけるポーズを接続したところでダンスらしくはならないことに着目し、動作の前の縮んでいる状態である裏拍のポーズを重視することで、ダンスらしいメリハリのある動作を表現することを着想した。なお、裏拍とは、コリオデータにおける拍の後半部分に相当する。
ここでは、前述のボーンの調整をし、それぞれのボーンに角度のデータが保持されており、これらが各関節の限界角度を超えていない状態で、無理な速度(限界速度を超える速度)を要求された場合を考える。なお、ボーンの調整や角度制限を行う前に速度制限を適用してもよい。無理な速度を要求された場合、速度に制限を加える方法として、以下の2つの方法が考えられる:(1)可能な範囲(限界速度を超えない範囲)でボーンの遷移を行う、(2)裏拍を優先して(裏拍のポーズは再現されるように)ボーンの遷移を行う。
図16は、本発明の一実施形態に係るスピードの制限の一例を示す図である。図16A及び16Bは、元データ(CGモデル)の拍ごとの動きと、元データにスピードの制限の上記方法(1)を適用した場合の拍ごとの動きと、をそれぞれ示す。図16では、ボーンB1を基点としてボーンB2が左回転及び右回転を繰り返す例が示されている。また、図16A及び16Bの両方で、裏拍600におけるポーズが一致しているものとする。
図16Aは、限界速度が特に規定されていない場合に相当する。限界速度が規定されない場合には、ボーンの遷移距離がどれだけ離れていても、確実に到達するように遷移することができる。
図16Bでは、ボーンB2には限界速度が存在するため、半拍の時間では、裏拍600の角度から表拍500の角度まで遷移し切ることができない。そこで、ロボットは、ボーンB2を限界速度で左回転させるものの、表拍500の時点から次の遷移(右回転)を開始する。遷移しきれなかった分の角度は無視される(つまり、本来のB2の遷移先(図16Aの表拍500)には遷移しない)こととなる。
また、限界速度のため、半拍の時間では、図16Bにおける表拍500の角度から裏拍601の角度まで遷移し切ることができない。そこで、ロボットは、ボーンB2を限界速度で右回転させ、裏拍601から次の遷移(左回転)を開始する。
このように、方法(1)によれば、ボーンを遷移し切れない場合には途中で遷移を打ち切ることにより、コリオデータで規定される拍を維持することができる。
図17は、本発明の一実施形態に係るスピードの制限の別の一例を示す図である。図17A及び17Bは、元データ(CGモデル)の拍ごとの動きと、元データにスピードの制限の上記方法(2)を適用した場合の拍ごとの動きと、をそれぞれ示す。その他の環境は図16と同様であり、例えば図17Aは図16Aと同じである。
図17Bでは、ボーンB2には限界速度が存在するため、半拍の時間では、裏拍600の角度から表拍500の角度まで遷移し切ることができない。そこで、ロボットは、コリオデータの時系列を先読みして次の裏拍(裏拍601)を参照し、次の裏拍の角度(及び/又は位置)への遷移が確実に実行できるように、表拍500におけるボーンB2の座標(角度及び/又は位置)を決定する。そして、ボーンB2を、裏拍600の角度から、決定した表拍500の角度に遷移させる。
表拍500からは、次の遷移(右回転)を開始する。表拍500の角度は裏拍601の角度に確実に遷移できるように調整されているため、ロボットは限界速度以下の速度でボーンB2を右回転させ、裏拍601で元データと同じ角度にする。
このように、方法(2)によれば、コリオデータの先読みにより、各裏拍のポーズを再現することができるため、メリハリのある動きを実現することができる。
なお、方法(2)では、各表拍のポーズもできるだけ保持されることが好ましいが、裏拍のポーズを維持するためには、表拍のポーズは元データと全く異なるように調整されてもよい。
また、方法(2)では、いくつかの裏拍のポーズを保持することが難しい場合は、できるだけ多くの裏拍のポーズが保持されるように、及び/又は重要な裏拍のポーズが保持されるように、表拍のポーズだけでなく裏拍のポーズも調整されてもよい。つまり、裏拍に相当する少なくとも一部のタイミングの座標が優先的に維持されるように、コリオデータ及び/又は各ボーンの動作を修正してもよい。
ここで、本発明者らは、ロボットの動きが不自然にならないようにするために確実にコリオデータ(上述のボーンの調整や、限界角度を超えない制限を適用したコリオデータを含む)の元の動きを再現すべき重要な拍について検討した。コリオデータを作成する際には、所定の拍数(例えば、2拍、4拍、8拍など)で構成される一連の動作を組み合わせる手法をとることが考えられる。例えば、ダンスの動きを示すコリオデータは、8拍単位(ワンエイト)や、8拍×4の32拍単位(フォーエイト)で規定された振り付けを連結して作成してもよい。このような一連の動作は、例えば「ムーブ」と呼ばれてもよい。
本発明者らは、上記の手法でコリオデータを作成する場合には、ムーブとムーブの連結点(整合点)の前後で動きの整合を取り、スムーズに動きを遷移させることが重要であることに着目した。そして、連結点の直前の裏拍、つまり、ムーブの最後の裏拍のポーズが保持されるように角度及び/又は速度の制限を適用することを着想した。
図18は、本発明の一実施形態に係るスピードの制限のさらに別の一例を示す図である。図18A及び18Bは、元データ(CGモデル)の拍ごとの動きと、元データにスピードの制限の上記方法(2)を適用した場合の拍ごとの動きと、をそれぞれ示す。図18には、CGモデル又はロボットを上から見た視点で、ボーンB1(上腕に相当)及びB2(前腕に相当)の一連の動き(ムーブ)が例示されている。また、図18A及び18Bの両方で、裏拍600におけるポーズが一致しているものとする。
図18Bでは、ムーブの最後の裏拍である裏拍602のポーズが保持され、かつ裏拍601のポーズができるだけ保持されるように、表拍500及び501だけでなく、裏拍601のポーズが調整されている。各ボーンの経路は、各ボーンの末端(根から遠い方の関節点)の最終的な位置をもとに計算することができる。ボーンの経路計算について、図19を参照して説明する。
図19は、本発明の一実施形態に係るスピードの制限における、ボーンの経路計算の一例を示す図である。図19では、図18におけるボーンB2の末端の経路計算について説明するが、他のボーンについても同様な経路計算を適用することができる。
まず、ロボットは、元データの各裏拍の位置から、時間的に後続の表拍の位置の到達可能性を確認する(図示しないステップ0)。本例の場合、元データの裏拍600の位置から表拍500の位置に半拍の時間で到達可能かを判断する。本例では、到達可能であるものとする。なお、到達可能でない場合、表拍500の位置を裏拍600の位置に近づけて、到達可能なように調整してもよい。
次に、ロボットは、元データの各表拍の位置から、時間的に後続の裏拍の位置の到達可能性を確認する(ステップ1)。本例の場合、ステップ0の表拍500の位置から元データの裏拍601の位置に半拍の時間で到達可能かを判断する。本例では、到達可能でないものとする。このため、ロボットは、表拍500の位置を裏拍601の位置に近づける。なお、位置を近づける際は、できるだけ元データの裏拍600の位置から表拍500の位置への動きの変化が少なくなるように(例えば、1つの座標軸(ロボットの前後方向など)のみの値が変わるように)調整することが好ましい。
次に、ロボットは、裏拍の位置間の到達可能性を確認する(ステップ2)。本例の場合、元データの裏拍601及び裏拍600の位置と、裏拍601及び裏拍602の位置と、についてそれぞれ1拍の時間で到達可能かを判断する。本例では、元データの裏拍601の位置から元データの裏拍602の位置に到達可能でないものとする。このため、ロボットは、裏拍601の位置を裏拍602の位置に近づける。
次に、ロボットは、ステップ1で調整した表拍の位置を、ステップ2で調整した裏拍の位置を考慮して、再調整する(ステップ3)。この際、表拍の位置から裏拍の位置への到達可能性を維持したまま、ロボットの動きが不自然にならないように再調整されることが好ましい。例えば、本例では、ステップ1で縮めた表拍500の位置と、元データの裏拍601の位置と、を結んだ軌道上に、表拍500の位置を決定する。
以上説明したようなボーンの経路計算によれば、限界速度の制限下において、メリハリのある動きを実現することができる。
なお、図19で上述したステップ0−3は、この順番に実行されなくてもよい。また、ステップ0−3の各処理は、繰り返し実行されてもよい。また、スピードの制限に係る表拍/裏拍の調整は、コリオデータ全体の拍に基づいてまとめて行われることが好ましいが、リアルタイム性が要求される場合などには、現在動作中の拍から近い拍のみを対象として行われてもよい。また、経路計算は上述のステップ0−3の処理に限られない。
また、図19では、ムーブの最後の裏拍のポーズが確実に保持されるようにスピードを調整する例を示したが、ポーズの再現性(例えば、各ボーンの座標、角度などが、コリオデータが示す値と同じであること)を保証するタイミングは、ムーブの最後の裏拍に限られない。例えば、ポーズの再現性を保証するタイミングは、他の裏拍であってもよいし、表拍であってもよいし、設定された特定の拍であってもよい。
また、所定のタイミングに、ポーズの再現性を保証する優先度を設定してもよく、この場合、例えばムーブの最後の裏拍の優先度を他の拍の優先度より高く設定することが好ましい。各タイミング(拍)の優先度は、コリオデータにおける当該拍に対応するノートオン/オフ信号や、他のイベント(MIDIイベント、SysExイベントなど)によりロボットに通知されてもよい。
また、所定のタイミング(例えば、周期的なタイミング)で、ポーズを強制的にコリオデータに合わせる(調整を行わない)拍が規定されてもよい。例えば、ポーズを強制的にコリオデータに合わせる拍は、コリオデータにおける当該拍に対応するノートオン/オフ信号や、他のイベント(MIDIイベント、SysExイベントなど)によりロボットに通知されてもよい。
また、所定のタイミングで、各ボーンを所定の状態(例えば、初期状態)にリセットすることを示す情報(リセット情報)が、同様の信号及び/又はイベントによりロボットに通知されてもよい。この場合、ロボットは、コリオデータに含まれるリセット情報を検出すると、例えば検出したタイミングから所定の時間(例えば、1拍)かけて初期状態に各ボーンを遷移させるように制御してもよい。このように、強制的にポーズの調整を禁止したりポーズをリセットしたりすることにより、ポーズの調整が累積して仮に不自然なポーズが生じるような場合であっても、元の正常なポーズに戻すことが可能となる。
上述したようなバランス調整及び/又は制限時の制御方法を示す情報(制御情報)が、コリオデータにおけるノートオン/オフ信号や、他のイベント(MIDIイベント、SysExイベントなど)に含まれてロボットに通知されてもよい。そして、ロボットは、コリオデータに含まれる当該情報に基づいて、ロボットの動作の最中にバランス調整、角度/スピードの制限などの調整方法を変更してもよい。これにより、ロボットが行う動作の内容に応じて適切な調整が可能となる。
例えば、コリオデータが通常の動作(歩行など)から激しい動作(ダンスなど)に変わる動作を示す場合、歩行動作時はスピードの制限の上記方法(1)を適用し、ダンス時はスピードの制限の上記方法(2)を適用するように制御情報をコリオデータに含めてもよい。これにより、ダンス時には裏拍を重視するように、ロボットを動的に制御することができる。
なお、上述のバランス調整、角度/スピードの制限を考慮した調整などは、図3に示した生成部16によって、CGモデル向けのコリオデータからロボット10向けのコリオデータを生成するときに合わせて行われてもよい。また、これらの調整は、図3に示した再生部13によって、図10のステップS22における各構成要素の座標に関する時系列情報の変換の際に行われてもよい。
なお、以上説明した各実施形態の適用は、CGモデルのモーションデータをロボットに利用する場合に限られない。例えば、あるCGモデルのモーションデータとして作成されたコリオデータを、他のCGモデルのモーションデータとして利用する場合にも、上述のバランス調整、角度/スピードの制限などが実施されてもよい。このような制御は、CGモデル間の骨格構造、階層構造の初期状態、基準姿勢、各骨の長さ、各関節の可動範囲などの違いを考慮して実現されてもよい。また、当該制御で考慮されるこれらのパラメータは、コリオデータに含まれる構成としてもよい。
また、本明細書で説明した用語及び/又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。また、本明細書で説明した情報、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
本明細書で説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的に(例えば、当該所定の情報の通知を行わないことによって)行われてもよい。
本明細書で説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
以上、本発明について詳細に説明したが、当業者にとっては、本発明が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。
本出願は、2015年8月28日出願の特願2015−169735に基づく。この内容は、全てここに含めておく。
Claims (19)
- 所定のコンピュータグラフィックス(CG)モデルの構成要素の座標を拍単位で時系列に指定するための第1の時系列情報を取得する取得部と、
前記第1の時系列情報に基づいて、前記所定のCGモデルの構造と所定のロボットの構造との差分を検出する制御部と、
前記差分に基づいて、前記第1の時系列情報を修正して前記所定のロボットの構成要素の座標を拍単位で時系列に指定するための第2の時系列情報を生成する生成部と、を有することを特徴とするデータ変換装置。 - 前記第1の時系列情報は、SMF(Standard MIDI File)フォーマットに準拠するデータ構造に含まれることを特徴とする請求項1に記載のデータ変換装置。
- 前記SMFフォーマットのチャンネルは、1つ又は複数の前記第1の時系列情報に対応することを特徴とする請求項2に記載のデータ変換装置。
- 前記SMFフォーマットにおけるノートオン信号のノート番号及びベロシティは、CGモデルの構成要素の座標に関する情報として用いられることを特徴とする請求項2又は請求項3に記載のデータ変換装置。
- 前記SMFフォーマットにおけるデルタタイムは、CGモデルの構成要素の座標が変化する拍の長さに関する情報として用いられることを特徴とする請求項2から請求項4のいずれかに記載のデータ変換装置。
- 前記所定のCGモデルは、2つの関節点及びこれらをつなぐ骨から成る骨格により構成されることを特徴とする請求項1から請求項5のいずれかに記載のデータ変換装置。
- 前記第1の時系列情報は、CGモデルの骨の相対角度に関する情報を含むことを特徴とする請求項6に記載のデータ変換装置。
- 前記第1の時系列情報は、CGモデルの初期位置からの相対距離に関する情報及び/又はCGモデルの基準点の回転角度に関する情報を含むことを特徴とする請求項6又は請求項7に記載のデータ変換装置。
- 前記生成部は、前記所定のロボットに存在せず前記所定のCGモデルに存在する骨に関する前記第1の時系列情報に基づいて、当該骨に近接し、前記所定のロボットに存在する骨に関する前記第2の時系列情報を生成することを特徴とする請求項6から請求項8のいずれかに記載のデータ変換装置。
- 前記生成部は、前記所定のロボットに存在せず前記所定のCGモデルに存在する骨に関する前記第1の時系列情報を無視することを特徴とする請求項6から請求項9のいずれかに記載のデータ変換装置。
- 前記生成部は、前記所定のCGモデルに存在する骨を前記所定のロボットに存在する複数の骨で表現する場合、前記複数の骨の一端の骨に隣接する骨と前記複数の骨の他端の骨との成す角度が、前記所定のCGモデルに存在する骨の角度と等しくなるように、前記複数の骨に関する前記第2の時系列情報を生成することを特徴とする請求項6から請求項10のいずれかに記載のデータ変換装置。
- 前記生成部は、前記所定のCGモデルに存在する骨を前記所定のロボットに存在する複数の骨で表現する場合、前記複数の骨の末端の位置を、前記所定のCGモデルに存在する骨の末端の位置と等しくなるように、前記複数の骨に関する前記第2の時系列情報を生成することを特徴とする請求項6から請求項10のいずれかに記載のデータ変換装置。
- 前記生成部は、前記所定のロボットに存在する骨に限界角度が規定される場合、前記第1の時系列情報における当該限界角度を超える角度を、当該限界角度として前記第2の時系列情報を生成することを特徴とする請求項6から請求項12のいずれかに記載のデータ変換装置。
- 前記生成部は、前記所定のロボットに存在する骨に限界角度が規定される場合、前記第1の時系列情報における当該限界角度を超える角度が、当該骨の角度及び当該骨の親である骨の角度の和と等しくなるように、前記第2の時系列情報を生成することを特徴とする請求項6から請求項12のいずれかに記載のデータ変換装置。
- 前記生成部は、前記所定のロボットに存在する骨に限界速度が規定される場合、当該限界速度を超えないように、前記第2の時系列情報を生成することを特徴とする請求項6から請求項14のいずれかに記載のデータ変換装置。
- 前記生成部は、前記所定のロボットに存在する骨に限界速度が規定される場合、前記第1の時系列情報において裏拍に相当する少なくとも一部のタイミングの座標が優先的に維持されるように、前記第2の時系列情報を生成することを特徴とする請求項6から請求項14のいずれかに記載のデータ変換装置。
- 複数の関節部を有するロボットであって、
所定のコンピュータグラフィックス(CG)モデルの構成要素の座標を拍単位で時系列に指定するための第1の時系列情報を取得する取得部と、
前記第1の時系列情報に基づいて、前記所定のCGモデルの構造と前記ロボットの構造との差分を検出する制御部と、
前記差分に基づいて、前記第1の時系列情報を修正して前記所定のロボットの構成要素の座標を拍単位で時系列に指定するための第2の時系列情報を生成する生成部と、
前記第2の時系列情報に基づいて、前記複数の関節部の動作を制御する制御信号を生成する再生部と、
前記制御信号に基づいて、前記複数の関節部を駆動する駆動部と、を有することを特徴とするロボット。 - コンピュータに、
所定のコンピュータグラフィックス(CG)モデルの構成要素の座標を拍単位で時系列に指定するための第1の時系列情報を取得するステップと、
前記第1の時系列情報に基づいて、前記所定のCGモデルの構造と所定のロボットの構造との差分を検出するステップと、
前記差分に基づいて、前記第1の時系列情報を修正して前記所定のロボットの構成要素の座標を拍単位で時系列に指定するための第2の時系列情報を生成するステップと、を実行させるためのプログラム。 - 所定のコンピュータグラフィックス(CG)モデルの構成要素の座標を拍単位で時系列に指定するための第1の時系列情報を取得するステップと、
前記第1の時系列情報に基づいて、前記所定のCGモデルの構造と所定のロボットの構造との差分を検出するステップと、
前記差分に基づいて、前記第1の時系列情報を修正して前記所定のロボットの構成要素の座標を拍単位で時系列に指定するための第2の時系列情報を生成するステップと、を有することを特徴とする情報処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/755,779 US10814483B2 (en) | 2015-08-28 | 2016-10-27 | Data conversion apparatus, robot, program, and information processing method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015-169735 | 2015-08-28 | ||
JP2015169735A JP6684556B2 (ja) | 2015-08-28 | 2015-08-28 | データ変換装置、ロボット、プログラム及び情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017037690A1 true WO2017037690A1 (ja) | 2017-03-09 |
Family
ID=58187009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IB2016/056444 WO2017037690A1 (ja) | 2015-08-28 | 2016-10-27 | データ変換装置、ロボット、プログラム及び情報処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10814483B2 (ja) |
JP (1) | JP6684556B2 (ja) |
WO (1) | WO2017037690A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6457478B2 (ja) * | 2016-12-27 | 2019-01-23 | ファナック株式会社 | 産業用ロボット制御装置 |
CN109815776B (zh) * | 2017-11-22 | 2023-02-10 | 腾讯科技(深圳)有限公司 | 动作提示方法和装置、存储介质及电子装置 |
CN108527376A (zh) * | 2018-02-27 | 2018-09-14 | 深圳狗尾草智能科技有限公司 | 控制机器人舞蹈动作的方法、装置、设备及介质 |
CN110405750B (zh) * | 2018-04-28 | 2020-11-24 | 深圳市优必选科技有限公司 | 一种机器人的运动控制方法、装置及机器人 |
KR20200060074A (ko) * | 2018-11-22 | 2020-05-29 | 엘지전자 주식회사 | 안무 로봇의 모션 제어 장치, 및 그를 포함하는 모션 생성 및 제어 시스템 |
KR20210115068A (ko) * | 2019-02-11 | 2021-09-27 | 엘지전자 주식회사 | 액션 로봇용 단말기 및 그의 동작 방법 |
US11682238B2 (en) * | 2021-02-12 | 2023-06-20 | Adobe Inc. | Re-timing a video sequence to an audio sequence based on motion and audio beat detection |
CN113305830B (zh) * | 2021-04-28 | 2022-08-16 | 吉林大学 | 一种基于人体姿态控制的仿人机器人动作***及控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002103258A (ja) * | 2000-09-28 | 2002-04-09 | Sony Corp | オーサリング・システム及びオーサリング方法、並びに記憶媒体 |
JP2005231012A (ja) * | 2004-02-23 | 2005-09-02 | Sony Corp | ロボット装置及びその制御方法 |
JP2007244726A (ja) * | 2006-03-17 | 2007-09-27 | Mitsubishi Heavy Ind Ltd | 活動支援装置 |
JP2008030136A (ja) * | 2006-07-27 | 2008-02-14 | Sony Corp | ロボットの動作編集装置及び動作編集方法、並びにコンピュータ・プログラム |
JP2008254074A (ja) * | 2007-03-30 | 2008-10-23 | Sega Corp | ロボットのモーション編集装置及びそのプログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5270480A (en) * | 1992-06-25 | 1993-12-14 | Victor Company Of Japan, Ltd. | Toy acting in response to a MIDI signal |
US7297856B2 (en) * | 1996-07-10 | 2007-11-20 | Sitrick David H | System and methodology for coordinating musical communication and display |
US7989689B2 (en) * | 1996-07-10 | 2011-08-02 | Bassilic Technologies Llc | Electronic music stand performer subsystems and music communication methodologies |
US5728960A (en) * | 1996-07-10 | 1998-03-17 | Sitrick; David H. | Multi-dimensional transformation systems and display communication architecture for musical compositions |
US7098392B2 (en) * | 1996-07-10 | 2006-08-29 | Sitrick David H | Electronic image visualization system and communication methodologies |
US7423213B2 (en) * | 1996-07-10 | 2008-09-09 | David Sitrick | Multi-dimensional transformation systems and display communication architecture for compositions and derivations thereof |
JP3728942B2 (ja) * | 1998-03-24 | 2005-12-21 | ヤマハ株式会社 | 楽音および画像生成装置 |
JP4592276B2 (ja) | 2003-10-24 | 2010-12-01 | ソニー株式会社 | ロボット装置のためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラム |
CA2672482C (en) * | 2006-12-13 | 2016-05-17 | Web Ed. Development Pty Ltd | Electronic system, methods and apparatus for teaching and examining music |
JP5238602B2 (ja) * | 2009-05-14 | 2013-07-17 | Kddi株式会社 | 映像コンテンツ生成装置及びコンピュータプログラム |
CN107430781B (zh) * | 2015-01-30 | 2021-09-17 | 株式会社电通 | 计算机图形的数据结构、信息处理装置、信息处理方法以及信息处理*** |
-
2015
- 2015-08-28 JP JP2015169735A patent/JP6684556B2/ja active Active
-
2016
- 2016-10-27 US US15/755,779 patent/US10814483B2/en active Active
- 2016-10-27 WO PCT/IB2016/056444 patent/WO2017037690A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002103258A (ja) * | 2000-09-28 | 2002-04-09 | Sony Corp | オーサリング・システム及びオーサリング方法、並びに記憶媒体 |
JP2005231012A (ja) * | 2004-02-23 | 2005-09-02 | Sony Corp | ロボット装置及びその制御方法 |
JP2007244726A (ja) * | 2006-03-17 | 2007-09-27 | Mitsubishi Heavy Ind Ltd | 活動支援装置 |
JP2008030136A (ja) * | 2006-07-27 | 2008-02-14 | Sony Corp | ロボットの動作編集装置及び動作編集方法、並びにコンピュータ・プログラム |
JP2008254074A (ja) * | 2007-03-30 | 2008-10-23 | Sega Corp | ロボットのモーション編集装置及びそのプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20190022860A1 (en) | 2019-01-24 |
US10814483B2 (en) | 2020-10-27 |
JP6684556B2 (ja) | 2020-04-22 |
JP2017042896A (ja) | 2017-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017037690A1 (ja) | データ変換装置、ロボット、プログラム及び情報処理方法 | |
JP6805422B2 (ja) | 装置、プログラム及び情報処理方法 | |
KR102419065B1 (ko) | 혼합 현실 디바이스에서의 가상 및 실제 객체 레코딩 | |
US10410392B2 (en) | Data structure for computer graphics, information processing device, information processing method and information processing system | |
US9431027B2 (en) | Synchronized gesture and speech production for humanoid robots using random numbers | |
JP2007027846A (ja) | 動画再生システム及び動画再生方法 | |
JP2011258160A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP6424050B2 (ja) | 多関節骨格モデル処理装置及びプログラム | |
JP2011175598A (ja) | 手話アニメーション生成装置及び手話アニメーション生成プログラム | |
JP2020149399A (ja) | 仮想現実空間の提供方法 | |
Skogstad et al. | OSC Implementation and Evaluation of the Xsens MVN suit | |
US20200164519A1 (en) | Motion control apparatus of action robot and motion generation and control system including the same | |
JPH10326353A (ja) | 3次元キャラクタアニメーション表示装置および3次元動きデータ伝送システム | |
US20210390750A1 (en) | Skeleton model update apparatus, skeleton model update method, and program | |
JP2021086474A (ja) | アバター制御システム | |
JP3730505B2 (ja) | コミュニケーション画像生成装置、コミュニケーション画像生成方法及び記録媒体 | |
WO2023282049A1 (ja) | 情報処理装置、情報処理方法、情報処理システム、コンピュータプログラム及び記録媒体 | |
WO2022209317A1 (ja) | 情報処理装置、情報処理システム、情報処理方法およびプログラム | |
Bevilacqua et al. | Music control from 3D motion capture of dance | |
JP2010079443A (ja) | 手話動画像データ送信装置およびそのプログラム、ならびに、手話動画像生成装置およびそのプログラム | |
JP2020069006A (ja) | ロボット | |
JP2011147070A (ja) | 通信装置および通信サーバ | |
Goto | BodySuit and om 2-gi-pp; Virtual Musical Instrument and Performance |
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: 16840963 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16840963 Country of ref document: EP Kind code of ref document: A1 |