WO2023027433A1 - 로봇 및 그 제어 방법 - Google Patents

로봇 및 그 제어 방법 Download PDF

Info

Publication number
WO2023027433A1
WO2023027433A1 PCT/KR2022/012422 KR2022012422W WO2023027433A1 WO 2023027433 A1 WO2023027433 A1 WO 2023027433A1 KR 2022012422 W KR2022012422 W KR 2022012422W WO 2023027433 A1 WO2023027433 A1 WO 2023027433A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion
robot
sentence
obtaining
similarity
Prior art date
Application number
PCT/KR2022/012422
Other languages
English (en)
French (fr)
Inventor
김기훈
국중갑
이상경
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to EP22861643.9A priority Critical patent/EP4331781A1/en
Publication of WO2023027433A1 publication Critical patent/WO2023027433A1/ko
Priority to US18/302,377 priority patent/US20230251632A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0005Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/04Details of speech synthesis systems, e.g. synthesiser structure or memory management
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50391Robot

Definitions

  • the present disclosure relates to a robot and a control method thereof, and more particularly, to a robot capable of performing a motion while igniting and a control method thereof.
  • a conventional service robot extracts a keyword from a sentence to be uttered and acquires a motion corresponding to the extracted keyword.
  • the robot continuously performs similar motions.
  • the user feels that the robot malfunctions or the motion of the robot is unnatural.
  • One technical problem to be solved by the present invention is to obtain a motion corresponding to a sentence to be uttered by a robot in a current time section, different from a motion performed in a time section adjacent to the current time section.
  • a camera in the robot, a camera; speaker; driving unit; a memory storing at least one instruction; and a processor, wherein the processor detects a user based on an image acquired through the camera, obtains a plurality of sentences to be uttered by the robot to the user, and utters sentences among the plurality of sentences. identifying a first sentence to which a motion to be performed while performing is not assigned, identifying a second sentence to be uttered in a second time interval adjacent to a first time interval in which the first sentence is to be uttered, and identifying a plurality of sentences pre-stored in the memory.
  • a first motion different from a second motion assigned to the second sentence is identified as a motion corresponding to the first sentence, and the speaker is controlled to output a voice corresponding to the first sentence, and the voice is
  • a robot controlling the driving unit to perform the first motion while being output may be provided.
  • the processor identifies at least one motion whose similarity with the second motion is less than a predetermined value among the plurality of motions stored in advance, and randomly identifies one of the at least one motion to obtain the first motion. can do.
  • the processor may compare a histogram corresponding to the plurality of pre-stored motions with a histogram corresponding to the second motion to obtain a similarity between the plurality of pre-stored motions and the second motion.
  • the memory may store a similarity table including similarities between the plurality of previously stored motions including the second motion, and the processor may obtain the first motion based on the similarity table.
  • the processor identifies a third motion assigned to a third sentence to be uttered in a third time interval that is adjacent to the first time interval and different from the second time interval, and identifies each of the plurality of previously stored motions and the second motion. Obtaining a first similarity of a motion, obtaining a second similarity between each of the plurality of pre-stored motions and the third motion, and obtaining a plurality of the first similarity and the second similarity corresponding to each of the plurality of pre-stored motions.
  • Obtaining an average value of identifying at least one average value smaller than a predetermined value among the plurality of average values, identifying at least one motion corresponding to the at least one average value among the plurality of previously stored motions, and identifying the at least one One of the motions of may be randomly identified and obtained as the first motion.
  • the processor obtains a magnitude of the second motion based on information on the second motion, and if a ratio of the magnitude of the first motion to the magnitude of the second motion is greater than a threshold value, the first motion
  • the size of the first motion is adjusted based on the size of and the size of the second motion, and if the ratio of the size of the first motion to the size of the second motion is equal to or less than the threshold value, the size of the first motion size can be maintained.
  • the processor calculates a weight based on a ratio of the magnitude of the first motion to the magnitude of the second motion, and calculates the weight based on the weight such that the magnitude of the first motion is smaller than the magnitude of the second motion.
  • the size of the first motion can be adjusted.
  • detecting a user obtaining, by the robot, a plurality of sentences to be uttered to the sensed user; identifying a first sentence from among the plurality of sentences to which a motion to be performed while the robot utters is not assigned; A second sentence to be uttered in a second time interval adjacent to a first time interval in which the first sentence is to be uttered is identified, and a first motion different from a second motion allocated to the second sentence is selected from among a plurality of pre-stored motions. identifying a motion corresponding to the first sentence; and performing the first motion while uttering the first sentence.
  • the acquiring of the first motion may include identifying at least one motion having a similarity with the second motion smaller than a predetermined value among the plurality of previously stored motions, and randomly identifying one of the at least one motion. and obtaining the first motion by doing so.
  • the identifying of the at least one motion may include obtaining a similarity between the plurality of pre-stored motions and the second motion by comparing a histogram corresponding to the plurality of pre-stored motions with a histogram corresponding to the second motion.
  • the robot stores a similarity table including similarities between the plurality of pre-stored motions including the second motion, and the obtaining of the first motion includes obtaining the first motion based on the similarity table. can do.
  • the obtaining of the first motion may include identifying a third motion assigned to a third sentence to be uttered in a third time interval adjacent to the first time interval and different from the second time interval; obtaining a first similarity between each of the motions of and the second motion, and obtaining a second similarity between each of the plurality of pre-stored motions and the third motion; Obtaining a plurality of average values of similarity and the second similarity, identifying at least one average value smaller than a preset value among the plurality of average values, and at least one average value corresponding to the at least one average value among the plurality of pre-stored motions. It may include identifying a motion of and randomly identifying one of the at least one motion and obtaining the first motion.
  • the control method may further include obtaining a magnitude of the second motion based on information on the second motion; adjusting the size of the first motion based on the size of the first motion and the size of the second motion when the ratio of the size of the first motion to the size of the second motion is greater than a threshold value; and maintaining the size of the first motion when the ratio of the size of the first motion to the size of the second motion is equal to or less than the threshold value.
  • Adjusting the size of the first motion may include calculating a weight based on a ratio of the size of the first motion to the size of the second motion, the size of the first motion being the size of the second motion and adjusting the size of the first motion based on the weight to be smaller.
  • the robot may naturally perform various motions. Accordingly, the user's satisfaction may be improved.
  • FIG. 1 is a diagram for explaining the operation of a robot according to an embodiment of the present disclosure.
  • FIG. 2 is a block diagram showing the configuration of a robot according to an embodiment of the present disclosure.
  • FIG. 3 is a diagram for explaining a motion acquisition method according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram for explaining a motion acquisition method according to an embodiment of the present disclosure.
  • FIG. 5 is a diagram for explaining a similarity determination method between motions according to an embodiment of the present disclosure.
  • FIG. 6 is a diagram for explaining a motion size control method according to an embodiment of the present disclosure.
  • FIG. 7 is a flowchart illustrating a method for controlling a robot according to an embodiment of the present disclosure.
  • FIG. 8 is a flowchart illustrating a method for controlling a robot according to an embodiment of the present disclosure.
  • Embodiments of the present disclosure may apply various transformations and may have various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope to specific embodiments, and should be understood to include all transformations, equivalents, and substitutes included in the spirit and scope of technology disclosed. In describing the embodiments, if it is determined that a detailed description of a related known technology may obscure the subject matter, the detailed description will be omitted.
  • FIG. 1 is a diagram for explaining the operation of a robot according to an embodiment of the present disclosure.
  • the robot 100 may utter a plurality of sentences to the user 1 .
  • the robot 100 may utter a first sentence 11 for describing the product 2 and a second sentence 12 for introducing itself.
  • the robot 100 may perform a motion while uttering a sentence.
  • the robot 100 may perform a motion of shaking its head from side to side while uttering the second sentence 12 .
  • motions to be performed by the robot 100 may be previously assigned to at least some of the sentences to be uttered by the robot 100 .
  • the motion of shaking the head left and right may be selected by the designer of the robot 100 and assigned to the second sentence 12 in advance.
  • the robot 100 may identify a sentence to which motion is not assigned, and acquire a motion corresponding to the identified sentence. Also, the robot 100 may perform the obtained motion while uttering the identified sentence. For example, the robot 100 may acquire a motion of rotating its head toward the product 2 as a motion corresponding to the first sentence 11 . In addition, the robot 100 may perform a motion of turning its head toward the product 2 while uttering the first sentence 11 .
  • the first motion corresponding to the first sentence 11 uttered in an adjacent time interval and the second motion assigned to the second sentence 12 are the same or similar, the first motion and the second motion are clearly distinguished. It may not be. Accordingly, the user 1 may feel that the robot 100 malfunctions or operates unnaturally.
  • the robot 100 may acquire a different motion from the second motion assigned to the second sentence 12 as the first motion corresponding to the first sentence 11 .
  • the robot 100 may acquire at least one motion whose similarity with the second motion is lower than a preset value among a plurality of pre-stored motions.
  • the robot 100 may randomly identify one motion among the identified at least one motion and acquire the identified one motion as the first motion.
  • the degree of similarity between the first motion and the second motion is lower than a predetermined value, the first motion and the second motion can be clearly distinguished. Accordingly, the user 1 can feel that the robot 100 operates naturally.
  • the first motion is randomly selected, the motion performed each time the robot 100 utters the first sentence 11 may be different. That is, the motion of the robot 100 can be varied. Accordingly, the user 1 feels that the robot 100 operates more naturally, and the satisfaction of the user 1 can be improved.
  • FIG. 2 is a block diagram showing the configuration of a robot according to an embodiment of the present disclosure.
  • the robot 100 includes a sensor unit 110, a touch screen 120, a microphone 130, a speaker 140, a light emitting unit 150, a driving unit 160, a communication interface 170, A memory 180 and a processor 190 may be included.
  • the robot 100 may be a service robot.
  • the configuration of the electronic device 100 is not limited to the configuration shown in FIG. 2, and configurations obvious to those skilled in the art may be added.
  • the sensor unit 110 may include a camera 111 , a depth sensor 112 , and an IMU sensor 113 .
  • the camera 111 is a component for obtaining an image taken around the robot 100.
  • the processor 190 may recognize a user by analyzing a captured image obtained through the camera 111 .
  • the processor 190 may recognize a user included in the captured image by inputting the captured image to the object recognition model.
  • the object recognition model is an artificial neural network model learned to recognize an object included in an image, and may be stored in the memory 180 .
  • the camera 111 may include various types of image sensors.
  • the camera 111 may include at least one of a complementary metal oxide semiconductor (CMOS) image sensor and a charge coupled device (CCD) image sensor.
  • CMOS complementary metal oxide semiconductor
  • CCD charge coupled device
  • the depth sensor 112 is a component for detecting obstacles around the robot 100 .
  • the processor 190 may obtain a distance from the robot 100 to an obstacle based on a sensing value of the depth sensor 112 .
  • the depth sensor 112 may include a light detection and ranging (LiDAR) sensor.
  • the depth sensor 112 may include a radar sensor and a depth camera.
  • the IMU sensor 113 is a component for acquiring posture information of the robot 100 .
  • the IMU sensor 113 may include a gyro sensor and a geomagnetic sensor.
  • the touch screen 120 may obtain a user's touch input and display a response message corresponding to the user's command. For example, the touch screen 120 may display a UI element corresponding to a product description request. The touch screen 120 may obtain a user's touch input touching a UI element. When a user's touch input is obtained, the touch screen 120 may display a response message including text for product description.
  • the microphone 130 may obtain a user's voice command.
  • the processor 190 may control the operation of the robot 100 based on a user's voice command obtained through the microphone 130 .
  • the microphone 130 may obtain a user's voice command requesting a product description ("Explain the product").
  • the processor 190 may control the touch screen 120 to display a text message describing the product.
  • the processor 190 may control the speaker 140 to output a voice message describing the product.
  • the speaker 140 may output a voice message.
  • the speaker 140 may output a voice message corresponding to a sentence introducing the robot 100 ("Hello, I am a Samsung bot").
  • the light emitting unit 150 may output light for displaying the face or expression of the robot 100 .
  • the light emitting unit 150 may include at least one LED module.
  • the driving unit 160 is a component for performing various motions of the robot 100.
  • the driving unit 160 may include a wheel for moving the robot 100 and a wheel driving motor for rotating the wheel.
  • the driving unit 160 may include a motor for moving a head, an arm, or a hand of the robot 100 .
  • the driving unit 160 may include a motor driving circuit that supplies driving current to various motors and a rotation sensor that detects rotational displacement and rotational speed of the motor.
  • the communication interface 170 includes at least one circuit and can communicate with various types of external devices.
  • the communication interface 170 includes a Bluetooth Low Energy (BLE) module, a Wi-Fi communication module, a cellular communication module, a 3G (3rd generation) mobile communication module, a 4G (4th generation) mobile communication module, and a 4th generation LTE (Long Term Evolution) communication module. , 5G (5th generation) mobile communication module.
  • BLE Bluetooth Low Energy
  • Wi-Fi Wireless Fidelity
  • the memory 180 may store an operating system (OS) for controlling the overall operation of the components of the robot 100 and commands or data related to the components of the robot 100 .
  • OS operating system
  • the memory 180 may store a sentence database 181 storing sentences to be uttered by the robot 100 to the user and a motion database 182 storing information on motions to be performed by the robot 100.
  • the sentence database 181 may store information about tokens constituting sentences and text corresponding to sentences. In the case of a motion-allocated sentence, motion identification information may be matched with the sentence and stored.
  • the motion database 182 may store information about motion.
  • the motion information may include rotation angles for each axis corresponding to each component (eg, head) of the robot 100 .
  • the rotation angle may include angles corresponding to each of a roll axis, a pitch axis, and a yaw axis.
  • the memory 180 may store data necessary for a module for controlling the operation of the robot 100 to perform various operations.
  • Modules for controlling the motion of the robot 100 include a user command acquisition module 191, a sentence acquisition module 192, a motion acquisition module 193, a motion size control module 194, and a motion control module 195. can do.
  • the memory 180 may be implemented as a non-volatile memory (ex: hard disk, solid state drive (SSD), flash memory), volatile memory, or the like.
  • the processor 190 may be electrically connected to the memory 180 to control overall functions and operations of the robot 100.
  • the processor 190 may load data stored in the non-volatile memory into the volatile memory for the modules 191 to 195 to perform various operations.
  • loading means an operation of loading and storing data stored in a non-volatile memory into a volatile memory so that the processor 190 can access the data.
  • the user command acquisition module 191 may acquire various user commands. For example, the user command acquisition module 191 may obtain a user's touch input for requesting a product description through the touch screen 120 . Alternatively, the user command acquisition module 191 may obtain a voice command requesting a product description through the microphone 130 .
  • the sentence acquisition module 192 may obtain a sentence to be uttered by the robot 100 to the user.
  • a plurality of sentences that the robot 100 may utter to the user may be stored in the sentence database 181 .
  • a plurality of sentences may be grouped into sentence sets according to tasks of the robot 100 . For example, a plurality of sentences corresponding to a task describing a refrigerator may constitute one set of sentences.
  • the sentence acquiring module 192 may acquire a preset sentence when a trigger event is detected.
  • the trigger event may include an event in which a user is recognized within a predetermined distance from the robot 100 .
  • the robot 100 is a robot for describing a specific product (eg, a refrigerator)
  • the sentence obtaining module 192 may obtain a sentence describing the specific product.
  • the sentence acquiring module 192 may obtain a sentence to respond to the user command based on the user command. For example, when a user command requesting a description of the refrigerator is obtained, a plurality of sentences for the description of the refrigerator may be obtained based on the user command.
  • the sentence obtaining module 192 may obtain a sentence corresponding to the user's voice by performing natural language processing (NLP) on the user's voice.
  • NLP natural language processing
  • a natural language processing module may be stored in the memory 180 .
  • the natural language processing module includes a speech recognition module, a natural language understanding module, a dialog management module, a natural language generation module, and a speech synthesis module. ) may be included.
  • the motion acquisition module 193 may acquire motions corresponding to the plurality of sentences acquired through the sentence acquisition module 192 .
  • the plurality of sentences acquired through the sentence acquiring module 192 may include sentences to which motion is assigned and sentences to which motion is not assigned.
  • the motion acquisition module 193 may acquire a motion corresponding to a sentence to which motion is not assigned.
  • the plurality of sentences may include a first sentence to which no motion is assigned and a second sentence to which a second motion is assigned. At this time, the motion acquisition module 193 may acquire a first motion corresponding to the first sentence.
  • the motion acquisition module 193 may identify a first sentence to which motion is not assigned.
  • the motion acquisition module 193 may identify a second sentence to be uttered in a second time interval adjacent to the first time interval in which the first sentence is to be uttered.
  • the motion acquisition module 193 may obtain, as the first motion, a different motion from the second motion assigned to the second sentence among the plurality of motions stored in the motion database 182 .
  • the motion acquisition module 193 may identify at least one motion whose similarity with the second motion is smaller than a predetermined value (eg, 0.45) among a plurality of motions stored in the motion database 182 .
  • the motion acquisition module 193 may randomly select and acquire one of the identified at least one motion as the first motion.
  • the motion acquisition module 193 may identify at least one motion based on the similarity table stored in the memory 180 .
  • the similarity table may include similarities between a plurality of motions stored in the motion database 182 .
  • the motion acquisition module 193 may compare a plurality of histograms corresponding to each of a plurality of motions stored in the motion database 182 to obtain a similarity between the plurality of motions.
  • a plurality of sentences to be uttered in a time section adjacent to a first time section in which the first sentence is to be uttered may exist, and motion may be assigned to each of the plurality of sentences.
  • a second motion is assigned to a second sentence to be uttered in a second time section, which is a time section before the first time section
  • a third motion is assigned to a second sentence to be uttered in a third time section, which is a time section after the first time section.
  • a third motion may be assigned to the sentence.
  • the motion acquisition module 193 may obtain a first similarity between each of the plurality of motions stored in the motion database 182 and the second motion, and obtain a second similarity between each of the plurality of motions stored in the motion database 182 and the third motion. there is.
  • the motion acquisition module 193 may obtain a plurality of average values of first similarity and second similarity corresponding to each of a plurality of stored motions.
  • the motion acquisition module 193 may identify at least one average value smaller than a preset value among the plurality of obtained average values.
  • the motion acquisition module 193 may identify at least one motion corresponding to the identified at least one average value among a plurality of stored motions.
  • the motion acquisition module 193 may acquire the first motion by randomly selecting one of the identified at least one motion.
  • the motion acquisition module 193 may acquire motions corresponding to only some sentences, instead of acquiring motions corresponding to all sentences to which no motion is assigned. For example, the motion acquisition module 193 identifies a sentence that takes longer to utter than a predetermined value (eg, 5 seconds) among a plurality of sentences to which motion is not assigned, and detects a motion corresponding to the identified sentence. can be obtained That is, the motion acquisition module 193 may not acquire a corresponding motion for a sentence in which the time required for utterance is less than or equal to a preset value. This is because if the sentence is too short, the robot 100 may not be able to finish performing the motion while uttering the sentence.
  • a predetermined value eg, 5 seconds
  • the motion size control module 194 may adjust the size of the first motion based on the size of the first motion and the size of the second motion.
  • the motion size control module 194 may compare the size of the first motion and the size of the second motion to determine whether to adjust the size of the first motion. For example, if the ratio of the magnitude of the first motion to the magnitude of the second motion is greater than a threshold value (eg, 0.5), the motion magnitude control module 194 may adjust the magnitude of the first motion. On the other hand, if the ratio of the magnitude of the first motion to the magnitude of the second motion is equal to or less than the threshold value, the motion magnitude control module 194 may maintain the magnitude of the first motion.
  • a threshold value eg, 0.5
  • the motion size control module 194 may obtain a motion size based on a rotation angle of the robot 100 or a component (eg, head) of the robot 100 corresponding to the motion.
  • the motion size control module 194 may obtain the maximum value of the rotation angle for each axis as the motion size.
  • the rotation range along the roll axis of the robot 100 corresponding to the first motion is -10 degrees to +10 degrees
  • the rotation range along the pitch axis is -30 degrees to +30 degrees
  • the yaw axis is
  • the magnitude of the first motion may be 30 degrees. Accordingly, the magnitude of the motion may increase as the rotation angle of the robot 100 corresponding to the motion increases.
  • the motion magnitude control module 194 obtains a weight based on the magnitude of the first motion and the magnitude of the second motion, and based on the weight, the magnitude of the first motion is smaller than the magnitude of the second motion. can be adjusted. For example, the motion magnitude control module 194 may obtain a ratio of the magnitude of the first motion to the magnitude of the second motion as a weight. The motion size control module 194 may adjust the size of the first motion by multiplying the weight by the rotation angle for each axis corresponding to the first motion.
  • the motion control module 195 may control the motion of the robot 100 based on the first sentence and the first motion.
  • the operation control module 195 may control the speaker 140 to output a first voice message corresponding to the first sentence.
  • the motion control module 195 may control the driving unit 160 to perform the first motion while the first voice message is being output.
  • the motion control module 195 may synchronize a time at which the first voice message is output and a time at which the first motion is performed.
  • the operation control module 195 may control the output timing of the first voice message and the execution timing of the first motion so that the timing at which the first voice message starts to be output corresponds to the timing at which the first motion starts to be performed.
  • the operation control module 195 may control the output timing of the first voice message and the execution timing of the first motion so that the timing at which the output of the first voice message is completed corresponds to the timing at which the execution of the first motion is completed.
  • FIG. 3 is a diagram for explaining a motion acquisition method according to an embodiment of the present disclosure.
  • the robot 100 may identify a sentence to which motion is not assigned among a plurality of sentences to be uttered to a user. Also, the robot 100 may acquire a sentence that takes longer to utter than a predetermined time from among the identified sentences. For example, the robot 100 may identify the first sentence 31 and the third sentence 33 to which no motion is assigned. In addition, the robot 100 may obtain the first sentence 31 for which the time required for utterance is greater than the preset time.
  • the robot 100 may obtain a first sentence corresponding to the first sentence 31 .
  • the robot 100 may identify a second sentence 32 uttered in a second time period T2 adjacent to the first time period T1 in which the first sentence 31 is to be uttered.
  • the robot 100 may obtain identification information (ID 1) of the second motion (M-Intro) assigned to the second sentence 32.
  • the robot 100 may acquire the first motion based on the identification information (ID 1) of the second motion (M-Intro) and the similarity table (ST).
  • the similarity table ST may include similarities between predetermined motions performed by the robot 100 .
  • the higher the number the higher the similarity. For example, a similarity of 1 means that the motions are exactly the same.
  • the robot 100 determines at least one motion whose similarity with the second motion (M-Intro) is smaller than a preset value (eg, 0.5). can identify. Then, the robot 100 may randomly identify one of the identified at least one motion and acquire it as the first motion. For example, the robot 100 may acquire one of a plurality of motions corresponding to a plurality of pieces of identification information including ID 2 and ID N-1 as a first motion.
  • a preset value eg, 0.5
  • FIG. 4 is a diagram for explaining a motion acquisition method according to an embodiment of the present disclosure.
  • the robot 100 may obtain a first sentence 41 , a second sentence 42 , and a third sentence 43 to be uttered to the user.
  • Each of the first sentence 41, the second sentence 42, and the third sentence 43 may be uttered in the first time interval T1, the second time interval T2, and the third time interval T3.
  • the first time interval T1 may be adjacent to the second time interval T2 and the third time interval T3.
  • the second motion (M-Intro) may be assigned to the second sentence 42
  • the third motion (M-Left) may be assigned to the third sentence 43.
  • the robot 100 may obtain a first motion corresponding to the first sentence 41 to which motion is not assigned.
  • the robot 100 may identify at least one motion based on a first similarity between a plurality of pre-stored motions and the second motion 42 and a second similarity between a plurality of pre-stored motions and the third motion 43 .
  • the similarity table ST may include similarities between a plurality of pre-stored motions.
  • the robot 100 obtains a first similarity S1 between the plurality of motions and the second motion 42 corresponding to each of the plurality of motions and a second similarity S2 between the plurality of motions and the third motion 43.
  • can The robot 100 may obtain an average value Avg of the first similarity S1 and the second similarity S2.
  • the robot 100 may acquire at least one motion in which the average value Avg is smaller than a preset value (eg, 0.5). Then, the robot 100 may randomly identify one of the identified at least one motion and acquire it as the first motion. For example, the robot 100 may acquire one of a plurality of motions corresponding to a plurality of pieces of identification information including ID 2 and ID N-1 as a first motion.
  • a preset value eg, 0.5
  • FIG. 5 is a diagram for explaining a similarity determination method between motions according to an embodiment of the present disclosure.
  • the robot 100 may acquire information 51 about the first motion.
  • the robot 100 may obtain a first histogram 52 corresponding to the information 51 on the first motion.
  • the robot 100 may acquire first histograms 52 respectively corresponding to three axes (roll, pitch, and yaw). In this way, the robot 100 may obtain a histogram corresponding to each of a plurality of pre-stored motions.
  • the robot 100 may obtain a similarity between motions by comparing histograms corresponding to each motion. For example, the robot 100 compares a first histogram 52 corresponding to the first motion and a second histogram 53 corresponding to the second motion to obtain a similarity between the first motion and the second motion. can The robot 100 may calculate similarity corresponding to each axis by comparing histograms corresponding to each axis, and obtain a final similarity based on an average of similarities corresponding to each axis. For example, the robot 100 may obtain a first similarity with respect to the roll axis of the first histogram 52 and the second histogram 53 .
  • the robot 100 may obtain a second similarity with respect to the pitch axis of the first histogram 52 and the second histogram 53 .
  • the robot 100 may obtain a second similarity with respect to the yaw axis of the first histogram 52 and the second histogram 53 .
  • the robot 100 may obtain a final similarity between the first motion and the second motion based on the average of the first similarity, the second similarity, and the third similarity.
  • the similarity table ST of FIGS. 3 and 4 may be obtained and stored in the memory 180 .
  • FIG. 6 is a diagram for explaining a motion size control method according to an embodiment of the present disclosure.
  • the robot 100 may obtain first motion information 63 corresponding to the first sentence 61 and second motion information 64 corresponding to the second sentence 62 .
  • Each motion information may include a rotation angle of the robot 100 or a configuration of the robot 100 corresponding to each motion.
  • the robot 100 may determine whether to adjust the size of the first motion based on the first motion information 63 and the second motion information 64 .
  • the robot 100 may obtain a first maximum value RMAX-a of a rotation angle corresponding to the first motion based on the first motion information 63 .
  • the robot 100 may obtain the second maximum value RMAX-b of the magnitude of the rotation angle corresponding to the second motion. If the ratio of the first maximum value RMAX-a to the second maximum value RMAX-b (ie, RMAX-a/RMAX-b) is greater than the threshold value (eg, 0.5), the robot 100 1 You can adjust the size of the motion. If the ratio of the first maximum value RMAX-a to the second maximum value RMAX-b is less than or equal to a threshold value (eg, 0.5), the robot 100 may not adjust the size of the first motion.
  • a threshold value eg, 0.5
  • the robot 100 may adjust the size of the first motion based on the size of the first motion and the size of the second motion. For example, the robot 100 obtains a ratio (ie, RMAX-a/RMAX-b) of the first maximum value RMAX-a to the second maximum value RMAX-b as the weight w. can The robot 100 may adjust the size of the first motion based on the first motion information 63 and the weight w. The robot 100 may obtain third motion information 65 by multiplying a rotation angle corresponding to the first motion by a weight w. The third motion information 65 may correspond to the first sentence 61 .
  • FIG. 7 is a flowchart illustrating a method for controlling a robot according to an embodiment of the present disclosure.
  • the robot 100 may detect a user (S710).
  • the robot 100 may recognize a user by analyzing a captured image obtained through a camera.
  • the robot 100 may acquire a plurality of sentences to be uttered to the user (S720).
  • the robot 100 may acquire a plurality of sentences previously stored in the memory 180 .
  • the robot 100 may acquire a plurality of sentences based on a user command.
  • the robot 100 may acquire a plurality of sentences for describing the refrigerator based on a user command (“Tell me about this refrigerator”).
  • the robot 100 may identify a first sentence to which a motion to be performed while the robot 100 utters is not assigned among the obtained plurality of sentences (S730). For example, the robot 100 may identify the first sentence 11 of FIG. 1 .
  • the robot 100 identifies a second sentence to be uttered in a second time interval adjacent to a first time interval in which the first sentence is to be uttered, and a first motion different from the second motion assigned to the second sentence among a plurality of pre-stored motions.
  • a motion corresponding to the first sentence may be acquired (S740).
  • the robot 100 may identify at least one motion whose similarity with the second motion is smaller than a predetermined value among a plurality of pre-stored motions.
  • the robot 100 may compare a histogram corresponding to a plurality of pre-stored motions and a histogram corresponding to the second motion to obtain a similarity between the plurality of pre-stored motions and the second motion.
  • the robot 100 may identify at least one motion based on a similarity table including similarity between a plurality of previously stored motions.
  • time intervals adjacent to the first time interval may be plural.
  • the first time interval may be adjacent to the second time interval and the third time interval.
  • the robot 100 may identify a third motion assigned to a third sentence to be uttered in a third time interval.
  • the robot 100 may obtain a first similarity between each of a plurality of pre-stored motions and the second motion, and obtain a second similarity between each of a plurality of pre-stored motions and the third motion.
  • the robot 100 may obtain a plurality of average values of the first similarity and the second similarity corresponding to each pre-stored motion.
  • the robot 100 may identify at least one average value smaller than a predetermined value among a plurality of average values, and identify at least one motion corresponding to the identified at least one average value among a plurality of pre-stored motions.
  • the robot 100 may randomly select one of the identified at least one motion and acquire it as the first motion. Then, the robot 100 may perform the first motion while uttering the first sentence (S750).
  • the robot 100 may adjust the size of the first motion.
  • the robot 100 may acquire the magnitude of the second motion based on information on the second motion.
  • the robot 100 may adjust the magnitude of the first motion based on the magnitude of the first motion and the magnitude of the second motion.
  • the robot 100 may calculate a weight based on a ratio of the magnitude of the first motion to the magnitude of the second motion.
  • the robot 100 may adjust the size of the first motion based on a weight so that the size of the first motion is smaller than the size of the second motion. If the ratio of the magnitude of the first motion to the magnitude of the second motion is equal to or less than the threshold value, the robot 100 may maintain the magnitude of the first motion.
  • the robot 100 may acquire a plurality of sentence sets in batches, but may also generate sentences in real time while interacting with a user.
  • FIG. 8 is a flowchart illustrating a method for controlling a robot according to an embodiment of the present disclosure.
  • the robot 100 may obtain a sentence to be uttered from the user (S810).
  • the robot 100 may acquire a sentence to be uttered to the user when a trigger event occurs or a user command is obtained.
  • the robot 100 may obtain a sentence pre-stored in the memory 180 based on a trigger event or a user command.
  • the robot 100 may generate a sentence to be uttered to the user based on a trigger event or a user command. For example, when a user voice command ("Where is the bathroom?") is obtained, a response sentence (“Go straight this way for 20m”) may be acquired.
  • the robot 100 may identify whether motion is assigned to the acquired sentence (S820). For example, a sentence to which a motion is assigned may be matched with identification information of the assigned motion and stored in the memory 180 . The robot 100 may determine whether motion is assigned to the acquired sentence by identifying whether or not there is identification information on motion that is matched with the acquired sentence and stored. When the robot 100 generates a sentence, the robot 100 may identify whether the generated sentence is stored in the memory 180 . When the generated sentence is stored in the memory 180, the robot 100 may determine whether motion is assigned to the generated sentence by identifying whether motion identification information that is stored in matching with the generated sentence exists. .
  • the robot 100 may not acquire motion corresponding to the acquired sentence (S850).
  • the robot 100 may identify whether the time required to utter the acquired sentence is longer than a preset time (S830).
  • the robot 100 may obtain a voice message corresponding to the acquired sentence based on a Text To Speech (TTS) module.
  • TTS Text To Speech
  • the robot 100 may determine whether the length of the voice message is longer than a preset time.
  • the robot 100 may obtain a motion corresponding to the acquired sentence (S840).
  • the robot 100 may identify a motion corresponding to a sentence uttered in a time section adjacent to a time section in which the obtained sentence is to be uttered, and acquire a motion having a similarity with the identified motion smaller than a predetermined value.
  • the robot 100 may not obtain a motion corresponding to the acquired sentence (S850).
  • a predetermined time S830-N
  • the robot 100 may not obtain a motion corresponding to the acquired sentence (S850).
  • the robot 100 continuously utters voice messages corresponding to several sentences and performs a motion corresponding to a voice message having a length shorter than a preset time, an unnatural motion of the robot 100 may be produced. .
  • the robot 100 may not acquire a motion corresponding to the obtained sentence when the time required to utter the acquired sentence is less than a preset time. For example, if the length (1 second) of “Hello” in FIG. 1 is less than or equal to a preset time (5 seconds), the robot 100 may not perform a motion when uttering “Hello”.
  • Computer instructions for performing processing operations according to various embodiments of the present disclosure described above may be stored in a non-transitory computer-readable medium.
  • Computer instructions stored in such a non-transitory computer readable medium may cause a specific device to perform processing operations according to various embodiments described above when executed by a processor.
  • a non-transitory computer readable medium is a medium that stores data semi-permanently and is readable by a device, not a medium that stores data for a short moment, such as a register, cache, or memory.
  • Specific examples of the non-transitory computer readable media may include CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Social Psychology (AREA)
  • Manufacturing & Machinery (AREA)
  • Psychiatry (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)

Abstract

로봇이 개시된다. 본 개시에 따른 로봇은, 카메라; 스피커; 구동부; 메모리; 및 프로세서;를 포함하고, 프로세서는, 카메라를 통해 획득된 이미지에 기초하여 사용자를 감지하고, 로봇이 사용자에게 발화할 복수의 문장을 획득하고, 복수의 문장 중 로봇이 발화하는 동안 수행할 모션이 할당되지 않은 제1 문장을 식별하고, 제1 문장이 발화될 제1 시간 구간과 인접한 제2 시간 구간에서 발화될 제2 문장을 식별하고, 메모리에 미리 저장된 복수의 모션 중 제2 문장에 할당된 제2 모션과 상이한 제1 모션을 제1 문장에 대응되는 모션으로 획득하고, 제1 문장에 대응되는 음성을 출력하도록 스피커를 제어하고, 음성이 출력되는 동안 제1 모션을 수행하도록 구동부를 제어한다.

Description

로봇 및 그 제어 방법
본 개시는 로봇 및 그 제어 방법으로, 보다 상세하게는, 발화하면서 모션을 수행할 수 있는 로봇 및 그 제어 방법에 관한 것이다.
전자 기술의 발달에 힘입어 다양한 서비스 로봇이 이용되고 있다. 예를 들어, 미술관에서 미술품을 설명해주거나 매장에서 제품을 설명해주는 서비스 로봇이 이용되고 있다.
한편, 종래의 서비스 로봇은 발화할 문장에서 키워드를 추출하고, 추출된 키워드에 대응되는 모션을 획득하였다. 이 경우, 연속되는 문장에서 유사한 키워드가 추출되면, 로봇은 유사한 모션을 연속으로 수행하게 된다. 로봇이 유사하거나 동일한 모션을 연속으로 수행하게 되면, 사용자는 로봇이 오작동하거나 로봇의 모션이 부자연스럽다고 느끼게 된다.
이에 따라, 로봇이 동일한 모션을 연속으로 수행하지 않으며 보다 자연스럽게 모션을 수행하도록 하기 위한 기술이 필요하다.
본 발명이 해결하고자 하는 일 기술적 과제는, 로봇이 현재 시간 구간에서 발화할 문장에 대응되는 모션으로서, 현재 시간 구간과 인접한 시간 구간에서 수행되는 모션과 상이한 모션을 획득하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상술한 기술적 과제를 해결하기 위한 본 개시의 예시적인 일 실시 예에 따르면, 로봇에 있어서, 카메라; 스피커; 구동부; 적어도 하나의 인스트럭션을 저장하는 메모리; 및 프로세서;를 포함하고, 상기 프로세서는, 상기 카메라를 통해 획득된 이미지에 기초하여 사용자를 감지하고, 상기 로봇이 상기 사용자에게 발화할 복수의 문장을 획득하고, 상기 복수의 문장 중 상기 로봇이 발화하는 동안 수행할 모션이 할당되지 않은 제1 문장을 식별하고, 상기 제1 문장이 발화될 제1 시간 구간과 인접한 제2 시간 구간에서 발화될 제2 문장을 식별하고, 상기 메모리에 미리 저장된 복수의 모션 중 상기 제2 문장에 할당된 제2 모션과 상이한 제1 모션을 상기 제1 문장에 대응되는 모션으로 식별하고, 상기 제1 문장에 대응되는 음성을 출력하도록 상기 스피커를 제어하고, 상기 음성이 출력되는 동안 상기 제1 모션을 수행하도록 상기 구동부를 제어하는 로봇이 제공될 수 있다.
상기 프로세서는, 상기 미리 저장된 복수의 모션 중 상기 제2 모션과의 유사도가 기설정된 값보다 작은 적어도 하나의 모션을 식별하고, 상기 적어도 하나의 모션 중 하나를 무작위로 식별하여 상기 제1 모션으로 획득할 수 있다.
상기 프로세서는, 상기 미리 저장된 복수의 모션에 대응되는 히스토그램과 상기 제2 모션에 대응되는 히스토그램을 비교하여 상기 미리 저장된 복수의 모션과 상기 제2 모션의 유사도를 획득할 수 있다.
상기 메모리는, 상기 제2 모션을 포함하는 상기 미리 저장된 복수의 모션 간의 유사도를 포함하는 유사도 테이블을 저장하고, 상기 프로세서는, 상기 유사도 테이블에 기초하여 상기 제1 모션을 획득할 수 있다.
상기 프로세서는, 상기 제1 시간 구간과 인접하며 상기 제2 시간 구간과 상이한 제3 시간 구간에서 발화될 제3 문장에 할당된 제3 모션을 식별하고, 상기 미리 저장된 복수의 모션 각각과 상기 제2 모션의 제1 유사도를 획득하고, 상기 미리 저장된 복수의 모션 각각과 상기 제3 모션의 제2 유사도를 획득하고, 상기 미리 저장된 복수의 모션 각각에 대응되는 상기 제1 유사도 및 상기 제2 유사도의 복수의 평균값을 획득하고, 상기 복수의 평균값 중 기설정된 값보다 작은 적어도 하나의 평균값을 식별하고, 상기 미리 저장된 복수의 모션 중 상기 적어도 하나의 평균값에 대응되는 적어도 하나의 모션을 식별하고, 상기 적어도 하나의 모션 중 하나를 무작위로 식별하여 상기 제1 모션으로 획득할 수 있다.
상기 프로세서는, 상기 제2 모션에 대한 정보에 기초하여 상기 제2 모션의 크기를 획득하고, 상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율이 임계값보다 크면, 상기 제1 모션의 크기 및 상기 제2 모션의 크기에 기초하여 상기 제1 모션의 크기를 조절하고, 상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율이 상기 임계값 이하이면, 상기 제1 모션의 크기를 유지할 수 있다.
상기 프로세서는, 상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율에 기초하여 가중치를 산출하고, 상기 제1 모션의 크기가 상기 제2 모션의 크기보다 작아지도록 상기 가중치에 기초하여 상기 제1 모션의 크기를 조절할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 예시적인 일 실시 예에 따르면, 로봇의 제어 방법에 있어서, 사용자를 감지하는 단계; 상기 로봇이 상기 감지된 사용자에게 발화할 복수의 문장을 획득하는 단계; 상기 복수의 문장 중 상기 로봇이 발화하는 동안 수행할 모션이 할당되지 않은 제1 문장을 식별하는 단계; 상기 제1 문장이 발화될 제1 시간 구간과 인접한 제2 시간 구간에서 발화될 제2 문장을 식별하고, 미리 저장된 복수의 모션 중 상기 제2 문장에 할당된 제2 모션과 상이한 제1 모션을 상기 제1 문장에 대응되는 모션으로 식별하는 단계; 및 상기 제1 문장을 발화하면서 상기 제1 모션을 수행하는 단계;를 포함하는 제어 방법이 제공될 수 있다.
상기 제1 모션을 획득하는 단계는, 상기 미리 저장된 복수의 모션 중 상기 제2 모션과의 유사도가 기설정된 값보다 작은 적어도 하나의 모션을 식별하는 단계 및 상기 적어도 하나의 모션 중 하나를 무작위로 식별하여 상기 제1 모션으로 획득하는 단계를 포함할 수 있다.
상기 적어도 하나의 모션을 식별하는 단계는, 상기 미리 저장된 복수의 모션에 대응되는 히스토그램과 상기 제2 모션에 대응되는 히스토그램을 비교하여 상기 미리 저장된 복수의 모션과 상기 제2 모션의 유사도를 획득하는 단계를 포함할 수 있다.
상기 로봇은, 상기 제2 모션을 포함하는 상기 미리 저장된 복수의 모션 간의 유사도를 포함하는 유사도 테이블을 저장하고, 상기 제1 모션을 획득하는 단계는, 상기 유사도 테이블에 기초하여 상기 제1 모션을 획득할 수 있다.
상기 제1 모션을 획득하는 단계는, 상기 제1 시간 구간과 인접하며 상기 제2 시간 구간과 상이한 제3 시간 구간에서 발화될 제3 문장에 할당된 제3 모션을 식별하는 단계, 상기 미리 저장된 복수의 모션 각각과 상기 제2 모션의 제1 유사도를 획득하고, 상기 미리 저장된 복수의 모션 각각과 상기 제3 모션의 제2 유사도를 획득하는 단계, 상기 미리 저장된 복수의 모션 각각에 대응되는 상기 제1 유사도 및 상기 제2 유사도의 복수의 평균값을 획득하는 단계, 상기 복수의 평균값 중 기설정된 값보다 작은 적어도 하나의 평균값을 식별하고, 상기 미리 저장된 복수의 모션 중 상기 적어도 하나의 평균값에 대응되는 적어도 하나의 모션을 식별하는 단계 및 상기 적어도 하나의 모션 중 하나를 무작위로 식별하여 상기 제1 모션으로 획득하는 단계를 포함할 수 있다.
상기 제어 방법은, 상기 제2 모션에 대한 정보에 기초하여 상기 제2 모션의 크기를 획득하는 단계; 상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율이 임계값보다 크면, 상기 제1 모션의 크기 및 상기 제2 모션의 크기에 기초하여 상기 제1 모션의 크기를 조절하는 단계; 및 상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율이 상기 임계값 이하이면, 상기 제1 모션의 크기를 유지하는 단계;를 더 포함할 수 있다.
상기 제1 모션의 크기를 조절하는 단계는, 상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율에 기초하여 가중치를 산출하는 단계, 상기 제1 모션의 크기가 상기 제2 모션의 크기보다 작아지도록 상기 가중치에 기초하여 상기 제1 모션의 크기를 조절하는 단계를 포함할 수 있다.
본 개시의 과제의 해결 수단이 상술한 해결 수단들로 제한되는 것은 아니며, 언급되지 아니한 해결 수단들은 본 명세서 및 첨부된 도면으로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 로봇은 다양한 모션을 자연스럽게 수행할 수 있다. 이에 따라, 사용자의 만족감이 향상될 수 있다.
그 외에 본 개시의 실시 예로 인하여 얻을 수 있거나 예측되는 효과에 대해서는 본 개시의 실시 예에 대한 상세한 설명에서 직접적 또는 암시적으로 개시하도록 한다. 예컨대, 본 개시의 실시 예에 따라 예측되는 다양한 효과에 대해서는 후술될 상세한 설명 내에서 개시될 것이다.
본 개시의 다른 양상, 이점 및 두드러진 특징들은 첨부된 도면과 관련하여 본 발명의 다양한 실시 예들을 개시하는 다음의 상세한 설명으로부터 당업자에게 명백해질 것이다.
본 개시의 특정 실시 예의 양상, 특징 및 이점은 첨부된 도면들을 참조하여 후술되는 설명을 통해 보다 명확해질 것이다.
도 1은 본 개시의 일 실시 예에 따른 로봇의 동작을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 도시한 블록도이다.
도 3은 본 개시의 일 실시 예에 따른 모션 획득 방법을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 모션 획득 방법을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 모션 간 유사도 판단 방법을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 모션 크기 제어 방법을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 도시한 순서도이다.
도 8은 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 나타내는 순서도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. 
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 개시의 일 실시 예에 따른 로봇의 동작을 설명하기 위한 도면이다.
도 1을 참조하면, 로봇(100)은 사용자(1)에게 복수의 문장을 발화할 수 있다. 예를 들어, 로봇(100)은 제품(2)을 설명하기 위한 제1 문장(11), 자신을 소개하기 위한 제2 문장(12)을 발화할 수 있다.
로봇(100)은 문장을 발화하는 동안 모션을 수행할 수 있다. 예를 들어, 로봇(100)은 제2 문장(12)을 발화하는 동안 고개를 좌우로 흔드는 모션을 수행할 수 있다. 한편, 로봇(100)이 발화할 문장 중 적어도 일부에는 로봇(100)이 수행할 모션이 미리 할당되어 있을 수 있다. 예를 들어, 고개를 좌우로 흔드는 모션은 로봇(100) 설계자에 의해 선택되어 제2 문장(12)에 미리 할당되어 있을 수 있다.
로봇(100)이 발화할 문장 중에서는 모션이 할당되지 않은 문장이 있을 수 있다. 예를 들어, 제1 문장(11)에는 모션이 할당되어 있지 않을 수 있다. 로봇(100)은 모션이 할당되지 않은 문장을 식별하고, 식별된 문장에 대응되는 모션을 획득할 수 있다. 그리고, 로봇(100)은 식별된 문장을 발화하는 동안 획득된 모션을 수행할 수 있다. 예를 들어, 로봇(100)은 제1 문장(11)에 대응되는 모션으로 고개를 제품(2)을 향해 회전하는 모션을 획득할 수 있다. 그리고, 로봇(100)은 제1 문장(11)을 발화하면서 제품(2)을 향해 고개를 회전하는 모션을 수행할 수 있다.
한편, 인접한 시간 구간에서 발화되는 제1 문장(11)에 대응되는 제1 모션과 및 제2 문장(12)에 할당된 제2 모션이 동일하거나 유사하면, 제1 모션 및 제2 모션이 명확히 구분되지 않을 수 있다. 이에 따라, 사용자(1)는 로봇(100)이 오작동하거나 부자연스럽게 동작한다고 느낄 수 있다.
이를 방지하기 위해, 로봇(100)은 제2 문장(12)에 할당된 제2 모션과 상이한 모션을 제1 문장(11)에 대응되는 제1 모션으로 획득할 수 있다. 예를 들어, 로봇(100)은 미리 저장된 복수의 모션 중 제2 모션과의 유사도가 기설정된 값보다 낮은 적어도 하나의 모션을 획득할 수 있다. 그리고, 로봇(100)은 식별된 적어도 하나의 모션 중 무작위로 하나의 모션을 식별하고, 식별된 하나의 모션을 제1 모션으로 획득할 수 있다.
제1 모션과 제2 모션의 유사도는 기설정된 값보다 낮으므로, 제1 모션 및 제2 모션은 명확히 구분될 수 있다. 이에 따라, 사용자(1)는 로봇(100)이 자연스럽게 동작한다고 느낄 수 있다. 또한, 제1 모션은 무작위로 선별되므로, 로봇(100)이 제1 문장(11)을 발화할 때마다 수행하는 모션이 달라질 수 있다. 즉, 로봇(100)의 모션이 다양해질 수 있다. 이에 따라, 사용자(1)는 로봇(100)이 보다 자연스럽게 동작한다고 느끼며, 사용자(1)의 만족감이 향상될 수 있다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 도시한 블록도이다.
도 2를 참조하면, 로봇(100)은 센서부(110), 터치 스크린(120), 마이크(130), 스피커(140), 발광부(150), 구동부(160), 통신 인터페이스(170), 메모리(180) 및 프로세서(190)를 포함할 수 있다. 예를 들어, 로봇(100)은 서비스 로봇일 수 있다. 한편, 전자 장치(100)의 구성이 도 2에 도시된 구성으로 한정되는 것은 아니며, 당업자에게 자명한 구성이 추가될 수도 있다.
센서부(110)는 카메라(111), 뎁스 센서(112) 및 IMU 센서(113)를 포함할 수 있다. 카메라(111)는 로봇(100) 주변을 촬영한 이미지를 획득하기 위한 구성이다. 프로세서(190)는 카메라(111)를 통해 획득된 촬영 이미지를 분석하여 사용자를 인식할 수 있다. 예를 들어, 프로세서(190)는 오브젝트 인식 모델에 촬영 이미지를 입력하여 촬영 이미지에 포함된 사용자를 인식할 수 있다. 여기서, 오브젝트 인식 모델은 이미지에 포함된 오브젝트를 인식하도록 학습된 인공 신경망 모델로서, 메모리(180)에 저장되어 있을 수 있다. 한편, 카메라(111)는 다양한 유형의 이미지 센서를 포함할 수 있다. 예로, 카메라(111)는 CMOS(Complementary Metal Oxide Semiconductor) 이미지 센서 및 CCD(Charge Coupled Device) 이미지 센서 중 적어도 하나를 포함할 수 있다.
뎁스 센서(112)는 로봇(100) 주변의 장애물을 감지하기 위한 구성이다. 프로세서(190)는 뎁스 센서(112)의 센싱값에 기초하여 로봇(100)으로부터 장애물까지의 거리를 획득할 수 있다. 예를 들어, 뎁스 센서(112)는 라이다(light detection and ranging, LiDAR) 센서를 포함할 수 있다. 또는, 뎁스 센서(112)는 레이더(Radar) 센서 및 뎁스 카메라를 포함할 수 있다.
IMU 센서(113)는 로봇(100)의 자세 정보를 획득하기 위한 구성이다. IMU 센서(113)는 자이로 센서 및 지자기 센서를 포함할 수 있다.
터치 스크린(120)은 사용자의 터치 입력을 획득하고 사용자 명령에 대응되는 응답 메시지를 표시할 수 있다. 예를 들어, 터치 스크린(120)은 제품 설명 요청에 대응되는 UI 엘리먼트를 표시할 수 있다. 터치 스크린(120)은 UI 엘리먼트를 터치하는 사용자의 터치 입력을 획득할 수 있다. 사용자의 터치 입력이 획득되면, 터치 스크린(120)은 제품 설명을 위한 텍스트를 포함하는 응답 메시지를 표시할 수 있다.
마이크(130)는 사용자의 음성 명령을 획득할 수 있다. 프로세서(190)는 마이크(130)를 통해 획득되는 사용자의 음성 명령에 기초하여 로봇(100)의 동작을 제어할 수 있다. 예를 들어, 마이크(130)는 제품 설명을 요청하는 사용자의 음성 명령("제품 설명해줘")을 획득할 수 있다. 이 때, 프로세서(190)는 제품을 설명하는 문자 메시지를 표시하도록 터치 스크린(120)을 제어할 수 있다. 또는, 프로세서(190)는 제품을 설명하는 음성 메시지를 출력하도록 스피커(140)를 제어할 수 있다.
스피커(140)는 음성 메시지를 출력할 수 있다. 예를 들어, 스피커(140)는 로봇(100)을 소개하는 문장("안녕하세요, 저는 삼성봇입니다")에 대응되는 음성 메시지를 출력할 수 있다.
발광부(150)는 로봇(100)의 얼굴이나 표정을 나타내기 위한 광을 출력할 수 있다. 발광부(150)는 적어도 하나의 LED 모듈을 포함할 수 있다.
구동부(160)는 로봇(100)의 각종 모션을 수행하기 위한 구성이다. 예를 들어, 구동부(160)는 로봇(100)을 이동 시키는 바퀴 및 바퀴를 회전시키는 바퀴 구동 모터를 포함할 수 있다. 또는, 구동부(160)는 로봇(100)의 헤드(head), 암(arm) 또는 핸드(hand)를 이동시키기 위한 모터를 포함할 수 있다. 구동부(160)는 각종 모터에 구동 전류를 공급하는 모터 구동 회로, 모터의 회전 변위 및 회전 속도를 검출하는 회전 감지 센서를 포함할 수 있다.
통신 인터페이스(170)는 적어도 하나의 회로를 포함하며 다양한 유형의 외부 기기와 통신을 수행할 수 있다. 통신 인터페이스(170)는 BLE(Bluetooth Low Energy) 모듈, 와이파이 통신 모듈, 셀룰러 통신모듈, 3G(3세대) 이동통신 모듈, 4G(4세대) 이동통신 모듈, 4세대 LTE(Long Term Evolution) 통신 모듈, 5G(5세대) 이동통신 모듈 중 적어도 하나를 포함할 수 있다.
메모리(180)는 로봇(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 로봇(100)의 구성요소와 관련된 명령 또는 데이터를 저장할 수 있다. 예를 들어, 메모리(180)는 로봇(100)이 사용자에게 발화할 문장이 저장된 문장 데이터베이스(181), 로봇(100)이 수행할 모션에 대한 정보가 저장된 모션 데이터베이스(182)를 저장할 수 있다. 문장 데이터베이스(181)는 문장을 구성하는 토큰, 문장에 대응되는 텍스트에 관한 정보를 저장할 수 있다. 모션이 할당된 문장의 경우, 모션의 식별 정보가 문장과 함께 매칭되어 저장되어 있을 수 있다. 모션 데이터베이스(182)는 모션에 대한 정보를 저장할 수 있다. 모션에 대한 정보는, 로봇(100)의 각 구성요소(예로, 헤드)에 대응되는 축 별 회전 각도를 포함할 수 있다. 예를 들어, 회전 각도는 롤(roll) 축, 피치(pitch) 축 및 요(yaw) 축 각각에 대응되는 각도를 포함할 수 있다.
메모리(180)는 로봇(100)의 동작을 제어하기 위한 모듈이 각종 동작을 수행하기 위해 필요한 데이터를 저장할 수 있다. 로봇(100)의 동작을 제어하기 위한 모듈은 사용자 명령 획득 모듈(191), 문장 획득 모듈(192), 모션 획득 모듈(193), 모션 크기 제어 모듈(194) 및 동작 제어 모듈(195)을 포함할 수 있다. 한편, 메모리(180)는 비휘발성 메모리(ex: 하드 디스크, SSD(Solid state drive), 플래시 메모리), 휘발성 메모리 등으로 구현될 수 있다.
프로세서(190)는 메모리(180)와 전기적으로 연결되어 로봇(100)의 전반적인 기능 및 동작을 제어할 수 있다. 프로세서(190)는 비휘발성 메모리에 저장되어 있는 모듈(191 내지 195)이 각종 동작을 수행하기 위한 데이터를 휘발성 메모리로 로딩(loading)할 수 있다. 여기서, 로딩이란 프로세서(190)가 데이터에 액세스할 수 있도록 비휘발성 메모리에 저장된 데이터를 휘발성 메모리에 불러들여 저장하는 동작을 의미한다.
사용자 명령 획득 모듈(191)은 각종 사용자 명령을 획득할 수 있다. 예를 들어, 사용자 명령 획득 모듈(191)은 터치 스크린(120)을 통해 제품 설명을 요청하기 위한 사용자의 터치 입력을 획득할 수 있다. 또는, 사용자 명령 획득 모듈(191)은 마이크(130)를 통해 제품 설명을 요청하는 음성 명령을 획득할 수 있다.
문장 획득 모듈(192)은 로봇(100)이 사용자에게 발화할 문장을 획득할 수 있다. 로봇(100)이 사용자에게 발화할 수 있는 복수의 문장들은 문장 데이터베이스(181)에 저장되어 있을 수 있다. 복수의 문장들은 로봇(100)의 태스크에 따라 문장 셋(set)으로 그룹화되어 있을 수 있다. 예를 들어, 냉장고를 설명하는 태스크에 대응되는 복수의 문장이 하나의 문장 셋을 구성할 수 있다.
문장 획득 모듈(192)은 트리거 이벤트가 감지되면 기설정된 문장을 획득할 수 있다. 예를 들어, 트리거 이벤트는 로봇(100)으로부터 기설정된 거리 이내에서 사용자가 인식되는 이벤트를 포함할 수 있다. 로봇(100)이 특정 제품(예로, 냉장고)을 설명하기 위한 로봇인 경우, 문장 획득 모듈(192)은 특정 제품을 설명하는 문장을 획득할 수 있다.
문장 획득 모듈(192)은 사용자 명령에 기초하여 사용자 명령에 응답할 문장을 획득할 수 있다. 예를 들어, 냉장고 설명을 요청하는 사용자 명령이 획득되면, 사용자 명령에 기초하여 냉장고 설명을 위한 복수의 문장을 획득할 수 있다.
문장 획득 모듈(192)은 사용자 음성에 대해 자연어 처리(NLP: Natural Language Processing)를 수행하여 사용자 음성에 응답하는 문장을 획득할 수 있다. 이를 위해, 메모리(180)에는 자연어 처리 모듈이 저장되어 있을 수 있다. 자연어 처리 모듈은, 음성 인식 모듈(Speech Recognition module), 언어 이해 모듈(Natural Language Understanding module), 대화 관리 모듈(Dialog Management module), 언어 생성 모듈(Natural Language Generation module) 및 음성 합성 모듈(Speech Synthesis module)을 포함할 수 있다.
모션 획득 모듈(193)은 문장 획득 모듈(192)을 통해 획득된 복수의 문장에 대응되는 모션을 획득할 수 있다. 문장 획득 모듈(192)을 통해 획득된 복수의 문장은, 모션이 할당된 문장과 모션이 할당되지 않은 문장을 포함할 수 있다. 모션 획득 모듈(193)은 모션이 할당되지 않은 문장에 대응되는 모션을 획득할 수 있다. 예를 들어, 복수의 문장은 모션이 할당되지 않은 제1 문장, 제2 모션이 할당된 제2 문장을 포함할 수 있다. 이 때, 모션 획득 모듈(193)은 제1 문장에 대응되는 제1 모션을 획득할 수 있다.
모션 획득 모듈(193)은 모션이 할당되지 않은 제1 문장을 식별할 수 있다. 모션 획득 모듈(193)은 제1 문장이 발화될 제1 시간 구간과 인접한 제2 시간 구간에서 발화될 제2 문장을 식별할 수 있다. 모션 획득 모듈(193)은 모션 데이터베이스(182)에 저장된 복수의 모션 중 제2 문장에 할당된 제2 모션과 상이한 모션을 제1 모션으로 획득할 수 있다.
모션 획득 모듈(193)은 모션 데이터베이스(182)에 저장된 복수의 모션 중 제2 모션과의 유사도가 기설정된 값(예로, 0.45)보다 작은 적어도 하나의 모션을 식별할 수 있다. 모션 획득 모듈(193)은 식별된 적어도 하나의 모션 중 하나를 무작위로 선택하여 제1 모션으로 획득할 수 있다.
모션 획득 모듈(193)은 메모리(180)에 저장된 유사도 테이블에 기초하여 적어도 하나의 모션을 식별할 수 있다. 유사도 테이블은, 모션 데이터베이스(182)에 저장된 복수의 모션 간의 유사도를 포함할 수 있다. 모션 획득 모듈(193)은 모션 데이터베이스(182)에 저장된 복수의 모션 각각에 대응되는 복수의 히스토그램을 서로 비교하여 복수의 모션 간의 유사도를 획득할 수 있다.
한편, 제1 문장이 발화될 제1 시간 구간과 인접한 시간 구간에서 발화될 복수의 문장이 존재하고, 복수의 문장 각각에 대해 모션이 할당되어 있을 수 있다. 예를 들어, 제1 시간 구간의 이전 시간 구간인 제2 시간 구간에서 발화될 제2 문장에 제2 모션이 할당되어 있고, 제1 시간 구간의 이후 시간 구간인 제3 시간 구간에서 발화될 제3 문장에 제3 모션이 할당되어 있을 수 있다.
이 때, 모션 획득 모듈(193)은 모션 데이터베이스(182)에 저장된 복수의 모션 각각과 제2 모션의 제1 유사도를 획득하고, 저장된 복수의 모션 각각과 제3 모션의 제2 유사도를 획득할 수 있다. 모션 획득 모듈(193)은 저장된 복수의 모션 각각에 대응되는 제1 유사도 및 제2 유사도의 복수의 평균값을 획득할 수 있다. 모션 획득 모듈(193)은 획득된 복수의 평균값중 기설정된 값보다 작은 적어도 하나의 평균값을 식별할 수 있다. 모션 획득 모듈(193)은 저장된 복수의 모션 중 식별된 적어도 하나의 평균값에 대응되는 적어도 하나의 모션을 식별할 수 있다. 모션 획득 모듈(193)은 식별된 적어도 하나의 모션 중 하나를 무작위로 선택하여 제1 모션을 획득할 수 있다.
한편, 모션 획득 모듈(193)은 모션이 할당되지 않은 모든 문장에 대응되는 모션을 획득하는 것이 아니라, 일부 문장에 대해서만 대응되는 모션을 획득할 수 있다. 예를 들어, 모션 획득 모듈(193)은 모션이 할당되지 않은 복수의 문장 중 발화하는데 소요되는 시간이 기설정된 값(예로, 5초)보다 큰 문장을 식별하고, 식별된 문장에 대응되는 모션을 획득할 수 있다. 즉, 모션 획득 모듈(193)은, 발화하는데 소요되는 시간이 기설정된 값 이하인 문장에 대해서는 대응되는 모션을 획득하지 않을 수 있다. 이는, 문장이 지나치게 짧으면, 로봇(100)이 문장을 발화하는 동안 모션 수행을 끝마칠 수 없을 수도 있기 때문이다.
동작 크기 제어 모듈(194, 또는 모션 크기 제어 모듈)은 제1 모션의 크기 및 제2 모션의 크기에 기초하여 제1 모션의 크기를 조절할 수 있다. 동작 크기 제어 모듈(194)은 제1 모션의 크기 및 제2 모션의 크기를 비교하여 제1 모션의 크기를 조절할 지 여부를 결정할 수 있다. 예를 들어, 제2 모션의 크기에 대한 제1 모션의 크기의 비율이 임계값(예로, 0.5)보다 크면, 동작 크기 제어 모듈(194)은 제1 모션의 크기를 조절할 수 있다. 반면에, 제2 모션의 크기에 대한 제1 모션의 크기의 비율이 임계값 이하이면, 동작 크기 제어 모듈(194)은 제1 모션의 크기를 유지할 수 있다.
동작 크기 제어 모듈(194)은 모션에 대응되는 로봇(100) 또는 로봇(100)의 구성요소(예로, 헤드)의 회전 각도에 기초하여 모션의 크기를 획득할 수 있다. 동작 크기 제어 모듈(194)은 각 축별 회전 각도의 크기의 최대 값을 모션의 크기로 획득할 수 있다. 예를 들어, 제1 모션에 대응되는 로봇(100)의 롤 축에 따른 회전 범위가 -10도에서 +10도이고, 피치 축에 따른 회전 범위가 -30도에서 +30도이고, 요 축에 따른 회전 범위가 -5도에서 +5도인 경우, 제1 모션의 크기는 30도일 수 있다. 따라서, 모션에 대응되는 로봇(100)의 회전 각도가 클수록 모션의 크기가 클 수 있다.
동작 크기 제어 모듈(194)은 제1 모션의 크기 및 제2 모션의 크기에 기초하여 가중치를 획득하고, 가중치에 기초하여 제1 모션의 크기가 제2 모션의 크기보다 작아지도록 제1 모션의 크기를 조절할 수 있다. 예를 들어, 동작 크기 제어 모듈(194)은 제2 모션의 크기에 대한 제1 모션의 크기의 비율을 가중치로 획득할 수 있다. 동작 크기 제어 모듈(194)은 가중치를 제1 모션에 대응되는 각 축 별 회전 각도에 곱하여 제1 모션의 크기를 조절할 수 있다.
동작 제어 모듈(195)은 제1 문장 및 제1 모션에 기초하여 로봇(100)의 동작을 제어할 수 있다. 동작 제어 모듈(195)은 제1 문장에 대응되는 제1 음성 메시지를 출력하도록 스피커(140)를 제어할 수 있다. 동작 제어 모듈(195)은 제1 음성 메시지가 출력되는 동안 제1 모션을 수행하도록 구동부(160)를 제어할 수 있다. 동작 제어 모듈(195)은 제1 음성 메시지가 출력되는 시간과 제1 모션이 수행되는 시간을 동기화할 수 있다. 예를 들어, 동작 제어 모듈(195)은 제1 음성 메시지가 출력되기 시작하는 시점과 제1 모션이 수행되기 시작하는 시점이 대응되도록, 제1 음성 메시지 출력 타이밍 및 제1 모션 수행 타이밍을 제어할 수 있다. 또한, 동작 제어 모듈(195)은 제1 음성 메시지 출력이 완료되는 시점과 제1 모션 수행이 완료되는 시점이 대응되도록, 제1 음성 메시지 출력 타이밍 및 제1 모션 수행 타이밍을 제어할 수 있다.
도 3은 본 개시의 일 실시 예에 따른 모션 획득 방법을 설명하기 위한 도면이다.
도 3을 참조하면, 로봇(100)은 사용자에게 발화할 복수의 문장 중 모션이 할당되지 않은 문장을 식별할 수 있다. 그리고, 로봇(100)은 식별된 문장 중 발화하는데 소요되는 시간이 기설정된 시간보다 큰 문장을 획득할 수 있다. 예를 들어, 로봇(100)은 모션이 할당되지 않은 제1 문장(31) 및 제3 문장(33)을 식별할 수 있다. 그리고, 로봇(100)은 발화하는데 소요되는 시간이 기설정된 시간보다 큰 제1 문장(31)을 획득할 수 있다.
로봇(100)은 제1 문장(31)에 대응되는 제1 문장을 획득할 수 있다. 예를 들어, 로봇(100)은 제1 문장(31)을 발화할 제1 시간 구간(T1)과 인접한 제2 시간 구간(T2)에서 발화되는 제2 문장(32)을 식별할 수 있다. 로봇(100)은 제2 문장(32)에 할당된 제2 모션(M-Intro)의 식별 정보(ID 1)를 획득할 수 있다.
로봇(100)은 제2 모션(M-Intro)의 식별 정보(ID 1) 및 유사도 테이블(ST)에 기초하여 제1 모션을 획득할 수 있다. 유사도 테이블(ST)은 로봇(100)이 수행할 수 있는 미리 정해진 모션들 간의 유사도를 포함할 수 있다. 유사도 테이블(ST)에서, 숫자가 클수록 유사도가 높다는 것을 의미한다. 예를 들어, 유사도가 1이란 것은, 모션이 완전히 동일하다는 것을 의미한다.
로봇(100)은 제2 모션(M-Intro)의 식별 정보(ID 1)에 기초하여, 제2 모션(M-Intro)과의 유사도가 기설정된 값(예로, 0.5)보다 작은 적어도 하나의 모션을 식별할 수 있다. 그리고, 로봇(100)은 식별된 적어도 하나의 모션 중 하나를 무작위로 식별하여 제1 모션으로 획득할 수 있다. 예를 들어, 로봇(100)은 ID 2, ID N-1을 비롯한 복수의 식별 정보에 대응되는 복수의 모션 중 하나를 제1 모션으로 획득할 수 있다.
도 4는 본 개시의 일 실시 예에 따른 모션 획득 방법을 설명하기 위한 도면이다.
도 4를 참조하면, 로봇(100)은 사용자에게 발화할 제1 문장(41), 제2 문장(42) 및 제3 문장(43)을 획득할 수 있다. 제1 문장(41), 제2 문장(42) 및 제3 문장(43) 각각은 제1 시간 구간(T1), 제2 시간 구간(T2) 및 제3 시간 구간(T3)에서 발화될 수 있다. 제1 시간 구간(T1)은 제2 시간 구간(T2) 및 제3 시간 구간(T3)과 인접할 수 있다. 제2 문장(42)에는 제2 모션(M-Intro)가 할당되어 있으며, 제3 문장(43)에는 제3 모션(M-Left)가 할당되어 있을 수 있다.
로봇(100)은 모션이 할당되지 않은 제1 문장(41)에 대응되는 제1 모션을 획득할 수 있다. 로봇(100)은 미리 저장된 복수의 모션과 제2 모션(42)의 제1 유사도 및 미리 저장된 복수의 모션과 제3 모션(43)의 제2 유사도에 기초하여 적어도 하나의 모션을 식별할 수 있다. 유사도 테이블(ST)은, 미리 저장된 복수의 모션 간의 유사도를 포함할 수 있다. 로봇(100)은 복수의 모션 각각에 대응되는 복수의 모션과 제2 모션(42) 간의 제1 유사도(S1)와 복수의 모션과 제3 모션(43) 간의 제2 유사도(S2)를 획득할 수 있다. 로봇(100)은 제1 유사도(S1) 및 제2 유사도(S2)의 평균값(Avg)을 획득할 수 있다. 로봇(100)은 평균값(Avg)이 기설정된 값(예로, 0.5)보다 작은 적어도 하나의 모션을 획득할 수 있다. 그리고, 로봇(100)은 식별된 적어도 하나의 모션 중 하나를 무작위로 식별하여 제1 모션으로 획득할 수 있다. 예를 들어, 로봇(100)은 ID 2, ID N-1을 비롯한 복수의 식별 정보에 대응되는 복수의 모션 중 하나를 제1 모션으로 획득할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 모션 간 유사도 판단 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 로봇(100)은 제1 모션에 대한 정보(51)를 획득할 수 있다. 로봇(100)은 제1 모션에 대한 정보(51)에 대응되는 제1 히스토그램(52)을 획득할 수 있다. 로봇(100)은 3축(롤, 피치, 요)에 각각 대응되는 제1 히스토그램(52)을 획득할 수 있다. 이와 같이, 로봇(100)은 미리 저장된 복수의 모션 각각에 대응되는 히스토그램을 획득할 수 있다.
로봇(100)은 각 모션에 대응되는 히스토그램을 비교하여 모션 간 유사도를 획득할 수 있다. 예를 들어, 로봇(100)은 제1 모션에 대응되는 제1 히스토그램(52) 및 제2 모션에 대응되는 제2 히스토그램(53)을 비교하여, 제1 모션 및 제2 모션의 유사도를 획득할 수 있다. 로봇(100)은 각 축에 대응되는 히스토그램을 비교하여 각 축에 대응되는 유사도를 산출하고, 각 축에 대응되는 유사도들의 평균에 기초하여 최종 유사도를 획득할 수있다. 예를 들어, 로봇(100)은 제1 히스토그램(52) 및 제2 히스토그램(53)의 롤 축에 대한 제1 유사도를 획득할 수 있다. 로봇(100)은 제1 히스토그램(52) 및 제2 히스토그램(53)의 피치 축에 대한 제2 유사도를 획득할 수 있다. 로봇(100)은 제1 히스토그램(52) 및 제2 히스토그램(53)의 요 축에 대한 제2 유사도를 획득할 수 있다. 로봇(100)은 제1 유사도, 제2 유사도 및 제3 유사도의 평균에 기초하여 제1 모션 및 제2 모션 간의 최종 유사도를 획득할 수 있다. 이와 같은 방법에 따라 도 3 및 4의 유사도 테이블(ST)이 획득되어 메모리(180)에 저장될 수 있다.
도 6은 본 개시의 일 실시 예에 따른 모션 크기 제어 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 로봇(100)은 제1 문장(61)에 대응되는 제1 모션 정보(63), 제2 문장(62)에 대응되는 제2 모션 정보(64)를 획득할 수 있다. 각 모션 정보는, 각 모션에 대응되는 로봇(100) 또는 로봇(100)의 구성의 회전 각도를 포함할 수 있다.
로봇(100)은 제1 모션 정보(63) 및 제2 모션 정보(64)에 기초하여 제1 모션의 크기를 조절할 지 판단할 수 있다. 로봇(100)은 제1 모션 정보(63)에 기초하여 제1 모션에 대응되는 회전 각도의 크기의 제1 최대값(RMAX-a)를 획득할 수 있다. 로봇(100)은 제2 모션 정보(64)에 기초하여 제2 모션에 대응되는 회전 각도의 크기의 제2 최대값(RMAX-b)를 획득할 수 있다. 제2 최대값(RMAX-b)에 대한 제1 최대값(RMAX-a)의 비율(즉, RMAX-a/RMAX-b)이 임계값(예로, 0.5)보다 크면, 로봇(100)은 제1 모션의 크기를 조절할 수 있다. 제2 최대값(RMAX-b)에 대한 제1 최대값(RMAX-a)의 비율이 임계값(예로, 0.5) 이하이면, 로봇(100)은 제1 모션의 크기를 조절하지 않을 수 있다.
로봇(100)은 제1 모션의 크기 및 제2 모션의 크기에 기초하여 제1 모션의 크기를 조절할 수 있다. 예를 들어, 로봇(100)은 제2 최대값(RMAX-b)에 대한 제1 최대값(RMAX-a)의 비율(즉, RMAX-a/RMAX-b)을 가중치(w)로 획득할 수 있다. 로봇(100)은 제1 모션 정보(63) 및 가중치(w)에 기초하여 제1 모션의 크기를 조절할 수 있다. 로봇(100)은 제1 모션에 대응되는 회전 각도에 가중치(w)를 곱하여 제3 모션 정보(65)를 획득할 수 있다. 제3 모션 정보(65)는 제1 문장(61)에 대응될 수 있다.
도 7은 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 도시한 순서도이다.
로봇(100)은 사용자를 감지할 수 있다(S710). 예를 들어, 로봇(100)은 카메라를 통해 획득된 촬영 이미지를 분석하여 사용자를 인식할 수 있다.
로봇(100)은 사용자에게 발화할 복수의 문장을 획득할 수 있다(S720). 로봇(100)은 메모리(180)에 미리 저장된 복수의 문장을 획득할 수 있다. 로봇(100)은 사용자 명령에 기초하여 복수의 문장을 획득할 수 있다. 예를 들어, 로봇(100)은 사용자 명령("이 냉장고에 대해 설명해줘")에 기초하여 냉장고를 설명하기 위한 복수의 문장을 획득할 수 있다.
로봇(100)은 획득된 복수의 문장 중 로봇(100)이 발화하는 동안 수행할 모션이 할당되지 않은 제1 문장을 식별할 수 있다(S730). 예를 들어, 로봇(100)은 도 1의 제1 문장(11)을 식별할 수 있다.
로봇(100)은 제1 문장이 발화될 제1 시간 구간과 인접한 제2 시간 구간에서 발화될 제2 문장을 식별하고, 미리 저장된 복수의 모션 중 제2 문장에 할당된 제2 모션과 상이한 제1 모션을 제1 문장에 대응되는 모션으로 획득할 수 있다(S740). 로봇(100)은 미리 저장된 복수의 모션 중 제2 모션과의 유사도가 기설정된 값보다 작은 적어도 하나의 모션을 식별할 수 있다. 로봇(100)은 미리 저장된 복수의 모션에 대응되는 히스토그램과 제2 모션에 대응되는 히스토그램을 비교하여 미리 저장된 복수의 모션과 제2 모션의 유사도를 획득할 수 있다. 로봇(100)은 미리 저장된 복수의 모션 간의 유사도를 포함하는 유사도 테이블에 기초하여 적어도 하나의 모션을 식별할 수 있다.
한편, 제1 시간 구간과 인접한 시간 구간이 복수일 수 있다. 예를 들어, 제1 시간 구간은 제2 시간 구간 및 제3 시간 구간과 인접할 수 있다. 로봇(100)은 제3 시간 구간에서 발화될 제3 문장에 할당된 제3 모션을 식별할 수 있다. 로봇(100)은 미리 저장된 복수의 모션 각각과 제2 모션의 제1 유사도를 획득하고, 미리 저장된 복수의 모션 각각과 제3 모션의 제2 유사도를 획득할 수 있다. 로봇(100)은 미리 저장된 모션 각각에 대응되는 제1 유사도 및 제2 유사도의 복수의 평균값을 획득할 수 있다. 로봇(100)은 복수의 평균값 중 기설정된 값보다 작은 적어도 하나의 평균값을 식별하고, 미리 저장된 복수의 모션 중 식별된 적어도 하나의 평균값에 대응되는 적어도 하나의 모션을 식별할 수 있다.
로봇(100)은 식별된 적어도 하나의 모션 중 하나를 무작위로 선택하여 제1 모션으로 획득할 수 있다. 그리고, 로봇(100)은 제1 문장을 발화하면서 제1 모션을 수행할 수 있다(S750).
로봇(100)은 제1 모션의 크기를 조절할 수 있다. 로봇(100)은 제2 모션에 대한 정보에 기초하여 제2 모션의 크기를 획득할 수 있다. 로봇(100)은 제2 모션의 크기에 대한 제1 모션의 크기의 비율이 임계값보다 크면, 제1 모션의 크기 및 제2 모션의 크기에 기초하여 제1 모션의 크기를 조절할 수 있다. 로봇(100)은 제2 모션의 크기에 대한 제1 모션의 크기의 비율에 기초하여 가중치를 산출할 수 있다. 로봇(100)은 제1 모션의 크기가 제2 모션의 크기보다 작아지도록 가중치에 기초하여 제1 모션의 크기를 조절할 수 있다. 제2 모션의 크기에 대한 제1 모션의 크기의 비율이 임계값 이하이면, 로봇(100)은 제1 모션의 크기를 유지할 수 있다.
한편, 로봇(100)은 트리거 이벤트가 감지되거나 사용자 명령이 획득되는 경우, 일괄적으로 복수의 문장 셋을 획득할 수도 있으나, 사용자와의 인터랙션을 수행하면서 실시간으로 문장을 생성할 수도 있다.
도 8은 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 나타내는 순서도이다.
도 8을 참조하면, 로봇(100)은 사용자에게 발화할 문장을 획득할 수 있다(S810). 로봇(100)은 트리거 이벤트가 발생하거나 사용자 명령이 획득되면 사용자에게 발화할 문장을 획득할 수 있다. 로봇(100)은 트리거 이벤트 또는 사용자 명령에 기초하여 메모리(180)에 미리 저장된 문장을 획득할 수 있다. 또는, 로봇(100)은 트리거 이벤트 또는 사용자 명령에 기초하여 사용자에게 발화할 문장을 생성할 수 있다. 예를 들어, 사용자 음성 명령("화장실 어디있어?")이 획득되면, 응답 문장("이쪽으로 20m 직진하시면 됩니다")을 획득할 수 있다.
로봇(100)은 획득된 문장에 모션이 할당되어 있는 지 식별할 수 있다(S820). 예를 들어, 모션이 할당되어 있는 문장은 할당된 모션의 식별 정보와 함께 매칭되어 메모리(180)에 저장되어 있을 수 있다. 로봇(100)은 획득된 문장과 매칭되어 저장된 모션의 식별 정보의 존재 여부를 식별하여 획득된 문장에 모션이 할당되어 있는 지 판단할 수 있다. 로봇(100)이 문장을 생성한 경우, 로봇(100)은 생성된 문장이 메모리(180)에 저장되어 있는 지 식별할 수 있다. 생성된 문장이 메모리(180)에 저장되어 있는 경우, 로봇(100)은 생성된 문장과 매칭되어 저장된 모션의 식별 정보가 존재하는 지 식별하여 생성된 문장에 모션이 할당되어 있는 지 판단할 수 있다.
획득된 문장에 모션이 할당되어 있는 경우(S820-Y), 로봇(100)은 획득된 문장에 대응되는 모션을 획득하지 않을 수 있다(S850).
획득된 문장에 모션이 할당되어 있지 않은 경우(S820-N), 로봇(100)은 획득된 문장을 발화하는 데 소요되는 시간이 기설정된 시간보다 큰 지 식별할 수 있다(S830). 로봇(100)은 TTS(Text To Speech) 모듈에 기초하여 획득된 문장에 대응되는 음성 메시지를 획득할 수 있다. 로봇(100)은 음성 메시지의 길이가 기설정된 시간보다 큰 지 판단할 수 있다.
획득된 문장을 발화하는 데 소요되는 시간이 기설정된 시간보다 큰 경우(S830-Y), 로봇(100)은 획득된 문장에 대응되는 모션을 획득할 수 있다(S840). 로봇(100)은 획득된 문장이 발화될 시간 구간과 인접한 시간 구간에서 발화된 문장에 대응되는 모션을 식별하고, 식별된 모션과의 유사도가 기설정된 값보다 작은 모션을 획득할 수 있다.
획득된 문장을 발화하는 데 소요되는 시간이 기설정된 시간 이하인 경우 (S830-N), 로봇(100)은 획득된 문장에 대응되는 모션을 획득하지 않을 수 있다(S850). 로봇(100)이 연속으로 여러 문장에 대응되는 음성 메시지를 발화하는 경우, 기설정된 시간 보다 짧은 길이를 갖는 음성 메시지에 대응되는 모션을 수행하면, 로봇(100)의 부자연스러운 모션이 연출될 수 있다. 이를 방지하기 위하여, 로봇(100)은 획득된 문장을 발화하는 데 소요되는 시간이 기설정된 시간 이하인 경우에는 획득된 문장에 대응되는 모션을 획득하지 않을 수 있다. 예를 들어, 도 1의 "안녕하세요"의 길이(1초)가 기설정된 시간(5초) 이하이면, 로봇(100)은 "안녕하세요"를 발화할 때는 모션을 수행하지 않을 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 처리 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 처리 동작을 특정 기기가 수행하도록 할 수 있다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.

Claims (15)

  1. 로봇에 있어서,
    카메라;
    스피커;
    구동부;
    적어도 하나의 인스트럭션을 저장하는 메모리; 및
    프로세서;를 포함하고,
    상기 프로세서는,
    상기 카메라를 통해 획득된 이미지에 기초하여 사용자를 감지하고,
    상기 로봇이 상기 사용자에게 발화할 복수의 문장을 획득하고,
    상기 복수의 문장 중 상기 로봇이 발화하는 동안 수행할 모션이 할당되지 않은 제1 문장을 식별하고,
    상기 제1 문장이 발화될 제1 시간 구간과 인접한 제2 시간 구간에서 발화될 제2 문장을 식별하고, 상기 메모리에 미리 저장된 복수의 모션 중 상기 제2 문장에 할당된 제2 모션과 상이한 제1 모션을 상기 제1 문장에 대응되는 모션으로 획득하고,
    상기 제1 문장에 대응되는 음성을 출력하도록 상기 스피커를 제어하고, 상기 음성이 출력되는 동안 상기 제1 모션을 수행하도록 상기 구동부를 제어하는
    로봇.
  2. 제1 항에 있어서,
    상기 프로세서는,
    상기 미리 저장된 복수의 모션 중 상기 제2 모션과의 유사도가 기설정된 값보다 작은 적어도 하나의 모션을 식별하고,
    상기 적어도 하나의 모션 중 하나를 무작위로 식별하여 상기 제1 모션으로 획득하는
    로봇.
  3. 제2 항에 있어서,
    상기 프로세서는,
    상기 미리 저장된 복수의 모션에 대응되는 히스토그램과 상기 제2 모션에 대응되는 히스토그램을 비교하여 상기 미리 저장된 복수의 모션과 상기 제2 모션의 유사도를 획득하는
    로봇.
  4. 제2 항에 있어서,
    상기 메모리는,
    상기 제2 모션을 포함하는 상기 미리 저장된 복수의 모션 간의 유사도를 포함하는 유사도 테이블을 저장하고,
    상기 프로세서는,
    상기 유사도 테이블에 기초하여 상기 제1 모션을 획득하는
    로봇.
  5. 제1 항에 있어서,
    상기 프로세서는,
    상기 제1 시간 구간과 인접하며 상기 제2 시간 구간과 상이한 제3 시간 구간에서 발화될 제3 문장에 할당된 제3 모션을 식별하고,
    상기 미리 저장된 복수의 모션 각각과 상기 제2 모션의 제1 유사도를 획득하고, 상기 미리 저장된 복수의 모션 각각과 상기 제3 모션의 제2 유사도를 획득하고,
    상기 미리 저장된 복수의 모션 각각에 대응되는 상기 제1 유사도 및 상기 제2 유사도의 복수의 평균값을 획득하고,
    상기 복수의 평균값 중 기설정된 값보다 작은 적어도 하나의 평균값을 식별하고, 상기 미리 저장된 복수의 모션 중 상기 적어도 하나의 평균값에 대응되는 적어도 하나의 모션을 식별하고,
    상기 적어도 하나의 모션 중 하나를 무작위로 식별하여 상기 제1 모션으로 획득하는
    로봇.
  6. 제1 항에 있어서,
    상기 프로세서는,
    상기 제2 모션에 대한 정보에 기초하여 상기 제2 모션의 크기를 획득하고,
    상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율이 임계값보다 크면, 상기 제1 모션의 크기 및 상기 제2 모션의 크기에 기초하여 상기 제1 모션의 크기를 조절하고,
    상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율이 상기 임계값 이하이면, 상기 제1 모션의 크기를 유지하는
    로봇.
  7. 제6 항에 있어서,
    상기 프로세서는,
    상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율에 기초하여 가중치를 산출하고,
    상기 제1 모션의 크기가 상기 제2 모션의 크기보다 작아지도록 상기 가중치에 기초하여 상기 제1 모션의 크기를 조절하는
    로봇.
  8. 로봇의 제어 방법에 있어서,
    사용자를 감지하는 단계;
    상기 로봇이 상기 감지된 사용자에게 발화할 복수의 문장을 획득하는 단계;
    상기 복수의 문장 중 상기 로봇이 발화하는 동안 수행할 모션이 할당되지 않은 제1 문장을 식별하는 단계;
    상기 제1 문장이 발화될 제1 시간 구간과 인접한 제2 시간 구간에서 발화될 제2 문장을 식별하고, 미리 저장된 복수의 모션 중 상기 제2 문장에 할당된 제2 모션과 상이한 제1 모션을 상기 제1 문장에 대응되는 모션으로 획득하는 단계; 및
    상기 제1 문장을 발화하면서 상기 제1 모션을 수행하는 단계;를 포함하는
    제어 방법.
  9. 제8 항에 있어서,
    상기 제1 모션을 획득하는 단계는,
    상기 미리 저장된 복수의 모션 중 상기 제2 모션과의 유사도가 기설정된 값보다 작은 적어도 하나의 모션을 식별하는 단계 및
    상기 적어도 하나의 모션 중 하나를 무작위로 식별하여 상기 제1 모션으로 획득하는 단계를 포함하는
    제어 방법.
  10. 제9 항에 있어서,
    상기 적어도 하나의 모션을 식별하는 단계는,
    상기 미리 저장된 복수의 모션에 대응되는 히스토그램과 상기 제2 모션에 대응되는 히스토그램을 비교하여 상기 미리 저장된 복수의 모션과 상기 제2 모션의 유사도를 획득하는 단계를 포함하는
    제어 방법.
  11. 제9 항에 있어서,
    상기 로봇은,
    상기 제2 모션을 포함하는 상기 미리 저장된 복수의 모션 간의 유사도를 포함하는 유사도 테이블을 저장하고,
    상기 제1 모션을 획득하는 단계는,
    상기 유사도 테이블에 기초하여 상기 제1 모션을 획득하는
    제어 방법.
  12. 제8 항에 있어서,
    상기 제1 모션을 획득하는 단계는,
    상기 제1 시간 구간과 인접하며 상기 제2 시간 구간과 상이한 제3 시간 구간에서 발화될 제3 문장에 할당된 제3 모션을 식별하는 단계,
    상기 미리 저장된 복수의 모션 각각과 상기 제2 모션의 제1 유사도를 획득하고, 상기 미리 저장된 복수의 모션 각각과 상기 제3 모션의 제2 유사도를 획득하는 단계,
    상기 미리 저장된 복수의 모션 각각에 대응되는 상기 제1 유사도 및 상기 제2 유사도의 복수의 평균값을 획득하는 단계,
    상기 복수의 평균값 중 기설정된 값보다 작은 적어도 하나의 평균값을 식별하고, 상기 미리 저장된 복수의 모션 중 상기 적어도 하나의 평균값에 대응되는 적어도 하나의 모션을 식별하는 단계 및
    상기 적어도 하나의 모션 중 하나를 무작위로 식별하여 상기 제1 모션으로 획득하는 단계를 포함하는
    제어 방법.
  13. 제8 항에 있어서,
    상기 제2 모션에 대한 정보에 기초하여 상기 제2 모션의 크기를 획득하는 단계;
    상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율이 임계값보다 크면, 상기 제1 모션의 크기 및 상기 제2 모션의 크기에 기초하여 상기 제1 모션의 크기를 조절하는 단계; 및
    상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율이 상기 임계값 이하이면, 상기 제1 모션의 크기를 유지하는 단계;를 더 포함하는
    제어 방법.
  14. 제13 항에 있어서,
    상기 제1 모션의 크기를 조절하는 단계는,
    상기 제2 모션의 크기에 대한 상기 제1 모션의 크기의 비율에 기초하여 가중치를 산출하는 단계,
    상기 제1 모션의 크기가 상기 제2 모션의 크기보다 작아지도록 상기 가중치에 기초하여 상기 제1 모션의 크기를 조절하는 단계를 포함하는
    제어 방법.
  15. 제8 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2022/012422 2021-08-25 2022-08-19 로봇 및 그 제어 방법 WO2023027433A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22861643.9A EP4331781A1 (en) 2021-08-25 2022-08-19 Robot and control method therefor
US18/302,377 US20230251632A1 (en) 2021-08-25 2023-04-18 Robot and method for controlling thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210112646A KR20230030433A (ko) 2021-08-25 2021-08-25 로봇 및 그 제어 방법
KR10-2021-0112646 2021-08-25

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/302,377 Continuation US20230251632A1 (en) 2021-08-25 2023-04-18 Robot and method for controlling thereof

Publications (1)

Publication Number Publication Date
WO2023027433A1 true WO2023027433A1 (ko) 2023-03-02

Family

ID=85323291

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/012422 WO2023027433A1 (ko) 2021-08-25 2022-08-19 로봇 및 그 제어 방법

Country Status (4)

Country Link
US (1) US20230251632A1 (ko)
EP (1) EP4331781A1 (ko)
KR (1) KR20230030433A (ko)
WO (1) WO2023027433A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008168375A (ja) * 2007-01-10 2008-07-24 Sky Kk ボディランゲージロボット、ボディランゲージロボットの制御方法及び制御プログラム
JP2009233764A (ja) * 2008-03-26 2009-10-15 Toyota Motor Corp 動作生成装置、ロボット及び動作生成方法
JP2014504959A (ja) * 2011-01-26 2014-02-27 本田技研工業株式会社 人間型ロボットのジェスチャと音声の同期
KR20140114700A (ko) * 2013-03-19 2014-09-29 한국과학기술원 로봇 제스처 생성장치 및 방법
KR20180048039A (ko) * 2016-11-02 2018-05-10 한국과학기술연구원 발화문장에 적합한 스피치 제스처 구현 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008168375A (ja) * 2007-01-10 2008-07-24 Sky Kk ボディランゲージロボット、ボディランゲージロボットの制御方法及び制御プログラム
JP2009233764A (ja) * 2008-03-26 2009-10-15 Toyota Motor Corp 動作生成装置、ロボット及び動作生成方法
JP2014504959A (ja) * 2011-01-26 2014-02-27 本田技研工業株式会社 人間型ロボットのジェスチャと音声の同期
KR20140114700A (ko) * 2013-03-19 2014-09-29 한국과학기술원 로봇 제스처 생성장치 및 방법
KR20180048039A (ko) * 2016-11-02 2018-05-10 한국과학기술연구원 발화문장에 적합한 스피치 제스처 구현 장치 및 방법

Also Published As

Publication number Publication date
EP4331781A1 (en) 2024-03-06
US20230251632A1 (en) 2023-08-10
KR20230030433A (ko) 2023-03-06

Similar Documents

Publication Publication Date Title
WO2018070780A1 (en) Electronic device and method for controlling the same
WO2020213762A1 (ko) 전자장치, 그 동작방법, 및 복수의 인공지능장치를 포함한 시스템
WO2021256691A1 (en) Refrigerator and controlling method thereof
WO2020145688A1 (en) Electronic device and controlling method thereof
WO2021172832A1 (ko) 제스처 인식 기반의 영상 편집 방법 및 이를 지원하는 전자 장치
EP3887927A1 (en) Electronic device and method for determining task including plural actions
WO2013085278A1 (ko) 선택적 주의 집중 모델을 이용한 모니터링 장치 및 그 모니터링 방법
WO2020171548A1 (ko) 사용자 입력 처리 방법 및 이를 지원하는 전자 장치
WO2019160325A1 (en) Electronic device and control method thereof
WO2023027433A1 (ko) 로봇 및 그 제어 방법
WO2019151734A1 (ko) 카메라 구동 방식 변경 기반의 음성 및 얼굴 인식 장치 및 방법
WO2019225875A1 (ko) 재고 추적 방법 및 장치
WO2021066275A1 (ko) 전자 장치 및 그 제어 방법
WO2014178491A1 (ko) 발화 인식 방법 및 장치
WO2022108190A1 (ko) 전자장치 및 그 제어방법
WO2022124640A1 (ko) 전자장치 및 그 제어방법
WO2022097970A1 (ko) 전자장치 및 그 제어방법
WO2018034384A1 (ko) 음성 및 동작인식에 근거한 스마트보드 제어 방법 및 그 방법을 이용한 가상 레이저 포인터
WO2022114482A1 (ko) 전자장치 및 그 제어방법
WO2024019265A1 (ko) 학습 데이터를 획득하기 위한 로봇 및 이의 제어 방법
WO2022102908A1 (ko) 전자 장치 및 이의 제어 방법
WO2021107464A1 (en) Electronic device and control method thereof
WO2021112439A1 (ko) 전자 장치 및 그 제어 방법
WO2023136700A1 (ko) 로봇 및 이의 제어 방법
WO2023106531A1 (ko) 인공 지능 장치

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: 22861643

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022861643

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022861643

Country of ref document: EP

Effective date: 20231201

NENP Non-entry into the national phase

Ref country code: DE