WO2022123617A1 - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
WO2022123617A1
WO2022123617A1 PCT/JP2020/045386 JP2020045386W WO2022123617A1 WO 2022123617 A1 WO2022123617 A1 WO 2022123617A1 JP 2020045386 W JP2020045386 W JP 2020045386W WO 2022123617 A1 WO2022123617 A1 WO 2022123617A1
Authority
WO
WIPO (PCT)
Prior art keywords
contact event
information processing
housing
measurement value
contact
Prior art date
Application number
PCT/JP2020/045386
Other languages
English (en)
French (fr)
Inventor
真一 狩谷
妙子 根田
健作 石塚
Original Assignee
株式会社ソニー・インタラクティブエンタテインメント
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ソニー・インタラクティブエンタテインメント filed Critical 株式会社ソニー・インタラクティブエンタテインメント
Priority to CN202080107516.XA priority Critical patent/CN116490251A/zh
Priority to US18/254,268 priority patent/US20240001564A1/en
Priority to JP2022567722A priority patent/JP7453417B2/ja
Priority to PCT/JP2020/045386 priority patent/WO2022123617A1/ja
Publication of WO2022123617A1 publication Critical patent/WO2022123617A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/085Force or torque sensors
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F9/00Games not otherwise provided for
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H11/00Self-movable toy figures
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H13/00Toy figures with self-moving parts, with or without movement of the toy as a whole
    • A63H13/02Toy figures with self-moving parts, with or without movement of the toy as a whole imitating natural actions, e.g. catching a mouse by a cat, the kicking of an animal
    • A63H13/04Mechanical figures imitating the movement of players or workers
    • A63H13/06Mechanical figures imitating the movement of players or workers imitating boxing or fighting
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J17/00Joints
    • B25J17/02Wrist joints
    • B25J17/0258Two-dimensional joints
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H2200/00Computerized interactive toys, e.g. dolls
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40264Human like, type robot arm

Definitions

  • the present invention relates to an information processing device, an information processing method and a program.
  • Patent Document 1 discloses a robot device including a module that generates an operation synchronized with a user's operation according to a user's image input via a camera image input device.
  • an object of the present invention is to provide an information processing device, an information processing method, and a program capable of detecting and using an unexpected movement of a robot.
  • a measurement value acquisition unit that acquires a measured value indicating a change in the motion state of the housing portion and a contact event that detects a contact event that occurs in the housing portion based on the measured value.
  • An information processing apparatus including a detection unit and an activity determination unit that determines that a contact event is active when a contact event is detected in an operation execution portion included in a housing portion is provided.
  • a step of acquiring a measured value indicating a change in the motion state of the housing portion a step of detecting a contact event generated in the housing portion based on the measured value, and a housing.
  • An information processing method including a step of identifying an action performing portion included in a body part and determining that the contact event is active when a contact event is detected in the action performing portion is provided.
  • a measurement value acquisition unit that acquires a measurement value indicating a change in the motion state of the housing portion and a contact event that occurs in the housing portion based on the measurement value are detected.
  • Information processing including a contact event detection unit and an activity determination unit that identifies an operation execution portion included in the housing portion and determines that the contact event is active when a contact event is detected in the operation execution portion.
  • a program for operating a computer as a device is provided.
  • FIG. 1 is a diagram schematically showing a configuration example of a system according to an embodiment of the present invention.
  • the system 10 provides a fighting game by robots 100A and 100B.
  • the system 10 further includes controllers 200A, 200B and a determination device 300.
  • Robots 100A and 100B are head 101A and 101B (hereinafter collectively referred to as head 101) and body portions 102A and 102B (hereinafter collectively referred to as body 102), respectively.
  • Arms 103A, 103B, 104A, 104B (hereinafter collectively referred to as arm 103, 104) and legs 105A, 105B, 106A, 106B (hereinafter collectively referred to as legs 105, 106).
  • the controllers 200A and 200B generate an operation signal according to a user's operation input to a button or stick (not shown), for example.
  • the controllers 200A, 200B may generate operation signals according to user movements identified by motion capture, including cameras or sensors (not shown).
  • the operation signal is transmitted from the controller 200A to the robot 100A and from the controller 200B to the robot 100B, respectively, and the robots 100A and 100B operate according to the respective operation signals.
  • the fighting game is provided by the robots 100A and 100B operating according to the operation signals of the controllers 200A and 200B, respectively, and driving the arms 103 and 104 and the legs 105 and 106 to attack and defend against the opponent.
  • the rules of the fighting game are not particularly limited, but for example, when an attack by any of the arms 103A and 104A of the robot 100A hits the head 101B or the body 102B of the robot 100B, points may be given to the robot 100A. ..
  • the determination device 300 determines the points as described above according to the information transmitted from the robots 100A and 100B, respectively.
  • FIG. 2 is a diagram schematically showing a configuration example of a robot in the system shown in FIG. 1.
  • the robot 100 has, for example, an information processing device 110 mounted on a body 102.
  • the information processing device 110 includes a CPU (Central Processing Unit) 111, a RAM (Random Access Memory) 112, a ROM (Read Only Memory) 113, an external memory 114, and the like that execute arithmetic processing.
  • the information processing device 110 determines the operation of each part of the robot 100 according to the operation signal or control signal received by the communication interface 121.
  • the communication interface 121 is connected to the information processing device 110 via the bus interface 115.
  • the information processing apparatus 110 rotates and drives the joints of the arms 103, 104, hands 103H, 104H, legs 105, 106, and feet 105F, 106F so that the determined movements are executed. Control.
  • the head 101 and the body 102 may also be provided with joints driven by the motor 130.
  • the CPU 111 of the information processing apparatus 110 selects a pattern corresponding to the motion determined from the motion patterns stored in the ROM 113 or the external memory 114, and according to the selected pattern, the foot movement and the ZMP (Zero Moment Point) trajectory. , Trunk movement, upper limb movement, waist horizontal position and height, etc. are set, and the motor 130 is controlled according to these set values.
  • the robot 100 is equipped with a sensor such as an inertial measurement unit (IMU: Inertial Measurement Unit) 122.
  • the sensor is connected to the information processing device 110 via the bus interface 115, and the information processing device 110 controls each part of the robot 100 with reference to the output value of the sensor as needed.
  • the information processing device 110 may transmit the determination information regarding the attack and the defense acquired by the process described later to the determination device 300 shown in FIG.
  • the information processing device 110 is used as a determination device 300 for extracting determination information regarding attack and defense from at least a part of the output value of the sensor, a selected operation pattern, a set value for controlling the motor 130, and the like. You may send it.
  • FIG. 3 is a diagram schematically showing a configuration example of a determination device in the system shown in FIG. 1.
  • the determination device 300 has an information processing device 310 and a communication interface 321.
  • the information processing apparatus 310 includes a CPU 311 that executes arithmetic processing, a RAM 312, a ROM 313, an external memory 314, and the like.
  • the information processing device 310 determines the outcome of the fighting game based on the determination information received by the communication interface 321 from the robots 100A and 100B, respectively.
  • the determination result or the game score may be transmitted to another device such as a user terminal via the communication interface 321 or may be displayed on the display 322.
  • the communication interface 321 and the display 322 are connected to the information processing apparatus 310 via the bus interface 315.
  • a contact event is defined as an element for determining the victory or defeat of a fighting game.
  • the contact event occurs, for example, when the robot 100A hits any part of the housing of the robot 100B in a fighting game.
  • the robot on the other side which is an external object, comes into contact with the housing.
  • a torque change is generated by the force applied by. While the former torque change, including the one caused by contact with the floor surface, the magnitude and timing of the torque change can be predicted from the operation pattern set in the robot 100 and the output value of the sensor. The latter is also difficult to predict because the magnitude and timing of the torque change fluctuate depending on the position and movement of the robot 100B.
  • Such an event accompanied by a torque change generated by contact with an external object is referred to as a contact event in the present specification.
  • the contact event defined above is further divided into a passive contact event and an active contact event.
  • a passive contact event when the robot 100A hits any part of the housing of the robot 100B, it occurs in the robot 100B on the hit side.
  • the robot 100B since the robot 100B does not perform an operation for hitting, it is difficult to predict the occurrence of the event itself on the robot 100B side. In such a case, it is said that a passive contact event has occurred in the robot 100B.
  • the robot 100A since the robot 100A is performing an operation for hitting, the occurrence of the contact event itself can be predicted on the robot 100A side. In such a case, it is said that an active contact event has occurred in the robot 100A.
  • the predicted contact event may not occur, for example, when the robot 100B performs an avoidance operation. Further, even when a contact event occurs, the magnitude and timing of the torque change depend on the position and movement of the robot 100B, so that it is difficult to predict these even if the contact event is active.
  • the passive contact event and the active contact event as described above are detected on the robot 100A side and the robot 100B side, respectively, and the winning or losing of the fighting game is determined by integrating the detection results. ..
  • the system 10 includes a torque measurement value acquisition unit 510, an angle difference value acquisition unit 520, a contact event detection unit 530, an activity determination unit 540, and a score addition unit 550. These functional configurations are implemented in the information processing device 110 of the robot 100 or the information processing device 310 of the determination device 300 in the system 10 shown in FIG.
  • the robot 100 is equipped with a torque measurement value acquisition unit 510, an angle difference value acquisition unit 520, a contact event detection unit 530, and an activity determination unit 540, and the determination device 300 is used.
  • the score addition unit 550 may be implemented.
  • the determination device 300 includes a contact event detection result acquisition unit 551 that receives the detection results of the contact events of the robots 100A and 100B, and an activity determination result acquisition unit that receives the activity determination results for each contact event. 552 and the like are included.
  • the torque measurement value acquisition unit 510 and the angle difference value acquisition unit 520 are mounted on the robot 100, and the contact event detection unit 530, the activity determination unit 540, and the score addition unit 550 are mounted on the determination device 300. May be done.
  • the functions of the contact event detection result acquisition unit and the activity determination result acquisition unit are included in the contact event detection unit 530 and the activity determination unit 540.
  • the torque measurement value acquisition unit 510 acquires the torque measurement value measured by the motor that drives the joint portion of the housing of the robot 100.
  • the housing of the robot 100 includes the head 101, the body 102, the arms 103, 104, and the like, and the joints connecting the respective portions are driven by the motor 130.
  • the torque measurement value is acquired, for example, by measuring the current flowing through the motor 130.
  • the joint can be driven in a plurality of directions (for example, Roll, Pitch, Yaw)
  • the torque measurement value of the motor that drives the joint in each direction may be acquired.
  • the acquired torque measurement value may be processed in real time by the contact event detection unit 530, or the torque measurement value acquired in time series may be buffered for a predetermined time to calculate a time difference, a moving average, or the like. good.
  • the angle difference value acquisition unit 520 acquires an angle difference value indicating the difference between the angle measurement value and the angle indication value in the motor that drives the joint portion of the housing of the robot 100.
  • the angle measurement value is acquired as an output value of a potentiometer or encoder attached to a joint portion driven by a motor, for example.
  • the angle indicated value is, for example, a target value of the rotation angle of each motor 130 determined by the information processing apparatus 110.
  • the contact event detection unit 530 is a joint unit driven by the motor 130 from which the torque measurement value is acquired when the torque measurement value acquired by the torque measurement value acquisition unit 510 or the value based on the torque measurement value exceeds the threshold range. Detects contact events that occur in the parts of the housing that are connected by. Specifically, for example, when the torque measurement value of the motor that drives the joint portion connecting the head 101 and the body portion 102 of the robot 100, or the value based on the torque measurement value exceeds the threshold range, the contact event is detected. The unit 530 detects a contact event generated in the head 101 or the body 102.
  • the threshold range used by the contact event detection unit 530 to detect the contact event is assumed to be during normal operation, that is, the motor driving each joint of the robot 100 operates according to the operation pattern determined by the information processing device 110. It corresponds to the range of torque measurement values detected by each motor when no external force is applied, and is determined by, for example, actually measuring the torque measurement values when the robot 100 performs various operations.
  • the threshold range may be set individually for each joint or motor drive direction (for example, Roll, Pitch, Yaw), or a common threshold range may be set for two or more joints or drive directions.
  • the contact event detection unit 530 simply indicates that the contact event occurs when the torque measurement value exceeds the threshold range, that is, when the torque measurement value is larger than the maximum value of the threshold range or smaller than the minimum value of the threshold range. May be detected. Alternatively, the contact event detection unit 530 detects a contact event when a component below a predetermined frequency of the torque measurement value exceeds the threshold range as in the example described later, or the time difference of the torque measurement value sets the threshold range. If it exceeds, a contact event may be detected. Further, the contact event detection unit 530 may further detect the contact event based on the ratio of the plurality of torque measurement values and the angle difference value acquired by the angle difference value acquisition unit 520 as in the example described later.
  • the activity determination unit 540 determines whether or not the contact event detected by the contact event detection unit 530 is active.
  • the active contact event is an event whose occurrence itself was predictable because the robot 100 is performing an operation for inducing the contact event.
  • the activeness determination unit 540 determines that the contact event is active when the contact event is detected in the operation execution portion included in the housing portion of the robot 100.
  • the activity determination unit 540 can specify the motion execution portion in the robot 100 based on the motion pattern of the joint portion determined by the information processing apparatus 110.
  • the activity determination unit 540 is a hand portion which is a tip portion of the arm portions 103 and 104 with respect to the body portion 102 of the robot 100 and the arm portions 103 and 104 supported by the body portion 102.
  • the arm 103 and 104H satisfy a predetermined positional relationship with respect to the body 102, the arm 103 and 104 including the hand 103H and 104H may be specified as the motion execution portion.
  • the contact event that the activeness determination unit 540 does not determine to be active is treated as a passive contact event.
  • the score addition unit 550 determines the victory or defeat of the fighting game based on the contact event detection result by the contact event detection unit 530 and the contact event activity determination result by the activity determination unit 540 for each of the robots 100A and 100B. do. Specifically, for example, in the score addition unit 550, the first contact event detected for the robot 100A is active, and the second contact event detected for the robot 100B in synchronization with the first contact event. When it is not active, it is determined that the robot 100A has successfully hit the robot 100B, and a score is added to the robot 100A. A specific example of such processing of the score addition unit 550 will be described later.
  • FIG. 5 is a diagram showing an example of a specific functional configuration for detecting a contact event in one embodiment of the present invention.
  • the torque measurement value acquisition unit 510 is a torque measurement value (Head_Roll, Head_Pitch, Head_Yaw) in three directions of a motor that drives a joint portion connecting the head 101 and the body 102, and the inside of the body 102.
  • the angle difference value acquisition unit 520 has the angle difference value (Trunk_Yaw) of the motor that drives the joint portion connecting the two portions in the body portion 102 and the angle difference value of the motor that drives the shoulder joint portion (Trunk_Yaw).
  • R Roll
  • P Pitch
  • Y Yaw.
  • the contact event detection unit 530 integrates the contact event detection results with the contact event detection units 530A to 530D, which detect the contact event by comparing the torque measurement value with the threshold range in different ways.
  • the contact event detection unit 530E is included. Hereinafter, each part will be further described.
  • the contact event detection unit 530A determines whether or not each of the torque measurement value (Head_Roll, Head_Pitch, Head_Yaw) of the head 101 and the torque measurement value (Trunk_Roll) of the body 102 exceeds the threshold range. Examples of comparisons between torque measurements and threshold ranges are shown in FIGS. 6A and 6B. As shown in FIG. 6A, for the motor that drives each part of the robot 100, the torque measurement value during normal operation does not exceed the threshold range R. As described above, the threshold range R is determined, for example, by collecting the measured values of the torque measurement values during the normal operation of the robot 100. In the illustrated example, the threshold range R is set evenly positively and negatively with 0 as the center, but the threshold range R may be a range biased to either positive or negative.
  • the contact event detection unit 530A detects a contact event in at least one of the head 101 or the body 102 when the torque measurement values (Head_Roll, Head_Pitch, Head_Yaw, Trunk_Roll) exceed the threshold range R set for each. To detect.
  • the contact event detection unit 530A (similar to other event detection units) applies a low-pass filter to the torque measurement value, and the component of the torque measurement value below the predetermined frequency is in the threshold range.
  • a contact event may be detected when R is exceeded. Since the torque measurement value may include high frequency components due to noise and measurement error, by removing frequency components higher than the fluctuation frequency of the torque measurement value generated by the contact event, false detection is reduced and the contact event is detected. The accuracy can be improved.
  • the contact event detection unit 530B measures the torque of the body 102 of the torque measurement value (Head_Pitch) of the head 101 when the torque measurement value (Trunk_Pitch) of the body 102 exceeds the threshold range. If the ratio (Head_Pitch / Trunk_Pitch) to the value (Trunk_Pitch) exceeds the threshold value, the contact event generated in the head 101 is detected, and if the ratio does not exceed the threshold value, the contact event generated in the body 102 is detected. By such a determination, as described below, it is possible to correctly identify whether the contact event has occurred in the head 101 or the body 102.
  • the lower legs 105 and 106 are restrained ends in contact with the floor surface, while the upper head 101 is a free end. That is, the housing of the robot 100 includes the legs 105 and 106, which are the first portions, the lower portion of the body portion 102, and the upper portion of the body portion 102, which is the second portion supported by the first portion. Includes a third portion, the head 101, which is supported by the second portion and constitutes a free end.
  • the fluctuation of the torque measurement value when the force F is applied by the contact event generated in the third portion constituting the free end is the joint portion between the third portion and the second portion. Rather, it tends to be more prominently observed at the joint between the second and first parts.
  • FIGS. 9A and 9B torque measurement values are shown for each of the case where a contact event due to an external impact occurs in the body 102 and the case where a contact event occurs due to an external impact in the head 101.
  • (Head_Pitch, Trunk_Pitch) and their ratios (Head_Pitch / Trunk_Pitch) are shown.
  • the torque measurement value (Trunk_Pitch) of the body portion 102 also fluctuates greatly in the positive direction and exceeds the threshold value (maximum value of the threshold range R).
  • the torque measurement value (Head_Pitch) of the head 101 also has a small fluctuation and does not exceed the threshold value.
  • the ratio of the measured torque values (Head_Pitch / Trunk_Pitch) is almost 0 in the example of FIG. 9A, whereas it is 0.25 or more in the example of FIG. 9B, which is a difference between the cases. Has occurred.
  • the torque measurement value of the head 101 hardly fluctuates in the case of FIG. 9A in which the contact event occurs in the body portion 102, whereas the torque measurement value of the head 101 hardly fluctuates in the case of FIG. 9B in which the contact event occurs in the head 101.
  • the torque measurement value of the head 101 also changes, although it is not as large as the body 102.
  • the head by setting 0.25 as a threshold value for the ratio of measured torque values (Head_Pitch / Trunk_Pitch), if the ratio exceeds the threshold value, the head is started. It can be determined that the contact event has occurred in the unit 101, and if the ratio does not exceed the threshold value, it can be determined that the contact event has occurred in the body 102.
  • the threshold value of the above ratio is an example, and in another example, for example, the measured value of the ratio when the contact event occurs in the head 101 and the measured value of the ratio when the contact event occurs in the body 102. Appropriate thresholds can be set by collecting.
  • the torque measurement value (Trunk_Yaw) of the motor that drives the joint portion connecting the two portions in the body portion 102 exceeds the threshold range, and the angle of the motor is increased.
  • the difference value exceeds the threshold range the contact event generated in the body portion 102 is detected.
  • the torque measurement value fluctuates relatively greatly depending on the posture of the robot 100, whereas the angle difference value is less dependent on the posture of the robot 100. Therefore, the contact event is performed by using the angle difference value. The accuracy of detection can be improved.
  • FIGS. 10A and 10B show torque measurement values and angle difference values for each of the case where the contact event does not actually occur in the body portion 102 and the case where the contact event occurs.
  • the torque measurements are beyond the threshold range.
  • the angle difference value does not exceed the threshold value in the example of FIG. 10A, whereas it exceeds the threshold value in the example of FIG. 10B. Therefore, by setting that the angle difference value exceeds the threshold value as a condition for detecting the contact event, the torque measurement value fluctuates due to a change in the posture of the robot 100 even though the contact event does not occur as shown in FIG. 10A. It is possible to prevent erroneous detection in the case of such a case.
  • the contact event detection unit 530D the torque measurement value (Left_Shoulder_Roll, Left_Shoulder_Pitch, Right_Shoulder_Roll, Right_Shoulder_Pitch) of the motor that drives the shoulder joint exceeds the threshold range, and the angle difference value of each motor is different.
  • the threshold range is exceeded, the contact events generated in the respective arm portions 103 and 104 are detected.
  • the contact event detection unit 530D compares the time difference, that is, the difference between the torque detection values at time t and the time t-1, with the threshold range, instead of the torque detection value at a single time t.
  • the difference between the fluctuation amount of the torque detection value during normal operation and the fluctuation amount of the torque detection value when a contact event occurs is small, so the torque detection value is simply set as a threshold value. It is difficult to improve the detection accuracy when compared with the range.
  • the contact event detection unit 530D enables more accurate event detection by using the angle difference value of the motor as in the above example of the contact event detection unit 530C. However, it is not always necessary to combine the time difference of the torque detection value with the angle difference value.
  • the contact event detection unit 530E integrates the contact event detection results by the contact event detection units 530A to 520D. Specifically, for example, the contact event detection unit 530E determines that the contact event has occurred in the head 101 when both the contact event detection units 530A and 530B detect the contact event generated in the head 101. You may. Further, the contact event detection unit 530E may determine that the contact event has occurred in the body 102 when all of the contact event detection units 530A, 530B, and 530C detect the contact event generated in the body 102. .. The contact event detection unit 530E may use the determination result of the contact event detection unit 530D as it is for the arms 103 and 104.
  • the contact event detection unit 530E may determine the occurrence of a contact event by the logical product (AND determination) of each detection result as described above, or in another example, the logical sum (OR determination) of each detection result.
  • the occurrence of a contact event may be determined by.
  • the activeness determination unit 540 may determine that the contact event is active when the contact event is detected in the motion execution portion of the robot 100.
  • the motion execution portion may be specified based on, for example, the motion pattern of the joint portion determined by the information processing apparatus 110, or may be specified based on the fluctuation of the torque measurement value of the joint portion before and after the contact event is detected. You may.
  • the activity determination unit 540 is connected by the joint portion when the torque measurement value is within the threshold range but fluctuates relatively larger than other joint portions before and after the detection of the contact event.
  • the part may be specified as an operation execution part. Further, the activity determination unit 540 may specify the operation execution portion based on the positional relationship between the housing portions at the time of contact event detection, as described below.
  • the activeness determination unit 540 specifies an operation performing portion based on the positional relationship between the hand portions 103H and 104H, which are the tip portions of the arm portions 103 and 104, and the body portion 102 when a contact event occurs. There is. In the illustrated example, the position of any of the hand portions 103H and 104H is in front of the body portion 102 and with respect to the shoulder joint portion connecting the body portion 102 and the arm portions 103 and 104 as shown in FIG. 11A.
  • the arm portions 103 and 104 including the hand portions 103H and 104H satisfying the above conditions are specified as the motion execution portion.
  • the dimensions shown in FIGS. 11A and 11B are examples when a small robot 100 is used, and the dimensions and their ratios are arbitrarily set according to the size and shape of the robot 100.
  • FIG. 12 is a diagram schematically showing a process for detecting an active contact event in the present embodiment.
  • the contact event is detected based on the torque measurement values (Left_Shoulder_Yaw, Left_Elbow_Pitch, Right_Shoulder_Yaw, Right_Elbow_Pitch) of the motors driving the shoulder joints and elbow joints of the arms 103 and 104.
  • the contact event may be detected by simply comparing the torque measurement value with the threshold range as in the example described with reference to FIG. 5 above, or with reference to FIG. 5 and the like above.
  • the torque measurement value may be detected by comparing a component below a predetermined frequency or a time difference with a threshold range.
  • the contact event may be detected based on the ratio of a plurality of torque measurement values or the angle difference value.
  • the activity of the contact event is determined. Specifically, for example, the positions of the hand portions 103H and 104H are calculated from the angle measurement values at the respective joint portions, and the body portion 102 and the hand portion 103H, as described above with reference to FIGS. 12A and 12B, It is determined whether or not the positional relationship with 104H is satisfied. In addition, in order to prevent one contact event from being detected multiple times, a predetermined invalid period is set after the active contact event is detected once, and if the invalid period has not elapsed, the next Prevents active contact events from being detected. When the contact event is detected, the positions of the hands 103H and 104H satisfy the condition, and the invalid period has already passed, the activity determination unit 540 determines that the contact event is active.
  • FIG. 13 is a flowchart showing an example of processing of the score calculation unit in one embodiment of the present invention.
  • the score addition unit 550 acquires the detection result of the contact event generated in each of the robots 100A and 100B (step S101), and acquires the determination result of the activity for each of the contact events (step S102). ).
  • the robots 100A and 100B synchronously detect contact events (YES in step S103), one of the synchronously detected contact events is active (YES in step S104), and the other contact event is When it is not active (YES in step S105), the score adding unit 550 adds a score to the side of the robots 100A and 100B in which an active contact event is detected (step S106).
  • step S103 when the contact events are not detected synchronously by the robots 100A and 100B (NO in step S103), and when both the contact events detected in synchronization are not active (in step S104). NO), and when both the contact events detected in synchronization are active (NO in step S105), the score addition unit 550 does not add a score to either the robots 100A or 100B.
  • the contact events detected in synchronization with each other do not necessarily have to be the contact events detected at the same time.
  • Contact events acquired at times within a time lag may be included.
  • the allowable time difference is determined in consideration of, for example, processing delay and communication delay.
  • the score addition unit 550 adds scores for each of the robots 100A and 100B as described above, and determines the outcome of the fighting game based on the scores within the predetermined match time. Alternatively, the score addition unit 550 may subtract the score for the side where the active contact event is not detected in the above processing, or the score of either the robots 100A or 100B reaches the upper or lower threshold value. You may end the game at that point.
  • a contact event generated in the housing portion is detected based on a measured value indicating a change in the motion state of the housing portion of the robots 100A and 100B.
  • the activeness of the detected contact event is determined based on the relationship with the operation performing portion.
  • a score is added to the robots 100A and 100B according to the synchrony of the contact events detected by the robots 100A and 100B and the activity of each contact event, thereby determining the outcome of the fighting game.
  • the torque measurement value measured by the motor that drives the joint part of the housing is used as the measurement value indicating the change in the motion state of the housing portion, but it is acquired by using, for example, an acceleration sensor. It is also possible to use other measured values.
  • the contact event does not necessarily have to be detected in the housing of the robot, and the contact event may be detected in another device capable of actively operating.
  • 10 ... System, 100, 100A, 100B ... Robot, 101, 101A, 101B ... Head, 102, 102A, 102B ... Body, 103, 103A, 103B, 104, 104A, 104B ... Arms, 103H, 104H ... Hands Unit, 105, 105A, 105B, 106, 106A, 106B ... Leg, 105F, 106F ... Foot, 110 ... Information processing device, 111 ... CPU, 113 ... ROM, 114 ... External memory, 115 ... Bus interface, 121 ... Communication interface, 130 ... motor, 200A, 200B ... controller, 300 ... judgment device, 310 ... information processing device, 311 ...
  • CPU 312 ... RAM, 313 ... ROM, 314 ... external memory, 315 ... bus interface, 321 ... communication interface 322 ... Display, 510 ... Torque measurement value acquisition unit, 520 ... Angle difference value acquisition unit, 530, 530A, 530B, 530C, 530D, 530E ... Contact event detection unit, 540 ... Activeness determination unit, 550 ... Score addition unit, 551 ... Contact event detection result acquisition unit, 552 ... Activeness determination result acquisition unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Manipulator (AREA)

Abstract

筐体の部分の運動状態の変化を示す計測値を取得する計測値取得部と、計測値に基づいて筐体の部分で発生した接触イベントを検出する接触イベント検出部と、筐体の部分に含まれる動作実施部分で接触イベントが検出された場合に接触イベントが能動的であると判定する能動性判定部とを備える情報処理装置が提供される。

Description

情報処理装置、情報処理方法およびプログラム
 本発明は、情報処理装置、情報処理方法およびプログラムに関する。
 様々なタイプのロボットの研究、開発が行われている。特許文献1は、カメラ画像入力器を介して入力されたユーザの画像に応じて、ユーザの動作と同調した動作を生成するモジュールを備えたロボット装置を開示する。
特開2005-342873号公報
 例えば上記のようなロボットが開発される中で、ロボットの想定外の動き、例えばロボット同士の物理的なインタラクションによって発生する動きを検出して、エンターテインメントなどのために利用することが検討される。しかしながら、このような動きを利用する技術については、未だ十分に提案されているとはいえない。
 そこで、本発明は、ロボットの想定外の動きを検出して利用することを可能にする情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
 本発明のある観点によれば、筐体の部分の運動状態の変化を示す計測値を取得する計測値取得部と、計測値に基づいて筐体の部分で発生した接触イベントを検出する接触イベント検出部と、筐体の部分に含まれる動作実施部分で接触イベントが検出された場合に接触イベントが能動的であると判定する能動性判定部とを備える情報処理装置が提供される。
 本発明の別の観点によれば、筐体の部分の運動状態の変化を示す計測値を取得するステップと、計測値に基づいて筐体の部分で発生した接触イベントを検出するステップと、筐体の部分に含まれる動作実施部分を特定し、動作実施部分で接触イベントが検出された場合に接触イベントが能動的であると判定するステップとを含む情報処理方法が提供される。
 本発明のさらに別の観点によれば、筐体の部分の運動状態の変化を示す計測値を取得する計測値取得部と、計測値に基づいて筐体の部分で発生した接触イベントを検出する接触イベント検出部と、筐体の部分に含まれる動作実施部分を特定し、動作実施部分で接触イベントが検出された場合に接触イベントが能動的であると判定する能動性判定部とを備える情報処理装置としてコンピュータを機能させるためのプログラムが提供される。
本発明の一実施形態に係るシステムの構成例を概略的に示す図である。 図1に示されたシステムにおけるロボットの構成例を概略的に示す図である。 図1に示されたシステムにおける判定装置の構成例を概略的に示す図である。 接触イベントの検出および判定に関する機能構成の第1の例を示すブロック図である。 接触イベントの検出および判定に関する機能構成の第2の例を示すブロック図である。 本発明の一実施形態における接触イベントの検出のための具体的な機能構成の例を示す図である。 トルク計測値と閾値範囲との比較の例を示す図である。 トルク計測値と閾値範囲との比較の例を示す図である。 トルク計測値にローパスフィルタを適用した例を示す図である。 ロボットの構造の例を示す図である。 複数の関節部におけるトルク計測値の比率を組み合わせた検出の例を示す図である。 複数の関節部におけるトルク計測値の比率を組み合わせた検出の例を示す図である。 角度差分値を組み合わせた検出の例を示す図である。 角度差分値を組み合わせた検出の例を示す図である。 本発明の一実施形態における接触イベントの能動性の判定の例について説明するための図である。 本発明の一実施形態における接触イベントの能動性の判定の例について説明するための図である。 本実施形態において能動的な接触イベントを検出するための処理を概略的に示す図である。 本発明の一実施形態におけるスコア算出部の処理の例を示すフローチャートである。
 以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
 (システム構成)
 図1は、本発明の一実施形態に係るシステムの構成例を概略的に示す図である。本実施形態において、システム10はロボット100A,100Bによる格闘ゲームを提供する。システム10は、コントローラ200A,200Bおよび判定装置300をさらに含む。
 ロボット100A,100B(以下、総称してロボット100ともいう)はそれぞれ頭部101A,101B(以下、総称して頭部101ともいう)、胴部102A,102B(以下、総称して胴部102ともいう)、腕部103A,103B,104A,104B(以下、総称して腕部103,104ともいう)および脚部105A,105B,106A,106B(以下、総称して脚部105,106ともいう)を有する。
 コントローラ200A,200Bは、例えば図示しないボタンやスティックに対するユーザの操作入力に従って操作信号を生成する。あるいは、コントローラ200A,200Bは、図示しないカメラまたはセンサなどを含むモーションキャプチャによって特定されたユーザの動きに従って操作信号を生成してもよい。操作信号は、コントローラ200Aからロボット100Aに、コントローラ200Bからロボット100Bにそれぞれ送信され、ロボット100A,100Bはそれぞれの操作信号に従って動作する。
 上記のようにロボット100A,100Bがそれぞれコントローラ200A,200Bの操作信号に従って動作し、腕部103,104や脚部105,106を駆動させて相手に対する攻撃および防御を行うことによって格闘ゲームが提供される。格闘ゲームのルールは特に限定されないが、例えばロボット100Aの腕部103A,104Aのいずれかによる攻撃がロボット100Bの頭部101Bまたは胴部102Bにヒットしたときに、ロボット100Aにポイントを与えてもよい。判定装置300は、ロボット100A,100Bからそれぞれ送信される情報に従って、上記のようなポイントの判定を実施する。
 図2は、図1に示されたシステムにおけるロボットの構成例を概略的に示す図である。ロボット100は、例えば胴部102に搭載される情報処理装置110を有する。情報処理装置110は、演算処理を実行するCPU(Central Processing Unit)111、RAM(Random Access Memory)112、ROM(Read Only Memory)113、および外部メモリ114などを含む。情報処理装置110は、通信インターフェース121が受信した操作信号または制御信号に応じてロボット100の各部の動作を決定する。通信インターフェース121は、バスインターフェース115を介して情報処理装置110に接続される。
 情報処理装置110は、決定された動作が実行されるように、腕部103,104、手部103H,104H、脚部105,106および足部105F,106Fの関節部を回転駆動するモータ130を制御する。図示されていないが、頭部101および胴部102にもモータ130によって駆動される関節部が設けられてもよい。例えば、情報処理装置110のCPU111は、ROM113または外部メモリ114に格納された動作パターンから決定された動作に対応するパターンを選択し、選択されたパターンに従って足部運動、ZMP(Zero Moment Point)軌道、体幹運動、上肢運動、腰部水平位置および高さなどを設定し、これらの設定値に従ってモータ130を制御する。
 また、ロボット100には、慣性計測装置(IMU:Inertial Measurement Unit)122などのセンサが搭載される。センサはバスインターフェース115を介して情報処理装置110に接続され、情報処理装置110は必要に応じてセンサの出力値を参照してロボット100の各部を制御する。また、情報処理装置110は、後述するような処理によって取得された攻撃および防御に関する判定情報を図1に示された判定装置300に送信してもよい。あるいは、情報処理装置110は、センサの出力値の少なくとも一部や、選択されている動作パターンまたはモータ130の制御のための設定値などを、攻撃および防御に関する判定情報を抽出する判定装置300に送信してもよい。
 図3は、図1に示されたシステムにおける判定装置の構成例を概略的に示す図である。判定装置300は、情報処理装置310および通信インターフェース321を有する。情報処理装置310は、演算処理を実行するCPU311、RAM312、ROM313、および外部メモリ314などを含む。情報処理装置310は、通信インターフェース321がロボット100A,100Bからそれぞれ受信した判定情報に基づいて格闘ゲームの勝敗を判定する。判定結果やゲームスコアは、例えば通信インターフェース321を介してユーザ端末などの他の装置に送信されたり、ディスプレイ322に表示されたりしてもよい。通信インターフェース321およびディスプレイ322は、バスインターフェース315を介して情報処理装置310に接続される。
 本実施形態では、格闘ゲームの勝敗を判定する要素として接触イベントが定義される。接触イベントは、例えば格闘ゲームの中でロボット100Aがロボット100Bの筐体のいずれかの部分を打撃した場合に発生する。このとき、ロボット100A,100Bの各部を駆動するモータでは、コントローラ200A,200Bの操作信号に従って実行される動作によるトルク変化に加えて、外部のオブジェクトである相手側のロボットが筐体に接触したことによって加えられた力によるトルク変化が発生する。前者のトルク変化が、例えば床面との接触によるものも含めて、ロボット100において設定されている動作パターンやセンサの出力値からトルク変化の大きさおよびタイミングが予測可能であるのに対して、後者はトルク変化の大きさおよびタイミングがロボット100Bの位置や動きによって変動するため、同様に予測することは困難である。このような外部のオブジェクトとの接触によって発生するトルク変化を伴うイベントを、本明細書では接触イベントという。
 上記のように定義される接触イベントは、さらに受動的な接触イベントと能動的な接触イベントとに分けられる。例えば、ロボット100Aがロボット100Bの筐体のいずれかの部分を打撃した場合に、打撃された側のロボット100Bで発生する。この場合、ロボット100Bは打撃のための動作を行っていないため、ロボット100B側ではイベントの発生自体が予測困難である。このような場合に、ロボット100Bにおいて受動的な接触イベントが発生したという。一方、上記の場合において、ロボット100Aは打撃のための動作を行っているため、ロボット100A側で接触イベントの発生自体は予測できる。このような場合に、ロボット100Aにおいて能動的な接触イベントが発生したという。ただし、例えばロボット100Bが回避動作を行った場合など、予測された接触イベントが発生しない場合がありうる。また、接触イベントが発生した場合もトルク変化の大きさおよびタイミングはロボット100Bの位置や動きに依存するため、能動的な接触イベントであってもこれらの予測は困難である。
 本実施形態では、上記のような受動的な接触イベントおよび能動的な接触イベントをロボット100A側およびロボット100B側でそれぞれ検出し、さらにそれらの検出結果を統合することによって格闘ゲームの勝敗を判定する。そのための機能構成として、システム10はトルク計測値取得部510、角度差分値取得部520、接触イベント検出部530、能動性判定部540およびスコア加算部550を含む。これらの機能構成は、図1に示されたシステム10においてロボット100が有する情報処理装置110、または判定装置300が有する情報処理装置310において実装される。
 具体的には、例えば、図4Aに示されるようにロボット100でトルク計測値取得部510、角度差分値取得部520、接触イベント検出部530、および能動性判定部540が実装され、判定装置300でスコア加算部550が実装されてもよい。この場合、判定装置300にはロボット100A,100Bのそれぞれでの接触イベントの検出結果を受信する接触イベント検出結果取得部551と、それぞれの接触イベントについて能動性の判定結果を受信する能動性判定結果取得部552とが含まれる。
 あるいは、図4Bに示されるようにロボット100でトルク計測値取得部510および角度差分値取得部520が実装され、判定装置300で接触イベント検出部530、能動性判定部540およびスコア加算部550が実装されてもよい。この場合、上記の接触イベント検出結果取得部および能動性判定結果取得部の機能は接触イベント検出部530および能動性判定部540に含まれる。以下それぞれの機能構成についてさらに説明する。
 トルク計測値取得部510は、ロボット100の筐体の関節部を駆動するモータで計測されたトルク計測値を取得する。上述のように、ロボット100の筐体は頭部101、胴部102、および腕部103,104などを含み、それぞれの部分を連結する関節部はモータ130によって駆動される。トルク計測値は、例えばモータ130に流れる電流を計測することによって取得される。関節部において複数の方向(例えば、Roll,Pitch,Yaw)の駆動が可能である場合は、それぞれの方向に関節部を駆動するモータのトルク計測値が取得されてもよい。取得されたトルク計測値は、接触イベント検出部530においてリアルタイムで処理されてもよいし、時系列で取得されたトルク計測値が所定の時間バッファされて時間差分や移動平均などが算出されてもよい。
 角度差分値取得部520は、ロボット100の筐体の関節部を駆動するモータにおける角度計測値と角度指示値との差分を示す角度差分値を取得する。角度計測値は、例えばモータによって駆動される関節部に取り付けられたポテンショメータまたはエンコーダの出力値として取得される。角度指示値は、例えば情報処理装置110で決定されるそれぞれのモータ130の回転角度の目標値である。
 接触イベント検出部530は、トルク計測値取得部510が取得したトルク計測値、またはトルク計測値に基づく値が閾値範囲を超える場合に、トルク計測値が取得されたモータ130によって駆動される関節部によって連結される筐体の部分で発生した接触イベントを検出する。具体的には、例えば、ロボット100の頭部101と胴部102とを連結する関節部を駆動するモータのトルク計測値、またはトルク計測値に基づく値が閾値範囲を超える場合に、接触イベント検出部530は頭部101または胴部102で発生した接触イベントを検出する。
 ここで、接触イベント検出部530が接触イベントの検出に用いる閾値範囲は、通常動作時、すなわちロボット100の各関節部を駆動するモータが情報処理装置110で決定された動作パターンに従って動作し、想定外の外力が加わらない場合にそれぞれのモータで検出されるトルク計測値の範囲に対応し、例えばロボット100が様々な動作をしたときのトルク計測値を実測することによって決定される。閾値範囲はそれぞれの関節部やモータの駆動方向(例えばRoll,Pitch,Yaw)について個別に設定されてもよいし、2以上の関節部や駆動方向について共通の閾値範囲が設定されてもよい。
 上記の接触イベント検出部530は、例えば単純にトルク計測値が閾値範囲を超える場合、すなわちトルク計測値が閾値範囲の最大値よりも大きいか、または閾値範囲の最小値よりも小さい場合に接触イベントを検出してもよい。あるいは、接触イベント検出部530は、後述する例のようにトルク計測値の所定の周波数以下の成分が閾値範囲を超える場合に接触イベントを検出するか、またはトルク計測値の時間差分が閾値範囲を超える場合に接触イベントを検出してもよい。また、接触イベント検出部530は、後述する例のように複数のトルク計測値の比率や、角度差分値取得部520が取得した角度差分値にさらに基づいて接触イベントを検出してもよい。
 能動性判定部540は、接触イベント検出部530で検出された接触イベントが能動的であるか否かを判定する。ここで、上述の通り、能動的な接触イベントは、ロボット100がその接触イベントを引き起こすための動作を行っているために、発生自体は予測可能であったイベントである。具体的には、能動性判定部540は、ロボット100の筐体の部分に含まれる動作実施部分で接触イベントが検出された場合に、接触イベントが能動的であると判定する。例えば、能動性判定部540は、情報処理装置110で決定された関節部の動作パターンに基づいてロボット100における動作実施部分を特定することができる。また、能動性判定部540は、後述する例のように、ロボット100の胴部102と、胴部102によって支持される腕部103,104とについて、腕部103,104の先端部である手部103H,104Hが胴部102に対して所定の位置関係を満たす場合に、手部103H,104Hを含む腕部103,104を動作実施部分として特定してもよい。本実施形態において、能動性判定部540が能動的であると判定しなかった接触イベントは、受動的な接触イベントとして扱われる。
 スコア加算部550は、ロボット100A,100Bのそれぞれについて、接触イベント検出部530による接触イベントの検出結果と、能動性判定部540による接触イベントの能動性の判定結果とに基づいて、格闘ゲームの勝敗を判定する。具体的には、例えば、スコア加算部550は、ロボット100Aについて検出された第1の接触イベントが能動的であり、ロボット100Bについて第1の接触イベントに同期して検出された第2の接触イベント能動的ではない場合に、ロボット100Aによるロボット100Bの打撃が成功したと判定し、ロボット100Aに対してスコアを加算する。このようなスコア加算部550の処理の具体的な例については後述する。
 (接触イベント検出の具体的な例)
 図5は、本発明の一実施形態における接触イベントの検出のための具体的な機能構成の例を示す図である。図示された例において、トルク計測値取得部510は、頭部101と胴部102とを連結する関節部を駆動するモータの3方向のトルク計測値(Head_Roll,Head_Pitch,Head_Yaw)、胴部102内の2つの部分を連結する関節部を駆動するモータの3方向のトルク計測値(Trunk_Roll,Trunk_Pitch,Trunk_Yaw)、および胴部102と腕部103,104とを連結する肩の関節部を駆動するモータのそれぞれ2方向のトルク計測値(Left_Shoulder_Roll,Left_Shoulder_Pitch,Right_Shoulder_Roll,Right_Shoulder_Pitch)を取得する。一方、角度差分値取得部520は、胴部102内の2つの部分を連結する関節部を駆動するモータの角度差分値(Trunk_Yaw)および上記の肩の関節部を駆動するモータの角度差分値(Left_Shoulder_Roll,Left_Shoulder_Pitch,Right_Shoulder_Roll,Right_Shoulder_Pitch)を取得する。なお、図5では、R:Roll、P:Pitch、Y:Yawとして略記されている場合がある。
 図示された例において、接触イベント検出部530は、それぞれ異なる仕方でトルク計測値を閾値範囲と比較することによって接触イベントを検出する接触イベント検出部530A~530Dと、接触イベントの検出結果を統合する接触イベント検出部530Eを含む。以下、各部についてさらに説明する。
 (トルク計測値を用いた検出)
 接触イベント検出部530Aは、頭部101のトルク計測値(Head_Roll,Head_Pitch,Head_Yaw)および胴部102のトルク計測値(Trunk_Roll)について、それぞれが閾値範囲を超えるか否かを判定する。トルク計測値と閾値範囲との比較の例は、図6Aおよび図6Bに示されている。図6Aに示されるように、ロボット100の各部を駆動するモータについて、通常動作時のトルク計測値は閾値範囲Rを超えない。上述したように、閾値範囲Rは、例えばロボット100の通常動作時におけるトルク計測値の実測値を収集することによって決定される。なお、図示された例では閾値範囲Rが0を中心として正負均等に設定されているが、閾値範囲Rは正負いずれかに偏った範囲であってもよい。
 一方、図6Bに示されるように、接触イベントの発生時には、モータのトルク計測値が閾値範囲Rを超える。従って、接触イベント検出部530Aは、トルク計測値(Head_Roll,Head_Pitch,Head_Yaw,Trunk_Roll)がそれぞれについて設定された閾値範囲Rを超える場合に、頭部101または胴部102の少なくともいずれかにおける接触イベントを検出する。このとき、接触イベント検出部530A(他のイベント検出部も同様)は、図7に示されるように、トルク計測値にローパスフィルタを適用し、トルク計測値の所定の周波数以下の成分が閾値範囲Rを超える場合に接触イベントを検出してもよい。トルク計測値にはノイズや測定誤差による高周波成分が含まれうるため、接触イベントによって発生するトルク計測値の変動周波数よりも高い周波数成分を除去することによって、誤検出を減少させて接触イベントの検出精度を高めることができる。
 (複数の関節部におけるトルク計測値の比率を組み合わせた検出)
 再び図5を参照して、接触イベント検出部530Bは、胴部102のトルク計測値(Trunk_Pitch)が閾値範囲を超える場合に、頭部101のトルク計測値(Head_Pitch)の胴部102のトルク計測値(Trunk_Pitch)に対する比率(Head_Pitch/Trunk_Pitch)が閾値を超えていれば頭部101で発生した接触イベントを検出し、比率が閾値を超えていなければ胴部102で発生した接触イベントを検出する。このような判定によって、以下で説明するように、頭部101または胴部102のどちらで接触イベントが発生したかを正しく識別することができる。
 図8に示されるように、ロボット100では下側の脚部105,106が床面に接触した拘束端であるのに対して、上側の頭部101は自由端である。つまり、ロボット100の筐体は、第1の部分である脚部105,106、および胴部102の下部と、第1の部分によって支持される第2の部分である胴部102の上部と、第2の部分によって支持され自由端を構成する第3の部分である頭部101とを含む。このような場合、自由端を構成する第3の部分で発生した接触イベントによって力Fが加えられた場合のトルク計測値の変動は、第3の部分と第2の部分との間の関節部よりも、第2の部分と第1の部分との間の関節部で顕著に観測される傾向がある。具体的には、頭部101で接触イベントが発生した場合、頭部101と胴部102とを連結する関節部のトルク計測値より(Head_Pitch)も、胴部102内の2つの部分を連結する関節部のトルク計測値(Trunk_Pitch)でより顕著なトルク計測値の変動が観測される傾向がある。従って、このような場合と胴部102自体で接触イベントが発生したことによって胴部102のトルク計測値(Trunk_Pitch)が変動した場合とを識別することは容易ではない。
 ここで、図9Aおよび図9Bには、胴部102で外部からの打撃による接触イベントが発生した場合、および頭部101で外部からの打撃による接触イベントが発生した場合のそれぞれについて、トルク計測値(Head_Pitch,Trunk_Pitch)およびこれらの比率(Head_Pitch/Trunk_Pitch)が示されている。図示されるように、図9Aおよび図9Bの両方の例で、胴部102のトルク計測値(Trunk_Pitch)は同じように大きく正方向に変動して閾値(閾値範囲Rの最大値)を超え、また頭部101のトルク計測値(Head_Pitch)も同じように変動が小さく閾値を超えない。これに対して、トルク計測値の比率(Head_Pitch/Trunk_Pitch)は、図9Aの例ではほぼ0であるのに対して、図9Bの例では0.25以上であり、それぞれのケースの間で差が生じている。これは、胴部102で接触イベントが発生した図9Aの場合には頭部101のトルク計測値がほとんど変動しないのに対して、頭部101で接触イベントが発生した図9Bの場合には、胴部102ほど大きくはないものの頭部101のトルク計測値も変化するためである。
 従って、例えば上記の図9Aおよび図9Bに示された例であれば、トルク計測値の比率(Head_Pitch/Trunk_Pitch)について0.25を閾値として設定することによって、比率が閾値を超える場合には頭部101で接触イベントが発生したと判定し、比率が閾値を超えない場合には胴部102で接触イベントが発生したと判定することができる。なお、上記の比率の閾値は一例であり、他の例では例えば頭部101で接触イベントが発生したときの比率の実測値と胴部102で接触イベントが発生したときの比率の実測値とを収集することによって適切な閾値を設定することができる。
 (角度差分値を組み合わせた検出)
 再び図5を参照して、接触イベント検出部530Cは、胴部102内の2つの部分を連結する関節部を駆動するモータのトルク計測値(Trunk_Yaw)が閾値範囲を超え、かつ当該モータの角度差分値が閾値範囲を超える場合に、胴部102で発生した接触イベントを検出する。以下で説明するように、トルク計測値がロボット100の姿勢によって比較的大きく変動するのに対して、角度差分値はロボット100の姿勢への依存が小さいため、角度差分値を用いることによって接触イベント検出の精度を向上させることができる。
 図10Aおよび図10Bには、胴部102で実際には接触イベントが発生していない場合と接触イベントが発生した場合のそれぞれについて、トルク計測値および角度差分値が示されている。図示されているように、図10Aおよび図10Bの両方の例で、トルク計測値は閾値範囲を超えている。これに対して、角度差分値は、図10Aの例では閾値を超えないのに対して、図10Bの例では閾値を超える。従って、角度差分値が閾値を超えることを接触イベント検出の条件にすることによって、図10Aのように接触イベントが発生していないにもかかわらずロボット100の姿勢の変化などによってトルク計測値が変動した場合の誤検出を防止することができる。
 (時間差分を用いた検出)
 再び図5を参照して、接触イベント検出部530Dは、肩関節を駆動するモータのトルク計測値(Left_Shoulder_Roll,Left_Shoulder_Pitch,Right_Shoulder_Roll,Right_Shoulder_Pitch)時間差分が閾値範囲を超え、かつ各モータの角度差分値が閾値範囲を超えた場合に、それぞれの腕部103,104で発生した接触イベントを検出する。具体的には、接触イベント検出部530Dは、単一時刻tのトルク検出値に代えて、時間差分、すなわち時刻tおよび時刻t-1のそれぞれのトルク検出値の差分を閾値範囲と比較する。例えば腕部103,104のような部分では、通常動作時のトルク検出値の変動量と接触イベントが発生したときのトルク検出値の変動量との差が小さいため、単純にトルク検出値を閾値範囲と比較した場合には検出精度が向上しにくい。これに対して、接触イベントが発生した場合におけるトルク検出値の時間あたり変動量は通常動作時におけるトルク検出値の時間あたり変動量よりも大きいため、時間差分を利用すること接触イベントを正しく検出することができる。なお、接触イベント検出部530Dは、トルク検出値の時間差分に加えて、上記の接触イベント検出部530Cの例と同様にモータの角度差分値を用いることによって、より正確なイベントの検出を可能にしているが、トルク検出値の時間差分を角度差分値と組み合わせることは必ずしも必要ではない。
 以上で説明したような図5の例において、接触イベント検出部530Eは、接触イベント検出部530A~520Dによる接触イベントの検出結果を統合する。具体的には、例えば、接触イベント検出部530Eは、接触イベント検出部530A,530Bの両方が頭部101で発生した接触イベントを検出した場合に、頭部101で接触イベントが発生したと判定してもよい。また、接触イベント検出部530Eは、接触イベント検出部530A,530B,530Cのすべてが胴部102で発生した接触イベントを検出した場合に、胴部102で接触イベントが発生したと判定してもよい。接触イベント検出部530Eは、腕部103,104については接触イベント検出部530Dの判定結果をそのまま利用してもよい。接触イベント検出部530Eは、上記のようにそれぞれの検出結果の論理積(AND判定)によって接触イベントの発生を判定してもよいし、他の例ではそれぞれの検出結果の論理和(OR判定)によって接触イベントの発生を判定してもよい。
 (能動性の判定)
 上述のように、能動性判定部540は、ロボット100における動作実施部分で接触イベントが検出された場合に、当該接触イベントが能動的であると判定してもよい。動作実施部分は、例えば情報処理装置110で決定された関節部の動作パターンに基づいて特定されてもよいし、接触イベントが検出される前後における関節部のトルク計測値の変動に基づいて特定されてもよい。例えば、能動性判定部540は、接触イベントの検出の前後において、トルク計測値が閾値範囲内ではあるものの他の関節部よりも相対的に大きく変動していた場合に、当該関節部によって連結される部分を動作実施部分として特定してもよい。また、能動性判定部540は、以下で説明するように、接触イベント検出時の筐体の部分同士の位置関係に基づいて動作実施部分を特定してもよい。
 図11Aおよび図11Bは、本発明の一実施形態における接触イベントの能動性の判定の例について説明するための図である。この例において、能動性判定部540は、接触イベントが発生した時の腕部103,104の先端部である手部103H,104Hと胴部102との位置関係に基づいて動作実施部分を特定している。図示された例では、手部103H,104Hのいずれかの位置が、図11Aに示されるように胴部102の前方、胴部102と腕部103,104とを連結する肩関節部を基準にした所定の高さ範囲(±d1)に含まれ、図11Bに示されるように胴部102に対する前後方向の距離が閾値d2であり、かつ肩関節部からの直線距離が閾値r以上の場合に、条件を満たす手部103H,104Hを含む腕部103,104が動作実施部分として特定される。なお、図11Aおよび図11Bに示された寸法は、小型のロボット100が用いられる場合の例であり、寸法およびその比率はロボット100の大きさや形状に応じて任意に設定される。
 図12は、本実施形態において能動的な接触イベントを検出するための処理を概略的に示す図である。図示された例では、まず、腕部103,104の肩関節部および肘関節部を駆動するモータのトルク計測値(Left_Shoulder_Yaw,Left_Elbow_Pitch,Right_Shoulder_Yaw,Right_Elbow_Pitch)に基づいて接触イベントが検出される。ここで、接触イベントは、上記で図5を参照して説明した例のように、単純にトルク計測値を閾値範囲と比較することによって検出されてもよいし、上記で図5などを参照して説明した例のようにトルク計測値の所定の周波数以下の成分や時間差分を閾値範囲と比較することによって検出されてもよい。また、接触イベントは、複数のトルク計測値の比率や、角度差分値にさらに基づいて検出されてもよい。
 上記のそれぞれのトルク計測値のいずれか1つについて接触イベントが検出された場合(OR判定)、接触イベントの能動性が判定される。具体的には、例えば、それぞれの関節部における角度計測値から手部103H,104Hの位置を算出し、上記で図12Aおよび図12Bを参照して説明したような胴部102と手部103H,104Hとの位置関係が満たされるか否かを判定する。また、1つの接触イベントが複数回にわたって検出されるのを防ぐために、能動的な接触イベントが一度検出された後には所定の無効期間を設定し、無効期間が経過していない場合には次の能動的な接触イベントが検出されないようにする。接触イベントが検出され、手部103H,104Hの位置が条件を満たし、かつ無効期間が既に経過している場合、能動性判定部540は接触イベントが能動的であると判定する。
 図13は、本発明の一実施形態におけるスコア算出部の処理の例を示すフローチャートである。図示された例において、スコア加算部550は、ロボット100A,100Bのそれぞれで発生した接触イベントの検出結果を取得し(ステップS101)、また接触イベントのそれぞれについて能動性の判定結果を取得する(ステップS102)。ロボット100A,100Bで同期して接触イベントが検出され(ステップS103のYES)、同期して検出された接触イベントのいずれか一方が能動的であり(ステップS104のYES)、かつ他方の接触イベントが能動的ではない場合(ステップS105のYES)、スコア加算部550はロボット100A,100Bのうち能動的な接触イベントが検出された側に対してスコアを加算する(ステップS106)。
 上記以外の場合、すなわち、ロボット100A,100Bで同期して接触イベントが検出されなかった場合(ステップS103のNO)、同期して検出された接触イベントが両方とも能動的ではない場合(ステップS104のNO)、および同期して検出された接触イベントが両方とも能動的である場合(ステップS105のNO)、スコア加算部550はロボット100A,100Bのどちらにもスコアを加算しない。
 なお、上記の例において、互いに同期して検出された接触イベントは、必ずしも同一の時刻に検出された接触イベントではなくてもよく、例えば一方の接触イベントの検出結果が取得された時刻と所定時間以内の時間差の時刻に取得された接触イベントを含んでもよい。許容される時間差は、例えば処理遅延や通信遅延を考慮して決定される。スコア加算部550は、上記のようにしてロボット100A,100Bのそれぞれについてスコアを加算し、所定の試合時間内のスコアに基づいて格闘ゲームの勝敗を決定する。あるいは、スコア加算部550は、上記の処理において能動的な接触イベントが検出されなかった側についてスコアを減算してもよいし、ロボット100A,100Bのいずれかのスコアが上限または下限の閾値に達した時点でゲームを終了してもよい。
 以上で説明した本発明の一実施形態では、ロボット100A,100Bの筐体の部分の運動状態の変化を示す計測値に基づいて、筐体の部分で発生した接触イベントを検出する。また、検出された接触イベントについて、動作実施部分との関係によって能動性を判定する。さらに、ロボット100A,100Bのそれぞれで検出された接触イベントの同期性、およびそれぞれの接触イベントの能動性に応じてロボット100A,100Bにスコアを加算し、それによって格闘ゲームの勝敗を決定する。なお、上記の例では筐体の部分の運動状態の変化を示す計測値として筐体の関節部を駆動するモータで計測されたトルク計測値を用いたが、例えば加速度センサなどを用いて取得される他の計測値を用いることも可能である。また、接触イベントは必ずしもロボットの筐体で検出されなくてもよく、能動的に動作することが可能な他の装置で接触イベントが検出されてもよい。
 以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はこれらの例に限定されない。本発明の属する技術の分野の当業者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
 10…システム、100,100A,100B…ロボット、101,101A,101B…頭部、102,102A,102B…胴部、103,103A,103B,104,104A,104B…腕部、103H,104H…手部、105,105A,105B,106,106A,106B…脚部、105F,106F…足部、110…情報処理装置、111…CPU、113…ROM、114…外部メモリ、115…バスインターフェース、121…通信インターフェース、130…モータ、200A,200B…コントローラ、300…判定装置、310…情報処理装置、311…CPU、312…RAM、313…ROM、314…外部メモリ、315…バスインターフェース、321…通信インターフェース、322…ディスプレイ、510…トルク計測値取得部、520…角度差分値取得部、530,530A,530B,530C,530D,530E…接触イベント検出部、540…能動性判定部、550…スコア加算部、551…接触イベント検出結果取得部、552…能動性判定結果取得部。
 

Claims (6)

  1.  筐体の部分の運動状態の変化を示す計測値を取得する計測値取得部と、
     前記計測値に基づいて前記筐体の部分で発生した接触イベントを検出する接触イベント検出部と、
     前記筐体の部分に含まれる動作実施部分で前記接触イベントが検出された場合に前記接触イベントが能動的であると判定する能動性判定部と
     を備える情報処理装置。
  2.  前記筐体は、関節部を動作パターンに従って駆動することによって動作し、
     前記能動性判定部は、前記動作パターンに基づいて前記動作実施部分を特定する、請求項1に記載の情報処理装置。
  3.  前記筐体は、第1の部分と、前記第1の部分によって支持される第2の部分とを含み、
     前記能動性判定部は、前記接触イベントが発生した時に、前記第2の部分の先端部が前記第1の部分に対して所定の位置関係を満たす場合に前記第2の部分を前記動作実施部分として特定する、請求項1または請求項2に記載の情報処理装置。
  4.  前記計測値は、前記筐体の関節部を駆動するモータで計測されたトルク計測値を含み、
     前記接触イベント検出部は、前記トルク計測値または前記トルク計測値に基づく値が閾値範囲を超える場合に前記接触イベントを検出する、請求項1から請求項3のいずれか1項に記載の情報処理装置。
  5.  筐体の部分の運動状態の変化を示す計測値を取得するステップと、
     前記計測値に基づいて前記筐体の部分で発生した接触イベントを検出するステップと、
     前記筐体の部分に含まれる動作実施部分を特定し、前記動作実施部分で前記接触イベントが検出された場合に前記接触イベントが能動的であると判定するステップと
     を含む情報処理方法。
  6.  筐体の部分の運動状態の変化を示す計測値を取得する計測値取得部と、
     前記計測値に基づいて前記筐体の部分で発生した接触イベントを検出する接触イベント検出部と、
     前記筐体の部分に含まれる動作実施部分を特定し、前記動作実施部分で前記接触イベントが検出された場合に前記接触イベントが能動的であると判定する能動性判定部と
     を備える情報処理装置としてコンピュータを機能させるためのプログラム。
     
PCT/JP2020/045386 2020-12-07 2020-12-07 情報処理装置、情報処理方法およびプログラム WO2022123617A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202080107516.XA CN116490251A (zh) 2020-12-07 2020-12-07 信息处理设备、信息处理方法和程序
US18/254,268 US20240001564A1 (en) 2020-12-07 2020-12-07 Information processing device, information processing method, and program
JP2022567722A JP7453417B2 (ja) 2020-12-07 2020-12-07 情報処理装置、情報処理方法およびプログラム
PCT/JP2020/045386 WO2022123617A1 (ja) 2020-12-07 2020-12-07 情報処理装置、情報処理方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/045386 WO2022123617A1 (ja) 2020-12-07 2020-12-07 情報処理装置、情報処理方法およびプログラム

Publications (1)

Publication Number Publication Date
WO2022123617A1 true WO2022123617A1 (ja) 2022-06-16

Family

ID=81974291

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/045386 WO2022123617A1 (ja) 2020-12-07 2020-12-07 情報処理装置、情報処理方法およびプログラム

Country Status (4)

Country Link
US (1) US20240001564A1 (ja)
JP (1) JP7453417B2 (ja)
CN (1) CN116490251A (ja)
WO (1) WO2022123617A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH048484A (ja) * 1990-04-26 1992-01-13 Hitachi Ltd 複数ロボットの協調動作制御方法および制御装置
JP2001287184A (ja) * 2000-04-07 2001-10-16 Moode:Kk 自律型半自律型行動装置
JP2003181152A (ja) * 2001-12-14 2003-07-02 Takara Co Ltd ロボット玩具
JP2007301004A (ja) * 2006-05-09 2007-11-22 Mechatracks Kk 制御装置、対戦型ロボットシステム、及びロボット装置
KR101336802B1 (ko) * 2012-07-26 2013-12-03 (주)미니로봇 복싱을 수행하는 휴머노이드 로봇

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH048484A (ja) * 1990-04-26 1992-01-13 Hitachi Ltd 複数ロボットの協調動作制御方法および制御装置
JP2001287184A (ja) * 2000-04-07 2001-10-16 Moode:Kk 自律型半自律型行動装置
JP2003181152A (ja) * 2001-12-14 2003-07-02 Takara Co Ltd ロボット玩具
JP2007301004A (ja) * 2006-05-09 2007-11-22 Mechatracks Kk 制御装置、対戦型ロボットシステム、及びロボット装置
KR101336802B1 (ko) * 2012-07-26 2013-12-03 (주)미니로봇 복싱을 수행하는 휴머노이드 로봇

Also Published As

Publication number Publication date
CN116490251A (zh) 2023-07-25
JPWO2022123617A1 (ja) 2022-06-16
US20240001564A1 (en) 2024-01-04
JP7453417B2 (ja) 2024-03-19

Similar Documents

Publication Publication Date Title
CN108340370B (zh) 具有力控制按压装置的机器人系统
JP6884526B2 (ja) 起立補助方法及び装置
US9233467B2 (en) Control apparatus and method for master-slave robot, master-slave robot, and control program
US7061200B2 (en) Legged mobile robot and actuator device applicable to join shaft of the robot
CN105213156B (zh) 一种动力外骨骼及其控制方法
Trkov et al. Inertial sensor-based slip detection in human walking
JP2023052495A (ja) ロボットアームの衝突の検出
JP5987742B2 (ja) 歩行補助装置及び歩行補助方法
WO2016084285A1 (ja) 歩行解析システムおよび歩行解析プログラム
WO2022123618A1 (ja) 情報処理装置、システム、情報処理方法およびプログラム
WO2022123617A1 (ja) 情報処理装置、情報処理方法およびプログラム
WO2022123616A1 (ja) 情報処理装置、情報処理方法およびプログラム
JP7172886B2 (ja) 状態推定プログラム、リハビリ支援システム及び状態推定方法
Yin et al. A wearable rehabilitation game controller using IMU sensor
KR102131097B1 (ko) 로봇 제어 시스템 및 이를 이용한 로봇 제어 방법
CN111399632A (zh) 用于依靠可穿戴设备而与虚拟现实互动的操作方法和其操作设备
JP2009226127A (ja) 動き検出装置、動き検出システム及びプログラム
JP7352516B2 (ja) 脚運動認識装置及び脚運動補助装置
Moya et al. Fall detection and damage reduction in biped humanoid robots
CN108247605B (zh) 一种紧急姿态控制方法和系统
JP4577607B2 (ja) ロボットの制御装置およびロボットシステム
Kasai et al. Development of a Teleoperated Play Tag Robot with Semi-Automatic Play
JP2012191962A (ja) 位置変動検出装置、これを含むシステム、及び位置変動検出装置の動作方法
JP2007007799A (ja) 歩行ロボット
JP2006116635A5 (ja)

Legal Events

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

Ref document number: 20965005

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18254268

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 202080107516.X

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 2022567722

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20965005

Country of ref document: EP

Kind code of ref document: A1