Information processing apparatus, information processing method, and program

By installing torque value acquisition and contact event detection components in the robot, and combining angle difference and initiative determination, the problem of detecting and utilizing the robot's unintended movements is solved, thereby improving the entertainment value and fairness of fighting games.

CN116490329BActive Publication Date: 2025-12-09SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202080107515.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-07
Publication Date
2025-12-09
Estimated Expiration
2040-12-07

AI Technical Summary

Technical Problem

Existing technologies have failed to effectively detect and utilize unintended movements between robots, especially those generated during physical interactions, making them difficult to use for entertainment purposes.

Method used

By installing a torque measurement and contact event detection component in the robot, the torque value of the joint motor is acquired and contact events are detected. Combined with angle difference and initiative determination, active and passive contact events are identified and used for scoring in fighting games.

Benefits of technology

It enables the effective detection and utilization of unintended robot movements, improves the entertainment value and fairness of fighting games, and can accurately identify and handle contact events.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116490329B_ABST
    Figure CN116490329B_ABST
Patent Text Reader

Abstract

Provided is an information processing apparatus provided with a torque measurement value acquisition unit that acquires a first torque measurement value measured in a motor that drives a joint of a housing; and a contact event detection unit that detects that a contact event has occurred on a portion of the housing coupled by the joint when a value based on the first torque measurement value exceeds a threshold range.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to an information processing apparatus, an information processing method, and a program. BACKGROUND

[0002] Various types of robots are being researched and developed. PTL 1 discloses a robot apparatus including a module that generates a motion synchronized with a user's motion from a user image input through a camera image input device.

[0003] [LIST OF CITATIONS]

[0004] [PATENT LITERATURE]

[0005] [PTL 1]

[0006] Japanese Patent Publication No. 2005-342873 SUMMARY

[0007] [TECHNICAL PROBLEM]

[0008] For example, while the above-described robot is being developed, research is also being conducted to detect unintended motions of the robot, such as a motion generated by a physical interaction between robots, and use the detected motion for, for example, entertainment purposes. However, techniques for utilizing such motions have not been sufficiently proposed.

[0009] In view of the above, an object of the present application is to provide an information processing apparatus, an information processing method, and a program that enable detection and utilization of unintended motions of a robot.

[0010] [PROBLEM SOLUTION]

[0011] According to one aspect of the present application, there is provided an information processing apparatus including a measured torque value acquisition part and a contact event detection part. The measured torque value acquisition part acquires a first measured torque value measured by a motor that drives a joint of a housing. The contact event detection part detects that a contact event has occurred on a portion of the housing coupled through the joint in a case where the first measured torque value or a value based on the first measured torque value exceeds a threshold range.

[0012] According to another aspect of the present application, there is provided an information processing method including: a step of acquiring a first measured torque value measured by a motor that drives a joint of a housing; and a step of detecting that a contact event has occurred on a portion of the housing coupled through the joint in a case where the first measured torque value or a value based on the first measured torque value exceeds a threshold range.

[0013] According to still another aspect of the present application, there is provided a program for causing a computer to function as an information processing apparatus including a measured torque value acquisition section and a contact event detection section. The measured torque value acquisition section acquires a first measured torque value measured by a motor that drives a joint of a housing. The contact event detection section detects that a contact event has occurred on a portion of the housing coupled by the joint in a case where the first measured torque value or a value based on the first measured torque value exceeds a threshold range. BRIEF DESCRIPTION OF DRAWINGS

[0014] Figure 1 is a schematic diagram showing an example configuration of a system according to an embodiment of the present application.

[0015] Figure 2 is a schematic diagram showing an example configuration of a robot in the system shown. Figure 1

[0016] Figure 3 is a schematic diagram showing an example configuration of a determination device in the system shown. Figure 1

[0017] Figure 4A is a block diagram showing a first example of a functional configuration regarding contact event detection and determination.

[0018] Figure 4B is a block diagram showing a second example of a functional configuration regarding contact event detection and determination.

[0019] Figure 5 is a diagram showing a specific example of a functional configuration for contact event detection in an embodiment of the present application.

[0020] Figure 6A is a diagram showing an example of a comparison between a measured torque value and a threshold range.

[0021] Figure 6B is a diagram showing an example of a comparison between a measured torque value and a threshold range.

[0022] Figure 7 is a diagram showing an example of applying a low-pass filter to a measured torque value.

[0023] Figure 8 is a diagram showing an example of a structure of a robot.

[0024] Figure 9A is a diagram showing an example of detection of combining ratios of measured torque values in a plurality of joints.

[0025] Figure 9B is a diagram showing an example of detection of combining ratios of measured torque values in a plurality of joints.​​

[0026] Figure 10A is a diagram showing an example of detection in which angle difference values are combined.

[0027] Figure 10B is a diagram showing an example of detection in which angle difference values are combined.

[0028] Figure 11A is a diagram showing an example of determining contact event initiative in an embodiment of the present application.

[0029] Figure 11B is a diagram showing an example of determining contact event initiative in an embodiment of the present application.

[0030] Figure 12 is a diagram showing processing of detecting an active contact event in an embodiment.

[0031] Figure 13 is a flowchart showing an example of processing performed by the score calculation means in an embodiment of the present application. DETAILED DESCRIPTION

[0032] Preferred embodiments of the present application will now be described in detail with reference to the accompanying drawings. Note that in this document and the drawings, constituent elements having substantially the same function are denoted with the same reference numerals, and will not be further described.

[0033] (System Configuration)

[0034] Figure 1 is a diagram showing an example configuration of a system according to an embodiment of the present application. In this embodiment, the system 10 provides a fighting game played by robots 100A and 100B. The system 10 also includes controllers 200A and 200B and a determination device 300.

[0035] The robots 100A and 100B (hereinafter can be collectively referred to as robots 100) respectively include heads 101A and 101B (hereinafter can be collectively referred to as heads 101), torsos 102A and 102B (hereinafter can be collectively referred to as torsos 102), arms 103A and 104A and arms 103B and 104B (hereinafter can be collectively referred to as arms 103 and 104), and legs 105A and 106A and legs 105B and 106B (hereinafter can be collectively referred to as legs 105 and 106).

[0036] The controllers 200A and 200B generate operation signals in accordance with operation input by a user (for example, operation input to an unillustrated button or lever). Alternatively, the controllers 200A and 200B can generate operation signals in accordance with a user's motion, which is recognized by motion capture provided by, for example, an unillustrated camera or sensor. The operation signals are transmitted from the controllers 200A and 200B to the robots 100A and 100B, respectively. The robots 100A and 100B move in accordance with the respective operation signals.

[0037] A fighting game is provided by allowing the robots 100A and 100B to attack and defend against an opponent by moving and driving the arms 103 and 104 and the legs 105 and 106 in accordance with the operation signals from the controllers 200A and 200B, respectively. The rules of the fighting game are not particularly limited to any kind. However, for example, when an attack by any one of the arms 103A and 104A of the robot 100A hits the head 101B or the torso 102B of the robot 100B, a point can be given to the robot 100A. The determination device 300 determines the above-mentioned point in accordance with information transmitted from the robots 100A and 100B, respectively.

[0038] Figure 2 is a schematic view showing an example configuration of a robot in the system shown in Figure 1 The robot 100 includes an information processing device 110, which is installed in, for example, the torso 102. The information processing device 110 includes, for example, a CPU (Central Processing Unit) 111 for performing arithmetic processing, a RAM (Random Access Memory) 112, a ROM (Read Only Memory) 113, and an external memory 114. The information processing device 110 determines the motion of each part of the robot 100 in accordance with an operation signal or a control signal received by a communication interface 121. The communication interface 121 is connected to the information processing device 110 through a bus interface 115.

[0039] The information processing device 110 controls the motors 130 to rotationally drive the joints of the arms 103 and 104, the hands 103H and 104H, the legs 105 and 106, and the feet 105F and 106F, in such a manner as to perform the determined motion. Although not shown, the head 101 and the torso 102 can also be provided with joints driven by the motors 130. For example, the CPU 111 in the information processing device 110 selects a motion pattern corresponding to the determined motion from among motion patterns stored in the ROM 113 or the external memory 114, determines settings for, for example, leg motion, ZMP (Zero Moment Point) trajectory, torso motion, upper limb motion, in accordance with the selected motion pattern, and controls the motors 130 in accordance with the set values of the determined settings.

[0040] In addition, an IMU (Inertial Measurement Unit) 122 and other sensors are installed on the robot 100. The sensors are connected to the information processing device 110 via a bus interface 115, allowing the information processing device 100 to reference sensor output values ​​and control various parts of the robot 100 as needed. Furthermore, the information processing device 110 can send the determined information regarding attack and defense acquired through processing described later to... Figure 1 The determination device 300 is shown. Optionally, the information processing device 110 may send at least some of, for example, sensor output values ​​and selected motion modes or setting values ​​for controlling the motor 130 to the determination device 300, which extracts determination information about attack and defense.

[0041] Figure 3 It is shown Figure 1 The diagram illustrates an example configuration of the determining device in the system. The determining device 300 includes an information processing device 310 and a communication interface 321. The information processing device 310 includes, for example, a CPU 311 for performing arithmetic processing, RAM 312, ROM 313, and external memory 314. The information processing device 310 determines the winner and loser of the fighting game based on determining information received from robots 100A and 100B respectively via the communication interface 321. For example, the determining results and game scores can be sent via the communication interface 321 to another device, such as a user terminal, and displayed on a display 322. The communication interface 321 and the display 322 are connected to the information processing device 310 via a bus interface 315.

[0042] In this embodiment, a contact event is defined as an element used to determine the winner and loser in a fighting game. For example, a contact event is generated when robot 100A collides with any part of the housing of robot 100B during a fighting game. In this case, two different torque changes occur in the motors driving the various parts of robots 100A and 100B. One torque change is caused by motion executed according to operating signals from controllers 200A and 200B. The other torque change is caused by the force exerted when the opponent's robot (an external object) contacts the housing. The magnitude and timing of the former torque change, including, for example, torque changes caused by contact with a floor surface, can be predicted from the motion pattern set for robot 100 and sensor output values. Meanwhile, the magnitude and timing of the latter torque change vary with the position and movement of robot 100B, making it difficult to predict in a similar manner to the former. Events involving torque changes caused by contact with such external objects are referred to herein as contact events.

[0043] The contact event defined as described above is further classified into an active contact event and a passive contact event. For example, in the case where the robot 100A hits any part of the housing of the robot 100B, a contact event occurs in the hit robot 100B. In this case, the robot 100B does not perform a motion for attack. Therefore, it is difficult to predict the occurrence of an event in the robot 100B itself. In this case, it is considered that a passive contact event has occurred on the robot 100B. Meanwhile, in the above case, a motion for attack is performed by the robot 100A. Therefore, the contact event occurring on the robot 100A itself is predictable. In this case, it is considered that an active contact event has occurred on the robot 100A. However, in the case where, for example, an evasive motion is performed by the robot 100B, it is also possible that no predictable contact event occurs. Furthermore, even in the case where a contact event occurs, the magnitude and timing of the change in torque depend on the position and motion of the robot 100B. Therefore, even in the case of an active contact event, it is difficult to predict the magnitude and timing of the change in torque.

[0044] In the present embodiment, both the passive contact event and the active contact event described above are detected on the robot 100A side and the robot 100B side, and then the detection results are integrated to determine the winner and the loser of the fighting game. As functional constituent elements for achieving these purposes, the system 10 includes a measured torque value acquisition part 510, an angle difference value acquisition part 520, a contact event detection part 530, an activity determination part 540, and a score increase part 550. In Figure 1 In the system 10 shown, these functional constituent elements are implemented in the information processing device 110 possessed by the robot 100, or in the information processing device 310 possessed by the determination device 300.

[0045] Specifically, as shown in Figure 4A The measured torque value acquisition part 510, the angle difference value acquisition part 520, the contact event detection part 530, and the activity determination part 540 can be implemented in the robot 100, and the score increase part 550 can be implemented in the determination device 300. In this case, the determination device 300 includes a contact event detection result acquisition part 551 and an activity determination result acquisition part 552. The contact event detection result acquisition part 551 receives the detection results of the contact events in the robot 100A and the robot 100B. The activity determination result acquisition part 552 receives the determination results of the activities of the contact events in the robot 100A and the robot 100B.

[0046] Alternatively, as shown in Figure 4BAs shown, the measured torque value acquisition component 510 and the angle difference value acquisition component 520 can be implemented in the robot 100, and the contact event detection component 530, the initiative determination component 540, and the score increase component 550 can be implemented in the determination device 300. In this case, the functions of the above-described contact event detection result acquisition component and the initiative determination result acquisition component are included in the contact event detection component 530 and the initiative determination component 540. Each functional component element will be further described below.

[0047] The measured torque value acquisition component 510 acquires a measured torque value measured by a motor that drives a joint of a housing of the robot 100. As described above, the housing of the robot 100 includes, for example, the head 101, the torso 102, and the arms 103 and 104, and the joints for connecting them together are driven by the motors 130. The measured torque value is acquired, for example, by measuring a current flowing to the motor 130. In a case where a joint can be driven in a plurality of directions (for example, roll, pitch, and yaw directions), measured torque values of the motors that drive the joint in the respective directions can be acquired. The acquired measured torque values can be processed in real time by the contact event detection component 530. Alternatively, the measured torque values acquired in a time series can be buffered for a predetermined period of time to calculate, for example, a time difference and a moving average.

[0048] The angle difference value acquisition component 520 acquires an angle difference value that represents a difference between a measured angle value of a motor that drives a joint of a housing of the robot 100 and an indicated angle value. The measured angle value is acquired, for example, as an output value of a potentiometer or an encoder connected to the joint driven by the motor. The indicated angle value is, for example, a target value of a rotation angle of the respective motor 130 determined by the information processing device 110.

[0049] In a case where a measured torque value acquired by the measured torque value acquisition component 510 or a value based on the measured torque value exceeds a threshold range, the contact event detection component 530 detects that a contact event has occurred on a portion of the housing coupled by a joint of the motor 130 to which the measured torque value is related. More specifically, for example, in a case where a measured torque value of a motor that drives a joint coupling the head 101 and the torso 102 of the robot 100 or a value based on the measured torque value exceeds a threshold range, the contact event detection component 530 detects that a contact event has occurred on the head 101 or the torso 102.

[0050] In the above case, the threshold range used by the contact event detection component 530 for contact event detection corresponds to a range of measured torque values detected by the respective motor during normal operation, i.e., in a case where the motor driving the joint of the robot 100 is operated in accordance with the motion pattern determined by the information processing apparatus 110 and no unintended external force is applied. The threshold range is determined, for example, by actually measuring the torque values when the robot 100 performs various motions. The threshold range can be set individually for each joint and motor driving direction (e.g., roll, pitch, and yaw directions). Alternatively, a common threshold range can be set for two or more joints and driving directions.

[0051] For example, in a case where the measured torque value is simply outside the threshold range, i.e., the measured torque value is greater than the maximum value of the threshold range or less than the minimum value of the threshold range, the contact event detection component 530 described above can detect a contact event. Alternatively, as described later with reference to an example, in a case where a component of the measured torque value exceeds the threshold range, or in a case where a time difference of the measured torque value exceeds the threshold range, the contact event detection component 530 can detect a contact event, the component having a frequency equal to or lower than a predetermined frequency. Furthermore, as described later with reference to an example, the contact event detection component 530 can detect a contact event from a ratio of a plurality of measured torque values, and can also detect a contact event from an angle difference value acquired by the angle difference acquisition component 520.

[0052] The proactivity determination component 540 determines whether a contact event detected by the contact event detection component 530 is proactive. Here, as described earlier, the occurrence of a proactive contact event is predictable as such because the robot 100 has performed a motion that invokes the proactive contact event. Specifically, in a case where a contact event is detected on a moving part included in a part of the housing of the robot 100, the proactivity determination component 540 determines that the contact event is proactive. For example, the proactivity determination component 540 can identify a moving part of the robot 100 from the motion pattern of the joint determined by the information processing apparatus 110. Furthermore, as described later with reference to an example, in a case where the torso 102 of the robot 100 and the arms 103 and 104 supported by the torso 102, the hands 103H and 104H as end portions of the arms 103 and 104, are in a predetermined positional relationship with the torso 102, the proactivity determination component 540 can identify the arms 103 and 104 (including the hands 103H and 104H) as a moving part. In this embodiment, a contact event that is not determined by the proactivity determination component 540 as a proactive contact event is treated as a passive contact event.

[0053] As for each of the robots 100A and 100B, the score increasing part 550 determines the winner and the loser of the fighting game in accordance with the contact event detection result of the contact event detection part 530 and the contact event initiative determination result of the initiative determination part 540. More specifically, in a case where the first contact event detected on, for example, the robot 100A is initiative and the second contact event detected on the robot 100B in synchronization with the first contact event is non-initiative, the score increasing part 550 determines that the robot 100A has successfully attacked the robot 100B, and then increases the score of the robot 100A. A specific example of this processing of the score increasing part 550 will be described later.

[0054] (Specific example of contact event detection)

[0055] Figure 5 is a diagram showing a specific example of a functional configuration for contact event detection in an embodiment of the present application. In the example shown in Figure 5 In the example shown, the measured torque value acquisition part 510 acquires the measured torque values of three directions (Head_Roll, Head_Pitch, Head_Yaw) of the motors driving the joints of the head 101 and the trunk 102, the measured torque values of three directions (Trunk_Roll, Trunk_Pitch, Trunk_Yaw) of the motors driving the joints of two parts in the trunk 102, and the measured torque values of two directions (Left_Shoulder_Roll, Left_Shoulder_Pitch, Right_Shoulder_Roll, Right_Shoulder_Pitch) of the motors driving the shoulder joints of the arms 103 and 104. At the same time, the angle difference value acquisition part 520 acquires the angle difference values of the motors driving the joints of two parts in the trunk 102 (Trunk_Yaw), and the angle difference values of the motors driving the above-mentioned shoulder joints (Left_Shoulder_Roll, Left_Shoulder_Pitch, Right_Shoulder_Roll, Right_Shoulder_Pitch). It should be noted that, in Figure 5 In some cases, roll, pitch, and yaw are abbreviated as R, P, and Y, respectively.

[0056] In the depicted example, the contact event detection section 530 includes contact event detection sections 530A to 530D and a contact event detection section 530E. The contact event detection sections 530A to 530D detect a contact event by comparing the measured torque values with the threshold range in different ways. The contact event detection section 530E integrates the results of the contact event detection. Each of these sections will be further described below.

[0057] (Detection using measured torque values)

[0058] The contact event detection section 530A determines whether the measured torque values of the head 101 (Head_Roll, Head_Pitch, Head_Yaw) and the measured torque value of the trunk 102 (Trunk_Roll) exceed the threshold range, respectively. In the case where the measured torque values exceed the threshold range, the contact event detection section 530A detects a contact event on at least one of the head 101 or the trunk 102. Figure 6A and 6B Examples of the comparison between the measured torque values and the threshold range are shown in Figure 6A , respectively. As shown in , the measured torque values of the electric motors driving the respective parts of the robot 100 do not exceed the threshold range R during normal operation. As described earlier, the threshold range R is determined, for example, by collecting the actually measured torque values during the normal operation of the robot 100. It should be noted that although the depicted example indicates that the positive side and the negative side of the threshold range R are set equally around zero (0), the threshold range R can be biased toward the positive side or the negative side.

[0059] Figure 6B Meanwhile, when a contact event occurs, the measured torque values of the electric motors exceed the threshold range R, as shown in Figure 7 . Thus, in the case where the measured torque values (Head_Roll, Head_Pitch, Head_Yaw, Trunk_Roll) exceed the threshold range R set respectively, the contact event detection section 530A detects a contact event on at least one of the head 101 or the trunk 102. In this case, as shown in , the contact event detection section 530A (and other event detection sections) can apply a low-pass filter to the measured torque values, and detect a contact event in the case where a component of the measured torque values having a frequency equal to or lower than a predetermined frequency exceeds the threshold range R. The measured torque values can include high-frequency components generated due to noise or measurement errors. Thus, by removing components having a frequency higher than the fluctuation frequency of the measured torque values caused by a contact event, it is possible to reduce detection errors to improve the accuracy of contact event detection.

[0060] (Detection in the case where the ratio of measured torque values in the joints is combined)

[0061] Figure 5If the measured torque value (Trunk_Pitch) of the torso 102 exceeds a threshold range, and the ratio (Head_Pitch / Trunk_Pitch) of the measured torque value (Head_Pitch) of the head 101 to the measured torque value (Trunk_Pitch) of the torso 102 exceeds the threshold, then the contact event detection unit 530B detects a contact event that has occurred on the head 101. If the ratio does not exceed the threshold, then a contact event that has occurred on the torso 102 is detected. Because of this determination, it is possible to correctly identify whether a contact event occurred in the head 101 or the torso 102.

[0062] like Figure 8 As shown, the legs 105 and 106 at the bottom of robot 100 are constrained ends in contact with the floor surface, while the head 101 at the top of robot 100 is a free end. That is, the shell of robot 100 includes the legs 105 and 106 forming a first part, the lower part of the torso 102 supported by the first part as a second part, and the head 101 supported by the second part to form a free end as a third part. In this case, when a force F is applied by a contact event that has already occurred on the third part forming the free end, fluctuations in the measured torque value tend to be observed more noticeably at the joint between the second and first parts than at the joint between the third and second parts. More specifically, when a contact event has already occurred on the head 101, fluctuations in the measured torque value (Trunk_Pitch) of the joint connecting the two parts of the torso 102 will be observed more noticeably than the measured torque value (Head_Pitch) of the joint connecting the joint 101 and the torso 102. Therefore, it is not easy to distinguish the above situation from the situation where the measured torque value (Trunk_Pitch) of the torso 102 fluctuates due to contact events occurring on the torso 102.

[0063] Figure 9A and 9B The measured torque values ​​(Head_Pitch, Trunk_Pitch) and the ratio between these measured torque values ​​(Head_Pitch / Trunk_Pitch) are shown for two different scenarios. In one scenario, it is assumed that a contact event occurred on the torso 102 due to an external attack. In the other scenario, it is assumed that a contact event occurred on the head 101 due to an external attack. Figure 9A and 9BIn the examples shown in FIGS. 10A and 10B, the measured torque value of the trunk 102 (Trunk_Pitch) similarly exhibits a large positive fluctuation and exceeds the threshold value (the maximum value of the threshold range R), and the measured torque value of the head 101 (Head_Pitch) similarly exhibits a small fluctuation and does not exceed the threshold value. Meanwhile, in the example shown in FIG. 10C, the ratio between the measured torque values (Head_Pitch / Trunk_Pitch) is almost zero (0), but in the example shown in FIG. 10D, the ratio is equal to or greater than 0.25. This indicates that there is a difference between these two cases. The reason is that, in the case of Figure 9A where a contact event has occurred on the trunk 102, the measured torque value of the head 101 almost remains unchanged, whereas in the case of Figure 9B where a contact event has occurred on the head 101, the measured torque value of the head 101 also changes, although the change is not as large as that observed in the case of the trunk 102. Figure 9A Figure 9B

[0064] Therefore, in the case indicated by the above examples shown in Figure 9A and 9B , when a threshold value of 0.25 is set for the ratio between the measured torque values (Head_Pitch / Trunk_Pitch), it can be determined that a contact event has occurred on the head 101 in the case where the ratio exceeds the threshold value, and a contact event has occurred on the trunk 102 in the case where the ratio does not exceed the threshold value. It should be noted that the above ratio threshold value is merely an example. In some other cases, for example, an appropriate threshold value can be set by collecting actual measured values of the ratio when a contact event occurs on the head 101 and actual measured values of the ratio when a contact event occurs on the trunk 102.

[0065] (Detection of the angle difference value being combined)

[0066] Referring again to Figure 5 , in the case where the measured torque value of the motor that drives the joint that couples the two portions in the trunk 102 (Trunk_Yaw) exceeds the threshold range and the angle difference value of the motor exceeds the threshold range, the contact event detection section 530C detects that a contact event has occurred on the trunk 102. As described later, the measured torque value fluctuates relatively greatly depending on the posture of the robot 100, whereas the angle difference value slightly fluctuates depending on the posture of the robot 100. Therefore, it is possible to improve the accuracy of the contact event detection by using the angle difference value.

[0067] Figure 10A and 10B ​​The measured torque values and the angle difference values are shown in two different cases. In one of the two cases, it is assumed that no contact event has actually occurred on the torso 102. In the other case, it is assumed that a contact event has occurred on the torso 102. As Figure 10A and 10B are shown in the two examples, the measured torque values exceed the threshold range. Meanwhile, Figure 10A the angle difference values shown in the example of Figure 10B exceed the threshold value. Thus, as long as a contact event is detected on the condition that the angle difference values exceed the threshold value, false detection can be prevented in the case where the measured torque values fluctuate (e.g., as shown in Figure 10A , although no contact event has occurred due to a change in the posture of the robot 100).

[0068] (Detection using time difference)

[0069] Referring again to Figure 5 , in a case where the time difference between the measured torque values of the motors driving the shoulder joints (Left_Shoulder_Roll, Left_Shoulder_Pitch, Right_Shoulder_Roll, Right_Shoulder_Pitch) exceeds the threshold range and the angle difference values of the motors exceed the threshold range, the contact event detection component 530D detects that a contact event has occurred on the associated arms 103 and 104. More specifically, the contact event detection component 530D does not use the torque values detected at one time t, but compares the threshold range with the time difference (i.e., the difference between the torque measured at time t and at time t-1). Regarding the portions such as the arms 103 and 104, the difference between the amount of fluctuation of the torque values detected during normal operation and the amount of fluctuation of the torque values detected when a contact event occurs is small. Thus, in a case where the detected torque values are simply compared with the threshold range, the detection accuracy is unlikely to increase. Meanwhile, the amount of fluctuation of the torque values detected each time when a contact event occurs is greater than the amount of fluctuation of the torque values detected during normal operation. Thus, the contact event detection can be appropriately performed by using the time difference. It should be noted that the contact event detection component 530D, in addition to using the time difference between the detected torque values, can more accurately achieve event detection by using the angle difference values of the motors, as in the case of the above-described example of the contact event detection component 530C. However, it is not necessarily required to combine the time difference between the detected torque values with the angle difference values.

[0070] In the above-described Figure 5In the example, the contact event detection component 530E integrates the results of the contact event detection by the contact event detection components 530A to 530D. More specifically, in a case where a contact event that has occurred on the head 101 is detected by both of the contact event detection components 530A and 530B, for example, the contact event detection component 530E can determine that a contact event has occurred on the head 101. Also, in a case where a contact event that has occurred on the torso 102 is detected by all of the contact event detection components 530A, 530B, and 530C, the contact event detection component 530E can determine that a contact event has occurred on the torso 102. As for the arms 103 and 104, the contact event detection component 530E can use the result of the determination made by the contact event detection component 530D as it is. The contact event detection component 530E can determine the occurrence of a contact event in accordance with a logical combination (logical AND) of the respective detection results as described above. However, in some other examples, the contact event detection component 530E can determine the occurrence of a contact event in accordance with a logical separation (logical OR) of the respective detection results.

[0071] (Determination of Initiative)

[0072] In a case where a contact event is detected on a moving portion of the robot 100 as described above, the initiative determination component 540 can determine that the contact event is initiative. The moving portion can be identified based on the pattern of motion of the joint determined by the information processing device 110 or based on the fluctuation of the torque value of the joint measured before and after the contact event detection. For example, in a case where the measured torque value is within a threshold range but fluctuates more than other joints before and after the contact event detection, the initiative determination component 540 can identify the portion coupled by the relevant joint as the moving portion. Also, as described below, the initiative determination component 540 can identify the moving portion in accordance with the positional relationship between the relevant portions of the housing at the time of contact event detection.

[0073] Figure 11A and 11B is a diagram illustrating an example in which the initiative of a contact event is determined in an embodiment of the present application. In this example, the initiative determination component 540 identifies the moving portion in accordance with the positional relationship between the hands 103H and 104H that are the end portions of the arms 103 and 104 and the torso 102 at the time of occurrence of a contact event. In the depicted example, as shown in Figure 11A , in a case where the hand 103H or the hand 104H is located in front of the torso 102 and within a predetermined height range (±d1) with reference to the shoulder joint that couples the torso 102 and the arms 103 and 104, the front-back distance to the torso 102 is equal to a threshold value d2, as shown in Figure 11Band the linear distance from the shoulder joint is equal to or greater than a threshold value r, the arm 103 or 104 of the hand 103H or 104H / hands 103H and 104H satisfying the condition is identified as the moving part. It should be noted that Figure 11A and Figure 11B The dimensions shown are suitable in the case where the robot 100 employed is small in size. The dimensions and the ratio between the dimensions are set appropriately based on the size and shape of the robot 100.

[0074] Figure 12 is a schematic diagram showing the process of detecting the active contact event in the present embodiment. In the example shown, Figure 12 In the example shown, first, a contact event is detected based on the measured torque values of the motors of the shoulder joints and the elbow joints of the arms 103 and 104 (Left_Shoulder_Yaw, Left_Elbow_Pitch, Right_Shoulder_Yaw, Right_Elbow_Pitch). In this case, the contact event can be detected by simply comparing the measured torque values with a threshold range, as indicated in the example described previously with reference to Figure 5 or by comparing the components of the measured torque values and the time difference, the frequency of which is equal to or less than a predetermined frequency, with a threshold range, as indicated in the example described previously with reference to, for example Figure 5 In addition, the contact event can also be detected based on the ratio between a plurality of measured torque values and the angle difference values.

[0075] In the case where a contact event is detected with respect to any one of the measured torque values described above (logical OR), the activity of the contact event is determined. More specifically, for example, the positions of the hands 103H and 104H are calculated from the measured angle values of the relevant joints to determine whether the positional relationship described previously with reference to Figure 11A and 11B is obtained between the torso 102 and the hands 103H, 104H. In addition, in order to prevent a single contact event from being detected multiple times, a predetermined length of an invalid period is set when an active contact event is detected a single time to avoid a subsequent active contact event from being detected until the invalid period expires. In the case where a contact event is detected, the hands 103H and 104H are positioned to satisfy the condition, and the invalid period has expired, the activity determining component 540 determines that the contact event is active.

[0076] Figure 13is a flowchart showing an example of the processing performed by the score calculating section in the embodiment of the present application. In the depicted example, the score increasing section 550 acquires detection results of contact events respectively occurring on the robots 100A and 100B (step S101), and acquires determination results of the initiative of the respective contact events (step S102). In a case where the contact events are detected synchronously on the robots 100A and 100B (YES in step S103), either one of the synchronously detected contact events is the initiative (YES in step S104), and the other contact event is the non-initiative (YES in step S105), the score increasing section 550 increases the score of the robot 100A or the robot 100B, whichever involves the detection of the initiative contact event (step S106).

[0077] In a case other than the above, i.e., in a case where the contact events are not detected synchronously on the robots 100A and 100B (NO in step S103), in a case where both of the synchronously detected contact events are the non-initiative (NO in step S104), and in a case where both of the synchronously detected contact events are the initiative, the score increasing section 550 does not increase the score of the robot 100A nor the score of the robot 100.

[0078] It should be noted that, in the above example, the synchronously detected contact events do not necessarily have to be detected at the same time. The synchronously detected contact events can include, for example, contact events acquired at a time that is a predetermined length or less from a time at which the detection result of one of the synchronously detected contact events is acquired. The acceptable time difference is determined in consideration of, for example, processing delay and communication delay. The score increasing section 550 increases the scores of the robots 100A and 100B in the above-described manner, and determines the winner and the loser of the fighting game based on the scores made within a predetermined game time. Alternatively, the score increasing section 550 can decrease the score of the side on which the initiative contact event is not detected by the above-described processing, and end the game when the score of the robot 100A or the robot 100B reaches an upper threshold or a lower threshold.

[0079] According to the measured values indicating changes in the motion states of the portions of the housings of the robots 100A and 100B, the above-described embodiments of the present application detect contact events occurring on the portions of the housings. Further, the above-described embodiments of the present application determine the initiative of the detected contact events in accordance with the relationship with the moving portions. Further, the above-described embodiments of the present application increase the scores of the robots 100A and 100B in accordance with the synchronism and the initiative of the detected contact events on the robots 100A and 100B, respectively, and determine the win or loss of the battle game in accordance with the resulting scores. It should be noted that, in the above-described example, the torque values measured by the electric motors driving the joints of the housings are used as the measured values indicating the motion states of the portions of the housings. However, alternatively, some other measured values acquired by using, for example, acceleration sensors can be used as the measured values indicating the motion states of the portions of the housings. Further, the contact events do not necessarily need to be detected on the housings of the robots. Alternatively, the contact events can be detected on different devices capable of being moved actively.

[0080] While the preferred embodiments of the present application have been described in detail with reference to the accompanying drawings, the present application is not limited to the above-described preferred embodiments. It will be appreciated by those skilled in the art that various modifications and changes can be made in the technical idea described in the appended claims, and such modifications and changes are obviously within the technical scope of the present application.

[0081] [List of Reference Numerals]

[0082] 10: system

[0083] 100, 100A, 100B: robot

[0084] 101, 101A, 101B: head

[0085] 102, 102A, 102B: torso

[0086] 103, 103A, 103B, 104, 104A, 104B: arm

[0087] 103H, 104H: hand

[0088] 105, 105A, 105B, 106, 106A, 106B: leg

[0089] 105F, 106F: foot

[0090] 110: information processing device

[0091] 111: CPU

[0092] 113: ROM

[0093] 114: external storage

[0094] 115: bus interface

[0095] 121: communication interface

[0096] 130: motor

[0097] 200A, 200B: controller

[0098] 300: determination device

[0099] 310: information processing device

[0100] 311: CPU

[0101] 312: RAM

[0102] 313: ROM

[0103] 314: external memory

[0104] 315: bus interface

[0105] 321: communication interface

[0106] 322: display

[0107] 510: measured torque value acquisition means

[0108] 520: angle difference value acquisition means

[0109] 530, 530A, 530B, 530C, 530D, 530E: contact event detection means

[0110] 540: initiative determination means

[0111] 550: score increase means

[0112] 551: contact event detection result acquisition means

[0113] 552: initiative determination result acquisition means

Claims

1. An information processing apparatus comprising: a measured torque value acquisition component that acquires a first measured torque value measured by a motor that drives a joint of a housing, and a contact event detection component that detects a contact event that has occurred on a portion of the housing coupled by the joint in a case where the first measured torque value or a value based on the first measured torque value exceeds a threshold range, wherein the housing includes a first portion, a second portion supported by the first portion, and a third portion supported by the second portion to form a free end, the measured torque value acquisition component acquires the first measured torque value measured by a motor that drives a joint that couples the first portion and the second portion, and a second measured torque value measured by a motor that drives a joint that couples the second portion and the third portion, and in the case where the first measured torque value or the value based on the first measured torque value exceeds the threshold range, the contact event detection component detects the contact event that has occurred on the third portion if a ratio of the second measured torque value to the first measured torque value exceeds a threshold, and detects the contact event that has occurred on the second portion if the ratio does not exceed the threshold.

2. The information processing device according to claim 1, wherein in the case where a component of the first measured torque value having a frequency equal to or lower than a predetermined frequency exceeds the threshold range, the contact event detection component detects the contact event.

3. The information processing device according to claim 1, wherein in the case where a time difference of the first measured torque value exceeds the threshold range, the contact event detection component detects the contact event. 4.The information processing apparatus according to any one of claims 1 to 3, further comprising: an angle difference value acquisition component that acquires an angle difference value that represents a difference between a measured angle value of the motor that drives the joint of the housing and an indicated angle value, wherein in a case where the first measured torque value or a value based on the first measured torque value exceeds the threshold range and the angle difference value exceeds a threshold, the contact event detection component detects the contact event. 5.An information processing method comprising: a measured torque value acquisition step of acquiring a first measured torque value measured by a motor that drives a joint of a housing, and a contact event detection step of detecting a contact event that has occurred on a portion of the housing coupled by the joint in a case where the first measured torque value or a value based on the first measured torque value exceeds a threshold range, wherein the housing includes a first portion, a second portion supported by the first portion, and a third portion supported by the second portion to form a free end, In the measured torque value acquisition step, a first measured torque value measured by a motor driving a joint coupling the first portion and the second portion and a second measured torque value measured by a motor driving a joint coupling the second portion and the third portion are acquired, and In the contact event detection step, in a case where the first measured torque value or the value based on the first measured torque value exceeds the threshold range, if a ratio of the second measured torque value to the first measured torque value exceeds a threshold value, it is detected that the contact event that has occurred on the third portion, and if the ratio does not exceed the threshold value, it is detected that the contact event that has occurred on the second portion.

6. A computer program product comprising computer instructions which, when executed by a processor of an information processing apparatus, cause the processor to perform the information processing method according to claim 5.

Citation Information

Patent Citations

  • Robot device and its operation controlling method

    JP2005342873A

  • Robot Apparatus And Motor Control Device

    CN107708943A

  • Monitoring device for robot system

    CN108136604A

  • Arm-equipped mobile robot and method for controlling the same

    US20080231221A1