WO2019088160A1 - 反射行動を実行可能な自律行動型ロボット - Google Patents
反射行動を実行可能な自律行動型ロボット Download PDFInfo
- Publication number
- WO2019088160A1 WO2019088160A1 PCT/JP2018/040484 JP2018040484W WO2019088160A1 WO 2019088160 A1 WO2019088160 A1 WO 2019088160A1 JP 2018040484 W JP2018040484 W JP 2018040484W WO 2019088160 A1 WO2019088160 A1 WO 2019088160A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion
- robot
- control circuit
- order control
- sensor
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
Definitions
- the present invention relates to a robot that autonomously selects an action according to an internal state or an external environment.
- Instinct also characterizes living things. Instinct is an innate behavior that is triggered by environmental stimuli without conscious judgment. Risk avoidance is a typical example. Reflective action based on instinct (hereinafter referred to as “reflex action”) is simple because of unconsciousness and is immediate. Not only complex and diverse actions (hereinafter referred to as “conscious actions”) that cause free will to be felt, but also quick reflexes to external stimuli are important in giving a robot a presence like a living thing. According to the study of the present inventors, it has been found that when the time (time lag) from when the robot receives a stimulus to when it starts the reflex action (time lag) exceeds 200 milliseconds, it looks unnatural as a reflex act.
- the present invention is an invention completed on the basis of the above problem recognition, and its main object is to provide a technique for efficiently controlling the reflex behavior of a robot with respect to various events occurring outside.
- An autonomous action type robot includes an operation control unit that selects a motion of the robot, and a drive mechanism that executes the motion selected by the operation control unit.
- the motion control unit changes the behavior characteristic of the robot according to the low-order control circuit that selects reaction / motion to be associated with the sensor in advance when the detection value of the sensor exceeds the threshold, and the detection value of the sensor And the following control circuit.
- FIG. 2A is a front external view of the robot.
- FIG. 2B is a side external view of the robot.
- FIG. 2 is a cross-sectional view schematically illustrating the structure of a robot.
- It is a hardware block diagram of the robot in basic composition. It is a functional block diagram of a robot system. It is a hardware block diagram of the robot in this embodiment.
- It is a schematic diagram which shows the correspondence of a low order control circuit, a high order control circuit, and an operation control part.
- It is a schematic diagram for demonstrating low-order control.
- It is a schematic diagram for demonstrating high-order control.
- It is a circuit block diagram of the action control system of a robot.
- It is a conceptual diagram of a reaction table.
- FIG. 1 is a conceptual diagram for explaining a method of realizing reflection behavior by the robot 100.
- An organism takes a reflexive action when it receives an intense stimulus momentarily. For example, if you hit your body you will pull out, if you make a loud noise you will shrink.
- the robot 100 in the present embodiment has a configuration for realizing such reflection behavior.
- the robot 100 receives various stimuli from the external environment.
- the robot 100 recognizes an external event (event) by the detection value of the sensor (hereinafter simply referred to as “sensor value”) and selects an action.
- the action (motion) of the robot 100 is roughly divided into two types, "normal motion” and "reaction motion”.
- Normal motion is an action that mimics the conscious behavior of a living thing.
- Reaction / motion is an action that mimics the unconscious action (reflex action) of a living thing.
- Reaction / motion is simpler than normal motion, but requires immediacy (fast response).
- the robot 100 includes a low order control circuit 250 and a high order control circuit 252.
- a general purpose processor such as a CPU (Central Processing Unit) is assumed.
- the high-order control circuit 252 can express complex behavior by software.
- the reaction time (the time from the occurrence of an event to the start of action) that a person recognizes as "instant response" is generally said to be within 200 milliseconds. Therefore, when the reaction time of the robot 100 exceeds 200 milliseconds, it does not appear to be an instantaneous reaction.
- the high-order control circuit 252 is an electronic circuit scheduled to execute various processes, the time from the receipt of an instruction by the high-order control circuit 252 to the start of the process varies depending on the situation of the robot 100. Will occur.
- a low-order control circuit 250 is always provided to execute processing within a prescribed time for a certain stimulus or more.
- the low-order control circuit 250 is independent of the high-order control circuit 252 in terms of hardware, so that the processing load on the high-order control circuit 252 is not affected.
- the low-order control circuit 250 detects an abnormality in the sensor value by comparing the sensor value sequentially received from the sensor with a predetermined condition.
- the low-order control circuit 250 instructs to execute reaction / motion immediately upon detection of an abnormality.
- the low-order control circuit 250 is assumed to be a micro-controller of a dedicated design, it may be realized by executing a program using a general-purpose microprocessor.
- the lower control circuit 250 may be formed as a combination of electronic components.
- the low-order control circuit 250 can respond more quickly to external events than the high-order control circuit 252 because the processing content is standardized and standardized compared to the high-order control circuit 252.
- the robot 100 detects an external stimulus as a sensor value SA (analog data).
- a sensor value SA analog data
- the low-order control circuit 250 instructs to execute a pre-defined reaction motion R. For example, when a loud sound is heard, the lower control circuit 250 shakes the body of the robot 100 to express how the robot 100 is surprised by the loud sound.
- the low-order control circuit 250 A / D converts (Analog / Digital Conversion) the sensor value SA of analog data into a sensor value SD of digital data, and transmits the sensor value SD to the high-order control circuit 252.
- the high-order control circuit 252 recognizes an external event by the sensor value SD (digital data), and instructs execution of the normal motion N. For example, when the user P1 makes an angry voice, the high-order control circuit 252 reduces familiarity with the user P1 and selects various normal motions N such as leaving the user P1 and sitting down.
- reaction motion R takes priority over normal motion N.
- the low-order control circuit 250 is given an opportunity to give priority to the high-order control circuit 252 to make a decision on an external event, and realizes an immediate reflection action by preferentially executing the reaction and motion R as necessary. Do.
- the basic configuration of the robot 100 will be described with reference to FIGS. 2 to 5, and then, the mounting method of the reaction behavior in the present embodiment will be mainly described.
- FIG. 2 (b) is a side external view of the robot 100.
- the robot 100 in the present embodiment is an autonomous action robot that determines an action based on an external environment and an internal state.
- the external environment is recognized by various sensors such as a camera and a thermo sensor.
- the internal state is quantified as various parameters representing the emotion of the robot 100.
- the robot 100 takes an indoor range of an owner's home as an action range.
- a human involved in the robot 100 will be referred to as a “user”.
- the body 104 of the robot 100 has an overall rounded shape, and includes an outer shell formed of a soft and elastic material such as urethane, rubber, resin, or fiber.
- the robot 100 may be dressed.
- the total weight of the robot 100 is about 5 to 15 kilograms, and the height is about 0.5 to 1.2 meters.
- the various attributes such as appropriate weight, roundness, softness, and good touch realize an effect that the user can easily hold the robot 100 and can not hold it.
- the robot 100 includes a pair of front wheels 102 (left wheel 102a and right wheel 102b) and one rear wheel 103.
- the front wheel 102 is a driving wheel
- the rear wheel 103 is a driven wheel.
- the front wheel 102 does not have a steering mechanism, but its rotational speed and rotational direction can be individually controlled.
- the rear wheel 103 is a caster, and is rotatable in order to move the robot 100 back and forth and right and left.
- the rear wheel 103 may be an omni wheel.
- the front wheel 102 and the rear wheel 103 can be completely housed in the body 104 by a drive mechanism (a rotation mechanism, a link mechanism). Even when traveling, most of the wheels are hidden by the body 104, but when the wheels are completely housed in the body 104, the robot 100 can not move. That is, the body 104 descends and is seated on the floor surface F along with the storing operation of the wheels. In this sitting state, the flat seating surface 108 (grounding bottom surface) formed on the bottom of the body 104 abuts on the floor surface F.
- a drive mechanism a rotation mechanism, a link mechanism
- the robot 100 has two hands 106.
- the hand 106 does not have the function of gripping an object.
- the hand 106 can perform simple operations such as raising, shaking and vibrating.
- the two hands 106 are also individually controllable.
- the eye 110 can display an image with a liquid crystal element or an organic EL element.
- the robot 100 mounts various sensors such as a microphone array and an ultrasonic sensor that can identify the sound source direction. In addition, it has a built-in speaker and can emit a simple voice.
- a horn 112 is attached to the head of the robot 100. As described above, since the robot 100 is lightweight, the user can lift the robot 100 by grasping the tongue 112. An omnidirectional camera is attached to the horn 112 so that the entire upper portion of the robot 100 can be imaged at one time.
- FIG. 3 is a cross-sectional view schematically showing the structure of the robot 100.
- the body 104 of the robot 100 includes a base frame 308, a body frame 310, a pair of resin wheel covers 312 and a shell 314.
- the base frame 308 is made of metal and constitutes an axial center of the body 104 and supports an internal mechanism.
- the base frame 308 is configured by connecting an upper plate 332 and a lower plate 334 by a plurality of side plates 336 up and down.
- the plurality of side plates 336 is sufficiently spaced to allow air flow.
- a battery 118, a control circuit 342 and various actuators are accommodated.
- the body frame 310 is made of a resin material and includes a head frame 316 and a body frame 318.
- the head frame 316 has a hollow hemispherical shape and forms a head skeleton of the robot 100.
- the body frame 318 has a stepped cylindrical shape and forms the body frame of the robot 100.
- the body frame 318 is integrally fixed to the base frame 308.
- the head frame 316 is assembled to the upper end of the body frame 318 so as to be relatively displaceable.
- the head frame 316 is provided with three axes of a yaw axis 320, a pitch axis 322 and a roll axis 324, and an actuator 326 for rotationally driving each axis.
- the actuator 326 includes a plurality of servomotors for individually driving each axis.
- the yaw shaft 320 is driven for swinging motion
- the pitch shaft 322 is driven for loosening motion
- the roll shaft 324 is driven for tilting motion.
- a plate 325 supporting the yaw axis 320 is fixed to the top of the head frame 316.
- the plate 325 is formed with a plurality of vents 327 for ensuring ventilation between the top and bottom.
- a metallic base plate 328 is provided to support the head frame 316 and its internal features from below.
- the base plate 328 is connected to the plate 325 via the cross link mechanism 329 (pantograph mechanism), and is connected to the upper plate 332 (base frame 308) via the joint 330.
- Torso frame 318 houses base frame 308 and wheel drive mechanism 370.
- the wheel drive mechanism 370 includes a pivot shaft 378 and an actuator 379.
- the lower half of the body frame 318 has a small width to form a storage space S of the front wheel 102 with the wheel cover 312.
- the outer cover 314 is made of urethane rubber and covers the body frame 310 and the wheel cover 312 from the outside.
- the hand 106 is integrally molded with the skin 314.
- an opening 390 for introducing external air is provided at the upper end of the shell 314.
- FIG. 4 is a hardware configuration diagram of the robot 100.
- the robot 100 includes an internal sensor 128, a communicator 126, a storage device 124, a processor 122, a drive mechanism 120 and a battery 118.
- Processor 122 and storage 124 are included in control circuit 342.
- the units are connected to each other by a power supply line 130 and a signal line 132.
- the battery 118 supplies power to each unit via the power supply line 130.
- Each unit transmits and receives control signals through a signal line 132.
- the battery 118 is a lithium ion secondary battery and is a power source of the robot 100.
- the internal sensor 128 is an assembly of various sensors incorporated in the robot 100. Specifically, it is a camera (all-sky camera), a microphone array, a distance measurement sensor (infrared sensor), a thermo sensor, a touch sensor, an acceleration sensor, an odor sensor, and the like.
- the touch sensor is disposed between the outer skin 314 and the body frame 310 to detect a touch of the user.
- the odor sensor is a known sensor to which the principle that the electric resistance is changed by the adsorption of the molecule that is the source of the odor is applied.
- the communication device 126 is a communication module that performs wireless communication for various external devices.
- the storage device 124 is configured by a non-volatile memory and a volatile memory, and stores a computer program and various setting information.
- the processor 122 is an execution means of a computer program.
- the drive mechanism 120 includes a plurality of actuators and the wheel drive mechanism 370 described above. In addition to this, indicators and speakers will also be installed.
- the drive mechanism 120 mainly controls the wheel (front wheel 102) and the head (head frame 316).
- the drive mechanism 120 can move the wheels (the front wheel 102 and the rear wheel 103) up and down in addition to changing the moving direction and the moving speed of the robot 100.
- the wheel ascends, the wheel is completely housed in the body 104, and the robot 100 abuts on the floor surface F at the seating surface 108 to be in the seating state.
- the drive mechanism 120 also controls the hand 106 via the wire 134.
- FIG. 5 is a functional block diagram of the robot system 300.
- the robot system 300 includes a robot 100, a server 200 and a plurality of external sensors 114.
- Each component of the robot 100 and the server 200 includes computing devices such as a CPU (Central Processing Unit) and various co-processors, storage devices such as memory and storage, hardware including wired or wireless communication lines connecting them, and storage It is stored in the device and implemented by software that supplies processing instructions to the computing unit.
- the computer program may be configured by a device driver, an operating system, various application programs located in the upper layer of them, and a library that provides common functions to these programs.
- Each block described below indicates not a hardware unit configuration but a function unit block.
- Some of the functions of the robot 100 may be realized by the server 200, and some or all of the functions of the server 200 may be realized by the robot 100.
- a plurality of external sensors 114 are installed in advance in the house.
- position coordinates of the external sensor 114 are registered.
- the server 200 determines the basic behavior of the robot 100 based on the information obtained from the internal sensor 128 and the plurality of external sensors 114 of the robot 100.
- the external sensor 114 is for reinforcing the senses of the robot 100, and the server 200 is for reinforcing the brain of the robot 100.
- the communication device 126 of the robot 100 periodically communicates with the external sensor 114, and the server 200 specifies the position of the robot 100 by the external sensor 114 (see also Patent Document 2).
- the server 200 includes a communication unit 204, a data processing unit 202, and a data storage unit 206.
- the communication unit 204 takes charge of communication processing with the external sensor 114 and the robot 100.
- the data storage unit 206 stores various data.
- the data processing unit 202 executes various processes based on the data acquired by the communication unit 204 and the data stored in the data storage unit 206.
- the data processing unit 202 also functions as an interface of the communication unit 204 and the data storage unit 206.
- the data storage unit 206 includes a motion storage unit 232 and a personal data storage unit 218.
- the robot 100 has a plurality of motion patterns (motions). Various motions are defined, such as shaking the hand 106, approaching the owner while meandering, staring at the owner with a sharp neck, and the like.
- the motion storage unit 232 stores a "motion file" that defines control content of motion. Each motion is identified by a motion ID. The motion file is also downloaded to the motion storage unit 160 of the robot 100. Which motion is to be performed may be determined by the server 200 or the robot 100.
- the motions of the robot 100 are configured as complex motions including a plurality of unit motions.
- the robot 100 may be expressed as a combination of a unit motion that turns toward the owner, a unit motion that approaches while raising the hand, a unit motion that approaches while shaking the body, and a unit motion that sits while raising both hands. .
- the combination of such four motions realizes a motion of “close to the owner, raise your hand halfway, and finally sit down with your body shaking”.
- the rotation angle and angular velocity of an actuator provided in the robot 100 are defined in association with the time axis.
- Various motions are represented by controlling each actuator with the passage of time according to a motion file (actuator control information).
- the transition time when changing from the previous unit motion to the next unit motion is called “interval".
- the interval may be defined according to the time required for unit motion change and the contents of the motion.
- the length of the interval is adjustable.
- settings relating to behavior control of the robot 100 such as when to select which motion, output adjustment of each actuator for realizing the motion, and the like are collectively referred to as “behavior characteristics”.
- the behavior characteristics of the robot 100 are defined by a motion selection algorithm, a motion selection probability, a motion file, and the like.
- the motion storage unit 232 stores, in addition to the motion file, a motion selection table that defines motion to be executed when various events occur.
- a motion selection table that defines motion to be executed when various events occur.
- one or more motions and their selection probabilities are associated with an event.
- the personal data storage unit 218 stores user information. Specifically, master information indicating the closeness to the user and the physical and behavioral characteristics of the user is stored. Other attribute information such as age and gender may be stored.
- the robot 100 has an internal parameter called familiarity for each user.
- familiarity for each user.
- an action indicating favor with itself such as raising itself or giving a voice
- familiarity with the user is increased.
- the closeness to the user who is not involved in the robot 100, the user who is violent, and the user who is infrequently encountered is low.
- the data processing unit 202 includes a position management unit 208, a recognition unit 212, an operation control unit 222, a closeness management unit 220, and a state management unit 244.
- the position management unit 208 specifies position coordinates of the robot 100.
- the state management unit 244 manages various internal parameters such as various physical states such as the charging rate, the internal temperature, and the processing load of the processor 122.
- the state management unit 244 manages various emotion parameters indicating the emotion (such as loneliness, curiosity, approval request, etc.) of the robot 100. These emotional parameters are constantly fluctuating.
- the movement target point of the robot 100 changes in accordance with the emotion parameter. For example, when the loneliness is increasing, the robot 100 sets the location of the user as the movement target point.
- Emotional parameters change with the passage of time.
- various emotional parameters are also changed by the response action described later.
- the emotion parameter indicating loneliness declines when being "held” from the owner, and the emotion parameter indicating loneliness gradually increases when the owner is not viewed for a long time.
- the recognition unit 212 recognizes the external environment.
- the recognition of the external environment includes various recognitions such as recognition of weather and season based on temperature and humidity, recognition of an object shade (safety area) based on light quantity and temperature.
- the recognition unit 156 of the robot 100 acquires various types of environment information by the internal sensor 128, performs primary processing on the environment information, and transfers the information to the recognition unit 212 of the server 200.
- the recognition unit 156 of the robot 100 extracts an image area corresponding to a moving object, in particular, a person or an animal, from the image, and indicates a physical feature or an action characteristic of the moving object from the extracted image area.
- the feature vector component is a numerical value that quantifies various physical and behavioral features. For example, the width of the human eye is digitized in the range of 0 to 1 to form one feature vector component.
- the method of extracting feature vectors from a captured image of a person is an application of known face recognition technology.
- the robot 100 transmits the feature vector to the server 200.
- the recognition unit 212 of the server 200 is imaged by comparing the feature vector extracted from the image captured by the built-in camera of the robot 100 with the feature vector of the user (cluster) registered in advance in the personal data storage unit 218. It is determined which person the user corresponds to (user identification processing). Also, the recognition unit 212 estimates the user's emotion by performing image recognition on the user's expression. The recognition unit 212 also performs user identification processing on moving objects other than human beings, for example, cats and dogs that are pets.
- the recognition unit 212 recognizes various response actions made to the robot 100, and classifies them as pleasant and unpleasant actions.
- the recognition unit 212 also classifies into a positive / negative response by recognizing the owner's response to the action of the robot 100.
- the pleasant and unpleasant behavior is determined depending on whether the user's response behavior is comfortable or unpleasant as a living thing. For example, holding is a pleasant act for the robot 100, and kicking is an unpleasant act for the robot 100.
- the positive / negative response is determined depending on whether the user's response indicates a user's pleasant emotion or an unpleasant emotion. Holding is an affirmative response indicating the user's feeling of pleasure, and kicking is a negative response indicating the user's unpleasant feeling.
- the motion control unit 222 of the server 200 cooperates with the motion control unit 150 of the robot 100 to determine the motion of the robot 100.
- the operation control unit 222 of the server 200 creates a movement target point of the robot 100 and a movement route therefor.
- the operation control unit 222 may create a plurality of movement routes, and then select one of the movement routes.
- the motion control unit 222 selects the motion of the robot 100 from the plurality of motions of the motion storage unit 232.
- Each motion is associated with a selection probability for each situation. For example, a selection method is defined such that motion A is executed with a probability of 20% when a pleasant action is made by the owner, and motion B is executed with a probability of 5% when the temperature reaches 30 degrees or more. .
- the closeness management unit 220 manages closeness for each user. As described above, the intimacy degree is registered in the personal data storage unit 218 as part of the personal data. When a pleasant act is detected, the closeness management unit 220 increases the closeness to the owner. The intimacy is down when an offensive act is detected. In addition, the closeness of the owner who has not viewed for a long time gradually decreases.
- the robot 100 includes a communication unit 142, a data processing unit 136, a data storage unit 148, an internal sensor 128, and a drive mechanism 120.
- the communication unit 142 corresponds to the communication device 126 (see FIG. 4), and takes charge of communication processing with the external sensor 114, the server 200, and the other robot 100.
- the data storage unit 148 stores various data.
- the data storage unit 148 corresponds to the storage device 124 (see FIG. 4).
- the data processing unit 136 executes various processes based on the data acquired by the communication unit 142 and the data stored in the data storage unit 148.
- the data processing unit 136 corresponds to a processor 122 and a computer program executed by the processor 122.
- the data processing unit 136 also functions as an interface of the communication unit 142, the internal sensor 128, the drive mechanism 120, and the data storage unit 148.
- the data storage unit 148 includes a motion storage unit 160 that defines various motions of the robot 100.
- Various motion files are downloaded from the motion storage unit 232 of the server 200 to the motion storage unit 160 of the robot 100.
- Motion is identified by motion ID.
- a state in which the front wheel 102 is accommodated which causes the robot 100 to rotate by having only the front wheel 102 housed and seated, lifting the hand 106, rotating the two front wheels 102 in reverse, or rotating only one front wheel 102
- various motions such as shaking by rotating the front wheel 102 at a time, stopping and turning back once when leaving the user, operation timing, operation time, operation direction, etc. of various actuators (drive mechanism 120) Temporarily defined in motion file.
- Various data may be downloaded to the data storage unit 148 also from the personal data storage unit 218.
- the data processing unit 136 includes a recognition unit 156 and an operation control unit 150.
- the motion control unit 150 of the robot 100 determines the motion of the robot 100 in cooperation with the motion control unit 222 of the server 200. Some motions may be determined by the server 200, and other motions may be determined by the robot 100. Also, although the robot 100 determines the motion, the server 200 may determine the motion when the processing load of the robot 100 is high. The base motion may be determined at server 200 and additional motion may be determined at robot 100. How to share the motion determination process in the server 200 and the robot 100 may be designed according to the specification of the robot system 300.
- the operation control unit 150 of the robot 100 instructs the drive mechanism 120 to execute the selected motion.
- the drive mechanism 120 controls each actuator according to the motion file.
- the motion control unit 150 can also execute a motion to lift both hands 106 as a gesture that encourages "hug” when a user with high intimacy is nearby, and when the "hug” gets tired, the left and right front wheels 102 By alternately repeating reverse rotation and stop while being accommodated, it is also possible to express a motion that annoys you.
- the drive mechanism 120 causes the robot 100 to express various motions by driving the front wheel 102, the hand 106, and the neck (head frame 316) according to the instruction of the operation control unit 150.
- the recognition unit 156 of the robot 100 interprets external information obtained from the internal sensor 128.
- the recognition unit 156 is capable of visual recognition (visual unit), odor recognition (olfactory unit), sound recognition (hearing unit), and tactile recognition (tactile unit).
- the recognition unit 156 extracts a feature vector from the captured image of the moving object.
- the feature vector is a set of parameters (features) indicating physical features and behavioral features of the moving object.
- features parameters
- physical features and behavioral features are also extracted from an odor sensor, a built-in sound collection microphone, a temperature sensor, and the like. These features are also quantified and become feature vector components.
- the recognition unit 156 identifies the user from the feature vector based on the known technique described in Patent Document 2 and the like.
- the recognition unit 156 of the robot 100 selects and extracts information necessary for recognition, and interpretation processes such as determination are executed by the recognition unit 212 of the server 200. .
- the recognition processing may be performed only by the recognition unit 212 of the server 200, or may be performed only by the recognition unit 156 of the robot 100, or both perform the above-mentioned recognition processing while sharing roles. It is also good.
- the recognition unit 156 recognizes this by the touch sensor and the acceleration sensor, and the recognition unit 212 of the server 200 recognizes that the "wild act" is performed by the user in the vicinity. Even when the user holds the tongue 112 and lifts the robot 100, it may be recognized as a violent act.
- the recognition unit 212 of the server 200 may recognize that the “calling action” to the user has been made.
- the temperature around the body temperature is detected, it is recognized that the user has made “contact action”, and when the upward acceleration is detected in the state where the contact is recognized, it is recognized that "handing” is made.
- the physical contact when the user lifts the body 104 may be sensed, or the holding on the front wheel 102 may be recognized by lowering the load.
- the robot 100 acquires the user's action as physical information by the internal sensor 128, and the recognition unit 212 of the server 200 determines comfort / discomfort. Further, the recognition unit 212 of the server 200 executes a user identification process based on the feature vector.
- the recognition unit 212 of the server 200 recognizes various responses of the user to the robot 100. Of the various types of response actions, some typical response actions correspond to pleasure or discomfort, affirmation or denial. In general, most pleasurable actions are positive responses, and most offensive actions are negative. Pleasure and discomfort are related to intimacy, and affirmative and negative responses affect the action selection of the robot 100.
- the closeness management unit 220 of the server 200 changes the closeness to the user.
- the intimacy with the user who has performed pleasure is increased, and the intimacy with the user who has performed offensive activity decreases.
- FIG. 6 is a hardware configuration diagram of the robot 100 in the present embodiment.
- the robot 100 in the present embodiment mounts a CNS (Central Nervous System) substrate 116.
- Processor 122 functions as high-order control circuit 252 (see FIG. 1).
- CNS board 116 functions as lower control circuit 250 (see FIG. 1).
- the CNS substrate 116 is an electronic circuit designed to execute a reaction and motion R (reflex action) within a fixed time from when the robot 100 receives an external stimulus.
- control relating to determination of execution of reaction / motion R by the low-order control circuit 250 is referred to as “low-order control”
- control relating to normal motion N (conscious behavior) by the high-order control circuit 252 is referred to as “high-order control”.
- FIG. 7 is a schematic diagram showing the correspondence between the low-order control circuit 250, the high-order control circuit 252, and the operation control unit 150.
- the function of the data processing unit 136 of the robot 100 is realized by cooperation of hardware and software of the robot 100.
- the operation control unit 150 which bears part of the functions of the data processing unit 136, determines the motion of the robot 100 in cooperation with the operation control unit 222 of the server 200.
- the low-order control circuit 250 in the present embodiment is an electronic circuit specialized for low-order control where execution of software is not assumed.
- the high-order control circuit 252 is a general-purpose processor 122 and executes various software.
- the function of the operation control unit 150 is realized by software executed by the low-order control circuit 250, the high-order control circuit 252, and the high-order control circuit 252.
- FIG. 8 is a schematic view for explaining low-order control.
- a plurality of low-order control circuits 250 are associated one-to-one with a plurality of sensors.
- One reaction control R is associated with one lower control circuit 250.
- One or more actuators are associated with one lower control circuit 250.
- the plurality of low-order control circuits 250 may be distributed inside the robot 100 or may be collectively stored in the control circuit 342.
- the low-order control circuit 250 shown in FIG. 8 is associated with the sensor F1, and detects the sensor value S1 (analog data) of the sensor F1.
- the low-order control circuit 250 instructs the drive mechanism 120 (actuator) to execute the reaction / motion R1 if the sensor value S1 is greater than or equal to the reflection threshold T1.
- the sensor F1 is a microphone array
- the sensor value S1 is a volume value of voice detected by the microphone array.
- Reaction / motion R1 is a motion that shakes the head frame 316 of the robot 100.
- the low-order control circuit 250 transmits a predetermined instruction signal to the actuator 326 that controls the head frame 316 to shake the head frame 316 when the sensor value S1 is greater than or equal to the reflection threshold T1, thereby making the robot 100 large. Behavioral expression that was surprised to the sound.
- the low-order control circuit 250 an actuator to be instructed according to the reaction / motion R1 and its instruction signal are defined in advance.
- the low-order control circuit 250 can immediately execute typical and simple reaction motions R for simple external events such as "big sound".
- the processing of the low-order control circuit 250 is simple, and there is no overhead associated with the execution of software, so the response is excellent.
- FIG. 9 is a schematic view for explaining high-order control. Whether to execute normal motion N is comprehensively determined by the high-order control circuit 252 (processor 122 and software) based on sensor values of one or more sensors and the behavior characteristic model 254.
- the behavior characteristic model 254 is an algorithm for determining behavior characteristics of the robot 100 such as emotion parameters and closeness, and is configured by software.
- the behavior characteristic model 254 cooperates with the server 200 to determine the behavior characteristic of the robot 100.
- the behavior characteristic model 254 is an algorithm that expresses recognition, interest, memory, prediction, preference, and behavior of the robot 100.
- the sensor values S1 to Sn digital data of the sensors F1 to Fn are input to the high-order control circuit 252 of FIG.
- the high-order control circuit 252 determines the normal motion N based on the sensor values S1 to Sn, and instructs the drive mechanism 120 to execute that.
- the recognition unit 156 detects a touch on the body 104 by the user P2 using a touch sensor, and detects a rise of the robot 100 using a camera and an acceleration sensor, It is comprehensively judged that "Hug” was done.
- the closeness management unit 220 of the server 200 raises the closeness to the user P1.
- the change in closeness changes the behavior characteristic of the robot 100.
- the camera of the robot 100 captures (views) the user P2
- the higher the closeness of the user P2 the higher the probability that the operation control unit 150 selects an action approaching the user P2.
- the sensor value and reaction / motion R are directly connected.
- higher-order control external events are interpreted based on sensor values, and behavior selection criteria are changed by changing internal variables such as familiarity and emotion parameters, and normal motion N as a processing result of behavior characteristic model 254 Is selected.
- FIG. 10 is a circuit diagram of the behavior control system 170 of the robot 100.
- the behavior control system 170 includes a CNS substrate 116 (low-order control circuit 250) in charge of low-order control and a processor 122 (high-order control circuit 252) in charge of high-order control.
- CNS board 116 (low order control circuit 250) includes core circuit 174 and output circuit 176.
- a CNS substrate 116 is provided for each sensor F, and one CNS substrate 116 can transmit an instruction signal to one or more actuators.
- the sensor F mentioned here may be an internal sensor 128 such as a camera, or may be an external sensor 114.
- the core circuit 174 determines whether to execute reaction / motion R according to the sensor value of the sensor F.
- the core circuit 174 may also include an A / D conversion circuit that A / D converts the sensor value and outputs the sensor value as digital data to the processor 122 (high order control circuit 252).
- Core circuitry 174 may also include the ability to shape the sensor values into a form that is accessible to processor 122.
- the output circuit 176 controls one or more actuators (drive mechanism 120).
- the core circuit 174 includes a sensor value input unit 178, a shaping unit 180, a sensor value output unit 182, a determination unit 184, a signal generation unit 186, and a setting input unit 188.
- the sensor value input unit 178 acquires a sensor value.
- the sensor value may be analog data or digital data.
- the determination unit 184 determines whether the sensor value is equal to or greater than a preset threshold (the above-described “reflection threshold”).
- a preset threshold the above-described “reflection threshold”.
- an external event whose sensor value is equal to or higher than the reflection threshold will be referred to as an “intensity event”.
- the determination unit 184 causes the signal generation unit 186 to generate a control signal that instructs to execute the reaction motion R, and transmits a cancel signal to the processor 122.
- the signal generation unit 186 instructs the signal output unit 192 of the output circuit 176 to execute the reaction / motion R set in advance in response to the instruction from the determination unit 184 as a trigger. More specifically, instruction signals (operation amount, operation speed, operation direction) for one or more actuators associated with the reaction motion R are transmitted to the signal output unit 192.
- the sensor value is reshaped by the reshaping unit 180 into a format that can be easily used in the subsequent processing.
- the robot 100 is provided with various types of sensors F.
- the sensor F outputs sensor values at regular intervals, but the output period is not the same.
- the high-order control circuit 252 (processor 122) performs processing based on the sensor values of the plurality of sensors F, timing adjustment processing is necessary when the sensor values of the sensors used for processing arrive at different timings. Consume computing resources. Therefore, the shaping unit 180 accumulates the sensor values received from the respective sensors F in the buffer as necessary, and synchronizes the output timings of the respective sensor values.
- the shaping unit 180 takes charge of adjusting the output timing of the sensor value, the processing load of the high-order control circuit 252 is reduced.
- it may be designed to be synchronized with the CNS substrate 116 provided for other sensors, or the shaping unit 180 and sensor value output by a plurality of CNS substrates 116 The part 182 may be shared.
- the sensor value output unit 182 outputs the sensor value to the high-order control circuit 252 regardless of whether the reaction / motion R needs to be performed.
- Software executed in the high-order control circuit 252 determines the behavior characteristic of the robot 100 according to the sensor value. It is preferable that the reflection threshold can be changed according to the environment or state in which the robot 100 is placed.
- the high-order control circuit 252 transmits a setting signal to the setting input unit 188 when changing the setting of the reflection threshold and the reaction motion R in the CNS substrate 116 (low-order control circuit 250).
- the setting input unit 188 updates the reflection threshold in the determination unit 184, and changes the setting of reaction / motion R in the signal generation unit 186.
- the output circuit 176 includes an instruction input unit 190 and a signal output unit 192.
- the high-order control circuit 252 sends an instruction signal for each actuator.
- the instruction input unit 190 receives an instruction signal for normal motion N from the high-order control circuit 252, and transmits the instruction signal to the signal output unit 192.
- the signal output unit 192 receives an instruction signal of reaction / motion R from the signal generation unit 186 (core circuit 174), and receives an instruction signal of normal motion N from the instruction input unit 190 (high-order control circuit 252).
- the signal output unit 192 invalidates the control signal of normal motion N received from the instruction input unit 190, and outputs the control signal of reaction / motion R. Priority is sent to the drive mechanism 120.
- the drive mechanism 120 operates in accordance with the control signal.
- the signal output unit 192 transmits a control signal (command) for stopping the current driving state, and then transmits a control signal for executing the reaction / motion R. That is, the signal output unit 192 immediately executes the reaction motion R after stopping the ongoing movement of the drive mechanism 120.
- the signal output unit 192 sequentially transmits the control signal of the normal motion N received from the instruction input unit 190 to the drive mechanism 120 if there is no execution instruction of the reaction motion R from the signal generation unit 186.
- the determination unit 184 of the core circuit 174 transmits a cancel signal to the high-order control circuit 252 when executing the reaction / motion R because of the occurrence of the strength event.
- the high-order control circuit 252 suspends the execution of the normal motion N and starts processing according to the sensor value newly output from the sensor value output unit 182. According to such a control method, the reaction / motion R is immediately executed, while the high-order control circuit 252 does not wait for the completion of the reaction / motion R for the normal motion N to be executed after the completion of the reaction / motion R It can be judged.
- FIG. 11 is a conceptual view of the reaction table 194.
- the reflection threshold is set in the determination unit 184 (core circuit 174). More specifically, the command value for the actuator relating to the reaction / motion R, or the reaction / motion R, is set in the signal generation unit 186 (core circuit 174).
- the reaction table 194 shown in FIG. 11 schematically shows the correspondence between the reflection threshold set in the determination unit 184 and the reaction / motion R set in the signal generation unit 186. For each low-order control circuit 250, in other words, for each sensor F, a set of a reflection threshold and a reaction / motion R (reaction table 194) is defined.
- the reaction table 194 shown in FIG. 11 defines the reflection threshold value T and the reaction motion R for the sensor F1 (sensor value S1).
- the reflection threshold T T1 is set.
- One of motions M1 to M4 can be selected as reaction / motion R, but in FIG. 11, motion M1 is set. That is, when the sensor value S1 exceeds the reflection threshold value T1, the core circuit 174 instructs the execution of the motion M1 as a reaction motion R.
- an actuator to be controlled in realizing the motion M1 and an instruction value (operation amount, operation direction, operation speed) are set.
- Example 1 Reflection behavior when a loud sound is heard
- the low-order control circuit 250 associated with the microphone array detects the volume value.
- the signal generation unit 186 vibrates the wire 134.
- the low-order control circuit 250 can perform a simple process of vibrating the wire 134 when a large volume is detected, so that it can express, with high responsiveness, a reflection behavior of "surprised by a loud sound and shake the hand 106". .
- the high order control circuit 252 can change the reflection threshold used in the low order control circuit 250. For example, when the number of times of detection of sound having a reflection threshold value T1 or more per unit time exceeds a predetermined number, the high-order control circuit 252 (operation control unit 150) may change the reflection threshold from T1 to T2 (> T1) . According to such a control method, the robot 100 which continues to hear the loud sound does not respond to the sound having the reflection threshold T1 or so. In other words, it is possible to express the familiarity of the robot 100 with the loud sound. When the number of times of detection of sound equal to or less than the reflection threshold T2 per unit time is within a predetermined number, the high-order control circuit 252 (operation control unit 150) may change the reflection threshold from T2 to T1.
- the high-order control circuit 252 can also change reaction / motion R.
- a motion M1 is a motion for shaking the hand 106
- a motion M2 is a motion for storing the front wheel 102 on the body 104 and sitting.
- the high-order control circuit 252 may change the reaction motion R from “motion M1 shaking hand 106” to “motion M2 sitting down”. According to such a control method, the robot 100 which is not used to loud noises will sit there when loud noises are heard.
- the high-order control circuit 252 changes the reflection threshold and the reaction motion R when a predetermined change condition is satisfied.
- the reflection threshold and the reaction / motion R will be collectively referred to as “reflection characteristics”.
- the high-order control circuit 252 changes the reflection characteristics of the low-order control circuit 250 in response to an external event or an internal event, thereby making it possible to achieve both high-speed response of reaction and motion and diversification of the reflection characteristics.
- Example 2 Reflection behavior when hit
- the robot 100 retreats in a reflexive manner when the user strikes the head.
- one of the low-order control circuits 250 detects the contact intensity of the touch sensor attached to the head of the robot 100 as a sensor value. If the sensor value is equal to or higher than the reflection threshold value, in other words, when a strong contact with the head is detected, the signal generation unit 186 instructs the front wheel 102 to rotate backward. With such control, it is possible to cause the robot 100 to execute a reflex action of “striking head and escaping behind”.
- the reflection threshold By changing the reflection threshold, the sensitivity to hitting is changed. If the reflection threshold is set low, the robot 100 retreats even if it is tapped. If the reflection threshold is set high, the robot 100 moves backward only when struck hard. By changing the reflection threshold of the touch sensor, it is possible to adjust the sensitivity / resistance to the “pain” of the robot 100.
- the robot 100 may swing the body 104 when struck.
- the lower control circuit 250 may close the eyelids when struck by changing the pupil image displayed on the eye 110.
- the low-order control circuit 250 may transmit an instruction signal to an electrical control device such as a display device other than a mechanical control device such as an actuator.
- the robot 100 may express the weakness by suppressing or stopping energization of the actuator depending on an external event such as when it is hit.
- the lower control circuit 250 may express “stiffness” or “tension” by fixing the movement of the actuator.
- the robot 100 reflectively stops the energization of all the actuators while falling. This is to prepare for shock by maximizing the mobility of the actuator. So to speak, the robot (100) is made passive by giving flexibility to the actuator (joint).
- the low-order control circuit 250 instructs the actuator to be de-energized when the acceleration (sensor value) detected by the acceleration sensor is equal to or greater than the reflection threshold.
- the robot 100 may store the front wheel 102 in the body 104 at the time of drop detection. Normally, since the front wheel 102 is exposed from the body 104, storing the front wheel 102 (moving mechanism) in the body 104 can prevent the front wheel 102 from being damaged by a drop impact.
- the reaction / motion R may be executed not only to express the instinctive immediate response but also to protect the mechanism of the robot 100.
- the robot 100 is provided with a switch for emergency stop (hereinafter referred to as “emergency stop switch”).
- emergency stop switch When the emergency stop switch is turned on by the user, the CNS board 116 immediately stops energization of all the actuators.
- the emergency stop switch When the emergency stop switch is off (normal state), “1” is input to the sensor value input unit 178 as the power-on state.
- the emergency stop switch When the emergency stop switch is turned on, “0” is input to the sensor value input unit 178 as an energized state.
- “0” is set as the determination condition.
- the determination unit 184 instructs the signal generation unit 186 to stop energization of the actuator when the sensor value supplied from the sensor value input unit 178 becomes “0”.
- a plurality of reaction motions R are associated with one sensor, and the high-order control circuit 252 selects any one. According to such a control method, it is possible to execute a pre-defined reaction motion at high speed according to the sensor value.
- a change condition for determining which reaction / motion of the plurality of reaction / motions is to be executed can be arbitrarily set. For example, it is assumed that motions M1 to M4 are set as selectable reaction / motion in the sensor F1.
- the high-order control circuit 252 may periodically and randomly select one of the reaction and motion M1 to M4.
- the amount of movement of the action may be different depending on the motion. For example, it is assumed that the reaction / motion M1 moves backward by 1 meter or more, and the reaction / motion M2 moves backward by 10 cm. In an environment where loud noises occur frequently, setting the motion M2 rather than the motion M1 makes it possible to act to express the familiarity of the robot 100 to loud noises.
- the reaction / motion M1 may be changed to the reaction / motion M2 when the number of days elapsed from the manufacturing date of the robot 100 exceeds a predetermined value. According to such a control method, it is possible to express "calmness" in which a loud sound is not surprised with aging.
- the robot 100 and the robot system 300 including the robot 100 have been described above based on the embodiment.
- complex behavior characteristics are expressed by the high-order control circuit 252 (software level), and instinctive and immediate actions are performed by the low-order control circuit 250 (hardware level).
- the robot 100 also separates the control mechanism of conscious behavior and the control mechanism of unconscious behavior ing. Such a design allows the robot 100 to execute instinctive and simple reflexive behaviors as well as complex behavioral characteristics.
- the low-order control circuit 250 determines whether or not reaction / motion R can be performed simply by checking whether the sensor value exceeds the reflection threshold. Therefore, it is possible to suppress the time lag from the occurrence of the strength event to the execution of the reaction / motion R within 200 milliseconds.
- the low-order control circuit 250 may receive the sensor value as analog data or as digital data. Depending on the type of data, an A / D conversion function is provided as appropriate.
- the cancellation signal suppresses the execution of the normal motion N by the high-order control circuit 252.
- a control point to prevent unnaturalness caused by the simultaneous or continuous execution of the reaction / motion N and the normal / motion N by such control is also a devising point. Because the algorithm of low order control circuit 250 is simple, low order control circuit 250 can be implemented at the hardware level without software. The low-order control circuit 250 has no overhead associated with the execution of software. On the other hand, in the high-order control circuit 252, since the algorithm is implemented by software, the determination is slower than the low-order control circuit 250, but complex behavioral characteristics based on a plurality of sensor values can be expressed.
- the high-order control circuit 252 changes various parameters such as emotion parameters and closeness based on a plurality of sensor values. These parameters represent eigenstates such as the "mental state” and “character” of the robot 100. The action (normal motion N) of the robot 100 is determined based on the eigenstate of the robot 100 and an external event.
- the high-order control circuit 252 changes the reflection threshold which is the determination criterion of the algorithm of the low-order control circuit 250 and the reaction motion R which is the action content. By changing the reflection characteristics by the high-order control circuit 252, monotonization of the reaction / motion R can be prevented.
- the present invention is not limited to the above-described embodiment and modification, and the components can be modified and embodied without departing from the scope of the invention.
- Various inventions may be formed by appropriately combining a plurality of components disclosed in the above-described embodiment and modifications. Moreover, some components may be deleted from all the components shown in the above-mentioned embodiment and modification.
- the robot system 300 is described as being configured of one robot 100, one server 200, and a plurality of external sensors 114, part of the functions of the robot 100 may be realized by the server 200, or the functions of the server 200 A part or all of may be assigned to the robot 100.
- One server 200 may control a plurality of robots 100, or a plurality of servers 200 may cooperate to control one or more robots 100.
- a third device other than the robot 100 or the server 200 may have a part of the function. It is also possible to grasp the collection of each function of the robot 100 and each function of the server 200 described in FIG. 5 as one “robot” as a whole. How to allocate a plurality of functions necessary to realize the present invention to one or more hardwares will be considered in view of the processing capability of each hardware, the specifications required of the robot system 300, etc. It should be decided.
- the “robot in a narrow sense” refers to the robot 100 not including the server 200
- the “robot in a broad sense” refers to the robot system 300.
- Many of the functions of the server 200 may be integrated into the robot 100 in the future.
- the low-order control circuit 250 in the present embodiment includes both the core circuit 174 and the output circuit 176, but the core circuit 174 can also be regarded as the “low-order control circuit 250 in a narrow sense”.
- the low-order control circuit 250 is associated with each sensor, and the low-order control circuit 250 is described as controlling one or more actuators.
- the core circuit 174 may be associated with each sensor, and the output circuit 176 may be associated with each actuator.
- n core circuits 174 and m output circuits 176 may be mounted on one CNS substrate 116.
- a plurality of sensors may be associated with one CNS substrate 116.
- the sensor value input unit 178 of the core circuit 174 may acquire a plurality of sensor values, and the determination unit 184 may determine whether to execute the reaction / motion R for each sensor.
- the lower control circuit 250 may store and protect a projection such as the tongue 112 in addition to the front wheel 102 in a situation where the robot 100 is harmed, such as falling or impact.
- the low-order control function may be realized by the low-order control circuit 250 executing simple software.
- the low-order control function is implemented by software, a plurality of low-order control functions corresponding to a plurality of sensors F can also be implemented on a single processor.
- a plurality of reflection thresholds may be set in the low-order control circuit 250.
- the low-order control circuit 250 may execute the reaction motion M1 when the sensor value exceeds the reflection threshold T1, and may execute the reaction motion M2 when the sensor value exceeds the reflection threshold T2 (> T1). In this manner, the low-order control circuit 250 may execute a plurality of reaction motions corresponding to a plurality of reflection thresholds.
- reaction or motion R may be determined based on other sensor values such as frequency as well as volume. Even if the volume is low, reaction / motion R may be performed when an unpleasant high frequency sound is heard.
- the microphone array may be separately provided with a low-order control circuit 250 for detecting a volume value and a low-order control circuit 250 for detecting a frequency.
- a plurality of low-order control circuits 250 may be associated with one sensor.
- three or more steps of control may be shared by three or more electronic circuits by providing an electronic circuit that performs intermediate level control (intermediate control) between low order control and high order control.
- both the low-order control and the high-order control may be performed by the processor 122.
- the low-order control software LS and the high-order control software HS may be executed in parallel in the processor 122.
- software LS may be implemented as a process or thread with higher priority than software HS.
- the low-order control circuit 250 in the present embodiment has been described as an electronic circuit for which execution of software is not supposed, the low-order control circuit 250 is an electronic circuit that executes built-in software as firmware. It is also good.
- the low-order control circuit 250 may be configured as a PLD (Programmable Logic Device) such as an FPGA (Field-Programmable Gate Array).
- reaction / motion R (example 1) reflection behavior when loud noise is heard, (example 2) reflection behavior when struck (example 3) reflection behavior when dropped , (Example 4) emergency stop was illustrated. Besides this, the following reaction / motion R can be considered.
- the robot 100 may be equipped with a distance measurement sensor such as a ToF (Time of Flight) sensor or a sonar.
- the low-order control circuit 250 may stop the movement of the robot 100 when the distance measurement sensor detects a wall, a step, a hole, or a cliff. For example, when an obstacle is detected at a close distance, the low-order control circuit 250 instructs the front wheel 102 to stop driving.
- the robot 100 can be protected from danger by stopping the movement of the robot 100 in response to a sensor value assumed to be a threat to the safety of the robot 100.
- the high-order control circuit 252 determines an "event” based on information collected from other sensors, and selects a normal motion N to be taken next such as "backward". After the robot 100 suddenly stops in accordance with an instruction from the lower control circuit 250, the robot 100 executes the normal motion N instructed by the higher control circuit 252. Thus, the robot 100 may execute the normal motion N continuously after immediately executing the reaction motion R.
- the low-order control circuit 250 instructs the movement stop of the robot 100 in response to the detection of an obstacle at a close distance.
- the high-order control circuit 252 may execute the normal motion N after the reaction motion R (sudden stop) for safety is performed.
- the high-order control circuit 252 may express a surprise of the robot 100 by raising the hand 106 of the robot 100, enlarging the pupil of an eye image to be displayed on the eye 110, or blinking.
- the robot 100 may detect the heat source by a thermo sensor.
- the lower control circuit 250 instructs the robot 100 to stop moving when detecting a temperature (high temperature) equal to or higher than a predetermined threshold.
- the predetermined threshold may be determined according to the heat resistant temperature of the member forming the robot 100.
- Example 7 Reflection behavior when a flash is detected
- the robot 100 causes the eye 110 to display an eye image.
- the low-order control circuit 250 displays an eye image that closes the eyelid at the eye 110 when a strong light (flash light) is detected by the camera or the light sensor.
- a strong light flash light
- reaction motion R may be performed such as turning the head of the robot 100 away, pointing the head downward, stopping movement, or the like.
- the low-order control circuit 250 may stop moving when it is detected that the light amount has become equal to or less than the predetermined value by the camera or the light sensor. For example, when the user turns off the light in the room, stopping movement of the robot 100 can prevent the robot 100 from colliding with indoor objects in the dark.
- An optical sensor may be attached to the face of the robot 100.
- the lower control circuit 250 may express a surprise of the robot 100 by shaking the hand 106. In addition to this, it is conceivable to perform blinks in the eye image or shake the head to the left and right as expressions of surprise.
- the reaction motion R instructed by the low-order control circuit 250 is executed prior to the normal motion N instructed by the high-order control circuit 252.
- the low-order control circuit 250 instructs to execute a reaction motion R during execution of the normal motion N
- the normal motion N under execution is immediately stopped and the reaction motion R is executed first.
- normal motion N is selected by the high-order control circuit 252 when there is a reaction / motion R waiting to be executed
- normal motion N after completion of execution of all planned reaction / motion R is completed. Run.
- the reaction motion R and the normal motion N are not executed in parallel, and the execution order of the reaction motion R and the normal motion N is serialized.
- the low-order control circuit 250 shown in FIG. 10 may include an execution status notification unit (not shown) for notifying the high-order control circuit 252 of the execution status of the reaction / motion R. More specifically, after the signal generation unit 186 generates a reaction / motion R execution instruction signal and outputs it to the signal output unit 192, the execution status notification unit reports that the reaction / motion R has been completed. The higher order control circuit 252 is notified. In the execution status notification unit, the last execution instruction of one or more reaction motions R is transmitted as an operation instruction from the signal output unit 192 to the drive mechanism 120, and the operation of the drive mechanism 120 corresponding to the last execution instruction To detect that it has completed. At this time, the execution status notification unit notifies the higher control circuit 252 that all one or more reaction motions R have been completed.
- the high-order control circuit 252 instructs execution of the normal motion N which has already been selected. Since execution of motion often involves mechanical motion, it takes some time from the start to the completion of execution. On the other hand, motion selection by the high-order control circuit 252 (electronic circuit and software) is considered to be further accelerated in the future. According to the control method described above, the execution status notification unit notifies the high-order control circuit 252 of the execution status of the reaction / motion R, in other words, while waiting for the execution of normal motion N by the high-order control circuit 252
- the low-order control circuit 250 can execute one or more reaction motions R preferentially. Even when the normal motion N is diversified in the future, it becomes easy to realize the immediate execution (immediate response) of the reaction motion R.
- the normal motion N may be paused to execute the reaction motion R during the execution of the normal motion N.
- the normal motion N which has been executed in advance may be resumed.
- the execution of the normal motion N1 is stopped, and the reaction motion R1 is executed first.
- normal motion N1 may be resumed from the middle, normal motion N1 may be restarted from the beginning, normal motion N1 is canceled and normal motion N2 is executed.
- the robot 100 may be moved after setting a new movement target point.
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
- Toys (AREA)
Abstract
ロボットは、ロボットのモーションを選択する動作制御部と、動作制御部により選択されたモーションを実行する駆動機構を備える。動作制御部は、センサの検出値であるセンサ値SAが反射閾値を超えたとき、センサにあらかじめ対応づけられるリアクション・モーションRを選択する低次制御回路と、センサ値SDに応じて、ロボットの行動特性を変化させる高次制御回路を含む。アナログデータとして入力されたセンサ値SAは、低次制御回路によりデジタルデータ(センサ値SD)に変換され、高次制御回路に供給される。
Description
本発明は、内部状態または外部環境に応じて自律的に行動選択するロボット、に関する。
人間は、癒やしを求めてペットを飼う。その一方、ペットの世話をする時間を十分に確保できない、ペットを飼える住環境にない、アレルギーがある、死別がつらい、といったさまざまな理由により、ペットをあきらめている人は多い。もし、ペットの役割が務まるロボットがあれば、ペットを飼えない人にもペットが与えてくれるような癒やしを与えられるかもしれない(特許文献1、2参照)。
近年、ロボット技術は急速に進歩しつつあるが、ペットのような伴侶としての存在感を実現するには至っていない。ロボットに自由意志があるとは思えないからである。人間は、ペットの自由意志があるとしか思えないような行動を観察することにより、ペットに自由意志の存在を感じ、ペットに共感し、ペットに癒される。
また、自由意志だけでなく、「本能」も生物を特徴づけるものである。本能とは、意識的な判断をともなうことなく、環境からの刺激によって引き起こされる生得的な行動様式である。危険回避はその代表例である。本能に基づく反射的な行動(以下、「反射行動」とよぶ)は、無意識ゆえに単純であり、即時的である。自由意志を感じさせる複雑多様な行動(以下、「意識行動」とよぶ)だけでなく、外部からの刺激に対する素早い反射行動もロボットに生物のような存在感をもたせる上で重要である。本発明者らの検討によれば、ロボットが刺激を受けてから反射行動を開始するまでの時間(タイムラグ)が200ミリ秒を超えると、反射行動として不自然に見えてしまうことがわかった。
本発明は上記課題認識に基づいて完成された発明であり、その主たる目的は、外部で発生するさまざまな事象に対するロボットの反射行動を効率的に制御するための技術、を提供することにある。
本発明のある態様における自律行動型ロボットは、ロボットのモーションを選択する動作制御部と、動作制御部により選択されたモーションを実行する駆動機構と、を備える。
動作制御部は、センサの検出値が閾値を超えたとき、センサにあらかじめ対応づけられるリアクション・モーションを選択する低次制御回路と、センサの検出値に応じて、ロボットの行動特性を変化させる高次制御回路と、を含む。
動作制御部は、センサの検出値が閾値を超えたとき、センサにあらかじめ対応づけられるリアクション・モーションを選択する低次制御回路と、センサの検出値に応じて、ロボットの行動特性を変化させる高次制御回路と、を含む。
本発明によれば、ロボットに自然な反射行動を実行させやすくなる。
図1は、ロボット100による反射行動の実現方法を説明するための概念図である。
生物は瞬間的に強い刺激を受けたときに反射的な行動をとる。たとえば、身体を叩かれれば身を引き、大きな音がすれば身を縮める。本実施形態におけるロボット100は、こうした反射行動を実現するための構成を備える。ロボット100は、外部環境からさまざまな刺激を受ける。ロボット100は、センサの検出値(以下、単に「センサ値」とよぶ)により外部事象(イベント)を認識し、行動を選択する。ロボット100の行動(モーション)は、「ノーマル・モーション」と「リアクション・モーション」の2種類に大別される。
生物は瞬間的に強い刺激を受けたときに反射的な行動をとる。たとえば、身体を叩かれれば身を引き、大きな音がすれば身を縮める。本実施形態におけるロボット100は、こうした反射行動を実現するための構成を備える。ロボット100は、外部環境からさまざまな刺激を受ける。ロボット100は、センサの検出値(以下、単に「センサ値」とよぶ)により外部事象(イベント)を認識し、行動を選択する。ロボット100の行動(モーション)は、「ノーマル・モーション」と「リアクション・モーション」の2種類に大別される。
ノーマル・モーションは、生物の意識行動を模した行動である。リアクション・モーションは、生物の無意識的行動(反射行動)を模した行動である。リアクション・モーションはノーマル・モーションよりも単純である代わりに即時性(高速応答性)が求められる。
ロボット100は、低次制御回路250と高次制御回路252を含む。高次制御回路252としては、CPU(Central Processing Unit)などの汎用プロセッサが想定される。高次制御回路252は、ソフトウェアにより複雑な行動表現が可能である。人が「瞬間的反応」と認識する反応時間(事象の発生から行動開始までの時間)は、一般的には200ミリ秒以内と言われる。したがって、ロボット100の反応時間が200ミリ秒を超えると、瞬間的反応に見えなくなる。
高次制御回路252は多様な処理を実行することが予定される電子回路であるため、高次制御回路252が指示を受けてから処理を開始するまでの時間はロボット100の状況に応じてばらつきが生じる。本実施形態においては、一定以上の刺激に対して、常時、規定時間以内の処理を実行するための低次制御回路250を設ける。低次制御回路250は、高次制御回路252とはハードウェア的に独立しているため、高次制御回路252にかかる処理負荷に影響されることはない。低次制御回路250は、センサから順次届くセンサ値を予め定められた条件と比較することで、センサ値の異常を検知する。低次制御回路250は、異常を検知したときには即座にリアクション・モーションの実行を指示する。低次制御回路250としては、専用設計のマイクロ・コントローラが想定されるが、汎用のマイクロプロセッサでプログラムを実行することで実現されてもよい。低次制御回路250は、電子部品の組み合わせとして形成されてもよい。低次制御回路250は、高次制御回路252に比べると処理内容が定型化・典型化されるため、高次制御回路252よりも外部事象に対して高速に反応できる。
ロボット100は、外部刺激をセンサ値SA(アナログデータ)として検出する。本実施形態においては、センサ値SAが閾値(以下、「反射閾値」とよぶ)を越えたとき、低次制御回路250はあらかじめ定義されたリアクション・モーションRの実行を指示する。たとえば、大きな音が聞こえたとき、低次制御回路250はロボット100の身体を震わせることでロボット100が大きな音にびっくりした様子を表現する。
また、低次制御回路250は、アナログデータのセンサ値SAをデジタルデータのセンサ値SDにA/D変換(Analog/Digital Conversion)し、センサ値SDを高次制御回路252に送信する。高次制御回路252は、外部事象をセンサ値SD(デジタルデータ)により認識し、ノーマル・モーションNの実行を指示する。たとえば、ユーザP1が怒鳴り声を発したとき、高次制御回路252はユーザP1に対する親密度を低下させ、ユーザP1から離れる、着座するなどさまざまなノーマル・モーションNを選択する。
リアクション・モーションRとノーマル・モーションNを同時に実行可能な状況においては、リアクション・モーションRがノーマル・モーションNに優先する。これを「低次優先の原則」とよぶ。低次制御回路250は、高次制御回路252に優先して外部事象について判断する機会を与えられ、必要に応じてリアクション・モーションRを優先的に実行することにより、即時的な反射行動を実現する。
以下、ロボット100の基本構成について図2から図5に関連して説明したあと、本実施形態における反応行動の実装方法を中心として説明する。
以下、ロボット100の基本構成について図2から図5に関連して説明したあと、本実施形態における反応行動の実装方法を中心として説明する。
[基本構成]
図2(a)は、ロボット100の正面外観図である。図2(b)は、ロボット100の側面外観図である。
本実施形態におけるロボット100は、外部環境および内部状態に基づいて行動を決定する自律行動型のロボットである。外部環境は、カメラやサーモセンサなど各種のセンサにより認識される。内部状態はロボット100の感情を表現するさまざまなパラメータとして定量化される。ロボット100は、オーナー家庭の家屋内を行動範囲とする。以下、ロボット100に関わる人間を「ユーザ」とよぶ。
図2(a)は、ロボット100の正面外観図である。図2(b)は、ロボット100の側面外観図である。
本実施形態におけるロボット100は、外部環境および内部状態に基づいて行動を決定する自律行動型のロボットである。外部環境は、カメラやサーモセンサなど各種のセンサにより認識される。内部状態はロボット100の感情を表現するさまざまなパラメータとして定量化される。ロボット100は、オーナー家庭の家屋内を行動範囲とする。以下、ロボット100に関わる人間を「ユーザ」とよぶ。
ロボット100のボディ104は、全体的に丸みを帯びた形状を有し、ウレタンやゴム、樹脂、繊維などやわらかく弾力性のある素材により形成された外皮を含む。ロボット100に服を着せてもよい。ロボット100の総重量は5~15キログラム程度、身長は0.5~1.2メートル程度である。適度な重さと丸み、柔らかさ、手触りのよさ、といった諸属性により、ユーザがロボット100を抱きかかえやすく、かつ、抱きかかえたくなるという効果が実現される。
ロボット100は、一対の前輪102(左輪102a,右輪102b)と、一つの後輪103を含む。前輪102が駆動輪であり、後輪103が従動輪である。前輪102は、操舵機構を有しないが、回転速度や回転方向を個別に制御可能とされている。後輪103は、キャスターであり、ロボット100を前後左右へ移動させるために回転自在となっている。後輪103はオムニホイールであってもよい。
前輪102および後輪103は、駆動機構(回動機構、リンク機構)によりボディ104に完全収納できる。走行時においても各車輪の大部分はボディ104に隠れているが、各車輪がボディ104に完全収納されるとロボット100は移動不可能な状態となる。すなわち、車輪の収納動作にともなってボディ104が降下し、床面Fに着座する。この着座状態においては、ボディ104の底部に形成された平坦状の着座面108(接地底面)が床面Fに当接する。
ロボット100は、2つの手106を有する。手106には、モノを把持する機能はない。手106は上げる、振る、振動するなど簡単な動作が可能である。2つの手106も個別制御可能である。
目110は、液晶素子または有機EL素子による画像表示が可能である。ロボット100は、音源方向を特定可能なマイクロフォンアレイや超音波センサなどさまざまなセンサを搭載する。また、スピーカーを内蔵し、簡単な音声を発することもできる。
ロボット100の頭部にはツノ112が取り付けられる。上述のようにロボット100は軽量であるため、ユーザはツノ112をつかむことでロボット100を持ち上げることも可能である。ツノ112には全天球カメラが取り付けられ、ロボット100の上部全域を一度に撮像可能である。
図3は、ロボット100の構造を概略的に表す断面図である。
図3に示すように、ロボット100のボディ104は、ベースフレーム308、本体フレーム310、一対の樹脂製のホイールカバー312および外皮314を含む。ベースフレーム308は、金属からなり、ボディ104の軸芯を構成するとともに内部機構を支持する。ベースフレーム308は、アッパープレート332とロアプレート334とを複数のサイドプレート336により上下に連結して構成される。複数のサイドプレート336間には通気が可能となるよう、十分な間隔が設けられる。ベースフレーム308の内方には、バッテリー118、制御回路342および各種アクチュエータが収容されている。
図3に示すように、ロボット100のボディ104は、ベースフレーム308、本体フレーム310、一対の樹脂製のホイールカバー312および外皮314を含む。ベースフレーム308は、金属からなり、ボディ104の軸芯を構成するとともに内部機構を支持する。ベースフレーム308は、アッパープレート332とロアプレート334とを複数のサイドプレート336により上下に連結して構成される。複数のサイドプレート336間には通気が可能となるよう、十分な間隔が設けられる。ベースフレーム308の内方には、バッテリー118、制御回路342および各種アクチュエータが収容されている。
本体フレーム310は、樹脂材からなり、頭部フレーム316および胴部フレーム318を含む。頭部フレーム316は、中空半球状をなし、ロボット100の頭部骨格を形成する。胴部フレーム318は、段付筒形状をなし、ロボット100の胴部骨格を形成する。胴部フレーム318は、ベースフレーム308と一体に固定される。頭部フレーム316は、胴部フレーム318の上端部に相対変位可能に組み付けられる。
頭部フレーム316には、ヨー軸320、ピッチ軸322およびロール軸324の3軸と、各軸を回転駆動するためのアクチュエータ326が設けられる。アクチュエータ326は、各軸を個別に駆動するための複数のサーボモータを含む。首振り動作のためにヨー軸320が駆動され、頷き動作のためにピッチ軸322が駆動され、首を傾げる動作のためにロール軸324が駆動される。
頭部フレーム316の上部には、ヨー軸320を支持するプレート325が固定されている。プレート325には、上下間の通気を確保するための複数の通気孔327が形成される。
頭部フレーム316およびその内部機構を下方から支持するように、金属製のベースプレート328が設けられる。ベースプレート328は、クロスリンク機構329(パンタグラフ機構)を介してプレート325と連結される一方、ジョイント330を介してアッパープレート332(ベースフレーム308)と連結される。
胴部フレーム318は、ベースフレーム308と車輪駆動機構370を収容する。車輪駆動機構370は、回動軸378およびアクチュエータ379を含む。胴部フレーム318の下半部は、ホイールカバー312との間に前輪102の収納スペースSを形成するために小幅とされる。
外皮314は、ウレタンゴムからなり、本体フレーム310およびホイールカバー312を外側から覆う。手106は、外皮314と一体成形される。外皮314の上端部には、外気を導入するための開口部390が設けられる。
図4は、ロボット100のハードウェア構成図である。
ロボット100は、内部センサ128、通信機126、記憶装置124、プロセッサ122、駆動機構120およびバッテリー118を含む。プロセッサ122と記憶装置124は、制御回路342に含まれる。各ユニットは電源線130および信号線132により互いに接続される。バッテリー118は、電源線130を介して各ユニットに電力を供給する。各ユニットは信号線132により制御信号を送受する。バッテリー118は、リチウムイオン二次電池であり、ロボット100の動力源である。
ロボット100は、内部センサ128、通信機126、記憶装置124、プロセッサ122、駆動機構120およびバッテリー118を含む。プロセッサ122と記憶装置124は、制御回路342に含まれる。各ユニットは電源線130および信号線132により互いに接続される。バッテリー118は、電源線130を介して各ユニットに電力を供給する。各ユニットは信号線132により制御信号を送受する。バッテリー118は、リチウムイオン二次電池であり、ロボット100の動力源である。
内部センサ128は、ロボット100が内蔵する各種センサの集合体である。具体的には、カメラ(全天球カメラ)、マイクロフォンアレイ、測距センサ(赤外線センサ)、サーモセンサ、タッチセンサ、加速度センサ、ニオイセンサなどである。タッチセンサは、外皮314と本体フレーム310の間に設置され、ユーザのタッチを検出する。ニオイセンサは、匂いの元となる分子の吸着によって電気抵抗が変化する原理を応用した既知のセンサである。
通信機126は、各種の外部機器を対象として無線通信を行う通信モジュールである。記憶装置124は、不揮発性メモリおよび揮発性メモリにより構成され、コンピュータプログラムや各種設定情報を記憶する。プロセッサ122は、コンピュータプログラムの実行手段である。駆動機構120は、複数のアクチュエータおよび上述した車輪駆動機構370を含む。このほかには、表示器やスピーカーなども搭載される。
駆動機構120は、主として、車輪(前輪102)と頭部(頭部フレーム316)を制御する。駆動機構120は、ロボット100の移動方向や移動速度を変化させるほか、車輪(前輪102および後輪103)を昇降させることもできる。車輪が上昇すると、車輪はボディ104に完全に収納され、ロボット100は着座面108にて床面Fに当接し、着座状態となる。また、駆動機構120は、ワイヤ134を介して、手106を制御する。
図5は、ロボットシステム300の機能ブロック図である。
ロボットシステム300は、ロボット100、サーバ200および複数の外部センサ114を含む。ロボット100およびサーバ200の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部はロボット100により実現されてもよい。
ロボットシステム300は、ロボット100、サーバ200および複数の外部センサ114を含む。ロボット100およびサーバ200の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部はロボット100により実現されてもよい。
家屋内にはあらかじめ複数の外部センサ114が設置される。サーバ200には、外部センサ114の位置座標が登録される。ロボット100の内部センサ128および複数の外部センサ114から得られる情報に基づいて、サーバ200がロボット100の基本行動を決定する。外部センサ114はロボット100の感覚器を補強するためのものであり、サーバ200はロボット100の頭脳を補強するためのものである。ロボット100の通信機126が外部センサ114と定期的に通信し、サーバ200は外部センサ114によりロボット100の位置を特定する(特許文献2も参照)。
(サーバ200)
サーバ200は、通信部204、データ処理部202およびデータ格納部206を含む。
通信部204は、外部センサ114およびロボット100との通信処理を担当する。データ格納部206は各種データを格納する。データ処理部202は、通信部204により取得されたデータおよびデータ格納部206に格納されるデータに基づいて各種処理を実行する。データ処理部202は、通信部204およびデータ格納部206のインタフェースとしても機能する。
サーバ200は、通信部204、データ処理部202およびデータ格納部206を含む。
通信部204は、外部センサ114およびロボット100との通信処理を担当する。データ格納部206は各種データを格納する。データ処理部202は、通信部204により取得されたデータおよびデータ格納部206に格納されるデータに基づいて各種処理を実行する。データ処理部202は、通信部204およびデータ格納部206のインタフェースとしても機能する。
データ格納部206は、モーション格納部232と個人データ格納部218を含む。
ロボット100は、複数の動作パターン(モーション)を有する。手106を震わせる、蛇行しながらオーナーに近づく、首をかしげたままオーナーを見つめる、などさまざまなモーションが定義される。
ロボット100は、複数の動作パターン(モーション)を有する。手106を震わせる、蛇行しながらオーナーに近づく、首をかしげたままオーナーを見つめる、などさまざまなモーションが定義される。
モーション格納部232は、モーションの制御内容を定義する「モーションファイル」を格納する。各モーションは、モーションIDにより識別される。モーションファイルは、ロボット100のモーション格納部160にもダウンロードされる。どのモーションを実行するかは、サーバ200で決定されることもあるし、ロボット100で決定されることもある。
ロボット100のモーションの多くは、複数の単位モーションを含む複合モーションとして構成される。たとえば、ロボット100がオーナーに近づくとき、オーナーの方に向き直る単位モーション、手を上げながら近づく単位モーション、体を揺すりながら近づく単位モーション、両手を上げながら着座する単位モーションの組み合わせとして表現されてもよい。このような4つのモーションの組み合わせにより、「オーナーに近づいて、途中で手を上げて、最後は体をゆすった上で着座する」というモーションが実現される。モーションファイルには、ロボット100に設けられたアクチュエータの回転角度や角速度などが時間軸に関連づけて定義される。モーションファイル(アクチュエータ制御情報)にしたがって、時間経過とともに各アクチュエータを制御することで様々なモーションが表現される。
先の単位モーションから次の単位モーションに変化するときの移行時間を「インターバル」とよぶ。インターバルは、単位モーション変更に要する時間やモーションの内容に応じて定義されればよい。インターバルの長さは調整可能である。
以下、いつ、どのモーションを選ぶか、モーションを実現する上での各アクチュエータの出力調整など、ロボット100の行動制御に関わる設定のことを「行動特性」と総称する。ロボット100の行動特性は、モーション選択アルゴリズム、モーションの選択確率、モーションファイル等により定義される。
以下、いつ、どのモーションを選ぶか、モーションを実現する上での各アクチュエータの出力調整など、ロボット100の行動制御に関わる設定のことを「行動特性」と総称する。ロボット100の行動特性は、モーション選択アルゴリズム、モーションの選択確率、モーションファイル等により定義される。
モーション格納部232は、モーションファイルのほか、各種のイベントが発生したときに実行すべきモーションを定義するモーション選択テーブルを格納する。モーション選択テーブルにおいては、イベントに対して1以上のモーションとその選択確率が対応づけられる。
個人データ格納部218は、ユーザの情報を格納する。具体的には、ユーザに対する親密度とユーザの身体的特徴・行動的特徴を示すマスタ情報を格納する。年齢や性別などの他の属性情報を格納してもよい。
ロボット100は、ユーザごとに親密度という内部パラメータを有する。ロボット100が、自分を抱き上げる、声をかけてくれるなど、自分に対して好意を示す行動を認識したとき、そのユーザに対する親密度が高くなる。ロボット100に関わらないユーザや、乱暴を働くユーザ、出会う頻度が低いユーザに対する親密度は低くなる。
データ処理部202は、位置管理部208、認識部212、動作制御部222、親密度管理部220および状態管理部244を含む。
位置管理部208は、ロボット100の位置座標を特定する。状態管理部244は、充電率や内部温度、プロセッサ122の処理負荷などの各種物理状態など各種内部パラメータを管理する。また、状態管理部244は、ロボット100の感情(寂しさ、好奇心、承認欲求など)を示すさまざまな感情パラメータを管理する。これらの感情パラメータは常に揺らいでいる。感情パラメータに応じてロボット100の移動目標地点が変化する。たとえば、寂しさが高まっているときには、ロボット100はユーザのいるところを移動目標地点として設定する。
位置管理部208は、ロボット100の位置座標を特定する。状態管理部244は、充電率や内部温度、プロセッサ122の処理負荷などの各種物理状態など各種内部パラメータを管理する。また、状態管理部244は、ロボット100の感情(寂しさ、好奇心、承認欲求など)を示すさまざまな感情パラメータを管理する。これらの感情パラメータは常に揺らいでいる。感情パラメータに応じてロボット100の移動目標地点が変化する。たとえば、寂しさが高まっているときには、ロボット100はユーザのいるところを移動目標地点として設定する。
時間経過によって感情パラメータが変化する。また、後述の応対行為によっても各種感情パラメータは変化する。たとえば、オーナーから「抱っこ」をされると寂しさを示す感情パラメータは低下し、長時間にわたってオーナーを視認しないときには寂しさを示す感情パラメータは少しずつ増加する。
認識部212は、外部環境を認識する。外部環境の認識には、温度や湿度に基づく天候や季節の認識、光量や温度に基づく物陰(安全地帯)の認識など多様な認識が含まれる。ロボット100の認識部156は、内部センサ128により各種の環境情報を取得し、これを一次処理した上でサーバ200の認識部212に転送する。
具体的には、ロボット100の認識部156は、画像から移動物体、特に、人物や動物に対応する画像領域を抽出し、抽出した画像領域から移動物体の身体的特徴や行動的特徴を示す特徴量の集合として「特徴ベクトル」を抽出する。特徴ベクトル成分(特徴量)は、各種身体的・行動的特徴を定量化した数値である。たとえば、人間の目の横幅は0~1の範囲で数値化され、1つの特徴ベクトル成分を形成する。人物の撮像画像から特徴ベクトルを抽出する手法については、既知の顔認識技術の応用である。ロボット100は、特徴ベクトルをサーバ200に送信する。
サーバ200の認識部212は、ロボット100の内蔵カメラによる撮像画像から抽出された特徴ベクトルと、個人データ格納部218にあらかじめ登録されているユーザ(クラスタ)の特徴ベクトルと比較することにより、撮像されたユーザがどの人物に該当するかを判定する(ユーザ識別処理)。また、認識部212は、ユーザの表情を画像認識することにより、ユーザの感情を推定する。認識部212は、人物以外の移動物体、たとえば、ペットである猫や犬についてもユーザ識別処理を行う。
認識部212は、ロボット100になされたさまざまな応対行為を認識し、快・不快行為に分類する。認識部212は、また、ロボット100の行動に対するオーナーの応対行為を認識することにより、肯定・否定反応に分類する。
快・不快行為は、ユーザの応対行為が、生物として心地よいものであるか不快なものであるかにより判別される。たとえば、抱っこされることはロボット100にとって快行為であり、蹴られることはロボット100にとって不快行為である。肯定・否定反応は、ユーザの応対行為が、ユーザの快感情を示すものか不快感情を示すものであるかにより判別される。抱っこされることはユーザの快感情を示す肯定反応であり、蹴られることはユーザの不快感情を示す否定反応である。
快・不快行為は、ユーザの応対行為が、生物として心地よいものであるか不快なものであるかにより判別される。たとえば、抱っこされることはロボット100にとって快行為であり、蹴られることはロボット100にとって不快行為である。肯定・否定反応は、ユーザの応対行為が、ユーザの快感情を示すものか不快感情を示すものであるかにより判別される。抱っこされることはユーザの快感情を示す肯定反応であり、蹴られることはユーザの不快感情を示す否定反応である。
サーバ200の動作制御部222は、ロボット100の動作制御部150と協働して、ロボット100のモーションを決定する。サーバ200の動作制御部222は、ロボット100の移動目標地点とそのための移動ルートを作成する。動作制御部222は、複数の移動ルートを作成し、その上で、いずれかの移動ルートを選択してもよい。
動作制御部222は、モーション格納部232の複数のモーションからロボット100のモーションを選択する。各モーションには状況ごとに選択確率が対応づけられている。たとえば、オーナーから快行為がなされたときには、モーションAを20%の確率で実行する、気温が30度以上となったとき、モーションBを5%の確率で実行する、といった選択方法が定義される。
親密度管理部220は、ユーザごとの親密度を管理する。上述したように、親密度は個人データ格納部218において個人データの一部として登録される。快行為を検出したとき、親密度管理部220はそのオーナーに対する親密度をアップさせる。不快行為を検出したときには親密度はダウンする。また、長期間視認していないオーナーの親密度は徐々に低下する。
(ロボット100)
ロボット100は、通信部142、データ処理部136、データ格納部148、内部センサ128および駆動機構120を含む。
通信部142は、通信機126(図4参照)に該当し、外部センサ114、サーバ200および他のロボット100との通信処理を担当する。データ格納部148は各種データを格納する。データ格納部148は、記憶装置124(図4参照)に該当する。データ処理部136は、通信部142により取得されたデータおよびデータ格納部148に格納されているデータに基づいて各種処理を実行する。データ処理部136は、プロセッサ122およびプロセッサ122により実行されるコンピュータプログラムに該当する。データ処理部136は、通信部142、内部センサ128、駆動機構120およびデータ格納部148のインタフェースとしても機能する。
ロボット100は、通信部142、データ処理部136、データ格納部148、内部センサ128および駆動機構120を含む。
通信部142は、通信機126(図4参照)に該当し、外部センサ114、サーバ200および他のロボット100との通信処理を担当する。データ格納部148は各種データを格納する。データ格納部148は、記憶装置124(図4参照)に該当する。データ処理部136は、通信部142により取得されたデータおよびデータ格納部148に格納されているデータに基づいて各種処理を実行する。データ処理部136は、プロセッサ122およびプロセッサ122により実行されるコンピュータプログラムに該当する。データ処理部136は、通信部142、内部センサ128、駆動機構120およびデータ格納部148のインタフェースとしても機能する。
データ格納部148は、ロボット100の各種モーションを定義するモーション格納部160を含む。
ロボット100のモーション格納部160には、サーバ200のモーション格納部232から各種モーションファイルがダウンロードされる。モーションは、モーションIDによって識別される。前輪102を収容して着座する、手106を持ち上げる、2つの前輪102を逆回転させることで、あるいは、片方の前輪102だけを回転させることでロボット100を回転行動させる、前輪102を収納した状態で前輪102を回転させることで震える、ユーザから離れるときにいったん停止して振り返る、などのさまざまなモーションを表現するために、各種アクチュエータ(駆動機構120)の動作タイミング、動作時間、動作方向などがモーションファイルにおいて時系列定義される。
データ格納部148には、個人データ格納部218からも各種データがダウンロードされてもよい。
ロボット100のモーション格納部160には、サーバ200のモーション格納部232から各種モーションファイルがダウンロードされる。モーションは、モーションIDによって識別される。前輪102を収容して着座する、手106を持ち上げる、2つの前輪102を逆回転させることで、あるいは、片方の前輪102だけを回転させることでロボット100を回転行動させる、前輪102を収納した状態で前輪102を回転させることで震える、ユーザから離れるときにいったん停止して振り返る、などのさまざまなモーションを表現するために、各種アクチュエータ(駆動機構120)の動作タイミング、動作時間、動作方向などがモーションファイルにおいて時系列定義される。
データ格納部148には、個人データ格納部218からも各種データがダウンロードされてもよい。
データ処理部136は、認識部156および動作制御部150を含む。
ロボット100の動作制御部150は、サーバ200の動作制御部222と協働してロボット100のモーションを決める。一部のモーションについてはサーバ200で決定し、他のモーションについてはロボット100で決定してもよい。また、ロボット100がモーションを決定するが、ロボット100の処理負荷が高いときにはサーバ200がモーションを決定するとしてもよい。サーバ200においてベースとなるモーションを決定し、ロボット100において追加のモーションを決定してもよい。モーションの決定処理をサーバ200およびロボット100においてどのように分担するかはロボットシステム300の仕様に応じて設計すればよい。
ロボット100の動作制御部150は、サーバ200の動作制御部222と協働してロボット100のモーションを決める。一部のモーションについてはサーバ200で決定し、他のモーションについてはロボット100で決定してもよい。また、ロボット100がモーションを決定するが、ロボット100の処理負荷が高いときにはサーバ200がモーションを決定するとしてもよい。サーバ200においてベースとなるモーションを決定し、ロボット100において追加のモーションを決定してもよい。モーションの決定処理をサーバ200およびロボット100においてどのように分担するかはロボットシステム300の仕様に応じて設計すればよい。
ロボット100の動作制御部150は選択したモーションを駆動機構120に実行指示する。駆動機構120は、モーションファイルにしたがって、各アクチュエータを制御する。
動作制御部150は、親密度の高いユーザが近くにいるときには「抱っこ」をせがむ仕草として両方の手106をもちあげるモーションを実行することもできるし、「抱っこ」に飽きたときには左右の前輪102を収容したまま逆回転と停止を交互に繰り返すことで抱っこをいやがるモーションを表現することもできる。駆動機構120は、動作制御部150の指示にしたがって前輪102や手106、首(頭部フレーム316)を駆動することで、ロボット100にさまざまなモーションを表現させる。
ロボット100の認識部156は、内部センサ128から得られた外部情報を解釈する。認識部156は、視覚的な認識(視覚部)、匂いの認識(嗅覚部)、音の認識(聴覚部)、触覚的な認識(触覚部)が可能である。
認識部156は、移動物体の撮像画像から特徴ベクトルを抽出する。上述したように、特徴ベクトルは、移動物体の身体的特徴と行動的特徴を示すパラメータ(特徴量)の集合である。移動物体を検出したときには、ニオイセンサや内蔵の集音マイク、温度センサ等からも身体的特徴や行動的特徴が抽出される。これらの特徴も定量化され、特徴ベクトル成分となる。認識部156は、特許文献2等に記載の既知の技術に基づいて、特徴ベクトルからユーザを特定する。
検出・分析・判定を含む一連の認識処理のうち、ロボット100の認識部156は認識に必要な情報の取捨選択や抽出を行い、判定等の解釈処理はサーバ200の認識部212により実行される。認識処理は、サーバ200の認識部212だけで行ってもよいし、ロボット100の認識部156だけで行ってもよいし、上述のように双方が役割分担をしながら上記認識処理を実行してもよい。
ロボット100に対する強い衝撃が与えられたとき、認識部156はタッチセンサおよび加速度センサによりこれを認識し、サーバ200の認識部212は、近隣にいるユーザによって「乱暴行為」が働かれたと認識する。ユーザがツノ112を掴んでロボット100を持ち上げるときにも、乱暴行為と認識してもよい。ロボット100に正対した状態にあるユーザが特定音量領域および特定周波数帯域にて発声したとき、サーバ200の認識部212は、自らに対する「声掛け行為」がなされたと認識してもよい。また、体温程度の温度を検知したときにはユーザによる「接触行為」がなされたと認識し、接触認識した状態で上方への加速度を検知したときには「抱っこ」がなされたと認識する。ユーザがボディ104を持ち上げるときの物理的接触をセンシングしてもよいし、前輪102にかかる荷重が低下することにより抱っこを認識してもよい。
まとめると、ロボット100は内部センサ128によりユーザの行為を物理的情報として取得し、サーバ200の認識部212は快・不快を判定する。また、サーバ200の認識部212は特徴ベクトルに基づくユーザ識別処理を実行する。
まとめると、ロボット100は内部センサ128によりユーザの行為を物理的情報として取得し、サーバ200の認識部212は快・不快を判定する。また、サーバ200の認識部212は特徴ベクトルに基づくユーザ識別処理を実行する。
サーバ200の認識部212は、ロボット100に対するユーザの各種応対を認識する。各種応対行為のうち一部の典型的な応対行為には、快または不快、肯定または否定が対応づけられる。一般的には快行為となる応対行為のほとんどは肯定反応であり、不快行為となる応対行為のほとんどは否定反応となる。快・不快行為は親密度に関連し、肯定・否定反応はロボット100の行動選択に影響する。
認識部156により認識された応対行為に応じて、サーバ200の親密度管理部220はユーザに対する親密度を変化させる。原則的には、快行為を行ったユーザに対する親密度は高まり、不快行為を行ったユーザに対する親密度は低下する。
以上の基本構成を前提として、次に、本実施形態におけるロボット100の実装について、特に、本実装の特徴と目的および基本構成との相違点を中心として説明する。
[反射行動の実装]
図6は、本実施形態におけるロボット100のハードウェア構成図である。
本実施形態におけるロボット100は、プロセッサ122に加えて、CNS(Central Nervous System)基板116を搭載する。プロセッサ122は高次制御回路252(図1参照)として機能する。CNS基板116は低次制御回路250(図1参照)として機能する。CNS基板116は、ロボット100が外部から刺激を受けた時点から一定時間内にリアクション・モーションR(反射行動)を実行するために設計された電子回路である。以下、低次制御回路250によるリアクション・モーションRの実行判断に関わる制御を「低次制御」、高次制御回路252によるノーマル・モーションN(意識行動)に関わる制御を「高次制御」とよぶ。
図6は、本実施形態におけるロボット100のハードウェア構成図である。
本実施形態におけるロボット100は、プロセッサ122に加えて、CNS(Central Nervous System)基板116を搭載する。プロセッサ122は高次制御回路252(図1参照)として機能する。CNS基板116は低次制御回路250(図1参照)として機能する。CNS基板116は、ロボット100が外部から刺激を受けた時点から一定時間内にリアクション・モーションR(反射行動)を実行するために設計された電子回路である。以下、低次制御回路250によるリアクション・モーションRの実行判断に関わる制御を「低次制御」、高次制御回路252によるノーマル・モーションN(意識行動)に関わる制御を「高次制御」とよぶ。
図7は、低次制御回路250、高次制御回路252および動作制御部150の対応関係を示す模式図である。
ロボット100のデータ処理部136の機能は、ロボット100のハードウェアおよびソフトウェアの協働により実現される。データ処理部136の機能の一部を担う動作制御部150は、サーバ200の動作制御部222とも協働してロボット100のモーションを決める。本実施形態における低次制御回路250は、ソフトウェアの実行が想定されていない低次制御に特化した電子回路である。高次制御回路252は、汎用のプロセッサ122であり、各種ソフトウェアを実行する。動作制御部150の機能は、低次制御回路250、高次制御回路252、高次制御回路252により実行されるソフトウェアにより実現される。
ロボット100のデータ処理部136の機能は、ロボット100のハードウェアおよびソフトウェアの協働により実現される。データ処理部136の機能の一部を担う動作制御部150は、サーバ200の動作制御部222とも協働してロボット100のモーションを決める。本実施形態における低次制御回路250は、ソフトウェアの実行が想定されていない低次制御に特化した電子回路である。高次制御回路252は、汎用のプロセッサ122であり、各種ソフトウェアを実行する。動作制御部150の機能は、低次制御回路250、高次制御回路252、高次制御回路252により実行されるソフトウェアにより実現される。
図8は、低次制御を説明するための模式図である。
本実施形態においては、複数のセンサに対して複数の低次制御回路250が一対一にて対応づけられる。1つの低次制御回路250には1つのリアクション・モーションRが対応づけられる。1つの低次制御回路250に対しては1以上のアクチュエータが対応づけられる。複数の低次制御回路250は、ロボット100の内部に分散配置されてもよいし、制御回路342に集約的に格納されてもよい。
本実施形態においては、複数のセンサに対して複数の低次制御回路250が一対一にて対応づけられる。1つの低次制御回路250には1つのリアクション・モーションRが対応づけられる。1つの低次制御回路250に対しては1以上のアクチュエータが対応づけられる。複数の低次制御回路250は、ロボット100の内部に分散配置されてもよいし、制御回路342に集約的に格納されてもよい。
複数の低次制御回路250のうち、図8に示す低次制御回路250はセンサF1に対応づけられ、センサF1のセンサ値S1(アナログデータ)を検出する。低次制御回路250は、センサ値S1が反射閾値T1以上であれば、リアクション・モーションR1の実行を駆動機構120(アクチュエータ)に指示する。リアクション・モーションR1に関わるアクチュエータは2以上の場合もある。
たとえば、センサF1はマイクロフォンアレイであり、センサ値S1はマイクロフォンアレイが検出した音声の音量値であるとする。リアクション・モーションR1は、ロボット100の頭部フレーム316を震わせるモーションであるとする。低次制御回路250は、センサ値S1が反射閾値T1以上であるとき、頭部フレーム316を制御するアクチュエータ326に所定の指示信号を送信して頭部フレーム316を震わせることにより、ロボット100が大きな音にびっくりした様子を行動表現する。
低次制御回路250においては、リアクション・モーションR1にともなって指示対象となるアクチュエータとその指示信号があらかじめ定義されている。このため、低次制御回路250は、「大きな音」のような単純な外部事象に対して典型的かつ単純なリアクション・モーションRを即時実行できる。低次制御回路250の処理は単純であり、ソフトウェアの実行にともなうオーバーヘッドもないため、応答性に優れる。
図9は、高次制御を説明するための模式図である。
ノーマル・モーションNの実行可否は、1以上のセンサのセンサ値と行動特性モデル254に基づいて高次制御回路252(プロセッサ122およびソフトウェア)により総合的に判断される。行動特性モデル254は、感情パラメータや親密度など、ロボット100の行動特性を決定するアルゴリズムであり、ソフトウェアにより構成される。行動特性モデル254は、サーバ200とも協働することで、ロボット100の行動特性を決定する。行動特性モデル254は、ロボット100の認識・関心・記憶・予測・選好・行動を表現するアルゴリズムである。図9の高次制御回路252には、センサF1~Fnのセンサ値S1~Sn(デジタルデータ)が入力される。高次制御回路252は、センサ値S1~Snに基づいてノーマル・モーションNを決定し、その実行を駆動機構120に指示する。
ノーマル・モーションNの実行可否は、1以上のセンサのセンサ値と行動特性モデル254に基づいて高次制御回路252(プロセッサ122およびソフトウェア)により総合的に判断される。行動特性モデル254は、感情パラメータや親密度など、ロボット100の行動特性を決定するアルゴリズムであり、ソフトウェアにより構成される。行動特性モデル254は、サーバ200とも協働することで、ロボット100の行動特性を決定する。行動特性モデル254は、ロボット100の認識・関心・記憶・予測・選好・行動を表現するアルゴリズムである。図9の高次制御回路252には、センサF1~Fnのセンサ値S1~Sn(デジタルデータ)が入力される。高次制御回路252は、センサ値S1~Snに基づいてノーマル・モーションNを決定し、その実行を駆動機構120に指示する。
たとえば、認識部156(行動特性モデル254の一部)は、タッチセンサによりユーザP2によるボディ104への接触を検出し、かつ、カメラと加速度センサによりロボット100の上昇を検出したとき、ロボット100が「抱っこ」されたと総合的に判定する。抱っこに際し、サーバ200の親密度管理部220はユーザP1に対する親密度を上昇させる。親密度の変化により、ロボット100の行動特性が変化する。たとえば、ロボット100のカメラがユーザP2を撮像(視認)したとき、ユーザP2の親密度が高いほど、動作制御部150がユーザP2に近接する行動を選択する確率が高くなる。低次制御においては、センサ値とリアクション・モーションRが直結している。一方、高次制御においては、センサ値により外部事象を解釈し、親密度や感情パラメータ等の内部変数を変化させることで行動選択基準を変化させ、行動特性モデル254の処理結果としてノーマル・モーションNが選択される。
図10は、ロボット100の行動制御システム170の回路構成図である。
行動制御システム170は、低次制御を担当するCNS基板116(低次制御回路250)と高次制御を担当するプロセッサ122(高次制御回路252)を含む。CNS基板116(低次制御回路250)は、コア回路174と出力回路176を含む。本実施形態においては、センサFごとにCNS基板116が設けられ、1つのCNS基板116は1以上のアクチュエータに指示信号を送信可能である。ここでいうセンサFは、カメラ等の内部センサ128であってもよいし、外部センサ114であってもよい。
行動制御システム170は、低次制御を担当するCNS基板116(低次制御回路250)と高次制御を担当するプロセッサ122(高次制御回路252)を含む。CNS基板116(低次制御回路250)は、コア回路174と出力回路176を含む。本実施形態においては、センサFごとにCNS基板116が設けられ、1つのCNS基板116は1以上のアクチュエータに指示信号を送信可能である。ここでいうセンサFは、カメラ等の内部センサ128であってもよいし、外部センサ114であってもよい。
コア回路174は、センサFのセンサ値に応じてリアクション・モーションRの実行可否を決定する。また、コア回路174は、センサ値をA/D変換し、デジタルデータとしてのセンサ値をプロセッサ122(高次制御回路252)に出力するA/D変換回路を含んでもよい。コア回路174は、プロセッサ122が利用しやすい形式にセンサ値を整形する機能を含んでもよい。出力回路176は、1以上のアクチュエータ(駆動機構120)を制御する。
(コア回路174)
コア回路174は、センサ値入力部178、整形部180、センサ値出力部182、判定部184、信号生成部186および設定入力部188を含む。
センサ値入力部178は、センサ値を取得する。センサ値は、アナログデータであってもよいし、デジタルデータであってもよい。判定部184は、センサ値があらかじめ設定された閾値(上述の「反射閾値」)以上であるか否かを判定する。以下、センサ値が反射閾値以上となる外部事象を「強度事象」とよぶ。判定部184は、強度事象が発生したときには、信号生成部186にリアクション・モーションRの実行を指示する制御信号を生成させ、キャンセル信号をプロセッサ122に送信する。信号生成部186は、判定部184から指示を受けたことを契機として、あらかじめ設定されているリアクション・モーションRの実行を出力回路176の信号出力部192に指示する。より具体的には、リアクション・モーションRに関連付けられる1以上のアクチュエータに対する指示信号(動作量、動作速度、動作方向)を信号出力部192に送信する。
コア回路174は、センサ値入力部178、整形部180、センサ値出力部182、判定部184、信号生成部186および設定入力部188を含む。
センサ値入力部178は、センサ値を取得する。センサ値は、アナログデータであってもよいし、デジタルデータであってもよい。判定部184は、センサ値があらかじめ設定された閾値(上述の「反射閾値」)以上であるか否かを判定する。以下、センサ値が反射閾値以上となる外部事象を「強度事象」とよぶ。判定部184は、強度事象が発生したときには、信号生成部186にリアクション・モーションRの実行を指示する制御信号を生成させ、キャンセル信号をプロセッサ122に送信する。信号生成部186は、判定部184から指示を受けたことを契機として、あらかじめ設定されているリアクション・モーションRの実行を出力回路176の信号出力部192に指示する。より具体的には、リアクション・モーションRに関連付けられる1以上のアクチュエータに対する指示信号(動作量、動作速度、動作方向)を信号出力部192に送信する。
一方、強度事象であるか否かに関わらず、センサ値は、整形部180により後段の処理において利用しやすい形式に整形される。ロボット100には様々な種類のセンサFが設けられる。センサFは、センサ値を一定の間隔で出力するが、出力周期は同一ではない。高次制御回路252(プロセッサ122)は、複数のセンサFにおけるセンサ値に基づいて処理をおこなうため、処理に用いるセンサのセンサ値が異なるタイミングで届くと、タイミング調整処理が必要となるために自らの計算リソースを消費してしまう。そこで、整形部180は、各センサFから届くセンサ値を必要に応じてバッファに蓄積し、各センサ値の出力タイミングを同期させる。整形部180がセンサ値の出力タイミングの調整を担当することにより、高次制御回路252の処理負荷が低減される。整形部180において、出力タイミングを調整する場合には、他のセンサ用に設けられたCNS基板116と同期するように設計されてもよいし、複数のCNS基板116で整形部180およびセンサ値出力部182を共有してもよい。
センサ値出力部182は、リアクション・モーションRの実行要否に関わらず、センサ値を高次制御回路252に出力する。高次制御回路252において実行されるソフトウェアは、センサ値にしたがってロボット100の行動特性を決定する。反射閾値は、ロボット100のおかれた環境や状態に応じて変更できることが好ましい。高次制御回路252は、CNS基板116(低次制御回路250)における反射閾値およびリアクション・モーションRの設定を変更するときには、設定信号を設定入力部188に送信する。設定入力部188は、判定部184における反射閾値を更新し、信号生成部186におけるリアクション・モーションRの設定を変更する。
(出力回路176)
出力回路176は、指示入力部190と信号出力部192を含む。
高次制御回路252は、ノーマル・モーションNを実行するとき、アクチュエータごとに指示信号を送る。指示入力部190は高次制御回路252からノーマル・モーションNのための指示信号を受信し、信号出力部192に送信する。信号出力部192は、リアクション・モーションRの指示信号を信号生成部186(コア回路174)から受信し、ノーマル・モーションNの指示信号を指示入力部190(高次制御回路252)から受信する。信号出力部192は、信号生成部186からリアクション・モーションRの制御信号を受信したときには、指示入力部190から受信するノーマル・モーションNの制御信号を無効にして、リアクション・モーションRの制御信号を優先して駆動機構120に送信する。
出力回路176は、指示入力部190と信号出力部192を含む。
高次制御回路252は、ノーマル・モーションNを実行するとき、アクチュエータごとに指示信号を送る。指示入力部190は高次制御回路252からノーマル・モーションNのための指示信号を受信し、信号出力部192に送信する。信号出力部192は、リアクション・モーションRの指示信号を信号生成部186(コア回路174)から受信し、ノーマル・モーションNの指示信号を指示入力部190(高次制御回路252)から受信する。信号出力部192は、信号生成部186からリアクション・モーションRの制御信号を受信したときには、指示入力部190から受信するノーマル・モーションNの制御信号を無効にして、リアクション・モーションRの制御信号を優先して駆動機構120に送信する。
駆動機構120は、制御信号にしたがって動作する。信号出力部192は、リアクション・モーションRの実行を指示するときには、現在の駆動状態を停止する制御信号(コマンド)を送信した後に、リアクション・モーションRを実行するための制御信号を送信する。すなわち、信号出力部192は、駆動機構120における現在進行中の動作を中止させた上で、リアクション・モーションRを即時実行させる。信号出力部192は、信号生成部186からリアクション・モーションRの実行指示がなければ、指示入力部190から届くノーマル・モーションNの制御信号を駆動機構120に順次送信する。
コア回路174の判定部184は、強度事象が発生したためにリアクション・モーションRを実行するときにはキャンセル信号を高次制御回路252に送信する。高次制御回路252はキャンセル信号を受信したときにはノーマル・モーションNの実行を中断し、新たにセンサ値出力部182から出力されるセンサ値に応じた処理を開始する。このような制御方法によれば、リアクション・モーションRは即時実行される一方、高次制御回路252はリアクション・モーションRの終了後に実行すべきノーマル・モーションNをリアクション・モーションRの終了を待たずに判断できる。
図11は、リアクションテーブル194の概念図である。
反射閾値は判定部184(コア回路174)に設定される。リアクション・モーションR、より厳密には、リアクション・モーションRに関わるアクチュエータに対する指示値は信号生成部186(コア回路174)に設定される。図11に示すリアクションテーブル194は、判定部184に設定される反射閾値と信号生成部186に設定されるリアクション・モーションRの対応関係を模式的に示したものである。低次制御回路250ごとに、いいかえれば、センサFごとに反射閾値とリアクション・モーションRのセット(リアクションテーブル194)が定義される。
反射閾値は判定部184(コア回路174)に設定される。リアクション・モーションR、より厳密には、リアクション・モーションRに関わるアクチュエータに対する指示値は信号生成部186(コア回路174)に設定される。図11に示すリアクションテーブル194は、判定部184に設定される反射閾値と信号生成部186に設定されるリアクション・モーションRの対応関係を模式的に示したものである。低次制御回路250ごとに、いいかえれば、センサFごとに反射閾値とリアクション・モーションRのセット(リアクションテーブル194)が定義される。
図11に示すリアクションテーブル194は、センサF1(センサ値S1)に対する反射閾値Tとリアクション・モーションRを定義する。図11においては、反射閾値T=T1が設定される。リアクション・モーションRとしては、モーションM1~M4のいずれかが選択可能であるが、図11においてはモーションM1が設定されている。すなわち、センサ値S1が反射閾値T1を超えるとき、コア回路174はリアクション・モーションRとしてモーションM1の実行を指示する。信号生成部186には、モーションM1を実現する上で制御対象となるアクチュエータと、その指示値(動作量、動作方向、動作速度)が設定される。
以下、リアクション・モーションRの具体例をいくつか列挙する。
以下、リアクション・モーションRの具体例をいくつか列挙する。
(例1:大きな音が聞こえたときの反射行動)
ロボット100は、大きな音を聞くと反射的に手106を震わせる。このようなリアクション・モーションRを実現するため、マイクロフォンアレイに対応づけられる低次制御回路250は、音量値を検出する。音量値(センサ値)が反射閾値以上となると、信号生成部186はワイヤ134を振動させる。低次制御回路250は大音量を検出したときにワイヤ134を振動させるという単純な処理を実行することにより、「大きな音に驚いて手106を震わせる」という反射行動を高い応答性にて表現できる。
ロボット100は、大きな音を聞くと反射的に手106を震わせる。このようなリアクション・モーションRを実現するため、マイクロフォンアレイに対応づけられる低次制御回路250は、音量値を検出する。音量値(センサ値)が反射閾値以上となると、信号生成部186はワイヤ134を振動させる。低次制御回路250は大音量を検出したときにワイヤ134を振動させるという単純な処理を実行することにより、「大きな音に驚いて手106を震わせる」という反射行動を高い応答性にて表現できる。
高次制御回路252は、低次制御回路250で用いられる反射閾値を変更できる。たとえば、単位時間あたり反射閾値T1以上の音声を検出した回数が所定回数を超える時、高次制御回路252(動作制御部150)は反射閾値をT1からT2(>T1)に変更してもよい。このような制御方法によれば、大きな音を聞き続けたロボット100は反射閾値T1程度の音では反応しなくなる。いいかえれば、ロボット100の大きな音に対する慣れを表現できる。単位時間あたり反射閾値T2以下の音声を検出した回数が所定回数以内であるとき、高次制御回路252(動作制御部150)は反射閾値をT2からT1に変更してもよい。
高次制御回路252は、リアクション・モーションRも変更できる。モーションM1は手106を震わせるモーションであり、モーションM2は前輪102をボディ104に格納して着座するモーションであるとする。たとえば、反射閾値以上の音声を所定時間以上検出しなかったとき、高次制御回路252は「手106を震わせるモーションM1」から「座り込むモーションM2」にリアクション・モーションRを変更してもよい。このような制御方法によれば、大きな音に慣れていないロボット100は、大きな音が聞こえるとその場に座り込む。
以上のように、高次制御回路252は、所定の変更条件が成立したとき、反射閾値およびリアクション・モーションRを変更する。以下、反射閾値とリアクション・モーションRをまとめて「反射特性」とよぶ。高次制御回路252が外部事象または内部事象に応じて低次制御回路250の反射特性を変更することにより、リアクション・モーションの高速な応答性と反射特性の多様化を両立させることができる。
(例2:叩かれたときの反射行動)
ロボット100は、ユーザに頭を叩かれると反射的に後退する。このようなリアクション・モーションRを実現するため、低次制御回路250のひとつはロボット100の頭部に取り付けられるタッチセンサの接触強度をセンサ値として検出する。センサ値が反射閾値以上であれば、いいかえれば、頭部に対する強い接触が検出されたときには、信号生成部186は前輪102に後方回転を指示する。このような制御により、「頭を叩かれて後ろに逃げる」という反射行動をロボット100に実行させることができる。
ロボット100は、ユーザに頭を叩かれると反射的に後退する。このようなリアクション・モーションRを実現するため、低次制御回路250のひとつはロボット100の頭部に取り付けられるタッチセンサの接触強度をセンサ値として検出する。センサ値が反射閾値以上であれば、いいかえれば、頭部に対する強い接触が検出されたときには、信号生成部186は前輪102に後方回転を指示する。このような制御により、「頭を叩かれて後ろに逃げる」という反射行動をロボット100に実行させることができる。
反射閾値を変更することにより、叩かれることに対する敏感度が変化する。反射閾値を低く設定すれば、ロボット100は軽く叩かれただけでも後退する。反射閾値を高く設定すれば、ロボット100は強く叩かれたときだけ後退する。タッチセンサの反射閾値を変更することにより、ロボット100の「痛み」に対する敏感さ・耐性を調整できる。
後退以外にもさまざまなリアクション・モーションRを設定可能である。たとえば、叩かれたときにロボット100はボディ104を揺らしてもよい。低次制御回路250は目110に表示される瞳画像を変化させることにより叩かれたときに瞼を閉じてもよい。このように、低次制御回路250はアクチュエータのような機械的な制御装置以外、たとえば、表示装置などの電気的な制御装置に対して指示信号を送信してもよい。
ロボット100は、叩かれたときなど、外部事象によってはアクチュエータへの通電を抑制または停止させて、脱力を表現してもよい。低次制御回路250は、アクチュエータの動きを固定することで「硬直」や「緊張」を表現してもよい。
(例3:落下したときの反射行動)
ロボット100は、落下中に、全アクチュエータへの通電を反射的に停止させる。これは、アクチュエータの可動性を最大にすることで衝撃に備えるためである。いわば、アクチュエータ(関節)に柔軟性をもたせることでロボット100に受け身をとらせている。低次制御回路250は、加速度センサにより検出された加速度(センサ値)が反射閾値以上であるとき、アクチュエータへの通電停止を指示する。ロボット100は、落下検出に際しては、前輪102をボディ104に格納してもよい。通常、前輪102はボディ104から露出するため、前輪102(移動機構)をボディ104に格納することにより落下の衝撃によって前輪102が破損するのを防止できる。リアクション・モーションRは、本能的な即時反応を表現するだけでなく、ロボット100の機構保護のために実行されてもよい。
ロボット100は、落下中に、全アクチュエータへの通電を反射的に停止させる。これは、アクチュエータの可動性を最大にすることで衝撃に備えるためである。いわば、アクチュエータ(関節)に柔軟性をもたせることでロボット100に受け身をとらせている。低次制御回路250は、加速度センサにより検出された加速度(センサ値)が反射閾値以上であるとき、アクチュエータへの通電停止を指示する。ロボット100は、落下検出に際しては、前輪102をボディ104に格納してもよい。通常、前輪102はボディ104から露出するため、前輪102(移動機構)をボディ104に格納することにより落下の衝撃によって前輪102が破損するのを防止できる。リアクション・モーションRは、本能的な即時反応を表現するだけでなく、ロボット100の機構保護のために実行されてもよい。
(例4:緊急停止)
ロボット100には、緊急停止用のスイッチ(以下「緊急停止スイッチ」とよぶ)が設けられる。ユーザにより緊急停止スイッチがオンされたとき、CNS基板116は全アクチュエータへの通電を即時停止させる。緊急停止スイッチがオフのとき(正常状態)、センサ値入力部178には通電状態として「1」が入力される。緊急停止スイッチがオンされると、センサ値入力部178には通電状態として「0」が入力される。判定部184には、判定条件として「0」が設定されている。判定部184は、センサ値入力部178から供給されたセンサ値が「0」になったときに、信号生成部186にアクチュエータへの通電を停止することを指示する。
ロボット100には、緊急停止用のスイッチ(以下「緊急停止スイッチ」とよぶ)が設けられる。ユーザにより緊急停止スイッチがオンされたとき、CNS基板116は全アクチュエータへの通電を即時停止させる。緊急停止スイッチがオフのとき(正常状態)、センサ値入力部178には通電状態として「1」が入力される。緊急停止スイッチがオンされると、センサ値入力部178には通電状態として「0」が入力される。判定部184には、判定条件として「0」が設定されている。判定部184は、センサ値入力部178から供給されたセンサ値が「0」になったときに、信号生成部186にアクチュエータへの通電を停止することを指示する。
上述したように、1つのセンサに対して複数のリアクション・モーションRを対応づけ、高次制御回路252はいずれか1つを選択する。このような制御方法によれば、センサ値に応じて、あらかじめ定義されたリアクション・モーションを高速に実行できる。複数のリアクション・モーションのうちどのリアクション・モーションを実行対象とするかを決定する変更条件は任意に設定可能である。たとえば、センサF1にリアクション・モーションとしてモーションM1~M4が選択可能に設定されているとする。高次制御回路252は、リアクション・モーションM1~M4のいずれかを定期的にランダムに選択してもよい。
行動の内容にかぎらず、行動の運動量をモーションによって異なってもよい。たとえば、リアクション・モーションM1が1メートル以上後退するモーション、リアクション・モーションM2が10センチメートル後退するモーションであるとする。大きな音が頻発する環境においては、モーションM1よりもモーションM2を設定することにより、ロボット100の大きな音に対する慣れを行動表現できる。また、ロボット100の製造日からの経過日数が所定値を超えたことを契機として、リアクション・モーションM1をリアクション・モーションM2に変更してもよい。このような制御方法によれば、加齢にともなって大きな音に驚かなくなるという「落ち着き」を表現できる。
以上、実施形態に基づいてロボット100およびロボット100を含むロボットシステム300について説明した。
本実施形態においては、複雑な行動特性を高次制御回路252(ソフトウェア・レベル)により表現し、本能的・即時的な行動を低次制御回路250(ハードウェア・レベル)により実行する。人間の脳が合理的思考を司る大脳新皮質と、大脳辺縁系のような旧皮質に分かれているように、ロボット100においても意識的行動の制御機構と無意識的行動の制御機構を分離させている。このような設計により、ロボット100に複雑な行動特性とともに、本能的で単純な反射行動も実行させることができる。
本実施形態においては、複雑な行動特性を高次制御回路252(ソフトウェア・レベル)により表現し、本能的・即時的な行動を低次制御回路250(ハードウェア・レベル)により実行する。人間の脳が合理的思考を司る大脳新皮質と、大脳辺縁系のような旧皮質に分かれているように、ロボット100においても意識的行動の制御機構と無意識的行動の制御機構を分離させている。このような設計により、ロボット100に複雑な行動特性とともに、本能的で単純な反射行動も実行させることができる。
低次制御回路250は、センサ値が反射閾値を超えるか否かをチェックするだけでリアクション・モーションRの実行可否を判断する。このため、強度事象が発生してからリアクション・モーションRの実行に至るまでのタイムラグは200ミリ秒以内に抑えることが可能となる。低次制御回路250はセンサ値をアナログデータとして受信してもよいし、デジタルデータとして受信してもよい。データの種類に応じて、適宜、A/D変換の機能が設けられる。
低次制御回路250がリアクション・モーションRを実行するときには、キャンセル信号により高次制御回路252によるノーマル・モーションNの実行が抑止される。このような制御により、リアクション・モーションNとノーマル・モーションNが同時または連続実行されることにともなう不自然さを防止する制御も工夫点である。低次制御回路250のアルゴリズムは単純であるため、低次制御回路250はソフトウェアがなくても、ハードウェア・レベルで実装できる。低次制御回路250には、ソフトウェアの実行にともなうオーバーヘッドが発生しない。一方、高次制御回路252は、ソフトウェアによりアルゴリズムが実装されるため、低次制御回路250よりは判断が低速となるが、複数のセンサ値に基づく複雑な行動特性を表現できる。
高次制御回路252は、複数のセンサ値に基づいて感情パラメータや親密度などの各種パラメータを変化させる。これらのパラメータがロボット100の「精神状態」や「性格」などの固有状態を表現する。ロボット100の固有状態と外部事象に基づいて、ロボット100の行動(ノーマル・モーションN)が決まる。
高次制御回路252は、低次制御回路250のアルゴリズムの判断基準である反射閾値と行動内容であるリアクション・モーションRを変更する。高次制御回路252による反射特性の変更により、リアクション・モーションRの単調化を防ぐことができる。
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
1つのロボット100と1つのサーバ200、複数の外部センサ114によりロボットシステム300が構成されるとして説明したが、ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部がロボット100に割り当てられてもよい。1つのサーバ200が複数のロボット100をコントロールしてもよいし、複数のサーバ200が協働して1以上のロボット100をコントロールしてもよい。
ロボット100やサーバ200以外の第3の装置が、機能の一部を担ってもよい。図5において説明したロボット100の各機能とサーバ200の各機能の集合体は大局的には1つの「ロボット」として把握することも可能である。1つまたは複数のハードウェアに対して、本発明を実現するために必要な複数の機能をどのように配分するかは、各ハードウェアの処理能力やロボットシステム300に求められる仕様等に鑑みて決定されればよい。
上述したように、「狭義におけるロボット」とはサーバ200を含まないロボット100のことであるが、「広義におけるロボット」はロボットシステム300のことである。サーバ200の機能の多くは、将来的にはロボット100に統合されていく可能性も考えられる。
本実施形態における低次制御回路250は、コア回路174と出力回路176の双方を含むが、コア回路174を「狭義における低次制御回路250」と捉えることもできる。
本実施形態においては、センサごとに低次制御回路250を対応づけ、低次制御回路250は1以上のアクチュエータを制御するとして説明した。変形例としてセンサごとにコア回路174を対応づけ、アクチュエータごとに出力回路176を対応づけてもよい。n個のセンサとm個のアクチュエータが存在するとき、1つのCNS基板116にn個のコア回路174とm個の出力回路176を搭載してもよい。
1個のCNS基板116に複数のセンサを対応づけてもよい。この場合には、コア回路174のセンサ値入力部178は、複数のセンサ値を取得し、判定部184はセンサごとにリアクション・モーションRの実行可否を判定してもよい。
低次制御回路250は、落下や衝撃など、ロボット100に危害が加えられる状況においては、前輪102以外にもツノ112等の突起部分をボディ104に格納し、保護してもよい。
低次制御回路250のアルゴリズムは単純であるため、ハードウェアのみで実装可能であるがソフトウェアの実装を排除するものではない。低次制御回路250がシンプルなソフトウェアを実行することで低次制御機能を実現してもよい。低次制御機能をソフトウェアにより実装する場合には、単一のプロセッサ上に複数のセンサFに対応する複数の低次制御機能を実装することもできる。
低次制御回路250には複数の反射閾値を設定してもよい。低次制御回路250は、センサ値が反射閾値T1を超えたときにはリアクション・モーションM1を実行し、センサ値が反射閾値T2(>T1)を超えたときにはリアクション・モーションM2を実行してもよい。このように、低次制御回路250は、複数の反射閾値に対応して複数のリアクション・モーションを実行させてもよい。
音声については、音量に限らず、周波数など他のセンサ値に基づいてリアクション・モーションRの実行可否を判断してもよい。音量が小さくても、不快な高周波音が聞こえたときには、リアクション・モーションRを実行するとしてもよい。マイクロフォンアレイに対して、音量値を検出する低次制御回路250と周波数を検出する低次制御回路250を別々に設けてもよい。このように1つのセンサに対して複数の低次制御回路250(コア回路174)を対応づけてもよい。
本実施形態においては、低次制御の低次制御回路250と高次制御の高次制御回路252の2段階制御を前提として説明した。変形例として、低次制御と高次制御の中間レベルの制御(中間制御)を行う電子回路を設けることにより3以上の電子回路に3段階以上の制御を分担させてもよい。
低次制御回路250と高次制御回路252の2つを設けるのではなく、プロセッサ122により低次制御と高次制御の双方を実行してもよい。具体的には、プロセッサ122において低次制御用のソフトウェアLSと高次制御用のソフトウェアHSを並列実行させればよい。たとえば、ソフトウェアLSをソフトウェアHSよりも優先度の高いプロセスまたはスレッドとして実装してもよい。
本実施形態における低次制御回路250はソフトウェアの実行が想定されていない電子回路であるとして説明したが、低次制御回路250はファームウェア(firmware)としての組み込みのソフトウェアを実行する電子回路であってもよい。低次制御回路250は、FPGA(Field-Programmable Gate Array)のようなPLD(Programmable Logic Device)として構成されてもよい。
本実施形態においては、リアクション・モーションRの具体例として(例1)大きな音が聞こえたときの反射行動、(例2)叩かれたときの反射行動、(例3)落下したときの反射行動、(例4)緊急停止、の4つを例示した。このほかにも、下記のようなリアクション・モーションRが考えられる。
(例5:障害物を検出したときの反射行動)
ロボット100は、ToF(Time of Flight)センサあるいはソナーなどの測距センサを搭載してもよい。低次制御回路250は、測距センサにより、壁、段差、穴、崖を検出したとき、ロボット100の移動を停止させてもよい。低次制御回路250は、たとえば、至近距離に障害物を検知したとき、前輪102の駆動停止を指示する。ロボット100の安全が脅かされると想定されるセンサ値を契機として、ロボット100の移動を停止させることにより、ロボット100を危険から守ることができる。高次制御回路252は、障害物が検出されたとき、他のセンサから収集した情報に基づいて「イベント」を判定し、「後退」などの次にとるべきノーマル・モーションNを選択する。ロボット100は、低次制御回路250からの指示により急停止したあと、高次制御回路252に指示されたノーマル・モーションNを実行する。このように、ロボット100は、リアクション・モーションRを即時実行した上で、ノーマル・モーションNを引き続き実行してもよい。
ロボット100は、ToF(Time of Flight)センサあるいはソナーなどの測距センサを搭載してもよい。低次制御回路250は、測距センサにより、壁、段差、穴、崖を検出したとき、ロボット100の移動を停止させてもよい。低次制御回路250は、たとえば、至近距離に障害物を検知したとき、前輪102の駆動停止を指示する。ロボット100の安全が脅かされると想定されるセンサ値を契機として、ロボット100の移動を停止させることにより、ロボット100を危険から守ることができる。高次制御回路252は、障害物が検出されたとき、他のセンサから収集した情報に基づいて「イベント」を判定し、「後退」などの次にとるべきノーマル・モーションNを選択する。ロボット100は、低次制御回路250からの指示により急停止したあと、高次制御回路252に指示されたノーマル・モーションNを実行する。このように、ロボット100は、リアクション・モーションRを即時実行した上で、ノーマル・モーションNを引き続き実行してもよい。
ロボットの目前に障害物が落下したとき、あるいは、障害物が設置されたときときにも、低次制御回路250は至近距離の障害物を検出したことを契機としてロボット100の移動停止を指示してもよい。上述したように、安全確保のためのリアクション・モーションR(急停止)の実行後、高次制御回路252はノーマル・モーションNを実行してもよい。たとえば、高次制御回路252は、ロボット100の手106を上げたり、目110に表示させる眼画像の瞳孔を拡大させたり、瞬きをさせることでロボット100の驚きを表現してもよい。
(例6:熱源を検出したときの反射行動)
ロボット100は、サーモセンサにより熱源を検出してもよい。低次制御回路250は、所定閾値以上の温度(高温)を検出したとき、ロボット100の移動停止を指示する。所定閾値は、ロボット100を形成する部材の耐熱温度に応じて決めてもよい。ヒーターやストーブなどの発熱器具に近づいたとき、ロボット100の高温化を防止するためのリアクション・モーションRを実行することでロボット100の安全を確保できる。また、ロウソクやたばこ等の炎をともなう熱源に近づいたときもロボット100の熱源への接近行動を中止することにより、ロボット100の安全を確保できる。
ロボット100は、サーモセンサにより熱源を検出してもよい。低次制御回路250は、所定閾値以上の温度(高温)を検出したとき、ロボット100の移動停止を指示する。所定閾値は、ロボット100を形成する部材の耐熱温度に応じて決めてもよい。ヒーターやストーブなどの発熱器具に近づいたとき、ロボット100の高温化を防止するためのリアクション・モーションRを実行することでロボット100の安全を確保できる。また、ロウソクやたばこ等の炎をともなう熱源に近づいたときもロボット100の熱源への接近行動を中止することにより、ロボット100の安全を確保できる。
(例7:閃光を検出したときの反射行動)
ロボット100は、目110に眼画像を表示させる。低次制御回路250は、カメラまたは光センサにより強い光(閃光)を検出したとき、目110において瞼を閉じる眼画像を表示させる。このような制御方法によれば、ロボット100が強い光を浴びたときに思わず目を閉じる様子を即時的に表現できる。このほかにも、ロボット100の顔を背ける、頭部を下に向ける、移動を停止するなどのリアクション・モーションRを実行してもよい。
ロボット100は、目110に眼画像を表示させる。低次制御回路250は、カメラまたは光センサにより強い光(閃光)を検出したとき、目110において瞼を閉じる眼画像を表示させる。このような制御方法によれば、ロボット100が強い光を浴びたときに思わず目を閉じる様子を即時的に表現できる。このほかにも、ロボット100の顔を背ける、頭部を下に向ける、移動を停止するなどのリアクション・モーションRを実行してもよい。
(例8:暗転時の反射行動)
低次制御回路250は、カメラまたは光センサにより、光量が所定値以下となったことを検出したとき、移動停止させてもよい。たとえば、ユーザが部屋の電灯を切ったときには、ロボット100を移動停止させることでロボット100が暗闇で室内物体にぶつかるのを防ぐことができる。
低次制御回路250は、カメラまたは光センサにより、光量が所定値以下となったことを検出したとき、移動停止させてもよい。たとえば、ユーザが部屋の電灯を切ったときには、ロボット100を移動停止させることでロボット100が暗闇で室内物体にぶつかるのを防ぐことができる。
ロボット100の顔に光センサを取り付けてもよい。ユーザがロボット100の目110に目隠しをしたときには、低次制御回路250は手106を揺らすことでロボット100の驚きを表現してもよい。このほかにも、眼画像で瞬きを実行する、頭部を左右に揺らすなども驚きの表現として考えられる。
低次制御回路250により指示されるリアクション・モーションRは、高次制御回路252により指示されるノーマル・モーションNに優先して実行される。ノーマル・モーションNの実行中に低次制御回路250によりリアクション・モーションRが実行指示された場合、実行中のノーマル・モーションNは即時停止され、リアクション・モーションRが先に実行される。また、実行待ちのリアクション・モーションRが存在するとき高次制御回路252によりノーマル・モーションNが選択された場合には、予定されているすべてのリアクション・モーションRの実行完了後に、ノーマル・モーションNを実行する。このように、リアクション・モーションRとノーマル・モーションNは並列実行されることはなく、リアクション・モーションRとノーマル・モーションNの実行順序はシリアライズされる。
図10に示した低次制御回路250は、リアクション・モーションRの実行状況を高次制御回路252に通知するための実行状況通知部(図示せず)を備えてもよい。より具体的には、信号生成部186がリアクション・モーションRの実行指示信号を生成し、信号出力部192にこれを出力した後、実行状況通知部はリアクション・モーションRの実行が完了したことを高次制御回路252に通知する。実行状況通知部は、1以上のリアクション・モーションRのうちの最後の実行指示が、信号出力部192から駆動機構120に動作指示として伝えられて、駆動機構120が最後の実行指示に対応する動作を完了したことを検出する。このとき、実行状況通知部は、1以上のリアクション・モーションRをすべて完了したことを高次制御回路252に通知する。
すなわち、すべての予定されているリアクション・モーションRの実行が完了したあと、高次制御回路252は、既に選択していたノーマル・モーションNの実行を指示する。モーションの実行は、機械的動作をともなうことが多いため、実行の開始から完了までにはある程度の時間を要する。一方、高次制御回路252(電子回路とソフトウェア)によるモーション選択は、将来的にはいっそう高速化すると考えられる。上述した制御方法によれば、実行状況通知部がリアクション・モーションRの実行状況を高次制御回路252に通知しつつ、いいかえれば、高次制御回路252によるノーマル・モーションNの実行を待たせつつ、低次制御回路250が1以上のリアクション・モーションRを優先的に実行できる。将来、ノーマル・モーションNが多様化したときでも、リアクション・モーションRの即時実行(即時反応)を実現しやすくなる。
ノーマル・モーションNの実行中にリアクション・モーションRを実行するためにノーマル・モーションNを一時停止させることもある。この場合、リアクション・モーションRの実行後(反射行動後)、事前に実行していたノーマル・モーションNを再開してもよい。たとえば、ノーマル・モーションN1,N2の連続実行を予定している状況において、ノーマル・モーションN1の実行中にリアクション・モーションR1の実行を指示したとする。このときには、ノーマル・モーションN1の実行を中止し、リアクション・モーションR1を先に実行する。リアクション・モーションR1の完了後、ノーマル・モーションN1を途中から再開してもよいし、ノーマル・モーションN1を最初からやり直してもよいし、ノーマル・モーションN1をキャンセルしてノーマル・モーションN2を実行してもよい。また、反射行動のきっかけとなった事象に応じて、ロボット100の内部状態(感情パラメータ、親密度など)を変化させ、内部状態の変化に基づいて新たなノーマル・モーションNを選択し直してもよい。たとえば、新たな移動目標地点を設定した上で、ロボット100を移動させてもよい。
Claims (9)
- ロボットのモーションを選択する動作制御部と、
前記動作制御部により選択されたモーションを実行する駆動機構と、を備え、
前記動作制御部は、
センサの検出値が閾値を超えたとき、前記センサにあらかじめ対応づけられるリアクション・モーションを選択する低次制御回路と、
前記センサの検出値に応じて、ロボットの行動特性を変化させる高次制御回路と、を含むことを特徴とする自律行動型ロボット。 - 前記高次制御回路は、前記検出値に応じて、ロボットのノーマル・モーションを選択し、
前記動作制御部は、前記低次制御回路に選択されたリアクション・モーションと前記高次制御回路に選択されたノーマル・モーションとを前記駆動機構に実行させ、かつ、前記検出値が前記閾値を超えるときには、ノーマル・モーションよりもリアクション・モーションを優先実行させることを特徴とする請求項1に記載の自律行動型ロボット。 - 複数のセンサそれぞれに対応して複数の前記低次制御回路が設けられ、
前記高次制御回路は、前記複数の低次制御回路から出力される検出値の組み合わせに応じて、ロボットのノーマル・モーションを選択することを特徴とする請求項1に記載の自律行動型ロボット。 - 前記高次制御回路は、センサに対応づけるべきリアクション・モーションを設定することを特徴とする請求項1に記載の自律行動型ロボット。
- 前記高次制御回路は、前記閾値を更新することを特徴とする請求項1に記載の自律行動型ロボット。
- 前記低次制御回路は、1種類のセンサの検出値に応じて、リアクション・モーションを選択し、
前記高次制御回路は、複数種類のセンサの検出値の組み合わせに応じて、ロボットの行動特性を変化させることを特徴とする請求項1に記載の自律行動型ロボット。 - 前記低次制御回路は、センサの検出値が前記閾値を超えたとき、センサにあらかじめ対応づけられる典型行動としてのリアクション・モーションを実行させ、
前記高次制御回路は、センサの検出値に応じて感情パラメータを変化させ、前記感情パラメータの変化に応じてロボットの行動特性を変化させることを特徴とする請求項1に記載の自律行動型ロボット。 - 前記低次制御回路は、前記リアクション・モーションとして、前記駆動機構に含まれるアクチュエータへの通電を停止させることを特徴とする請求項1に記載の自律行動型ロボット。
- 前記駆動機構は、ロボットの筐体に格納可能な移動機構、を更に備え、
前記低次制御回路は、センサにより落下が検出されたとき、前記リアクション・モーションとして前記移動機構をロボットの筐体に格納させることを特徴とする請求項1に記載の自律行動型ロボット。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019550450A JPWO2019088160A1 (ja) | 2017-11-01 | 2018-10-31 | 反射行動を実行可能な自律行動型ロボット |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017211892 | 2017-11-01 | ||
JP2017-211892 | 2017-11-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019088160A1 true WO2019088160A1 (ja) | 2019-05-09 |
Family
ID=66332531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/040484 WO2019088160A1 (ja) | 2017-11-01 | 2018-10-31 | 反射行動を実行可能な自律行動型ロボット |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2019088160A1 (ja) |
WO (1) | WO2019088160A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111452028A (zh) * | 2020-05-25 | 2020-07-28 | 苏州大学应用技术学院 | 多关节仿生机器人及其控制方法与应用 |
JP7408026B1 (ja) | 2023-02-15 | 2024-01-04 | 三菱電機株式会社 | 停止装置、停止システム、および、音検出装置の設置方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003071761A (ja) * | 2001-09-03 | 2003-03-12 | Sony Corp | ロボット並びにロボットのための表示装置 |
JP2003071755A (ja) * | 2001-09-04 | 2003-03-12 | Sony Corp | ロボット装置及びロボット装置の衝撃吸収方法 |
JP2003266353A (ja) * | 2002-03-18 | 2003-09-24 | Sony Corp | ロボット装置及びその制御方法 |
JP2006142470A (ja) * | 2004-10-19 | 2006-06-08 | Honda Motor Co Ltd | ロボットの過電流防止装置 |
WO2017175559A1 (ja) * | 2016-04-08 | 2017-10-12 | Groove X株式会社 | 人見知りする自律行動型ロボット |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006110707A (ja) * | 2004-09-14 | 2006-04-27 | Sony Corp | ロボット装置 |
-
2018
- 2018-10-31 JP JP2019550450A patent/JPWO2019088160A1/ja active Pending
- 2018-10-31 WO PCT/JP2018/040484 patent/WO2019088160A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003071761A (ja) * | 2001-09-03 | 2003-03-12 | Sony Corp | ロボット並びにロボットのための表示装置 |
JP2003071755A (ja) * | 2001-09-04 | 2003-03-12 | Sony Corp | ロボット装置及びロボット装置の衝撃吸収方法 |
JP2003266353A (ja) * | 2002-03-18 | 2003-09-24 | Sony Corp | ロボット装置及びその制御方法 |
JP2006142470A (ja) * | 2004-10-19 | 2006-06-08 | Honda Motor Co Ltd | ロボットの過電流防止装置 |
WO2017175559A1 (ja) * | 2016-04-08 | 2017-10-12 | Groove X株式会社 | 人見知りする自律行動型ロボット |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111452028A (zh) * | 2020-05-25 | 2020-07-28 | 苏州大学应用技术学院 | 多关节仿生机器人及其控制方法与应用 |
CN111452028B (zh) * | 2020-05-25 | 2024-06-04 | 苏州大学应用技术学院 | 多关节仿生机器人及其控制方法与应用 |
JP7408026B1 (ja) | 2023-02-15 | 2024-01-04 | 三菱電機株式会社 | 停止装置、停止システム、および、音検出装置の設置方法 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2019088160A1 (ja) | 2020-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11809192B2 (en) | Autonomously acting robot whose activity amount is controlled | |
US11285614B2 (en) | Autonomously acting robot that understands physical contact | |
JP7320239B2 (ja) | 音源の方向を認識するロボット | |
JP7068709B2 (ja) | 瞳を変化させる自律行動型ロボット | |
JP6409206B2 (ja) | お出迎え行動する自律行動型ロボット | |
JP7236142B2 (ja) | 自律行動型ロボット | |
WO2018012219A1 (ja) | 自律行動型ロボット | |
JP6671577B2 (ja) | 人を識別する自律行動型ロボット | |
JP2019214119A (ja) | ロボットの関節に好適なジョイント構造 | |
WO2019088160A1 (ja) | 反射行動を実行可能な自律行動型ロボット | |
WO2020009098A1 (ja) | ロボット |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18874036 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019550450 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18874036 Country of ref document: EP Kind code of ref document: A1 |