Patent Description:
Technology is known for controlling the actions of apparatuses such as robots and the like so as to make the apparatuses more similar to familiar beings such as friends or pets. For example, Unexamined <CIT> describes technology related to action determination of a robot that acts like an animal.

Unexamined <CIT> describes a feature of selecting a desired action from a plurality of actions on the basis of external factors and internal factors. <CIT>, <CIT>, and <CIT> describe robots that select an action using emotional data. However, with such technologies, there are problems in that there are many types of control data corresponding to the action to be selected, and the processing and processes that must be performed to reach the selection of that action from the external factors and the internal factors are complex.

Therefore, an objective of the present disclosure is to provide an apparatus, a control method for the apparatus, and a program whereby, in the determination of content of control for expressing a pseudo-emotion, the processing load thereof can be reduced.

Further features and advantages of the present invention are set forth in dependent claims.

A more complete understanding of this application can be obtained when the following detailed description is considered in conjunction with the following drawings, in which:.

Hereinafter, embodiments are described while referencing the drawings. Note that, in the drawings, identical or corresponding components are denoted with the same reference numerals.

An embodiment in which an apparatus control device according to Embodiment <NUM> is applied to a robot <NUM> illustrated in <FIG> is described while referencing the drawings. The robot <NUM> according to the embodiment is a pet robot that resembles a small animal. As illustrated in <FIG>, the robot <NUM> is covered with an exterior <NUM> provided with bushy fur <NUM> and decorative parts <NUM> resembling eyes. A housing <NUM> of the robot <NUM> is accommodated in the exterior <NUM>. As illustrated in <FIG>, the housing <NUM> of the robot <NUM> includes a head <NUM>, a coupler <NUM>, and a torso <NUM>. The head <NUM> and the torso <NUM> are coupled by the coupler <NUM>.

As illustrated in <FIG>, the torso <NUM> extends in a front-back direction. Additionally, the torso <NUM> contacts, via the exterior <NUM>, a placement surface such as a floor, a table, or the like on which the robot <NUM> is placed. As illustrated in <FIG>, a twist motor <NUM> is provided at a front end of the torso <NUM>, and the head <NUM> is coupled to the front end of the torso <NUM> via the coupler <NUM>. The coupler <NUM> is provided with a vertical motor <NUM>. Note that, in <FIG>, the twist motor <NUM> is provided on the torso <NUM>, but may be provided on the coupler <NUM> or on the head <NUM>.

The coupler <NUM> couples the torso <NUM> and the head <NUM> so as to enable rotation (by the twist motor <NUM>) around a first rotational axis that passes through the coupler <NUM> and extends in a front-back direction of the torso <NUM>. The twist motor <NUM> rotates the head <NUM>, with respect to the torso <NUM>, clockwise (right rotation) within a forward rotation angle range around the first rotational axis (forward rotation), counter-clockwise (left rotation) within a reverse rotation angle range around the first rotational axis (reverse rotation), and the like. Note that, in this description, the term "clockwise" refers to clockwise when viewing the direction of the head <NUM> from the torso <NUM>. Additionally, herein, clockwise rotation is also referred to as "twist rotation to the right", and counter-clockwise rotation is also referred to as "twist rotation to the left. " A maximum value of the angle of twist rotation to the right (right rotation) or the left (left rotation) can be set as desired, and the angle of the head <NUM> in a state, as illustrated in <FIG>, in which the head <NUM> is not twisted to the right or the left is referred to as a "twist reference angle.

The coupler <NUM> couples the torso <NUM> and the head <NUM> so as to enable rotation (by the vertical motor <NUM>) around a second rotational axis that passes through the coupler <NUM> and extends in a width direction of the torso <NUM>. The vertical motor <NUM> rotates the head <NUM> upward (forward rotation) within a forward rotation angle range around the second rotational axis, downward (reverse rotation) within a reverse rotation angle range around the second rotational axis, and the like. A maximum value of the angle of rotation upward or downward can be set as desired, and the angle of the head <NUM> in a state, as illustrated in <FIG>, in which the head <NUM> is not rotated upward or downward is referred to as a "vertical reference angle.

When the head <NUM> is rotated to the vertical reference angle or upward from the vertical reference angle by vertical rotation around the second rotational axis, the head <NUM> can contact, via the exterior <NUM>, the placement surface such as the floor or the table on which the robot <NUM> is placed. Note that, in <FIG>, an example is illustrated in which the first rotational axis and the second rotational axis are orthogonal to each other, but a configuration is possible in which the first and second rotational axes are not orthogonal to each other.

As illustrated in <FIG>, the robot <NUM> includes a touch sensor <NUM> on the head <NUM>. The touch sensor <NUM> can detect petting or striking of the head <NUM> by a user. The robot <NUM> also includes the touch sensor <NUM> on the torso <NUM>. The touch sensor <NUM> can detect petting or striking of the torso <NUM> by the user.

The robot <NUM> includes an acceleration sensor <NUM> on the torso <NUM>. The acceleration sensor <NUM> can detect an attitude (orientation) of the robot <NUM>, and can detect being picked up, the orientation being changed, being thrown, and the like by the user. The robot <NUM> includes a gyrosensor <NUM> on the torso <NUM>. The gyrosensor <NUM> can detect rolling, rotating, and the like of the robot <NUM>.

The robot <NUM> includes a microphone <NUM> on the torso <NUM>. The microphone <NUM> can detect external sounds. Furthermore, the robot <NUM> includes a speaker <NUM> on the torso <NUM>. The speaker <NUM> can be used to emit a sound (sound effect) of the robot <NUM>.

Note that, in the present embodiment, the acceleration sensor <NUM>, the gyrosensor <NUM>, the microphone <NUM>, and the speaker <NUM> are provided on the torso <NUM>, but a configuration is possible in which all or a portion of these components are provided on the head <NUM>. Note that a configuration is possible in which, in addition to the acceleration sensor <NUM>, gyrosensor <NUM>, the microphone <NUM>, and the speaker <NUM> provided on the torso <NUM>, all or a portion of these components are also provided on the head <NUM>. The touch sensor <NUM> is respectively provided on the head <NUM> and the torso <NUM>, but a configuration is possible in which the touch sensor <NUM> is provided on only one of the head <NUM> and the torso <NUM>. Moreover, a configuration is possible in which a plurality of any of these components is provided.

Next, the functional configuration of the robot <NUM> is described. As illustrated in <FIG>, the robot <NUM> includes an apparatus control device <NUM>, an external stimulus detector <NUM>, a driver <NUM>, a sound outputter <NUM>, and an operation inputter <NUM>. Additionally, the apparatus control device <NUM> includes a controller <NUM>, and a storage <NUM>. In <FIG>, the apparatus control device <NUM>, and the external stimulus detector <NUM>, the driver <NUM>, the sound outputter <NUM>, and the operation inputter <NUM> are connected to each other via a bus line BL, but this is merely an example.

A configuration is possible in which the apparatus control device <NUM>, and the external stimulus detector <NUM>, the driver <NUM>, the sound outputter <NUM>, and the operation inputter <NUM> are connected by a wired interface such as a universal serial bus (USB) cable or the like, or by a wireless interface such as Bluetooth (registered trademark) or the like. Additionally, a configuration is possible in which the controller <NUM> and the storage <NUM> are connected via the bus line BL.

The apparatus control device <NUM> controls, by the controller <NUM> and the storage <NUM>, actions of the robot <NUM>.

In one example, the controller <NUM> is configured from a central processing unit (CPU) or the like, and executes various processings (robot control processing and the like), described later, using programs stored in the storage <NUM>. Note that the controller <NUM> is compatible with multithreading functionality in which a plurality of processings are executed in parallel. As such, the controller <NUM> can execute the various processings (robot control processing, sound effect playback thread, motion playback thread, and the like), described later, in parallel. Additionally, the controller <NUM> is provided with a clock function and a timer function, and can measure the date and time, and the like.

The storage <NUM> is configured from read-only memory (ROM), flash memory, random access memory (RAM), or the like. Programs to be executed by the CPU of the controller <NUM>, and data needed in advance to execute these programs are stored in the ROM. The flash memory is writable non-volatile memory, and stores data that is desired to be retained even after the power is turned OFF. Data that is created or modified during the execution of the programs is stored in the RAM.

The external stimulus detector <NUM> includes the touch sensor <NUM>, the acceleration sensor <NUM>, the gyrosensor <NUM>, and the microphone <NUM> described above. The controller <NUM> acquires, as a signal expressing an external stimulus acting on the robot <NUM>, detection values (external stimulus data) detected by the various sensors of the external stimulus detector <NUM>. Note that a configuration is possible in which the external stimulus detector <NUM> includes sensors other than the touch sensor <NUM>, the acceleration sensor <NUM>, the gyrosensor <NUM>, and the microphone <NUM>. The types of external stimuli acquirable by the controller <NUM> can be increased by increasing the types of sensors of the external stimulus detector <NUM>.

The touch sensor <NUM> detects contacting by some sort of object. The touch sensor <NUM> is configured from a pressure sensor or a capacitance sensor, for example. A detection value detected by the touch sensor <NUM> expresses the strength of contact. Additionally, the touch sensor <NUM> is capable of directional contact detection, and detects the strength of contact in three axial directions, namely contact from the front-back direction (the X-axis direction), contact from a width (left-right) direction (Y-axis direction), and contact from a vertical direction (Z-axis direction) of the torso <NUM> of the robot <NUM>. Therefore, the detection value of the touch sensor <NUM> is three-dimensional data constituted by values of the strength of contact from the X-axis direction, the strength of contact from the Y-axis direction, and the strength of contact from the Z-axis direction. The controller <NUM> can, on the basis of the detection value from the touch sensor <NUM>, detect that the robot <NUM> is being pet, is being struck, and the like by the user.

The acceleration sensor <NUM> detects acceleration in three axial directions, namely the front-back direction (X-axis direction), the width (left-right) direction (Y-axis direction), and the vertical direction (Z direction) of the torso <NUM> of the robot <NUM>. Therefore, the acceleration value detected by the acceleration sensor <NUM> is three-dimensional data constituted by values of X-axis direction acceleration, Y-axis direction acceleration, and Z-axis direction acceleration. The acceleration sensor <NUM> detects gravitational acceleration when the robot <NUM> is stopped and, as such, the controller <NUM> can detect a current attitude of the robot <NUM> on the basis of the gravitational acceleration detected by the acceleration sensor <NUM>. Additionally, when, for example, the user picks up or throws the robot <NUM>, the acceleration sensor <NUM> detects, in addition to the gravitational acceleration, acceleration caused by the movement of the robot <NUM>. Accordingly, the controller <NUM> can detect the movement of the robot <NUM> by removing the gravitational acceleration component from the detection value detected by the acceleration sensor <NUM>.

The gyrosensor <NUM> detects an angular velocity from when rotation is applied to the torso <NUM> of the robot <NUM>. Specifically, the gyrosensor <NUM> detects the angular velocity on three axes of rotation, namely rotation around the front-back direction (the X-axis direction), rotation around the width (left-right) direction (the Y-axis direction), and rotation around the vertical direction (the Z-axis direction) of the torso <NUM>. Therefore, an angular velocity value detected by the gyrosensor <NUM> is three-dimensional data constituted by the values of X-axis rotation angular velocity, Y-axis rotation angular velocity, and Z-axis rotation angular velocity. The controller <NUM> can more accurately detect the movement of the robot <NUM> by combining the detection value detected by the acceleration sensor <NUM> and the detection value detected by the gyrosensor <NUM>.

Note that the touch sensor <NUM>, the acceleration sensor <NUM>, and the gyrosensor <NUM> are synchronized, detect each of the strength of contact, the acceleration, and the angular velocity at the same timing, and output the detection values to the controller <NUM>. Specifically, the touch sensor <NUM>, the acceleration sensor <NUM>, and the gyrosensor <NUM> detect the strength of contact, the acceleration, and the angular velocity at the same timing every <NUM> seconds, for example.

The microphone <NUM> detects ambient sound of the robot <NUM>. The controller <NUM> can, for example, detect, on the basis of a component of the sound detected by the microphone <NUM>, that the user is speaking to the robot <NUM>, that the user is clapping their hands, and the like.

The driver <NUM> includes the twist motor <NUM> and the vertical motor <NUM>. The driver <NUM> is driven by the controller <NUM>. As a result, the robot <NUM> can express actions such as, for example, lifting the head <NUM> up (rotating upward around the second rotational axis), twisting the head <NUM> sideways (twisting/rotating to the right or to the left around the first rotational axis), and the like. Motion data for driving the driver <NUM> in order to express these actions is recorded in a control content table <NUM>, described later.

The sound outputter <NUM> includes the speaker <NUM>, and sound is output from the speaker <NUM> as a result of sound data being input into the sound outputter <NUM> by the controller <NUM>. For example, the robot <NUM> emits a pseudo-animal sound as a result of the controller <NUM> inputting animal sound data of the robot <NUM> into the sound outputter <NUM>. This animal sound data is also recorded as sound effect data in the control content table <NUM>.

In one example, the operation inputter <NUM> is configured from an operation button, a volume knob, or the like. The operation inputter <NUM> is an interface for receiving user operations such as, for example, turning the power ON/OFF, adjusting the volume of the output sound, and the like.

Next, of the data stored in the storage <NUM> of the apparatus control device <NUM>, the data unique to the present embodiment, namely, emotion data <NUM>, emotion change data <NUM>, growth days count data <NUM>, and the control content table <NUM> are described in order.

The emotion data <NUM> is data for imparting pseudo-emotions to the robot <NUM>, and is data (X, Y) that represents coordinates on an emotion map <NUM>. As illustrated in <FIG>, the emotion map <NUM> is expressed by a two-dimensional coordinate system with a degree of relaxation (degree of worry) axis as an X axis <NUM>, and a degree of excitement (degree of disinterest) axis as a Y axis <NUM>. An origin <NUM> (<NUM>, <NUM>) on the emotion map <NUM> represents an emotion when normal. Moreover, as the value of the X coordinate (X value) is positive and the absolute value thereof increases, emotions for which the degree of relaxation is high are expressed and, as the value of the Y coordinate (Y value) is positive and the absolute value thereof increases, emotions for which the degree of excitement is high are expressed. Additionally, as the X value is negative and the absolute value thereof increases, emotions for which the degree of worry is high are expressed and, as the Y value is negative and the absolute value thereof increases, emotions for which the degree of disinterest is high are expressed.

The emotion data <NUM> has two values, namely the X value (degree of relaxation, degree of worry) and the Y value (degree of excitement, degree of disinterest) that express a plurality (in the present embodiment, four) of mutually different pseudo-emotions, and points on the emotion map <NUM> represented by the X value and the Y value represent the pseudo-emotions of the robot <NUM>. An initial value of the emotion data <NUM> is (<NUM>, <NUM>). The emotion data <NUM> is a parameter expressing a pseudo-emotion of the robot <NUM> and, as such, is also called an "emotion parameter. " Note that, in <FIG>, the emotion map <NUM> is expressed as a two-dimensional coordinate system, but the number of dimensions of the emotion map <NUM> may be set as desired. For example, a configuration is possible in which the emotion map <NUM> is defined by one dimension, and one value is set as the emotion data <NUM>. Additionally, a configuration is possible in which another axis is added and the emotion map <NUM> is defined by three or more dimensions, and a number of values corresponding to the number of dimensions of the emotion map <NUM> are set as the emotion data <NUM>.

In the present embodiment, regarding the size of the emotion map <NUM> as the initial value, as illustrated by frame <NUM> of <FIG>, a maximum value of both the X value and the Y value is <NUM> and a minimum value is -<NUM>. Moreover, during a first period, each time the pseudo growth days count of the robot <NUM> increases one day, the maximum value and the minimum value of the emotion map <NUM> both increase by two. Here, the first period is a period in which the robot <NUM> grows in a pseudo manner, and is, for example, a period of <NUM> days from a pseudo birth of the robot <NUM>. Note that the pseudo birth of the robot <NUM> is the time of the first start up by the user of the robot <NUM> after shipping from the factory. When the growth days count is <NUM> days, as illustrated by frame <NUM> of <FIG>, the maximum value of the X value and the Y value is <NUM> and the minimum value is -<NUM>. Moreover, when the first period elapses (in this example, <NUM> days), the pseudo growth of the robot <NUM> ends and, as illustrated in frame <NUM> of <FIG>, the maximum value of the X value and the Y value is <NUM>, the minimum value is -<NUM>, and the size of the emotion map <NUM> is fixed.

The emotion change data <NUM> is data that sets an amount of change that each of an X value and a Y value of the emotion data <NUM> is increased or decreased. In the present embodiment, as emotion change data <NUM> corresponding to the X of the emotion data <NUM>, DXP that increases the X value and DXM that decreases the X value are provided and, as emotion change data <NUM> corresponding to the Y value of the emotion data <NUM>, DYP that increases the Y value and DYM that decreases the Y value are provided. Specifically, the emotion change data <NUM> includes the following four variables. These variables are parameters that change the pseudo-emotion of the robot <NUM> and, as such, are also called "emotion change parameters.

In the present embodiment, an example is described in which the initial value of each of these variables is set to <NUM> and, during robot control processing, described below, the value increases to a maximum of <NUM> by processing for learning emotion change data. Due to this learning processing, the emotion change data <NUM>, that is, the degree of change of emotion changes and, as such, the robot <NUM> assumes various personalities in accordance with the manner in which the user interacts with the robot <NUM>. That is, the personality of each individual robot <NUM> is formed differently on the basis of the manner in which the user interacts with the robot <NUM>.

In the present embodiment, each piece of personality data (personality value) is derived by subtracting <NUM> from each piece of emotion change data <NUM>. Specifically, a value obtained by subtracting <NUM> from DXP that expresses a tendency to be relaxed is set as a personality value (chirpy), a value obtained by subtracting <NUM> from DXM that expresses a tendency to be worried is set as a personality value (shy), a value obtained by subtracting <NUM> from DYP that expresses a tendency to be excited is set as a personality value (active), and a value obtained by subtracting <NUM> from DYM that expresses a tendency to be disinterested is set as a personality value (spoiled). As a result, for example, as illustrated in <FIG>, it is possible to generate a personality value radar chart <NUM> by plotting each of the personality value (chirpy) on axis <NUM>, the personality value (active) on axis <NUM>, the personality value (shy) on axis <NUM>, and the personality value (spoiled) on axis <NUM>. Thus, the values of the emotion change parameters (emotion change data <NUM>) can be said to express the pseudo personality of the robot <NUM>.

Furthermore, in the present embodiment, the emotion change data <NUM>, that is, the degree of change of emotion also changes due to a degree of familiarity (value expressing a degree of familiarity indicating how familiar the external stimulus is to the robot <NUM>) acquired during the robot control processing described below. As such, the robot <NUM> can perform actions that take the manner in which the user has interacted with the robot <NUM> in the past into consideration.

The growth days count data <NUM> has an initial value of <NUM>, and <NUM> is added for each passing day. The growth days count data <NUM> represents a pseudo growth days count (number of days from a pseudo birth) of the robot <NUM>. Here, a period of the growth days count expressed by the growth days count data <NUM> is called a "second period.

As illustrated in <FIG>, control conditions and control data are associated and stored in the control content table <NUM>. When a control condition is satisfied (for example, some sort of external stimulus is detected), the controller <NUM> controls the driver <NUM> and the sound outputter <NUM> on the basis of the corresponding control data (motion data for expressing an action by the driver <NUM>, and sound effect data for outputting a sound effect from the sound outputter <NUM>).

As illustrated in <FIG>, the motion data is a series of sequence data for controlling the driver <NUM> (arranged as "Time (ms) : Rotational angle (angle) of vertical motor <NUM> : Rotational angle (angle) of twist motor <NUM>"). For example, when the body is petted, the controller <NUM> and the driver <NUM> are controlled so that, firstly (at <NUM> sec), the rotational angles of the vertical motor <NUM> and the twist motor <NUM> are set to <NUM> degrees (vertical reference angle and twist reference angle), at <NUM> sec, the head <NUM> is raised so that the rotational angle of the vertical motor <NUM> becomes <NUM> degrees, and at <NUM> sec, the head <NUM> is twisted so that the rotational angle of the twist motor <NUM> becomes <NUM> degrees.

Regarding the sound effect data, to facilitate ease of understanding, text describing each piece of the sound effect data is included in <FIG>, but in actuality, the sound effect data (sampled sound data) described by the text itself is stored in the control content table <NUM> as the sound effect data. Additionally, a value representing a desinence position is included in the sound effect data (for example, "Desinence: <NUM>%"). This value is obtained by expressing the desinence position as a percentage from the beginning of the length of the entire sound effect data, and is used when changing a tone of a sound effect (changing the frequency of the desinence) in control data change/playback processing, described later.

Note that, in the control content table <NUM> illustrated in <FIG>, a condition related to emotion (expressed by the coordinates on the emotion map <NUM>) is not included in the control condition, but a configuration is possible in which a condition related to emotion is included in the control condition, and the control data is changed in accordance with the emotion.

Next, the robot control processing executed by the controller <NUM> of the apparatus control device <NUM> is described while referencing the flowchart illustrated in <FIG>. The robot control processing is processing in which the apparatus control device <NUM> controls the actions, sound, and the like of the robot <NUM> on the basis of the detection values from the external stimulus detector <NUM> or the like. The robot control processing starts when the user turns ON the power of the robot <NUM>.

Firstly, the controller <NUM> initializes the various types of data such as the emotion data <NUM>, the emotion change data <NUM>, the growth days count data <NUM>, and the like (step S101). Note that, a configuration is possible in which, for the second and subsequent startups of the robot <NUM>, the various values from when the power of the robot <NUM> was last turned OFF are set in step S101. This can be realized by the controller <NUM> storing the various data values in nonvolatile memory (flash memory or the like) of the storage <NUM> when an operation for turning the power OFF is performed the last time and, when the power is thereafter turned ON, setting the stored values as the various data values.

Next, the controller <NUM> acquires an external stimulus detected by the external stimulus detector <NUM> (step S102). Then, the controller <NUM> determines whether there is a control condition, among the control conditions defined in the control content table <NUM>, that is satisfied by the external stimulus acquired in step S102 (step S103).

When any of the control conditions defined in the control content table <NUM> is satisfied by the acquired external stimulus (step S103; Yes), the controller <NUM> references the control content table <NUM> and acquires the control data corresponding to the control condition that is satisfied by the acquired external stimulus (step S104).

Then, the controller <NUM> acquires the degree of familiarity on the basis of the external stimulus acquired in step S102 and history information about external stimuli that have been acquired in the past (step S105). The degree of familiarity is a parameter that is used to generate a phenomenon whereby, when the robot <NUM> is repeatedly subjected to the same external stimulus, the robot <NUM> gets used to that stimulus and the emotion does not significantly change. In the present embodiment, the degree of familiarity is a value from <NUM> to <NUM>. Any method can be used to acquire the degree of familiarity. For example, the controller <NUM> can acquire the degree of familiarity by the method described in Unexamined <CIT>.

Next, the controller <NUM> acquires the emotion change data <NUM> in accordance with the external stimulus acquired in step S102, and corrects the emotion change data <NUM> on the basis of the degree of familiarity (step S106). Specifically, when, for example, petting of the head <NUM> is detected by the touch sensor <NUM> of the head <NUM> as the external stimulus, the robot <NUM> obtains a pseudo sense of relaxation and, as such, the controller <NUM> acquires DXP as the emotion change data <NUM> to be added to the X value of the emotion data <NUM>. Then, the controller <NUM> divides DXP of the emotion change data <NUM> by the value of the degree of familiarity. Due to this, as the value of the degree of familiarity increases, the value of the emotion change data <NUM> decreases and the pseudo-emotion is less likely to change.

Moreover, the controller <NUM> sets the emotion data <NUM> in accordance with the emotion change data <NUM> acquired (and corrected) in step S106 (step S107). Specifically, when, for example, DXP is acquired as the emotion change data <NUM> in step S106, the controller <NUM> adds the corrected DXP of the emotion change data <NUM> to the X value of the emotion data <NUM>.

In steps S106 and S107, any type of settings are possible for the type of emotion change data <NUM> acquired (and corrected) and the emotion data <NUM> set for each individual external stimulus. Examples are described below.

The head <NUM> is petted (relax): X = X+DXP/degree of familiarity.

However, in a case in which a value (X value, Y value) of the emotion data <NUM> exceeds the maximum value of the emotion map <NUM> when adding the emotion change data <NUM>, that value of the emotion data <NUM> is set to the maximum value of the emotion map <NUM>. In addition, in a case in which a value of the emotion data <NUM> is less than the minimum value of the emotion map <NUM> when subtracting the emotion change data <NUM>, that value of the emotion data <NUM> is set to the minimum value of the emotion map <NUM>.

Moreover, the controller <NUM> executes control data change/playback processing with the control data acquired in step S104 and the emotion data <NUM> set in step S107 as arguments (step S108), and executes step S111. The control data change/playback processing is processing in which the control data acquired in step S104 is adjusted (changed) in accordance with the emotion data <NUM> set in step S107, and the robot <NUM> is controlled. This control data change/playback processing is described in detail later. Note that, when the emotion change data <NUM> is corrected in step S106, after step S108 ends, the controller <NUM> returns the emotion change data <NUM> to the uncorrected state.

Meanwhile, when, in step S103, none of the control conditions defined in the control content table <NUM> are satisfied by the acquired external stimulus (step S103; No), the controller <NUM> determines whether to perform a spontaneous action such as a breathing action or the like (step S109). Any method may be used as the method for determining whether to perform the spontaneous action but, in the present embodiment, it is assumed that the determination of step S109 is Yes and the breathing action is performed every breathing cycle (for example, two seconds).

When not performing the spontaneous action (step S109; No), the controller <NUM> executes step S111. When performing the spontaneous action (step S109; Yes), the controller <NUM> executes the spontaneous action (for example, a breathing action) (step S110), and executes step S111.

The control data of this spontaneous action also is stored in the control content table <NUM> (such as illustrated in, for example, "breathing cycle elapsed" of the "control conditions" of <FIG>). While omitted from <FIG>, in step S110 as well, the control data may be adjusted (changed) on the basis of the emotion data in the same manner as the processing executed when there is an external stimulus (for example, the processing of steps S105 to S108).

In step S111, the controller <NUM> uses the clock function to determine whether a date has changed. When the date has not changed (step S111; No), the controller <NUM> executes step S102.

When the date has changed (step S111; Yes), the controller <NUM> determines whether it is in a first period (step S112). When the first period is, for example, a period <NUM> days from the pseudo birth (for example, the first startup by the user after purchase) of the robot <NUM>, the controller <NUM> determines that it is in the first period when the growth days count data <NUM> is <NUM> or less. When it is not in the first period (step S112; No), the controller <NUM> executes step S115.

When it is in the first period (step S112; Yes), the controller <NUM> performs learning of the emotion change data <NUM> (step S113). Specifically, the learning of the emotion change data <NUM> is adding <NUM> to the DXP of the emotion change data <NUM> when the X value of the emotion data <NUM> is set to the maximum value of the emotion map <NUM> even once in step S107 of that day. The learning of the emotion change data <NUM> is adding <NUM> to the DYP of the emotion change data <NUM> when the Y value of the emotion data <NUM> is set to the maximum value of the emotion map <NUM> even once. The learning of the emotion change data <NUM> is adding <NUM> to the DXM of the emotion change data <NUM> when the X value of the emotion data <NUM> is set to the minimum value of the emotion map <NUM> even once. The learning of the emotion change data <NUM> is adding <NUM> to the DYM of the emotion change data <NUM> when the Y value of the emotion data <NUM> is set to the minimum value of the emotion map <NUM> even once. The emotion change data <NUM> is learned and updated as a result of the addition processing described above.

Note that, when the various values of the emotion change data <NUM> become exceedingly large, the amount of change of one time of the emotion data <NUM> becomes exceedingly large and, as such, the maximum value of the various values of the emotion change data <NUM> is set to <NUM>, for example, and the various values are limited to that maximum value or less. Here, <NUM> is added to each piece of the emotion change data <NUM>, but the value to be added is not limited to <NUM>. For example, a configuration is possible in which a number of times at which the various values of the emotion data <NUM> are set to the maximum value or the minimum value of the emotion map <NUM> is counted and, when that number of times is great, the numerical value to be added to the emotion change data <NUM> is increased.

Returning to <FIG>, next, the controller <NUM> expands the emotion map <NUM> (step S114). Expanding the emotion map <NUM> is, specifically, processing in which the controller <NUM> expands both the maximum value and the minimum value of emotion map <NUM> by <NUM>. However, the numerical value "<NUM>" to be expanded is merely an example, and the emotion map <NUM> may be expanded by <NUM> or greater, or be expanded by <NUM>. Additionally, a configuration is possible in which the numerical value that the emotion map <NUM> is expanded differs by axis or is different for the maximum value and the minimum value.

In <FIG>, the learning of the emotion change data <NUM> and the expanding of the emotion map <NUM> are performed after the controller <NUM> determines that the date has changed in step S111, but a configuration is possible in which the learning of the emotion change data <NUM> and the expanding of the emotion map <NUM> are performed after a determination is made that a reference time (for example, <NUM>:<NUM> PM) has arrived. Moreover, a configuration is possible in which the determination in step S111 is not a determination based on the actual date, but is a determination performed on the basis of a value obtained by accumulating, by the timer function of the controller <NUM>, an amount of time that the robot <NUM> has been turned ON. For example, a configuration is possible in which every time a cumulative amount of time that the power is ON is an amount of time that is a multiple of <NUM>, the robot <NUM> is regarded as having grown one day, and the learning of the emotion change data <NUM> and the expanding of the emotion map <NUM> are carried out.

Returning to <FIG>, next, the controller <NUM> adds <NUM> to the growth days count data <NUM> (step S115), initializes both the X value and the Y value of the emotion data to <NUM> (step S116), and executes step S102. Note that, when it is desirable that the robot <NUM> carries over the pseudo-emotion of the previous day to the next day, the controller <NUM> executes step S102 without executing the processing of step S116.

Next, the control data change/playback processing in which, in step S108 of the robot control processing described above, the control data and the emotion data <NUM> are called as arguments is described while referencing <FIG>.

Firstly, the controller <NUM> determines whether the sound effect data is included in the control data (step S201). When the sound effect data is not included (step S201; No), step S205 is executed.

When the sound effect data is included (step S201; Yes), the controller <NUM> sets a frequency change degree and a desinence change degree on the basis of the emotion data <NUM> (step S202). Specifically, the frequency change degree is set to a value obtained by dividing the X value of the emotion data <NUM> by <NUM>, and the desinence change degree is set to a value obtained by dividing the Y value of the emotion data <NUM> by <NUM>. That is, the frequency change degree and the desinence change degree are both set to values from -<NUM> to <NUM>.

Next, the controller <NUM> acquires the desinence position from the sound effect data (step S203). As illustrated in <FIG>, the desinence position is recorded in the control content table <NUM> for every piece of sound effect data and, as such, the controller <NUM> can acquire the desinence position from the sound effect data.

Then, the controller <NUM> starts up a sound effect playback thread, described later, with the sound effect data, the desinence position, the frequency change degree, and the desinence change degree as arguments (step S204), and executes step S205. The sound effect playback thread is described later in detail but, in this thread, the sound effect is output from the sound outputter <NUM> by the sound effect data adjusted (changed) on the basis of the emotion data.

In step S205, the controller <NUM> determines whether the motion data is included in the control data. When the motion data is not included in the control data (step S205; No), the controller <NUM> ends the control data change/playback processing.

When the motion data is included in the control data (step S205; Yes), the controller <NUM> sets a speed change degree and an amplitude change degree on the basis of the emotion data <NUM> (step S206). Specifically, the speed change degree is set to a value obtained by dividing the X value of the emotion data <NUM> by <NUM>, and the amplitude change degree is set to a value obtained by dividing the Y value of the emotion data <NUM> by <NUM>. That is, the speed change degree and the amplitude change degree are both set to values from -<NUM> to <NUM>.

Then, the controller <NUM> starts up a motion playback thread, described later, with the motion data, the speed change degree, and the amplitude change degree as arguments (step S207), and ends the control data change/playback processing. The motion playback thread is described later in detail but, in this thread, the driver <NUM> is driven by the motion data adjusted (changed) on the basis of the emotion data <NUM> and, as a result, an action of the robot <NUM> is expressed.

Next, the sound effect playback thread called in step S204 of the control data change/playback processing (<FIG>) is described while referencing <FIG>. This processing is executed in parallel with the control data change/playback processing of the caller.

Firstly, the controller <NUM> uses the sound outputter <NUM> to playback from the beginning to the desinence position of the sound effect data at a frequency changed by the frequency change degree (step S301). Any method may be used to change the frequency. For example, the frequency may be changed by changing a playback speed in accordance with the frequency change degree. In one example, when the frequency change degree is <NUM>, the frequency is raised <NUM>% by speeding up the playback speed <NUM>% from a normal speed.

Next, the controller <NUM> uses the sound outputter <NUM> to playback from the desinence position to the end of the sound effect data at a frequency changed by the frequency change degree and the desinence change degree (step S302), and ends the sound effect playback thread. Any method may be used to change the frequency by the frequency change degree and the desinence change degree. For example, the frequency may be changed on the basis of a value obtained by summing these two change degrees, or the frequency may be changed by the frequency change degree and then further changed by the desinence change degree. When the frequency change degree is <NUM> and the desinence change degree is <NUM>, in the method of the former, that is, when changing on the basis of a value obtained by summing the frequency change degree and the desinence change degree, the frequency is raised <NUM>% (<NUM> + <NUM> = <NUM>). In the method of the latter, that is, when changing the frequency by the frequency change degree and then further changing the frequency by the desinence change degree, the frequency is raised <NUM>% (<NUM> × <NUM> = <NUM>). In such a case, the controller <NUM> may raise the frequency by increasing the playback speed.

Next, the motion playback thread called in step S207 of the control data change/playback processing (<FIG>) is described while referencing <FIG>. This processing is executed in parallel with the control data change/playback processing of the caller.

Firstly, the controller <NUM> changes the motion data on the basis of the speed change degree and the amplitude change degree (step S401). More specifically, time data of the motion data is multiplied by (<NUM>/(<NUM>+speed change degree)), and rotational angle data is multiplied by ((<NUM>+amplitude change degree)/<NUM>). In one example, when the speed change degree is -<NUM>, the speed is reduced <NUM>% by multiplying the time data of the motion data by <NUM>/(<NUM>-<NUM>) and, when the amplitude change degree is <NUM>, the rotational angle is increased <NUM>% by multiplying the rotational angle data by (<NUM>+<NUM>)/<NUM>.

However, when the changed motion data exceeds the limits of the driver <NUM>, the motion data may be changed so as to be in the range that does not exceed those limits. Additionally, a configuration is possible in which the motion data in the control content table <NUM> is set, in advance, to values whereby the limits of the driver <NUM> are not exceeded even when the speed and/or the amplitude is increased +<NUM>%.

Then, the controller <NUM> drives the driver <NUM> on the basis of the motion data changed in step S401 (step S402), and ends the motion playback thread.

As a result of the control data change/playback processing described above, the control data is changed on the basis of the emotion data <NUM>. Accordingly, the robot <NUM> can perform actions corresponding to emotions (output sound effects from the sound outputter <NUM>, make gestures by the driver <NUM>) without control data being specifically stored for every pseudo-emotion (piece of emotion data <NUM>) of the robot <NUM>. Specifically, even for pieces of the control data for which the sound effect or the same gesture are the same, the frequency and the up-down (tone) of the desinence in the case of sound effects, and the speed and amplitude of the action in the case of gestures are respectively adjusted (changed) on the basis of the coordinates of the emotion on the emotion map <NUM> at that time and, as a result, sound effects and gestures corresponding to emotions can be expressed. Accordingly, the robot <NUM> can be made to act in a more emotionally abundant manner than in the conventional technology, even though the amount of control data is the same.

Note that, in the control data change/playback processing described above, when the control data is a sound effect, the controller <NUM> adjusts (changes) the frequency and/or the up-down (tone) of the desinence on the basis of the emotion data <NUM>. However, the present disclosure is not limited to the frequency and/or the tone of the sound effect being adjusted. A configuration is possible in which the controller <NUM> controls so as to adjust (change) an amount of output time of the sound effect, for example, on the basis of the emotion data <NUM>.

In the control data change/playback processing described above, the controller <NUM> adjusts the control data on the basis of the emotion data <NUM>. However, a configuration is possible in which the controller <NUM> adjusts the control data on the basis of the emotion change data <NUM> in addition to the emotion data <NUM> or instead of the emotion data <NUM>.

In one example, in step S202 described above, the change degrees of the sound effect data are set with the frequency change degree = X/<NUM> and the desinence change degree = Y/<NUM>. However, a configuration is possible in which the controller <NUM> sets these change degrees using the emotion change data <NUM>. For example, the following settings are possible. <MAT><MAT>.

In step S206 described above, the change degrees of the motion data are set with the speed change degree = X/<NUM> and the amplitude change degree = Y/<NUM>.

However, a configuration is possible in which the controller <NUM> sets these change degrees using the emotion change data <NUM>. For example, the following settings are possible. <MAT> <MAT>.

Note that the emotion change data <NUM> takes a value from <NUM> to <NUM> and, as such, in the equations described above, each of (DXP, DXM, DYP, and DYM) is reduced by <NUM> to set the value in a range from <NUM> to <NUM> and, then, the calculation is carried out.

In the example described above, the controller <NUM> adjusts (changes) the sound effect data and the motion data on the basis of only the emotion data <NUM> (emotion) or on the basis of both the emotion data <NUM> (emotion) and the emotion change data <NUM> (personality). However, a configuration is possible in which the controller <NUM> adjusts (changes) the sound effect data and/or the motion data on the basis of only the emotion change data <NUM> (personality).

A case is considered in which, the robot <NUM> is configured to output a sound effect such as "AHHHH!" from the sound outputter when the robot <NUM> detects an abnormality such as falling or the like. In such a case, it is desirable that the sound effect be continuously output in a period in which the abnormality is continuing in order to more clearly notify the user of the abnormality. Embodiment <NUM>, which enables such, is described next.

The functional configuration and the structure of the robot <NUM> according to Embodiment <NUM> are the same as in Embodiment <NUM> and, as such, description thereof is omitted. However, control content for cases in which an abnormality is detected is stored in the control content table <NUM> according to Embodiment <NUM>. Specifically, a condition of an external stimulus for which an abnormality is detected is defined as the control condition, and sound effect data of a sound effect to be output when the abnormality is detected is stored as the control data. Moreover, as illustrated in <FIG>, information about a repeat position P1 and a repeat position P2 is also stored in the stored sound effect data.

As described later, the controller <NUM> lengthens the sound effect by repeatedly playing back the data that is from the repeat position P1 to the repeat position P2. However, in many cases, an amplitude value at P1 of the sound effect data differs from an amplitude value at P2 of the sound effect data and, as such, when the data that is from P1 to P2 is simply repeated, a step are generated in the waveform of the speech output at the transitions of the repeating data due to the difference between the amplitude values at P1 and P2, and an unnatural sound is produced. As such, in Embodiment <NUM>, as illustrated in <FIG>, after playing back from P1 to P2 in a forward direction, from P2 to P1 is played back in a reverse direction to prevent the generation of steps in the waveform at the transitions of the repeating data.

Note that, although it is possible to prevent the generation of the steps in the waveform at the transitions of the repeating data by playing back from P1 to P2 in a back-and-forth manner, the slope of the waveform at these transitions may change rapidly. Moreover, these rapid changes in the slope of the waveform at the transitions may negatively affect the sound. Accordingly, when setting the repeat positions P1 and P2, a creator of the sound effect data may set the repeat positions P1 and P2 after actually playing back from P1 to P2 in a back-and-forth manner to confirm that there is no unnaturalness and, then, store the resulting data in the control content table <NUM> as the sound effect data.

When a sound effect is lengthened without playing back from the repeat position P1 to the repeat position P2 in a back-and-forth manner (when a sound effect is lengthened by repeating playback from the repeat position P1 to the repeat position P2 in the forward direction), it is necessary to adjust not only the slope, but also the amplitude at the transitions of the repetitions. However, the amplitude reliably matches as a result of performing the back-and-forth playback. Accordingly, by playing back, in a back-and-forth manner, the portion from the repeat position P1 to the repeat position P2 in the forward direction and the reverse direction, it is possible to remarkably reduce the work of setting the repeat positions P1 and P2 compared to when not performing the back-and-forth playback.

In Embodiment <NUM>, processing for detecting an abnormality such as falling or the like is executed and, as such, an abnormality detection thread is described while referencing <FIG>. Execution of the abnormality detection thread is started in parallel with the other processings (the robot control processing and the like described above) when the user turns ON the power of the robot <NUM>. Note that the value of a variable T used in the abnormality detection thread can also be referenced from a sound effect lengthening thread, described later.

Firstly, the controller <NUM> initializes the value of the variable T that stores the type of the abnormality (step S501). The value of the variable T at the time of initialization can be any value that can express that there is no abnormality. For example, the value of the variable T at the time of initialization may be set to <NUM>.

Next, the controller <NUM> acquires an external stimulus detected by the external stimulus detector <NUM> (step S502). Then, the controller <NUM> determines, on the basis of the acquired external stimulus, whether an abnormality is detected (step S503). Examples of the abnormality include the robot <NUM> falling, rolling, being picked up by the fur, being rotated, and the like. Each of these abnormalities can be detected on the basis of the acceleration and/or the angular velocity.

In one example, the controller <NUM> can determine that "the robot <NUM> is falling" when the sum of squares of the acceleration on each axis detected by the acceleration sensor is less than a falling threshold. Additionally, the controller <NUM> can determine that "the robot <NUM> is being rolled" when the value of the Y-axis angular velocity detected by the gyrosensor exceeds a rolling threshold. Moreover, the controller <NUM> can determine that "the robot <NUM> is being picked up by the fur" when the value of the Z-axis acceleration detected by the acceleration sensor exceeds a pick up threshold. Furthermore, the controller <NUM> can determine that "the robot <NUM> is being rotated" when the Z-axis angular velocity detected by the gyrosensor exceeds a rotation threshold.

When the controller <NUM> does note detect these abnormalities (step S503; No), step S502 is executed. When the controller <NUM> detects any of these abnormalities (step S503; Yes), the controller <NUM> stores the type (type such as "fall", "roll", or the like) of the detected abnormality in the variable T (step S504). In this step, the controller <NUM> stores a value associated with the type of abnormality in the variable T. For example, the controller <NUM> stores <NUM> for "fall", <NUM> for "roll", and the like in the variable T,.

Then, the controller <NUM> starts up a sound effect lengthening thread, described later (step S505). The sound effect lengthening thread is processing in which a sound effect corresponding to the type of the abnormality is lengthened for the period in which the abnormality is continuing. This processing is described later in detail.

Then, the controller <NUM> acquires the external stimulus again (step S506), and determines whether an abnormality of the type stored in the variable T is detected (step S507). When an abnormality of the type stored in the variable T is detected (step S507; Yes), step S506 is executed. When an abnormality of the type stored in the variable T is not detected (step S507; No), step S501 is executed.

As a result of the abnormality detection thread described above, the type of the abnormality is stored in the variable T during the period in which the abnormality is being detected and, when the abnormality is no longer detected, the variable T is initialized. Next, the sound effect lengthening thread started up in step S505 of the abnormality detection thread (<FIG>) is described while referencing <FIG>.

Firstly, the controller <NUM> references the variable T and the control content table <NUM>, acquires the sound effect data corresponding to the detected abnormality (step S601), and acquires the repeat positions P1 and P2 included in the sound effect data (step S602).

Next, the controller <NUM> plays back the sound effect data from the beginning to the position P1 by the sound outputter <NUM> (step S603), and further plays back from the position P1 to the position P2 in the forward direction (step S604).

Then, the controller <NUM> references the variable T, and determines whether the abnormality is still continuing, that is, whether the value of the variable T has not changed (has not been initialized) (step S605). When the abnormality is not continuing (step S605; No), the controller <NUM> plays back the sound effect data from the position P2 to the end by the sound outputter <NUM> (step S606), and ends the processing of the sound effect lengthening thread.

When the abnormality is continuing (step S605; Yes), the controller <NUM> plays back the sound effect data from the position P2 to the position P1 in the reverse direction by the sound outputter <NUM> (step S607), and executes step S604.

As a result of the sound effect lengthening thread described above, the robot <NUM> according to Embodiment <NUM> can, for the period in which the abnormality is being detected, lengthen and output a sound effect in a manner so as not to impart unnaturalness.

The present disclosure is not limited to the embodiments described above, and various modifications and uses are possible. For example, a configuration is possible in which Embodiment <NUM> and Embodiment <NUM> are combined and, in addition to when there is an abnormality, the sound effect is lengthened and output on the basis of the pseudo-emotion of the robot <NUM> so as to seem natural.

In the embodiments described above, a configuration is described in which the apparatus control device <NUM> is built into the robot <NUM>, but a configuration is possible in which the apparatus control device <NUM> is not built into the robot <NUM>. For example, a configuration is possible in which, as illustrated in <FIG>, the apparatus control device <NUM> according to a modified example is not built into the robot <NUM>, and is configured as a separate device (for example, a server). In this modified example, the apparatus control device <NUM> includes a communicator <NUM>, the robot <NUM> includes a communicator <NUM>, and the communicator <NUM> and the communicator <NUM> are configured so as to be capable of exchanging data with each other. Moreover, the controller <NUM> acquires, via the communicator <NUM> and the communicator <NUM>, the external stimulus detected by the external stimulus detector <NUM>, and controls the driver <NUM> and the sound outputter <NUM> via the communicator <NUM> and the communicator <NUM>.

In the embodiments described above, the apparatus control device <NUM> is a control device that controls the robot <NUM>. However, the apparatus to be controlled is not limited to the robot <NUM>. Examples of the apparatus to be controlled include a wristwatch, and the like. For example, in the case of a wristwatch that is capable of outputting sound and that includes an acceleration sensor and a gyrosensor, wherein a pseudo-creature can, as an application software, be raised in the apparatus, impacts or the like applied to the wristwatch and detected by the acceleration sensor and the gyrosensor can be envisioned as the external stimulus. Additionally, it is expected that the emotion change data <NUM> and the emotion data <NUM> are updated in accordance with this external stimulus, and the sound effect data set in the control content table <NUM> is adjusted (changed) on the basis of the emotion data <NUM> from the point in time at which the user wears the wristwatch, and outputted.

Accordingly, a configuration is possible in which, when the wristwatch is being handled roughly, a sad-like sound effect is emitted when the user puts the wristwatch on, and when the wristwatch is being handled with care, a happy-like sound effect is emitted when the user is puts the wristwatch on. Furthermore, when configured so that the emotion change data <NUM> is set for a first period (for example, fifty days), individuality (pseudo-personality) will develop in the wristwatch on the basis of how the user handles the wristwatch in the first period. That is, the same model of wristwatch becomes a wristwatch that tends to feel happiness in cases in which the wristwatch is handled with care by the user, and becomes a wristwatch that tends to feel sadness in cases in which the wristwatch is handled roughly by the user.

Thus, the apparatus control device <NUM> is not limited to a robot and can be applied to various apparatuses that include an acceleration sensor, a gyrosensor, and the like, and can provide the applied apparatus with pseudo-emotions, a personality, and the like. Furthermore, the apparatus control device <NUM> can be applied to various apparatuses to cause a user to feel as if they are pseudo-raising that apparatus.

In the embodiments described above, a description is given in which the action programs executed by the CPU of the controller <NUM> are stored in advance in the ROM or the like of the storage <NUM>. However, the present disclosure is not limited thereto, and a configuration is possible in which the action programs for executing the various processings described above are installed on an existing general-purpose computer or the like, thereby causing that computer to function as a device corresponding to the apparatus control device <NUM> according to the embodiments described above.

Any method can be used to provide such programs. For example, the programs may be stored and distributed on a non-transitory computer-readable recording medium (flexible disc, Compact Disc (CD)-ROM, Digital Versatile Disc (DVD)-ROM, Magneto Optical (MO) disc, memory card, USB memory, or the like), or may be provided by storing the programs in a storage on a network such as the internet, and causing these programs to be downloaded.

Additionally, in cases in which the processings described above are realized by being divided between an operating system (OS) and an application/program, or are realized by cooperation between an OS and an application/program, it is possible to store only the portion of the application/program on the non-transitory recording medium or in the storage. Additionally, the programs can be piggybacked on carrier waves and distributed via a network. For example, the programs may be posted to a bulletin board system (BBS) on a network, and distributed via the network. Moreover, a configuration is possible in which the processings described above are executed by starting these programs and, under the control of the operating system (OS), executing the programs in the same manner as other applications/programs.

Claim 1:
A control method for an apparatus including a sound outputter (<NUM>), a driver (<NUM>), and a storage (<NUM>), the apparatus being controlled based on a pseudo-emotion, the control method comprising:
setting (S101,S116) a pseudo-emotion;
setting (S101,S106) a pseudo personality relating to a tendency to change in the pseudo-emotion;
acquiring (S102) a signal expressing an external stimulus acting on the apparatus; and
changing (S107), upon acquiring the signal, the pseudo-emotion based on the pseudo personality;
the control method further comprising adjusting (S108), using at least the pseudo personality, control data, wherein the control data controls a sound effect to be output from the sound outputter (<NUM>) or an action to be expressed by the driver (<NUM>), and the unadjusted control data is stored in the storage (<NUM>) in advance; and
controlling (S108), based on the adjusted control data, a sound effect to be output from the sound outputter (<NUM>) of the apparatus or an action to be expressed by the driver (<NUM>) of the apparatus.