WO2023219229A1 - 이동형 로봇 및 그 제어 방법 - Google Patents

이동형 로봇 및 그 제어 방법 Download PDF

Info

Publication number
WO2023219229A1
WO2023219229A1 PCT/KR2023/001385 KR2023001385W WO2023219229A1 WO 2023219229 A1 WO2023219229 A1 WO 2023219229A1 KR 2023001385 W KR2023001385 W KR 2023001385W WO 2023219229 A1 WO2023219229 A1 WO 2023219229A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion
mobile robot
state
candidate
classification
Prior art date
Application number
PCT/KR2023/001385
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
Priority claimed from KR1020220103567A external-priority patent/KR20230157214A/ko
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US18/142,928 priority Critical patent/US20230356391A1/en
Publication of WO2023219229A1 publication Critical patent/WO2023219229A1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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

Definitions

  • This disclosure relates to a mobile robot and a control method thereof, and more specifically, to a mobile robot that sets a traveling path based on the amount of change in angular velocity and a control method thereof.
  • a mobile robot is a device that moves along a driving path.
  • the driving path refers to the path for the robot to move to the target point. If there are obstacles on the driving path, the robot can avoid the obstacles and move to the target point. Therefore, the driving path can be changed in real time depending on the surrounding environment in which the robot exists.
  • the robot can change its driving path to avoid the obstacle.
  • the robot may consider multiple candidate motions to change the driving path.
  • the robot can change its driving path by selecting the final motion among a plurality of candidate motions.
  • the driving direction may be reversed. If the driving direction is maintained and obstacles are not avoided, the robot may collide with an obstacle or come to a wrong stop.
  • the present disclosure is designed to improve the above-described problem, and the purpose of the present disclosure is to provide a mobile robot and a control method thereof that maintain the existing travel path as much as possible by setting the travel path in consideration of the amount of change in angular velocity.
  • a mobile robot acquires a sensor, a motor for driving the mobile robot, and a travel path of the mobile robot, and an angular velocity change amount corresponding to each of a plurality of candidate motions of the mobile robot moving along the travel path. is determined based on the sensing data obtained from the sensor, a final motion among the plurality of candidate motions is determined based on an angular velocity change corresponding to each of the plurality of candidate motions, and the mobile robot is based on the final motion. It includes at least one processor that controls the motor to move.
  • the at least one processor determines state information for each of the plurality of candidate motions based on an angular velocity change corresponding to each of the plurality of candidate motions, and determines state information for each of the plurality of candidate motions depending on whether the state information changes.
  • Determine classification information or type information
  • calculate a driving score corresponding to each of the plurality of candidate motions and calculate the driving score for the plurality of candidate motions and the classification information for the plurality of candidate motions.
  • the final motion can be determined among a plurality of candidate motions.
  • the at least one processor identifies state information of the previous viewpoint motion based on the angular velocity of the previous viewpoint motion, and determines the plurality of candidate motions based on the difference between the angular velocity of the previous viewpoint motion and the angular velocity of each of the plurality of candidate motions.
  • State information for each candidate motion may be determined, and classification information for each of the plurality of candidate motions may be determined based on the state information of the previous viewpoint motion and state information for each of the plurality of candidate motions.
  • the driving score increases as the distance the mobile robot moves based on a specific candidate motion among the plurality of candidate motions to avoid an obstacle increases, and the driving score increases as the distance traveled by the mobile robot to avoid the obstacle increases.
  • the at least one processor determines state information of the specific candidate motion among the plurality of candidate motions as a first state, and determines the specific candidate motion as a first state. If the angular velocity change corresponding to the motion is less than a second threshold value that is smaller than the first threshold value, state information of the specific candidate motion among the plurality of candidate motions is determined as a second state, and the state information corresponding to the specific candidate motion is determined as a second state. If the angular velocity change is less than the first threshold and exceeds the second threshold, the state information of the specific candidate motion may be determined as a third state.
  • the at least one processor provides classification information of the specific candidate motion.
  • 1 classification (or type) is determined, and the state information of the specific candidate motion is changed from the first state to the third state, changed from the second state to the third state, or changed from the third state to the third state.
  • the classification information of the specific candidate motion is determined as a second classification, and the first classification is compared to the second classification. It may be a classification in which the status information changes relatively rapidly.
  • the at least one processor may determine the classification information of the specific candidate motion based on state information of the specific candidate motion acquired within a preset period.
  • the at least one processor identifies a first motion with a maximum driving score among the at least one candidate motion determined by the first classification, and a second motion with a maximum driving score among the at least one candidate motion determined by the second classification. can be identified, and either the first motion or the second motion can be determined as the final motion.
  • the driving score of the first motion is the first driving score
  • the driving score of the second motion is the second driving score
  • the at least one processor determines that the first driving score is the second driving score and the critical driving score. If the score exceeds the sum, the first motion is determined as the final motion, and if the first driving score is less than or equal to the sum of the second driving score and the threshold driving score, the second motion is determined as the final motion. You can.
  • the at least one processor is configured to move the mobile robot based on the final motion among the plurality of candidate motions based on the angular velocity change amount.
  • the motor may be controlled to move the mobile robot based on a soft driving mode.
  • a method of controlling a mobile robot includes obtaining a driving path of the mobile robot, sensing data obtained from a sensor for an angular velocity change corresponding to each of a plurality of candidate motions of the mobile robot moving along the driving path. It includes determining a final motion among the plurality of candidate motions based on an angular velocity change corresponding to each of the plurality of candidate motions, and controlling the mobile robot based on the final motion. .
  • control method includes determining state information for each of the plurality of candidate motions based on an angular velocity change corresponding to each of the plurality of candidate motions, classifying each of the plurality of candidate motions according to whether the state information is changed. determining information, calculating a driving score corresponding to each of the plurality of candidate motions, and determining the plurality of candidate motions based on the driving score for the plurality of candidate motions and classification information for the plurality of candidate motions. The step of determining the final motion may further be included.
  • control method further includes identifying state information of the previous viewpoint motion based on the angular velocity of the previous viewpoint motion, and determining the state information includes the angular velocity of the previous viewpoint motion and the plurality of candidate motions.
  • State information for each of the plurality of candidate motions may be determined based on the difference between the respective angular velocities, and the step of determining the classification information may be performed based on the state information of the previous viewpoint motion and the state information of each of the plurality of candidate motions.
  • Classification information for each of the plurality of candidate motions may be determined.
  • the driving score increases as the distance the mobile robot moves based on a specific candidate motion among the plurality of candidate motions to avoid an obstacle increases, and the driving score increases as the distance traveled by the mobile robot to avoid the obstacle increases.
  • the state information of the specific candidate motion among the plurality of candidate motions is determined as the first state, If the angular velocity change corresponding to a specific candidate motion is less than a second threshold value that is smaller than the first threshold value, state information of the specific candidate motion among the plurality of candidate motions is determined as a second state, and the specific candidate motion If the corresponding angular velocity change amount is less than the first threshold and exceeds the second threshold, the state information of the specific candidate motion may be determined as a third state.
  • the step of determining the classification information is performed when the state information of the specific candidate motion changes from the first state to the second state or from the second state to the first state. is determined as a first classification, and the state information of the specific candidate motion changes from the first state to the third state, changes from the second state to the third state, or changes from the third state to the first state.
  • the classification information of the specific candidate motion is determined as a second classification, and the first classification is the state of the specific candidate motion compared to the second classification. This may be a classification in which information changes relatively rapidly.
  • the classification information of the specific candidate motion may be determined based on state information of the specific candidate motion acquired within a preset period.
  • control method includes identifying a first motion with a maximum driving score among at least one candidate motion determined by the first classification, and a second motion with a maximum driving score among the at least one candidate motion determined by the second classification. It may further include the step of identifying, and the step of determining the final motion may determine either the first motion or the second motion as the final motion.
  • the driving score of the first motion is the first driving score
  • the driving score of the second motion is the second driving score
  • the step of determining the final motion includes the first driving score being the second driving score and If it exceeds the sum of the critical driving score, the first motion is determined as the final motion, and if the first driving score is less than or equal to the sum of the second driving score and the critical driving score, the second motion is determined as the final motion. can be decided.
  • control method controls the mobile robot based on the final motion among the plurality of candidate motions based on the angular velocity change amount when the angular velocity change amount changes from a positive number to a negative number or from a negative number to a positive number, and performs soft driving. It may further include controlling the mobile robot based on the mode.
  • 1 is a diagram for explaining the operation of setting a traveling path of a mobile robot.
  • Figure 2 is a block diagram showing a mobile robot according to an embodiment of the present disclosure.
  • FIG. 3 is a block diagram for explaining the specific configuration of the mobile robot of FIG. 2.
  • Figure 4 is a diagram for explaining the operation of calculating the traveling path of a mobile robot.
  • Figure 5 is a flowchart for explaining an operation that considers the amount of change in angular velocity when determining the motion of a mobile robot.
  • Figure 6 is a flowchart for explaining an operation that considers state information when determining the motion of a mobile robot.
  • Figure 7 is a flowchart for explaining an operation that considers classification information when determining the motion of a mobile robot.
  • Figure 8 is a flowchart for explaining an operation that considers the driving score when determining the motion of a mobile robot.
  • Figure 9 is a flowchart to explain the process of calculating state information.
  • FIG. 10 is a flowchart illustrating a process for calculating classification information according to various embodiments.
  • 11 is a flowchart illustrating a process for calculating classification information according to various embodiments.
  • Figure 12 is a flowchart for explaining the process of identifying the final motion based on classification information and driving scores.
  • Figure 13 is a table for generally explaining the calculation process of identifying the final motion among a plurality of candidate motions based on the amount of change in angular velocity.
  • Figure 14 is a diagram for explaining the amount of change in angular velocity.
  • Figure 15 is a diagram for explaining an operation of identifying classification information according to various embodiments.
  • Figure 16 is a diagram for explaining an operation of identifying classification information according to various embodiments.
  • Figure 17 is a diagram for explaining an operation of identifying classification information according to various embodiments.
  • FIG. 18 is a diagram illustrating an operation of identifying classification information by considering the amount of change in angular velocity stored during a preset period according to various embodiments.
  • FIG. 19 is a diagram illustrating an operation of identifying classification information by considering the amount of change in angular velocity stored during a preset period according to various embodiments.
  • FIG. 20 is a diagram illustrating an operation of identifying classification information by considering the amount of change in angular velocity stored for a preset period according to various embodiments.
  • Figure 21 is a diagram for explaining an embodiment of identifying the final motion based on the driving score.
  • Figure 22 is a diagram for explaining a process of calculating driving scores according to various embodiments.
  • Figure 23 is a diagram for explaining a process of calculating driving scores according to various embodiments.
  • Figure 24 is a diagram for explaining a process of calculating the maximum value of a driving score according to various embodiments.
  • Figure 25 is a diagram for explaining the operation of identifying a motion corresponding to one of the non-deterministic classification and the deterministic classification as the final motion.
  • FIG. 26 is a diagram illustrating the overall operation process of selecting one motion among a plurality of candidate motions as the final motion.
  • Figure 27 is a diagram to explain the position and angular velocity that change as the mobile robot moves.
  • Figure 28 is a flowchart for explaining a mobile robot operating in soft driving mode.
  • Figure 29 is a diagram for comparing normal driving mode and soft driving mode.
  • Figure 30 is a diagram for explaining indicators related to soft driving mode.
  • 31 is a flowchart for explaining a driving operation in a soft driving mode according to various embodiments.
  • 32 is a flowchart for explaining a driving operation in a soft driving mode according to various embodiments.
  • Figure 33 is a flowchart for explaining a control method of a mobile robot according to an embodiment of the present disclosure.
  • expressions such as “have,” “may have,” “includes,” or “may include” refer to the presence of the corresponding feature (e.g., component such as numerical value, function, operation, or part). , and does not rule out the existence of additional features.
  • a or/and B should be understood as referring to either “A” or “B” or “A and B”.
  • expressions such as “first,” “second,” “first,” or “second,” can modify various components regardless of order and/or importance, and can refer to one component. It is only used to distinguish from other components and does not limit the components.
  • a component e.g., a first component
  • another component e.g., a second component
  • connection to it should be understood that a certain component can be connected directly to another component or connected through another component (e.g., a third component).
  • a “module” or “unit” performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Additionally, a plurality of “modules” or a plurality of “units” are integrated into at least one module and implemented by at least one processor (not shown), except for “modules” or “units” that need to be implemented with specific hardware. It can be.
  • the term user may refer to a person using an electronic device (mobile robot) or a device (eg, artificial intelligence electronic device) using an electronic device (mobile robot).
  • a device eg, artificial intelligence electronic device
  • FIG. 1 is a diagram for explaining an operation of setting a traveling path of a mobile robot 100.
  • the mobile robot 100 may move based on the driving path (or driving path information).
  • the driving path may include at least one motion for controlling the mobile robot 100.
  • Motion may refer to information indicating the movement direction, movement speed, rotation speed, etc. of the mobile robot. Since the driving path indicates where the mobile robot 100 will move, a plurality of candidate motions may exist at the stage when the driving path is determined.
  • the mobile robot 100 may create (or obtain) a driving path to move to the target point 10.
  • the mobile robot 100 can determine whether an obstacle 20 exists on the driving path. If an obstacle 20 exists on the driving path, the mobile robot 100 may create a driving path to avoid the obstacle 20.
  • the mobile robot 100 may determine whether to move (or rotate) to the left according to the candidate motion (#1) or to move (or rotate) to the right according to the candidate motion (#2).
  • the mobile robot 100 may determine one of the plurality of candidate motions as the final motion according to a predetermined calculation method.
  • the mobile robot 100 may have the motion with the highest driving score among the candidate motion (#1) and the candidate motion (#2). (For example, a motion moving the shortest distance) can be determined as the final motion.
  • a calculation method that gives priority to the highest driving score e.g., shortest distance
  • the mobile robot 100 may have the motion with the highest driving score among the candidate motion (#1) and the candidate motion (#2).
  • a motion moving the shortest distance can be determined as the final motion.
  • the mobile robot 100 can determine the final motion using a calculation method that maintains the existing traveling direction as much as possible based on the angular velocity change.
  • the mobile robot 100 selects one motion among candidate motions. Even after one motion is selected, the decision to avoid the obstacle 20 may be reversed. For example, even after a candidate motion for avoiding to the left is selected based on the direction in which the obstacle 20 is viewed, the mobile robot 100 may select a candidate motion for avoiding to the right. This situation may occur when the score difference between the candidate motion #01 moving to the left of the obstacle 20 and the candidate motion #02 moving to the right of the obstacle 20 is less than the threshold.
  • the mobile robot 100 is expressed as a robot vacuum cleaner, but the robot described in the present invention can be applied to various devices that move automatically.
  • Figure 2 is a block diagram showing a mobile robot 100 according to an embodiment of the present disclosure.
  • the mobile robot 100 may include a sensor 110, a motor 120, and at least one processor 130.
  • the sensor 110 may be a sensor that senses the speed or angular velocity of the mobile robot 100.
  • At least one processor 130 may acquire the speed or angular velocity of the mobile robot 100 based on sensing data obtained from the sensor 110.
  • the sensor 110 may include an image sensor capable of identifying obstacles on the travel path of the mobile robot 100. At least one processor 130 may identify whether there is an obstacle based on sensing data obtained from the sensor 110.
  • the sensor 110 may be a concept that includes a plurality of sensors. Sensor 110 may be described as a sensor unit. A detailed description related to the sensor is described in FIG. 3.
  • the motor 120 may generate physical force to move the mobile robot 100.
  • the motor 120 may be described as a driving unit.
  • At least one processor 130 may control the motor 120 to move the mobile robot 100 according to the travel path or final motion.
  • At least one processor 130 may perform overall control operations of the mobile robot 100. Specifically, at least one processor 130 functions to control the overall operation of the mobile robot 100.
  • At least one processor 130 may be implemented as a digital signal processor (DSP), microprocessor, or time controller (TCON) that processes digital signals.
  • DSP digital signal processor
  • MCU micro controller unit
  • MPU micro processing unit
  • AP application processor
  • GPU graphics-processing unit
  • communications processor It may include one or more of (communication processor (CP)) and ARM (advanced reduced instruction set computer (RISC) machines) processors, or may be defined by the corresponding term.
  • CP communication processor
  • RISC advanced reduced instruction set computer
  • at least one processor 130 may use a processing algorithm.
  • At least one processor 130 has a memory 160.
  • Various functions can be performed by executing computer executable instructions stored in .
  • At least one processor 130 may control the motor 120 to drive the mobile robot 100.
  • At least one processor 130 may obtain sensing data through the sensor 110.
  • the sensor 110 may include at least one sensor.
  • the sensor 110 may include a first sensor for sensing data related to the movement of the mobile robot 100 to set a driving path.
  • the first sensor may mean an image sensor or a lidar sensor.
  • at least one processor 130 may obtain (or identify) a driving path based on sensing data acquired through the first sensor.
  • the sensor 110 may include a second sensor for sensing physical data related to the movement of the mobile robot 100.
  • the second sensor may mean a gyro sensor, etc.
  • the at least one processor 130 may acquire (or identify) at least one of the moving position, speed, acceleration, linear velocity, or angular velocity based on the sensing data acquired through the second sensor.
  • At least one processor 130 acquires the driving path of the mobile robot 100, and obtains the angular velocity change amount corresponding to each of the plurality of candidate motions of the mobile robot 100 moving along the driving path from the sensor 110. At least one processor 130 that identifies based on sensing data, identifies a final motion among a plurality of candidate motions based on angular velocity change, and controls the motor 120 to move the mobile robot 100 based on the final motion. ) may include.
  • motion may mean information indicating the movement direction, movement speed, rotation speed, etc. of the mobile robot.
  • Motion may include at least one of linear velocity or angular velocity.
  • Motion may refer to physical data related to the movement of the mobile robot 100. Motion can be described as movement data or movement information.
  • At least one processor 130 may obtain sensing data from the sensor 110 while the mobile robot 100 travels.
  • the sensing data may include angular velocity information of the mobile robot 100.
  • at least one processor 130 may obtain (or calculate) the angular velocity change amount based on the angular velocity information of the mobile robot 100.
  • at least one processor 130 may store the obtained angular velocity change amount in the memory 160 .
  • At least one processor 130 may store the amount of change in angular velocity for a preset period of time.
  • Motion can be divided into past motion that includes data that the mobile robot 100 has already completed traveling, and future motion that includes data that the mobile robot 100 will travel in the future.
  • Motion at a future point in time can be recorded as the final motion.
  • the final motion may be finally selected from a plurality of candidate motions.
  • the candidate motion may be information including the direction and speed in which the mobile robot 100 will move at a future point in time.
  • Candidate motion may be determined based on the Dynamic Window Approach method. A description related to this is described in graph 1410 of FIG. 14.
  • the candidate motion may include a linear speed within a preset range. Additionally, the candidate motion may include an angular velocity within a preset range.
  • At least one processor 130 may identify a final motion among a plurality of candidate motions based on the amount of change in angular velocity related to the mobile robot 100.
  • At least one processor 130 identifies state information of the candidate motion based on the angular velocity change amount of the candidate motion, identifies classification information of the candidate motion according to whether the state information has changed, and generates a driving score corresponding to the candidate motion. can be obtained, and the final motion among a plurality of candidate motions for each category can be identified based on the driving score and classification information.
  • the status information may mean information indicating the driving characteristics of the mobile robot 100.
  • the driving characteristics may include the state of angular velocity change. That is, the state information may include the state of the angular velocity change amount.
  • classification information may refer to information indicating the classification of candidate motions according to specific criteria.
  • the specific criterion may mean whether status information has changed.
  • Classification information may be written as group information, and classification may be written as a group.
  • the classification information may be information indicating whether the candidate motion is a motion to maintain the existing movement direction (or rotation direction) or to change the existing movement direction (or rotation direction).
  • the driving score may mean a score calculated according to a specific standard for each of a plurality of candidate motions.
  • specific criteria may be minimum time, minimum travel distance, stability, etc.
  • stability may mean safety in terms of not colliding with obstacles.
  • At least one processor 130 identifies state information of the previous viewpoint motion based on the angular velocity of the previous viewpoint motion, and determines the angular velocity of each candidate motion based on the difference between the angular velocity of the previous viewpoint motion and the angular velocity of the plurality of candidate motions.
  • the amount of change can be identified, and classification information of the candidate motion can be identified based on the state information of the previous viewpoint motion and the state information of the candidate motion.
  • State information may be determined based on the angular velocity change amount, which is the difference between the angular velocity obtained at the previous time point (N-1) and the angular velocity of the candidate motion to be finally determined at the current time point (N).
  • State information may indicate whether the amount of change in angular velocity is positive or negative.
  • the state information may be in the first state (Positive). This may indicate faster movement (or rotation) in the existing travel direction (or rotation direction) of the mobile robot 100.
  • the state information may be in a second state (negative). This may indicate that the existing traveling direction (or rotation direction) of the mobile robot 100 is changing.
  • the state information may be in a third state (stable).
  • the third state may be described as a stable state or a zero state.
  • At least one processor 130 may divide the state information into a first threshold and a second threshold that is smaller than the first threshold.
  • the absolute value of the first threshold and the absolute value of the second threshold may be the same.
  • the at least one processor 130 identifies the state information of the candidate motion as the first state (Positive), and the angular velocity change amount of the candidate motion exceeds the first threshold value. If it is less than the second threshold, the state information of the candidate motion is identified as a second state (negative), and if the angular velocity change amount of the candidate motion is less than the first threshold and exceeds the second threshold, the state information of the candidate motion is identified as a second state (negative). can be identified as the third state (stable). An embodiment of dividing state information into a first state (positive), a second state (negative), a third state (stable), etc. is described in FIGS. 14 to 17.
  • the at least one processor 130 changes the state information of the candidate motion from the first state (Positive) to the second state (negative) or changes the state information of the candidate motion from the second state (negative) to the first state (Positive).
  • the classification information of the candidate motion is identified as the first classification
  • the state information of the candidate motion is changed from the first state (Positive) to the third state (stable), or the state information of the candidate motion is changed to the second state.
  • (negative) is changed from the third state (stable)
  • the state information of the candidate motion is changed from the third state (stable) to the first state (Positive)
  • the state information of the candidate motion is changed from the third state (stable).
  • the classification information of the candidate motion is identified as the second classification
  • the first classification may be a classification in which the state information of the candidate motion changes relatively rapidly compared to the second classification.
  • At least one processor 130 may compare preset state information with state information of the candidate motion.
  • Preset status information may mean status information from a previous point in time or previously saved status information.
  • the preset state information may be negative corresponding to “previous state” in table 1305 of FIG. 13.
  • State information of the candidate motion may correspond to “current state” in table 1305 of FIG. 13.
  • At least one processor 130 may identify classification information of a candidate motion based on a change in state information. At least one processor 130 may determine classification information depending on whether preset state information (or state information at a previous time) has changed.
  • classification information may be divided into first classification and second classification.
  • the first classification may mean a classification in which existing driving characteristics are changed.
  • the second classification may mean a classification in which existing driving characteristics are maintained.
  • the at least one processor 130 determines the candidate motion into a non-deterministic classification (first classification) indicating that the state information changes suddenly. You can.
  • the processor 130 may determine the candidate motion as a decision classification (second classification) indicating that state information is maintained.
  • the first classification can be written as an indecisive classification
  • the second classification can be written as a decisive classification. Since the non-deterministic classification is different from existing driving characteristics, it may indicate a classification (for example, direction change motion classification) in which the candidate motion cannot be directly determined. Since the decision classification is similar to existing driving characteristics, it can indicate that it is a classification that can immediately determine the candidate motion (for example, direction-maintaining motion classification).
  • At least one processor 130 may identify classification information of the candidate motion based on state information acquired during a preset period.
  • At least one processor 130 may compare state information at an immediately previous point in time with state information of the candidate motion.
  • the previous point in time may refer to the point in time (N-1) immediately before the unit time based on the current point in time (N).
  • At least one processor 130 may determine preset state information based on state information acquired during a preset time (or period). Additionally, at least one processor 130 may compare preset state information with state information of the candidate motion.
  • the criteria for determining the preset status information may be diverse.
  • At least one processor 130 when either the first state (positive) or the second state (negative) is identified in a preset period, at least one processor 130 sends the preset state information to the identified first state ( positive) or an identified second state (negative). Additionally, when only the third state (stable) is included in the preset period, at least one processor 130 may identify the preset state information as the third state (stable). Additionally, when both the first state (positive) and the second state (negative) are identified in a preset period, at least one processor 130 may determine the preset state information as the most recently identified state information.
  • At least one processor 130 may identify the most identified state information among a plurality of state information included in a preset period as the preset state information.
  • FIGS. 18 to 20 A specific method for classifying classification information is described in FIGS. 18 to 20.
  • the driving score is a larger value as the distance that the mobile robot 100, which moves based on the candidate motion, moves to avoid the obstacle is larger, and after avoiding the obstacle, it reaches the predicted point and target point where the mobile robot 100 is located.
  • At least one processor 130 identifies a first motion with the largest driving score among at least one candidate motion identified as a first classification (non-deterministic classification), and at least one motion identified as a second classification (deterministic classification).
  • the second motion with the highest driving score can be identified, and either the first motion or the second motion can be identified as the final motion.
  • At least one processor 130 may identify the motion with the highest driving score by classification (by group). At least one processor 130 may identify a motion (first motion) with the highest driving score among candidate motions belonging to the non-deterministic classification (first classification). At least one processor 130 may identify a motion (second motion) with the highest driving score among candidate motions belonging to the decision classification (second classification).
  • the driving score of the first motion may be the first driving score
  • the driving score of the second motion may be the second driving score
  • the at least one processor 130 identifies the first motion as the final motion, and If the first driving score of is less than or equal to the sum of the second driving score of the second motion and the critical driving score, the second motion may be identified as the final motion. Detailed descriptions related to this are provided in FIGS. 12 and 25.
  • At least one processor 130 may control the mobile robot 100 by dividing it into a normal driving mode and a soft driving mode.
  • the general driving mode may refer to a mode in which the mobile robot 100 is driven based on minimum time, minimum travel distance, simple obstacle avoidance, etc.
  • the soft driving mode may mean a mode in which the mobile robot 100 is driven by additionally considering the amount of change in angular velocity in addition to the items considered in the general driving mode. Considering the angular velocity change may mean considering the existing driving direction (or existing rotation direction).
  • At least one processor 130 may determine the driving mode according to user settings. To receive user input, at least one processor 130 may display a guide screen on the display 140. Detailed information related to the guide screen is described in FIG. 29.
  • the mobile robot 100 may always travel in a soft driving mode. A description related to this is provided in FIG. 28.
  • the mobile robot 100 may drive in a normal driving mode and may drive in a soft driving mode only when a preset event is identified.
  • the preset event may be an event in which an obstacle is identified.
  • a description related to the obstacle identification operation is described in FIG. 31.
  • the preset event may be an event in which the sign (positive or negative) of the angular velocity change amount changes.
  • the at least one processor 130 operates based on the soft driving mode to identify the final motion among a plurality of candidate motions based on the angular velocity change amount.
  • the motor 120 can be controlled to move the mobile robot 100. A detailed explanation related to this is described in FIG. 32.
  • the above-described operation is performed when the angular velocity change state information changes from the first state (positive number) to the second state (negative number) or the change amount state information changes from the second state (negative number) to the first state (positive number). It may be described as an operation of controlling the mobile robot to move based on a soft driving mode that identifies the final motion among the plurality of candidate motions based on the angular velocity change state information.
  • the preset event may mean an event in which the state information of the angular velocity change amount changes.
  • classification information it is stated that the candidate motion is classified into a non-deterministic classification (first classification) only when the first state (positive) and the second state (negative) are mutually changed.
  • first classification non-deterministic classification
  • second classification non-deterministic classification
  • the same conditions as classification information determination conditions may be applied to preset events.
  • a preset event may mean an event in which state information changes to a different state, unlike the conditions for determining classification information.
  • At least one processor 130 may control the display 140 to display an indicator indicating a soft driving mode that identifies the final motion among the plurality of candidate motions based on the amount of change in angular velocity. A detailed explanation related to this is described in FIG. 30.
  • state information may be described as two states (stable, unstable, etc.). Additionally, the classification information may be identified as a non-deterministic classification (first classification) only when the status information is changed.
  • FIG. 3 is a block diagram for explaining the specific configuration of the mobile robot 100 of FIG. 2.
  • the mobile robot 100 includes a sensor 110, a motor 120, at least one processor 130, a display 140, an operation interface 150, a memory 160, and a speaker 170. Alternatively, it may include at least one of the microphone 180.
  • the sensor 110 includes a 3D image sensor 111, a gyro sensor 112, an optical sensor 113, a bumper sensor 114, an acceleration sensor 115, a wall tracking sensor 116, a lidar sensor 117, It may include at least one of the object recognition sensors 118.
  • the 3D image sensor 111 may be a sensor that captures an image.
  • the 3D image sensor 111 can obtain data necessary to obtain 3D spatial information.
  • the 3D image sensor 111 may acquire an image as input data and generate 3D spatial information as output data based on the input image.
  • the 3D image sensor 111 may refer to a sensor that additionally obtains distance information in a 2D image.
  • the gyro sensor 112 may refer to a sensor that measures angular velocity.
  • the gyro sensor 112 can measure azimuth changes based on location information and direction information of a rotating object. Additionally, sensing data obtained from the gyro sensor 112 can be used to obtain information related to the tilt angle.
  • the optical sensor 113 may be a sensor that detects light, and the mobile robot 100 may obtain brightness information based on sensing data obtained from the optical sensor 113.
  • the optical sensor 113 may mean at least one of an illuminance sensor, an infrared sensor, an ultraviolet sensor, and a visible light sensor.
  • the infrared sensor may be composed of a light emitting unit and a light receiving unit, and sensing data can be acquired using a camera capable of emitting infrared rays forward and receiving reflected infrared rays.
  • the bumper sensor 114 may refer to a contact sensor attached to the main body of the mobile robot 100.
  • the bumper sensor 114 can obtain sensing data about whether physical contact is made in order to detect an obstacle or wall.
  • the bumper sensor 114 may be placed on the outer portion of the main body and may perform a function of alleviating an impact when colliding with an obstacle while driving.
  • the bumper sensor 114 is an obstacle sensor and can serve as an auxiliary sensor.
  • the bumper sensor 114 may recognize obstacles that the 3D image sensor 111 does not recognize.
  • the bumper sensor 114 may use a method in which a switch is clicked by physical force when an object touches the bumper sensor 114.
  • the acceleration sensor 115 may be a sensor that detects the movement state of the mobile robot 100 and obtains data on changes in speed.
  • the acceleration sensor 115 may acquire a motion vector through detection of the moving distance and direction of movement of the mobile robot 100.
  • the wall following sensor (116) may refer to a sensor that detects data about a wall and acquires sensing data to enable driving along the wall.
  • the mobile robot 100 may perform a cleaning operation while moving along the wall based on data acquired from the wall tracking sensor 116.
  • a LIDAR sensor (117) may be a sensor that acquires distance information or location information from an object by emitting a laser.
  • LIDAR light detection and ranging
  • LIDAR may be a technology that uses laser light, and may be a technology that uses changes in time and wavelength from the time the laser light is emitted to the time it is reflected and received by an object.
  • the speed of the object, the direction of the object, or the shape of the surrounding space can be obtained using sensing data obtained from the lidar sensor 117.
  • the object recognition sensor 118 may refer to a sensor that recognizes objects on the driving path of the mobile robot 100. Meanwhile, in order to recognize an object, the object recognition sensor 118 may recognize the object by acquiring sensing data from at least one of the 3D image sensor 111, the bumper sensor 114, and the lidar sensor 117.
  • the object recognition sensor 118 can be described as an object recognition module in that it uses sensing data from other sensors.
  • the senor 110 may include a line laser sensor (not shown).
  • a line laser sensor (not shown) emits a line laser vertically and uses a scanned image to utilize the principle of physical change when a 2D laser is focused on an obstacle.
  • the display 140 may be implemented as various types of displays, such as a Liquid Crystal Display (LCD), Organic Light Emitting Diodes (OLED) display, or Plasma Display Panel (PDP).
  • the display 140 may also include a driving circuit and a backlight unit that can be implemented in the form of an amorphous silicon thin film transistor (a-si TFT), low temperature poly silicon (LTPS) TFT, organic TFT (OTFT), etc.
  • a-si TFT amorphous silicon thin film transistor
  • LTPS low temperature poly silicon
  • OFT organic TFT
  • the display 140 may be implemented as a touch screen combined with a touch sensor, a flexible display, a three-dimensional display, etc.
  • the display 140 may include a bezel housing the display panel as well as a display panel that outputs an image.
  • the bezel may include a touch sensor (not shown) to detect user interaction.
  • the manipulation interface 150 may be implemented as a device such as buttons, a touch pad, a mouse, and a keyboard, or as a touch screen that can also perform the display function and manipulation input function described above.
  • the button may be various types of buttons such as mechanical buttons, touch pads, wheels, etc. formed on any area of the exterior of the main body of the mobile robot 100, such as the front, side, or back.
  • the memory 160 is implemented as an internal memory such as ROM (e.g., electrically erasable programmable read-only memory (EEPROM)) or RAM included in at least one processor 130, or at least one memory. It may also be implemented as a separate memory from the processor 130. In this case, the memory 160 may be implemented as a memory embedded in the mobile robot 100 or as a memory detachable from the mobile robot 100 depending on the data storage purpose. For example, in the case of data for driving the mobile robot 100, it is stored in the memory embedded in the mobile robot 100, and in the case of data for the expansion function of the mobile robot 100, it is detachable from the mobile robot 100. It can be stored in available memory.
  • ROM electrically erasable programmable read-only memory
  • RAM included in at least one processor 130, or at least one memory. It may also be implemented as a separate memory from the processor 130.
  • the memory 160 may be implemented as a memory embedded in the mobile robot 100 or as a memory detachable from the mobile robot 100
  • volatile memory e.g., dynamic RAM (DRAM), static RAM (SRAM), or synchronous dynamic RAM (SDRAM), etc.
  • non-volatile memory Examples: one time programmable ROM (OTPROM), programmable ROM (PROM), erasable and programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), mask ROM, flash ROM, flash memory (e.g.
  • OTPROM one time programmable ROM
  • PROM programmable ROM
  • EPROM erasable and programmable ROM
  • EEPROM electrically erasable and programmable ROM
  • mask ROM e.g.
  • a memory card e.g., compact flash (CF), SD ( secure digital), Micro-SD (micro secure digital), Mini-SD (mini secure digital), xD (extreme digital), MMC (multi-media card), etc.
  • CF compact flash
  • SD secure digital
  • Micro-SD micro secure digital
  • Mini-SD mini secure digital
  • xD extreme digital
  • MMC multi-media card
  • USB port e.g. It can be implemented in a form such as USB memory
  • the speaker 170 may be a component that outputs not only various audio data but also various notification sounds or voice messages.
  • the microphone 180 is configured to receive a user's voice or other sounds and convert them into audio data.
  • the microphone 180 can receive the user's voice when activated.
  • the microphone 180 may be formed integrally with the mobile robot 100 in the upper, front, or side directions.
  • the microphone 180 includes a microphone that collects user voice in analog form, an amplifier circuit that amplifies the collected user voice, an A/D conversion circuit that samples the amplified user voice and converts it into a digital signal, and noise components from the converted digital signal. It may include various configurations such as a filter circuit to remove .
  • FIG. 4 is a diagram for explaining the operation of calculating the traveling path of the mobile robot 100.
  • the mobile robot 100 may travel based on the shortest distance or minimum time.
  • the mobile robot 100 may drastically change its travel path to minimize the travel distance or travel time on the travel path.
  • the operating mode in embodiment 410 may be described as a general driving mode.
  • the mobile robot 100 can travel while maintaining the existing travel path as much as possible. Unless it is an unavoidable situation, the mobile robot 100 can set its driving path to maintain the existing driving direction as much as possible even if it is not the shortest distance (or minimum time). If the driving path is created in a way that maintains the existing direction as much as possible, the mobile robot 100 may not change the driving path suddenly.
  • the operating mode in embodiment 420 may be described as a soft driving mode.
  • Figure 5 is a flowchart for explaining an operation that considers the amount of change in angular velocity when determining the motion of the mobile robot 100.
  • the mobile robot 100 can obtain the angular velocity change amount corresponding to each of a plurality of candidate motions (S505).
  • the mobile robot 100 may determine one optimal motion among various candidate motions for moving from the point where the mobile robot 100 is currently located to the next movement point.
  • the mobile robot 100 may identify one final motion among a plurality of candidate motions based on the angular velocity change (S510).
  • the mobile robot 100 can acquire angular velocity each time a motion is performed and calculate the change in the obtained angular velocity.
  • the mobile robot 100 can identify (or create) a traveling path of the mobile robot 100 by analyzing the calculated angular velocity change.
  • the mobile robot 100 can control the motor based on the final motion (S515). Once the final motion is determined, the mobile robot 100 may control the motor (or driving unit) so that the mobile robot 100 is controlled based on the final motion.
  • FIG. 6 is a flowchart for explaining an operation that considers state information when determining the motion of the mobile robot 100.
  • Steps S605 and S620 of FIG. 6 may correspond to steps S505 and S515 of FIG. 5 . Therefore, redundant description is omitted.
  • the mobile robot 100 may identify state information corresponding to each of a plurality of candidate motions based on the angular velocity change amount (S610). State information may be determined based on the angular velocity change amount, which is the difference between the angular velocity obtained at a previous point in time and the angular velocity of the candidate motion that must be finally determined at the current point in time. Specific operations for determining status information are described in FIGS. 9 and 13.
  • the mobile robot 100 can identify the final motion among a plurality of candidate motions based on the state information (S615).
  • the mobile robot 100 can identify the final motion by considering changes in state information.
  • FIG. 7 is a flowchart for explaining an operation that considers classification information when determining the motion of the mobile robot 100.
  • Steps S705, S710, and S725 of FIG. 7 may correspond to steps S605, S610, and S620 of FIG. 6. Therefore, redundant description is omitted.
  • the mobile robot 100 may identify classification information corresponding to each of a plurality of candidate motions based on the status information (S715).
  • Classification information may be determined by comparing the angular velocity change amount obtained at a previous point in time with the angular velocity change amount of the candidate motion that must be finally determined at the current point in time. Specific operations for determining classification information are described in FIGS. 15 to 20.
  • the mobile robot 100 can identify the final motion based on the classification information (S720).
  • the mobile robot 100 may determine one motion among a plurality of candidate motions classified according to classification information as the final motion.
  • FIG. 8 is a flowchart for explaining an operation that considers the driving score when determining the motion of the mobile robot 100.
  • Steps S805, S810, S815, and S830 of FIG. 8 may correspond to steps S705, S710, S715, and S725. Therefore, redundant description is omitted.
  • the mobile robot 100 may obtain a driving score corresponding to each of the plurality of candidate motions (S820).
  • the driving score may refer to a score indicating how excellent the mobile robot 100 is in terms of moving distance, moving time, and stability in moving to the target point.
  • a motion with a larger driving score may mean that the motion is more suitable for driving the mobile robot 100.
  • the mobile robot 100 can identify the final motion among the motions with the maximum driving score for each classification information (S825).
  • the mobile robot 100 may classify a plurality of candidate motions into preset categories.
  • the mobile robot 100 may determine the motion with the highest driving score among the candidate motions in the first category as the first motion. Additionally, the mobile robot 100 may determine the motion with the highest driving score among candidate motions in the second category as the second motion. The mobile robot 100 can identify the final motion among the first motion or second motion having the maximum driving score for each classification information.
  • Figure 9 is a flowchart to explain the process of calculating state information.
  • Steps S905, S935, and S940 of FIG. 9 may correspond to steps S605, S615, and S620 of FIG. 6. Therefore, redundant description is omitted.
  • the mobile robot 100 may obtain the angular velocity change amount corresponding to each of the plurality of candidate motions (S905).
  • the mobile robot 100 can determine whether the amount of change in angular velocity exceeds the first threshold (S910). If the angular velocity change exceeds the first threshold (S910-Y), the mobile robot 100 may identify the state information of the candidate motion as the first state (positive) (S915).
  • the mobile robot 100 may determine whether the amount of angular velocity change is less than the second threshold (S920). If the angular velocity change amount is less than the second threshold (S920-Y), the mobile robot 100 may identify the state information of the candidate motion as the second state (negative) (S925).
  • the mobile robot 100 may identify the state information of the candidate motion as a third state (stable) (S930).
  • the mobile robot 100 may identify state information corresponding to each candidate motion and store the identified information.
  • the mobile robot 100 can identify the final motion based on the state information of the candidate motion (S935). And, the mobile robot 100 can control the motor based on the final motion (S940).
  • FIG. 10 is a flowchart illustrating a process for calculating classification information according to various embodiments.
  • Steps S1005, S1010, S1035, and S1040 of FIG. 10 may correspond to steps S705, S710, S720, and S725 of FIG. 7. Additionally, the operation of dividing each of the plurality of candidate motions into a first state, a second state, and a third state may be the same as steps S910 to S930 of FIG. 9. Therefore, redundant description is omitted.
  • the mobile robot 100 can identify whether the state information changes from the first state to the second state (S1015).
  • the mobile robot 100 identifies whether the state information at the previous point in time (state information corresponding to the final motion at the previous point in time) is the first state and the state information at the current point in time (state information corresponding to the candidate motion) is the second state. can do.
  • the mobile robot 100 may identify that the classification information of the candidate motion is an indeterminate classification (first classification) (S1020).
  • the mobile robot 100 may identify whether the state information has changed from the second state to the first state (S1025). If the state information has changed from the second state to the first state (S1025-Y), the mobile robot 100 may identify that the classification information of the candidate motion is an indeterminate classification (first classification) (S1020).
  • the mobile robot 100 may identify that the classification information of the candidate motion is a decision classification (second classification) (S1030).
  • the mobile robot 100 may store classification information for each of a plurality of candidate motions.
  • 11 is a flowchart illustrating a process for calculating classification information according to various embodiments.
  • Steps S1105, S1110, S1130, and S1135 of FIG. 11 may correspond to steps S1005, S1010, S1035, and S1140 of FIG. 10. Therefore, redundant description is omitted.
  • classification information can be identified as an indeterminate classification (first classification) only when the state information changes from the first state to the second state or from the second state to the first state.
  • the mobile robot 100 may identify the classification information as an indeterminate classification (first classification) when the state information changes to another state. For example, when changing from the first state to the second state or third state, the mobile robot 100 may identify the classification information of the candidate motion as a non-deterministic classification (first classification). Additionally, when changing from the second state to the first state or third state, the mobile robot 100 may identify the classification information of the candidate motion as a non-deterministic classification (first classification). Additionally, when changing from the third state to the first or second state, the mobile robot 100 may identify the classification information of the candidate motion as a non-deterministic classification (first classification).
  • the mobile robot 100 can identify whether the status information has changed (S1115).
  • the mobile robot 100 may identify that the classification information of the candidate motion is a non-deterministic classification (first classification) (S1120).
  • the mobile robot 100 may identify that the classification information of the candidate motion is a decision classification (second classification) (S1125).
  • the mobile robot 100 may store classification information for each of a plurality of candidate motions.
  • Figure 12 is a flowchart for explaining the process of identifying the final motion based on classification information and driving scores.
  • Steps S1205, S1210, S1215, S1220, and S1250 of FIG. 12 may correspond to steps S805, S810, S815, S820, and S830 of FIG. 8. Additionally, the operation of dividing each of the plurality of candidate motions into a first state, a second state, and a third state may be the same as steps S910 to S930 of FIG. 9. Additionally, the operation of classifying each of the plurality of candidate motions into a non-deterministic classification (first classification) or a decision classification (second classification) may be the same as steps S1015 to S1030 of FIG. 10. Therefore, redundant description is omitted.
  • first classification non-deterministic classification
  • second classification decision classification
  • the mobile robot 100 may identify the first motion with the highest first driving score in the non-deterministic classification (first classification) (S1225).
  • the mobile robot 100 may identify the second motion with the highest second driving score in the decision classification (second classification) (S1230).
  • the mobile robot 100 can add up the second driving score and the critical driving score. And, the mobile robot 100 may determine whether the first driving score exceeds the sum (or sum value) of the second driving score and the threshold driving score (S1235). If the first driving score exceeds the sum (or summation value) of the second driving score and the threshold driving score (S1235-Y), the mobile robot 100 may identify the first motion as the final motion (S1240).
  • the mobile robot 100 may identify the second motion as the final motion (S1245) .
  • Figure 13 is a table for generally explaining the calculation process of identifying the final motion among a plurality of candidate motions based on the amount of change in angular velocity.
  • the mobile robot 100 can obtain driving scores of a plurality of candidate motions (#01 to #10).
  • table 1305 may refer to a driving score table.
  • Wi may mean the angular velocity of a plurality of candidate motions that can be identified (or selected) at N time points (current time point). Meanwhile, the mobile robot 100 may store the angular velocity of the final motion identified at the previous time point (N-1). In table 1305, the angular velocity at the previous time is -0.15.
  • the mobile robot 100 can obtain the amount of change in angular velocity based on the difference between the angular velocity (-0.15) at the previous time and the angular velocity of the candidate motion.
  • the mobile robot 100 may obtain the angular velocity change (+0.25) based on the difference between the angular velocity (0.1) of the candidate motion (#01) and the angular velocity (-0.15) at the previous time.
  • the mobile robot 100 may identify state information of the candidate motion based on the angular velocity change amount, the first threshold value, and the second threshold value.
  • the first threshold is assumed to be 0.1
  • the second threshold is assumed to be -0.1.
  • the first threshold value and the second threshold value may be changed according to the user's settings.
  • the absolute values of the first threshold and the second threshold may be the same.
  • the mobile robot 100 may identify the state information of the candidate motion as the first state (positive). If the angular velocity change is less than or equal to the first threshold (0.1) and greater than or equal to the second threshold (-0.1), the mobile robot 100 may identify the state information of the candidate motion as the third state (stable). If the amount of angular velocity change is less than the second threshold (-0.1), the mobile robot 100 may identify the state information of the candidate motion as the second state (negative).
  • the mobile robot 100 sends the state information of the candidate motion (#01) to the first state (positive ) can be identified.
  • the state information of the candidate motion (#04) is stored in the third state ( stable).
  • the mobile robot 100 sets the state information of the candidate motion (#09) to the first state (positive). can be identified.
  • the mobile robot 100 may store status information identified at a previous point in time.
  • the stored status information may be determined by combining status information collected over a preset period of time. Accordingly, the status information may be described as preset status information. For example, it is assumed that the state information at the previous point in time or the preset state information is in the second state (negative).
  • the mobile robot 100 may identify classification information based on preset state information (previous time) and state information of the candidate motion (current time).
  • state information previously time
  • state information of the candidate motion current time
  • the mobile robot 100 determines the classification information of the candidate motion. It can be determined by classification (first classification).
  • first classification classification
  • second classification decision classification
  • the mobile robot 100 changes the classification information of the candidate motion (#01) into a non-deterministic classification ( 1st classification).
  • the mobile robot 100 determines the classification information of the candidate motion (#04) classification).
  • the mobile robot 100 determined the classification information of the candidate motion (#09) and classified it into a second state (negative). classification).
  • the mobile robot 100 may calculate a driving score corresponding to each of a plurality of candidate motions. Detailed descriptions related to driving scores are described in FIGS. 21 to 24.
  • the mobile robot 100 can identify the motion with the maximum score for each classification information.
  • the mobile robot 100 may identify the candidate motion (#02) with the maximum score (9) among the candidate motions (w1, w2, w3) classified into a non-deterministic classification (first classification).
  • the mobile robot 100 has a candidate motion (#07) with the maximum score (6) among the candidate motions (w4, w5, w6, w7, w8, w9, w10) classified into decision classification (second classification). can be identified.
  • the mobile robot 100 may identify one motion among the candidate motions w2 and w7 with the maximum score for each classification information as the final motion.
  • the mobile robot 100 can identify the final motion based on the maximum score and threshold score identified for each classification information.
  • the mobile robot 100 may obtain a value that is the sum of the maximum score and the critical score obtained in the decision classification (second classification). Additionally, the mobile robot 100 may identify whether the maximum score obtained in the non-deterministic classification (first classification) exceeds the sum of the maximum score obtained in the deterministic classification (second classification) and the critical score.
  • the candidate motion can be identified as the final motion.
  • the maximum score obtained in the indecision classification (first classification) does not exceed the sum of the maximum score obtained in the decision classification (second classification) and the critical score, the maximum score obtained in the decision classification (second classification)
  • the corresponding candidate motion can be identified as the final motion.
  • the mobile robot 100 may identify the candidate motion (#02) corresponding to the maximum score obtained in the non-deterministic classification (first classification) as the final motion.
  • Figure 14 is a diagram for explaining the amount of change in angular velocity.
  • the mobile robot 100 can set a driving path based on a dynamic window approach (Dynamic Window Approach).
  • the Dynamic Window Approach method refers to a method of avoiding obstacles when driving a robot, and can refer to a method of setting an effective search space as a window and finding the optimal solution.
  • the mobile robot 100 can determine a motion with a set angular velocity (w ⁇ i) and linear velocity (V ⁇ j).
  • the linear speed may be obtained based on sensing data from the sensor 110 included in the mobile robot 100.
  • a plurality of candidate motions may be determined in the effective search space 1411 of the viewpoint (N-2).
  • the mobile robot 100 may identify a motion including a specific angular velocity (w ⁇ i) and a specific linear velocity (v ⁇ j) within the effective search space 1411 as the final motion.
  • a plurality of candidate motions may be determined in the effective search space 1412 of the viewpoint (N-1).
  • the mobile robot 100 may identify a motion including a specific angular velocity (w ⁇ i) and a specific linear velocity (v ⁇ j) within the effective search space 1412 as the final motion.
  • a plurality of candidate motions may be determined in the effective search space 1413 of the viewpoint (N).
  • the mobile robot 100 may identify a motion including a specific angular velocity (w ⁇ i) and a specific linear velocity (v ⁇ j) within the valid search space 1413 as the final motion.
  • Graph 1420 in FIG. 14 shows angular velocity over time. That is, the graph 1420 represents the angular velocities of each of the plurality of viewpoints (N-2, N-1, N).
  • a final motion may be selected from each of a plurality of viewpoints.
  • the mobile robot 100 may store the angular velocity corresponding to the final motion selected (or identified) at each of a plurality of viewpoints. Additionally, the mobile robot 100 may calculate the angular velocity change amount and store the calculated angular velocity change amount.
  • w ⁇ i may mean angular velocity
  • the unit of angular velocity may be rad/s.
  • Graph 1430 in FIG. 14 shows the amount of change in angular velocity over time.
  • the graph 1430 shows the amount of change in angular velocity at each of a plurality of viewpoints (N-2, N-1, N).
  • the angular velocity change is assumed to be 0. Since the angular velocity change amount (0) of the mobile robot 100 is less than the first threshold and more than the second threshold, the mobile robot 100 can identify the state information at time point N-2 as the third state (stable). .
  • the mobile robot 100 can identify the state information at time point N-1 as the first state (positive).
  • the mobile robot 100 can identify the state information at time point N as the second state (negative).
  • the absolute values of the first and second thresholds are the same, and the signs of the first and second thresholds may be different.
  • Figure 15 is a diagram for explaining an operation of identifying classification information according to various embodiments.
  • Table 1511 of the embodiment 1510 of FIG. 15 indicates that state information has changed from the third state (stable) to the first state (positive). At the previous time point (ta), the state information was in the third state (stable), and at the current time point (tb), the state information of the candidate motion may be in the first state (positive). Accordingly, the mobile robot 100 may determine the classification information of the embodiment 1510 as the decision classification (second classification).
  • Table 1521 of the embodiment 1520 of FIG. 15 indicates that state information is maintained in the third state (stable). At the previous time point (ta), the state information was the third state (stable), and at the current time point (tb), the state information of the candidate motion may be the third state (stable). Accordingly, the mobile robot 100 may determine the classification information of the embodiment 1520 as the decision classification (second classification).
  • Table 1531 of the embodiment 1530 of FIG. 15 indicates that state information has changed from the third state (stable) to the second state (negative). At the previous time point (ta), the state information was in the third state (stable), and at the current time point (tb), the state information of the candidate motion may be in the second state (negative). Accordingly, the mobile robot 100 may determine the classification information of the embodiment 1530 as the decision classification (second classification).
  • Figure 16 is a diagram for explaining an operation of identifying classification information according to various embodiments.
  • Table 1611 of the embodiment 1610 of FIG. 16 indicates that the state information is maintained in the first state (positive). At the previous time point (ta), the state information was in the first state (positive), and at the current time point (tb), the state information of the candidate motion may be in the first state (positive). Accordingly, the mobile robot 100 may determine the classification information of the embodiment 1610 as the decision classification (second classification).
  • Table 1621 of the embodiment 1620 of FIG. 16 indicates that state information has changed from the first state (positive) to the third state (stable). At the previous time point (ta), the state information was in the first state (positive), and at the current time point (tb), the state information of the candidate motion may be in the third state (stable). Accordingly, the mobile robot 100 may determine the classification information of the embodiment 1620 as the decision classification (second classification).
  • Table 1631 of the embodiment 1630 of FIG. 16 indicates that state information has changed from the first state (positive) to the second state (negative). At the previous time point (ta), the state information was in the first state (positive), and at the current time point (tb), the state information of the candidate motion may be in the second state (negative). Accordingly, the mobile robot 100 may determine the classification information of the embodiment 1630 to be an indeterminate classification (first classification).
  • FIG. 17 is a diagram for explaining an operation of identifying classification information according to various embodiments.
  • Table 1711 of the embodiment 1710 of FIG. 17 indicates that state information has changed from the second state (negative) to the first state (positive). At the previous time point (ta), the state information was in the second state (negative), and at the current time point (tb), the state information of the candidate motion may be in the first state (positive). Accordingly, the mobile robot 100 may determine the classification information of the embodiment 1710 to be an indeterminate classification (first classification).
  • Table 1721 of the embodiment 1720 of FIG. 17 indicates that state information has changed from the second state (negative) to the third state (stable). At the previous time point (ta), the state information was in the second state (negative), and at the current time point (tb), the state information of the candidate motion may be in the third state (stable). Accordingly, the mobile robot 100 may determine the classification information of the embodiment 1720 as the decision classification (second classification).
  • Table 1731 of the embodiment 1730 of FIG. 17 indicates that the state information is maintained in the second state (negative). At the previous time point (ta), the state information was in the second state (negative), and at the current time point (tb), the state information of the candidate motion may be in the second state (negative). Accordingly, the mobile robot 100 may determine the classification information of the embodiment 1730 as the decision classification (second classification).
  • FIG. 18 is a diagram illustrating an operation of identifying classification information by considering the amount of change in angular velocity stored during a preset period according to various embodiments.
  • the mobile robot 100 when either the first state (positive) or the second state (negative) is identified in a preset period, the mobile robot 100 transmits the preset state information to the identified first state (positive). Alternatively, it can be identified as an identified second state (negative). Additionally, when only the third state (stable) is included in the preset period, the mobile robot 100 may identify the preset state information as the third state (stable). Additionally, when both the first state (positive) and the second state (negative) are identified in a preset period, the mobile robot 100 may determine the preset state information as the most recently identified state information.
  • Graph 1810 in Figure 18 shows angular velocity over time.
  • Graph 1810 represents the angular velocity from time t0 to time t7.
  • the mobile robot 100 may obtain an angular velocity change based on the angular velocities of a plurality of candidate motions at time t7.
  • Graph 1820 in FIG. 18 shows the amount of change in angular velocity over time.
  • the graph 1820 represents the amount of change in angular velocity from time t1 to time t7.
  • the mobile robot 100 may identify state information based on the angular velocity change amount of each of the plurality of candidate motions at time t7.
  • Table 1830 in FIG. 18 shows status information over time.
  • Table 1830 shows status information from time t1 to time t7.
  • the mobile robot 100 can identify status information at a previous point in time based on a preset period.
  • the mobile robot 100 may identify that the preset state information is the second state (negative) based on the state information corresponding to each time point t2 to t6. This is because from t2 to t6, the first state (positive) is not identified and only the second state (negative) is identified. And, it is assumed that the state information of the candidate motion is in the second state (negative). Since the preset state information is the second state (negative) and the state information of the candidate motion is the second state (negative), the mobile robot 100 may determine the classification information of the candidate motion as a decision classification (second classification).
  • FIG. 19 is a diagram illustrating an operation of identifying classification information by considering the amount of change in angular velocity stored during a preset period according to various embodiments.
  • Graph 1910 in Figure 19 shows angular velocity over time.
  • the graph 1910 represents the angular velocity from time t0 to time t7.
  • the mobile robot 100 may obtain an angular velocity change based on the angular velocities of a plurality of candidate motions at time t7.
  • Graph 1920 in FIG. 19 shows the amount of change in angular velocity over time.
  • the graph 1920 shows the amount of change in angular velocity from time t1 to time t7.
  • the mobile robot 100 may identify state information based on the angular velocity change amount of each of the plurality of candidate motions at time t7.
  • Table 1930 in FIG. 19 shows status information over time.
  • Table 1930 shows status information from time t1 to time t7.
  • the mobile robot 100 can identify status information at a previous point in time based on a preset period.
  • the mobile robot 100 may identify that the preset state information is the second state (negative) based on the state information corresponding to each time point t2 to t6. This is because from t2 to t6, the first state (positive) is not identified and only the second state (negative) is identified. And, it is assumed that the state information of the candidate motion is in the third state (stable). Since the preset state information is the second state (negative) and the state information of the candidate motion is the third state (stable), the mobile robot 100 may determine the classification information of the candidate motion as a decision classification (second classification).
  • FIG. 20 is a diagram illustrating an operation of identifying classification information by considering the amount of change in angular velocity stored for a preset period according to various embodiments.
  • Graph 2010 in FIG. 20 shows angular velocity over time.
  • the graph (2010) shows the angular velocity from time t0 to time t7.
  • the mobile robot 100 may obtain an angular velocity change based on the angular velocities of a plurality of candidate motions at time t7.
  • Graph 2020 in FIG. 20 shows the amount of change in angular velocity over time.
  • the graph (2020) shows the amount of change in angular velocity from time t1 to time t7.
  • the mobile robot 100 may identify state information based on the angular velocity change amount of each of the plurality of candidate motions at time t7.
  • Table 2030 in FIG. 20 shows status information over time.
  • Table 2030 shows status information from time t1 to time t7.
  • the mobile robot 100 can identify status information at a previous point in time based on a preset period.
  • the mobile robot 100 may identify that the preset state information is the second state (negative) based on the state information corresponding to each time point t2 to t6. This is because from t2 to t6, the first state (positive) is not identified and only the second state (negative) is identified. And, it is assumed that the state information of the candidate motion is in the first state (positive). Since the preset state information is the second state (negative) and the state information of the candidate motion is the first state (positive), the mobile robot 100 may determine the classification information of the candidate motion to be a non-deterministic classification (first classification).
  • first classification non-deterministic classification
  • Figure 21 is a diagram for explaining an embodiment of identifying the final motion based on the driving score.
  • the embodiment 2110 of FIG. 21 may represent a mobile robot 100, an obstacle 20, and a target point 10.
  • the mobile robot 100 may create a driving path that avoids obstacles 20 in order to move to the target point 10.
  • the mobile robot 100 may calculate a driving score corresponding to each of a plurality of candidate motions.
  • Equation 2120 in FIG. 21 represents a method of calculating a driving score.
  • the driving score can be calculated as “W_obs*C_obs - W_goal*D_goal”.
  • w ⁇ i represents the angular velocity of the candidate motion.
  • v ⁇ j represents the linear velocity of the candidate motion.
  • W_obs represents the weight corresponding to C_obs.
  • C_obs represents the distance (the length of an arc or the length of a straight line) from the position of the mobile robot 100 to the position of the obstacle 20 within the predicted trajectory of the mobile robot 100. According to various embodiments, C_obs may represent the distance that the mobile robot 100 must move to avoid the obstacle 20.
  • W_goal represents the weight corresponding to D_goal.
  • D_goal represents the distance from the predicted point of the mobile robot 100 to the target point 10.
  • the predicted point may mean a point where the mobile robot 100 can be located after avoiding the obstacle 20 within the predicted trajectory.
  • W_obs and W_goal can have values greater than 0.
  • Equation 2130 in FIG. 21 shows a calculation method to select the final motion.
  • Desired Velocity(w,v) represents the final motion.
  • w represents the angular velocity of the final motion.
  • v represents the linear velocity of the final motion.
  • argmaxScore(w ⁇ i,v ⁇ j) may refer to a function that finds the angular velocity and linear velocity with the maximum driving score among a plurality of candidate motions including angular velocity and linear velocity.
  • w ⁇ i represents the angular velocity of the candidate motion and may represent the value included in W_List.
  • v ⁇ j represents the linear speed of the candidate motion and can represent the value included in V_List.
  • W_List may represent the angular velocity range of candidate motion representing a preset space (or a valid search space).
  • V_List may represent the angular velocity range of candidate motion representing a preset space (or a valid search space).
  • Figure 22 is a diagram for explaining a process of calculating driving scores according to various embodiments.
  • the embodiment 2210 of FIG. 22 may represent a mobile robot 100, an obstacle 20, and a target point 10.
  • Embodiment 2210 of FIG. 22 shows a situation in which an obstacle 20 exists on the right side of the traveling direction of the mobile robot 100.
  • the point where the mobile robot 100 is located is (x0,y0), the target point is (x1,y1), and the point where the obstacle is located is (x2,y2).
  • the mobile robot 100 may identify the virtual center point as (x3,y3) based on the angular velocity of the candidate motion and the linear velocity of the candidate motion.
  • the mobile robot 100 can identify the predicted trajectory based on the virtual center point and the turning radius (r).
  • the mobile robot 100 can identify the prediction point as (x4,y4) within the prediction trajectory.
  • the mobile robot 100 can identify the angle ⁇ between the mobile robot 100 and the obstacle 20 within the predicted trajectory.
  • the mobile robot 100 may identify the distance (C_obs) from the position of the mobile robot 100 to the position of the obstacle 20 within the predicted trajectory of the mobile robot 100.
  • the mobile robot 100 can identify the distance (D_goal) from the predicted point of the mobile robot 100 to the goal point 10.
  • the graph 2220 of FIG. 22 may be a two-dimensional graph to represent the embodiment 2210. ⁇ can be identified through the virtual triangle 2221 in the graph 2220.
  • Equation 2230 may represent a calculation method for finding the virtual center point.
  • the virtual center point may be a point moved along the y-axis by the rotation radius (r) from the position (x0,y0) of the mobile robot 100.
  • the radius of rotation (r) may mean y3.
  • the radius of rotation (r) may be
  • Equation 2240 represents a method of calculating the angle ⁇ between the mobile robot 100 and the obstacle 20 within the predicted trajectory.
  • the angle ⁇ may be tan-1(
  • the angle ( ⁇ ) may be tan ⁇ -1(
  • Equation 2250 represents a method of calculating the distance (C_obs).
  • the distance (C_obs) may be r* ⁇ .
  • the distance (C_obs) is
  • the distance (C_obs) is
  • Equation 2260 represents a method of calculating the distance (D_goal).
  • Distance (D_goal) may be root((x1-x4) ⁇ 2+(y1-y4) ⁇ 2).
  • Figure 23 is a diagram for explaining a process of calculating driving scores according to various embodiments.
  • the embodiment 2310 of FIG. 23 may represent a mobile robot 100, an obstacle 20, and a target point 10.
  • Embodiment 2310 of FIG. 23 shows a situation in which an obstacle 20 exists on the left side of the traveling direction of the mobile robot 100.
  • the point where the mobile robot 100 is located is (x0,y0), the target point is (x1,y1), and the point where the obstacle is located is (x2,y2).
  • the virtual center point is (x3,y3).
  • the prediction point within the prediction trajectory may be (x4,y4).
  • the angle between the mobile robot 100 and the obstacle 20 within the prediction trajectory is ⁇ , the distance from the position of the mobile robot 100 to the position of the obstacle 20 within the prediction trajectory is C_obs, and the target point from the prediction point is C_obs.
  • the distance to (10) may be D_goal. Since the description related to this is described in FIG. 23, duplicate description will be omitted.
  • the graph 2320 of FIG. 23 may be a two-dimensional graph to represent the embodiment 2310. ⁇ can be identified through the virtual triangle 2321 in the graph 2320.
  • the equations (2330, 2340, 2350, 2360) of FIG. 23 may correspond to the equations (2230, 2240, 2250, 2260) of FIG. 22. Therefore, redundant description is omitted.
  • Figure 24 is a diagram for explaining a process of calculating the maximum value of a driving score according to various embodiments.
  • Embodiment 2410 of FIG. 24 graphically represents the process of finding the maximum value of the driving score.
  • the graph 2411 may represent the angular velocity of the candidate motion and the linear velocity of the candidate motion included in a specific valid search space.
  • a valid search space may have an angular velocity range of the candidate motion from wa to wb, and a linear velocity range of the candidate motion from va to vb.
  • Equation 2420 of FIG. 24 may correspond to equation 2120 of FIG. 21. Therefore, redundant description is omitted.
  • equation 2430 may be a formula that summarizes equation 2420 as “W_goal*D_goal.”
  • equation 2440 may be an equation that summarizes equation 2430 as “D_goal.”
  • the graph 2412 may have C_obs on the x-axis and D_goal on the y-axis. By considering the y-axis intercept of each candidate motion in the graph 2412, the maximum driving score can be calculated.
  • Figure 25 is a diagram for explaining the operation of identifying a motion corresponding to one of the non-deterministic classification and the deterministic classification as the final motion.
  • the mobile robot 100 can obtain the maximum driving score for each classification information. Specifically, the mobile robot 100 may classify a plurality of candidate motions into non-deterministic classification (first classification) or decision classification (second classification).
  • first classification non-deterministic classification
  • second classification decision classification
  • the mobile robot 100 may identify a candidate motion (first motion) with the maximum driving score among candidate motions classified into a non-deterministic classification (first classification). The maximum driving score obtained in the non-deterministic classification (first classification) is written as S_i. Additionally, the mobile robot 100 may identify a candidate motion (second motion) with the maximum driving score among candidate motions classified by decision classification (second classification). The maximum driving score obtained in the decision classification (second classification) is written as S_d.
  • the mobile robot 100 may identify the final motion based on the driving score (S_i) of the first motion and the driving score (S_d) of the second motion.
  • the mobile robot 100 may obtain a value (S_d+ S_adv) that is the sum of the driving score (S_d) and the critical driving score (S_adv) of the second motion. Additionally, the mobile robot 100 can identify the final motion by comparing the driving score (S_i) of the first motion and the sum value (S_d+S_adv).
  • the mobile robot 100 identifies the first motion corresponding to the driving score (S_i) as the final motion. can do.
  • the mobile robot 100 may identify the second motion corresponding to the driving score (S_d) as the final motion. You can.
  • the mobile robot 100 can increase the probability of selecting a candidate motion classified into a decision classification by additionally considering the threshold driving score (S_adv).
  • S_adv threshold driving score
  • the x-axis may represent the driving score (S_i) of the first motion (non-deterministic classification), and the y-axis may represent the linear speed.
  • V_i is the linear velocity of the first motion (non-deterministic classification)
  • V_d is the linear velocity of the second motion (deterministic classification). If the driving score (S_i) of the first motion exceeds (or is greater than) the sum value (S_d + S_adv), the mobile robot 100 can control the motor at the linear speed (V_i) of the first motion (non-deterministic classification). there is.
  • the mobile robot 100 can control the motor at the linear speed (V_d) of the second motion (decision classification).
  • the region from S_d to S_d+ S_adv can be expressed as an activation region.
  • the activation area may be an area that controls the motor at the linear speed (V_d) of the second motion (decision classification) even if it corresponds to a driving score greater than the driving score (S_d) of the second motion.
  • FIG. 26 is a diagram illustrating the overall operation process of selecting one motion among a plurality of candidate motions as the final motion.
  • the mobile robot 100 may include a travel path creation module 2600.
  • the driving path creation module 2600 may be described as “Forward Planner.”
  • the driving path creation module 2600 includes a motion candidate generation module 2610 (or Motion Candidate Generator), a motion analysis module 2620, a score table creation module 2630 (or Score Table Builder), or a motion selection module 2640 ( or Optimal Motion Selector).
  • the motion candidate generation module 2610 may refer to a module that generates a plurality of candidate motions that can be identified in a valid search space (or dynamic window).
  • the motion analysis module 2620 may include at least one of a motion storage unit 2621 or a motion classification unit 2622.
  • the motion storage unit 2621 may store information on the linear speed or angular speed at which the mobile robot 100 actually travels.
  • the motion storage unit 2621 can store information related to motion.
  • the motion classification unit 2622 may distinguish motion classification information by comparing the motion record stored in the motion storage unit 2621 with the candidate motion generated by the motion candidate generation module 2610.
  • the score table creation module 2630 may generate driving scores for each of a plurality of candidate motions.
  • the motion selection module 2640 may identify the final motion based on the generated driving score. Specifically, the mobile robot 100 may select the optimal final motion based on the classification information classified by the motion classification unit 2622 and the driving score generated by the score table generation module 2630.
  • Figure 27 is a diagram for explaining the position and angular velocity that change as the mobile robot 100 moves.
  • the graph 2710 in FIG. 27 is a two-dimensional coordinate system representing the traveling path of the mobile robot 100. According to the graph 2710, the mobile robot 100 may start from the starting point and move to the left of the obstacle 20.
  • Graph 2720 in FIG. 27 shows angular velocity over time.
  • the angular speed changes suddenly around 3 seconds and around 6 seconds.
  • the angular speed can be maintained constant around 3 seconds and around 6 seconds. Accordingly, the driving stability of the mobile robot 100 can be increased.
  • Figure 28 is a flowchart for explaining the mobile robot 100 operating in a soft driving mode.
  • the mobile robot 100 can obtain the angular velocity change amount corresponding to each of a plurality of candidate motions (S2805). And, the mobile robot 100 can travel in soft driving mode (S2810).
  • the mobile robot 100 can basically always run in a soft driving mode.
  • the soft driving mode may be a driving mode that additionally considers the amount of change in angular velocity in addition to the minimum time or shortest distance. Driving operations that consider the amount of angular velocity change are described in FIGS. 5 to 12.
  • Figure 29 is a diagram for comparing normal driving mode and soft driving mode.
  • the mobile robot 100 may provide a UI screen 2900 to guide the user to select a driving mode.
  • the UI screen 2900 may include at least one of text information 2910 indicating selection of a driving mode, a UI 2910 explaining a normal driving mode, or a UI 2920 explaining a soft driving mode.
  • the UI 2910 explaining the general driving mode includes either text information 2911 indicating driving based on the shortest path (or minimum time) or guide image information 2912 indicating representative examples of driving paths according to the general driving mode. It can contain at least one.
  • the image information 2912 may include an image of a representative example. According to various embodiments, the image information 2912 may include an image of the actual expected driving path.
  • the UI 2920 explaining the soft driving mode is either text information 2921 indicating driving based on the shortest path (or minimum time) or guide image information 2922 indicating a representative example of a driving path according to the soft driving mode. It can contain at least one.
  • the image information 2922 may include an image of a representative example. According to various embodiments, the image information 2922 may include an image of the actual expected driving path.
  • Figure 30 is a diagram for explaining indicators related to soft driving mode.
  • the mobile robot 100 may display an indicator 3011 indicating a soft driving mode.
  • the mobile robot 100 can operate in normal driving mode and soft driving mode according to user settings.
  • the mobile robot 100 may display an indicator 3011.
  • the operation of displaying the indicator 3011 may mean emitting light from a light emitting diode (LED) disposed at a specific location.
  • LED light emitting diode
  • the mobile robot 100 may include a display 140. Additionally, when the mobile robot 100 operates in the soft driving mode, an indicator indicating that the mobile robot 100 is driving in the soft driving mode may be displayed on the display 140.
  • the indicator may include at least one of text information 3021 or an icon 3022.
  • 31 is a flowchart for explaining a driving operation in a soft driving mode according to various embodiments.
  • the mobile robot 100 can obtain the angular velocity change amount corresponding to each of a plurality of candidate motions (S3105). And, the mobile robot 100 can identify whether an obstacle exists (S3110). The mobile robot 100 may identify whether there is an obstacle on the traveling path of the mobile robot 100 based on sensing data obtained from the sensor 110.
  • the mobile robot 100 can drive in a soft driving mode (S3115).
  • the soft driving mode may be a mode in which the driving path of the mobile robot 100 is set based on the amount of change in angular velocity.
  • the mobile robot 100 can drive in a normal driving mode (S3120).
  • the general driving mode may be a mode in which the driving path of the mobile robot 100 is set based on the shortest distance or minimum time.
  • 32 is a flowchart for explaining a driving operation in a soft driving mode according to various embodiments.
  • the mobile robot 100 can obtain the angular velocity change amount corresponding to each of a plurality of candidate motions (S3205). And, the mobile robot 100 can identify whether the amount of change in angular velocity changes from a positive number to a negative number (S3210).
  • the mobile robot 100 can drive in the soft driving mode (S3215).
  • the mobile robot 100 may identify whether the angular velocity change amount changes from a negative number to a positive number (S3220). When the angular velocity change changes from a negative number to a positive number (S3220-Y), the mobile robot 100 can drive in the soft driving mode (S3215).
  • the mobile robot 100 can drive in the normal driving mode.
  • the mobile robot 100 can run in the soft driving mode. Even if the sign (negative or positive) of the angular velocity change changes, the actual direction of movement may not change immediately and the speed may decrease. Accordingly, the mobile robot 100 can determine the possibility that the direction of movement will suddenly change based on the change in the sign (negative or positive) of the angular velocity change amount. And, when a change in the sign (negative or positive) of the angular velocity change is identified, the mobile robot 100 can run in a soft driving mode and maintain the direction of movement as much as possible.
  • Figure 33 is a flowchart for explaining a control method of the mobile robot 100 according to an embodiment of the present disclosure.
  • the control method of the mobile robot 100 includes the steps of acquiring a travel path of the mobile robot 100, an angular velocity change amount corresponding to each of a plurality of candidate motions of the mobile robot 100 moving along the travel path. Identifying based on sensing data obtained from a sensor, identifying a final motion among a plurality of candidate motions based on the amount of angular velocity change, and controlling the mobile robot 100 to move based on the final motion. You can.
  • state information of the candidate motion can be identified based on the amount of change in the angular velocity of the candidate motion
  • classification information of the candidate motion can be identified depending on whether the state information has changed, and corresponding to the candidate motion.
  • the driving score can be obtained, and the final motion among a plurality of candidate motions can be identified based on the driving score and classification information.
  • the step of identifying the state information may identify the state information of the previous viewpoint motion based on the angular velocity of the previous viewpoint motion, and the state of the candidate motion based on the difference between the angular velocity of the previous viewpoint motion and the angular velocity of the plurality of candidate motions.
  • Information may be identified, and the step of identifying classification information may identify classification information of the candidate motion based on state information of the previous viewpoint motion and state information of the candidate motion.
  • the driving score is a larger value as the distance that the mobile robot 100, which moves based on the candidate motion, moves to avoid the obstacle is larger, and after avoiding the obstacle, it reaches the predicted point and target point where the mobile robot 100 is located.
  • the state information of the candidate motion may be identified as the first state, and the angular velocity change amount of the candidate motion is less than the first threshold value. If it is less than the second threshold, the state information of the candidate motion can be identified as the second state, and if the angular velocity change amount of the candidate motion is less than the first threshold and exceeds the second threshold, the state information of the candidate motion can be identified as the third state. It can be identified by status.
  • the classification information of the candidate motion is changed into the first state. It can be identified by classification, and the state information of the candidate motion changes from the first state to the third state, the state information of the candidate motion changes from the second state to the third state, or the state information of the candidate motion changes from the third state.
  • the classification information of the candidate motion may be identified as the second classification.
  • the first classification may be a classification in which the state information of the candidate motion changes relatively rapidly compared to the second classification.
  • the step of identifying classification information may identify classification information of a candidate motion based on state information acquired during a preset period.
  • the step of identifying the final motion may identify a first motion having the largest driving score among at least one candidate motion identified in the first classification, and a driving score among the at least one candidate motion identified in the second classification.
  • the largest second motion can be identified, and either the first motion or the second motion can be identified as the final motion.
  • the first motion may be identified as the final motion, and the first motion may be identified as the final motion. If the first driving score of the motion is less than or equal to the sum of the second driving score of the second motion and the critical driving score, the second motion may be identified as the final motion.
  • the mobile robot 100 is moved based on a soft driving mode that identifies the final motion among a plurality of candidate motions based on the angular velocity change amount.
  • a control step may be further included.
  • control method of the mobile robot 100 as shown in FIG. 33 can be executed on the mobile robot 100 having the configuration of FIG. 2 or FIG. 3, and can also be executed on devices having other configurations.
  • the various embodiments of the present disclosure described above can also be performed through an embedded server provided in the mobile robot 100 or an external server of at least one of the mobile robot 100 and the display device.
  • the various embodiments described above may be implemented as software including instructions stored in a machine-readable storage media (e.g., a computer).
  • the device is a device capable of calling commands stored from a storage medium and operating according to the called commands, and may include the mobile robot 100 according to the disclosed embodiments.
  • the processor may perform the function corresponding to the instruction directly or using other components under the control of the processor.
  • Instructions may contain code generated or executed by a compiler or interpreter.
  • a storage medium that can be read by a device may be provided in the form of a non-transitory storage medium.
  • 'non-transitory' only means that the storage medium does not contain signals and is tangible, and does not distinguish whether the data is stored semi-permanently or temporarily in the storage medium.
  • the method according to the various embodiments described above may be included and provided in a computer program product.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • the computer program product may be distributed on a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or online through an application store (e.g. Play StoreTM).
  • an application store e.g. Play StoreTM
  • at least a portion of the computer program product may be at least temporarily stored or created temporarily in a storage medium such as the memory of a manufacturer's server, an application store's server, or a relay server.
  • each component e.g., module or program
  • each component may be composed of a single or multiple entities, and some of the sub-components described above may be omitted, or other sub-components may be omitted. Additional components may be included in various embodiments. Alternatively or additionally, some components (e.g., modules or programs) may be integrated into one entity and perform the same or similar functions performed by each corresponding component prior to integration. According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or at least some operations may be executed in a different order, omitted, or other operations may be added. You can.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 이동형 로봇은 센서, 이동형 로봇을 구동하기 위한 모터 및 이동형 로봇의 주행 경로를 획득하고, 주행 경로를 따라 이동하는 이동형 로봇의 복수의 후보 모션 각각에 대응되는 각속도 변화량을 센서로부터 획득된 센싱 데이터에 기초하여 결정하고, 복수의 후보 모션 각각에 대응되는 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 결정하고, 최종 모션에 기초하여 이동형 로봇을 이동하도록 모터를 제어하는 적어도 하나의 프로세서를 포함한다.

Description

이동형 로봇 및 그 제어 방법
본 개시는 이동형 로봇 및 그 제어방법에 관한 것으로, 더욱 상세하게는 각속도 변화량에 기초하여 주행 경로를 설정하는 이동형 로봇 및 그 제어방법에 대한 것이다.
이동형 로봇은 주행 경로를 따라 이동하는 기기이다. 주행 경로는 로봇이 목표 지점까지 이동하기 위한 경로를 의미한다. 주행 경로 상에 장애물이 존재하는 경우 로봇은 장애물을 회피하여 목표 지점까지 이동할 수 있다. 따라서, 주행 경로는 로봇이 존재하는 주변 환경에 따라 실시간으로 변경될 수 있다.
주행 중 장애물이 식별되는 경우, 로봇은 장애물을 회피하기 위해 주행 경로를 변경할 수 있다. 여기서, 로봇은 주행 경로를 변경하기 위해 복수의 후보 모션을 고려할 수 있다. 로봇은 복수의 후보 모션 중 최종 모션을 선택하여 주행 경로를 변경할 수 있다.
복수의 후보 모션 중 하나의 모션을 최종 모션으로 선택함에 있어 최대 주행 스코어를 가지는 모션을 선택하는 방식으로 주행 경로를 생성하는 경우, 주행 방향이 번복될 수 있다. 주행 방향이 유지되면서 장애물을 회피하지 않는 경우, 로봇이 장애물에 부딪히거나 오정지하는 경우가 발생할 수 있다.
본 개시는 상술한 문제를 개선하기 위해 고안된 것으로, 본 개시의 목적은 각속도 변화량을 고려하여 주행 경로를 설정함으로써 기존 주행 경로를 최대한 유지하는 이동형 로봇 및 그의 제어 방법을 제공함에 있다.
다양한 실시 예에 따른 이동형 로봇은 센서, 상기 이동형 로봇을 구동하기 위한 모터 및 상기 이동형 로봇의 주행 경로를 획득하고, 상기 주행 경로를 따라 이동하는 상기 이동형 로봇의 복수의 후보 모션 각각에 대응되는 각속도 변화량을 상기 센서로부터 획득된 센싱 데이터에 기초하여 결정하고, 상기 복수의 후보 모션 각각에 대응되는 각속도 변화량에 기초하여 상기 복수의 후보 모션 중 최종 모션을 결정하고, 상기 최종 모션에 기초하여 상기 이동형 로봇을 이동하도록 상기 모터를 제어하는 적어도 하나의 프로세서를 포함한다.
한편, 상기 적어도 하나의 프로세서는 상기 복수의 후보 모션 각각에 대응되는 각속도 변화량에 기초하여 상기 복수의 후보 모션 각각의 상태 정보를 결정하고, 상기 상태 정보의 변경 여부에 따라 상기 복수의 후보 모션 각각의 분류 정보(또는 타입 정보)를 결정하고, 상기 복수의 후보 모션 각각에 대응되는 주행 스코어를 계산하고, 상기 복수의 후보 모션에 대한 상기 주행 스코어 및 상기 복수의 후보 모션에 대한 분류 정보에 기초하여 상기 복수의 후보 모션 중 최종 모션을 결정할 수 있다.
한편, 상기 적어도 하나의 프로세서는 이전 시점 모션의 각속도에 기초하여 상기 이전 시점 모션의 상태 정보를 식별하고, 상기 이전 시점 모션의 각속도 및 상기 복수의 후보 모션 각각의 각속도 간 차이에 기초하여 상기 복수의 후보 모션 각각의 상태 정보를 결정하고, 상기 이전 시점 모션의 상태 정보 및 상기 복수의 후보 모션 각각의 상태 정보에 기초하여 상기 복수의 후보 모션 각각의 분류 정보를 결정할 수 있다.
한편, 상기 주행 스코어는 상기 복수의 후보 모션 중 특정 후보 모션에 기초하여 이동하는 상기 이동형 로봇이 장애물을 회피하기 위해 이동하는 거리가 클수록 커지며, 상기 주행 스코어는 상기 장애물을 회피한 이후 상기 이동형 로봇이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 커질 수 있다.
한편, 상기 적어도 하나의 프로세서는 특정 후보 모션에 대응되는 상기 각속도 변화량이 제1 임계값을 초과하면, 상기 복수의 후보 모션 중 상기 특정 후보 모션의 상태 정보를 제1 상태로 결정하고, 상기 특정 후보 모션에 대응되는 상기 각속도 변화량이 상기 제1 임계값보다 작은 제2 임계값 미만이면, 상기 복수의 후보 모션 중 상기 특정 후보 모션의 상태 정보를 제2 상태로 결정하고, 상기 특정 후보 모션에 대응되는 상기 각속도 변화량이 상기 제1 임계값 이하이고 상기 제2 임계값을 초과하면, 상기 특정 후보 모션의 상태 정보를 제3 상태로 결정할 수 있다.
한편, 상기 적어도 하나의 프로세서는 상기 특정 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제2 상태로 변경되거나 상기 제2 상태에서 상기 제1 상태로 변경되면, 상기 특정 후보 모션의 분류 정보를 제1 분류(또는 타입)로 결정하고, 상기 특정 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제3 상태로 변경되거나, 상기 제2 상태에서 상기 제3 상태로 변경되거나, 상기 제3 상태에서 상기 제1 상태로 변경되거나, 상기 제3 상태에서 상기 제2 상태로 변경되면, 상기 특정 후보 모션의 분류 정보를 제2 분류로 결정하며, 상기 제1 분류는 상기 제2 분류에 비해 상기 특정 후보 모션의 상태 정보가 상대적으로 급격히 변경되는 분류일 수 있다.
한편, 상기 적어도 하나의 프로세서는 기 설정된 기간 안에 획득된 상기 특정 후보 모션의 상태 정보에 기초하여 상기 특정 후보 모션의 상기 분류 정보를 결정할 수 있다.
한편, 상기 적어도 하나의 프로세서는 상기 제1 분류로 결정된 적어도 하나의 후보 모션 중 최대 주행 스코어의 제1 모션을 식별하고, 상기 제2 분류로 결정된 적어도 하나의 후보 모션 중 최대 주행 스코어의 제2 모션을 식별하고, 상기 제1 모션 또는 상기 제2 모션 중 어느 하나를 상기 최종 모션으로 결정할 수 있다.
한편, 상기 제1 모션의 주행 스코어는 제1 주행 스코어이고, 상기 제2 모션의 주행 스코어는 제2 주행 스코어이고, 상기 적어도 하나의 프로세서는 상기 제1 주행 스코어가 상기 제2 주행 스코어 및 임계 주행 스코어의 합을 초과하면, 상기 제1 모션을 상기 최종 모션으로 결정하고, 상기 제1 주행 스코어가 상기 제2 주행 스코어 및 상기 임계 주행 스코어의 합 이하이면, 상기 제2 모션을 상기 최종 모션으로 결정할 수 있다.
한편, 상기 적어도 하나의 프로세서는 상기 각속도 변화량이 양수에서 음수로 변경되거나 음수에서 양수로 변경되면, 상기 각속도 변화량에 기초하여 상기 복수의 후보 모션 중 상기 최종 모션에 기초하여 상기 이동형 로봇을 이동하도록 상기 모터를 제어하고, 소프트 주행 모드에 기초하여 상기 이동형 로봇을 이동하도록 상기 모터를 제어할 수 있다.
다양한 실시 예에 따른 이동형 로봇의 제어 방법은 상기 이동형 로봇의 주행 경로를 획득하는 단계, 상기 주행 경로를 따라 이동하는 상기 이동형 로봇의 복수의 후보 모션 각각에 대응되는 각속도 변화량을 센서로부터 획득된 센싱 데이터에 기초하여 결정하는 단계, 상기 복수의 후보 모션 각각에 대응되는 각속도 변화량에 기초하여 상기 복수의 후보 모션 중 최종 모션을 결정하는 단계 및 상기 최종 모션에 기초하여 상기 이동형 로봇을 제어하는 단계를 포함한다.
한편, 상기 제어 방법은 상기 복수의 후보 모션 각각에 대응되는 각속도 변화량에 기초하여 상기 복수의 후보 모션 각각의 상태 정보를 결정하는 단계, 상기 상태 정보의 변경 여부에 따라 상기 복수의 후보 모션 각각의 분류 정보를 결정하는 단계, 상기 복수의 후보 모션 각각에 대응되는 주행 스코어를 계산하는 단계 및 상기 복수의 후보 모션에 대한 상기 주행 스코어 및 상기 복수의 후보 모션에 대한 분류 정보에 기초하여 상기 복수의 후보 모션 중 최종 모션을 결정하는 단계를 더 포함할 수 있다.
한편, 상기 제어 방법은 이전 시점 모션의 각속도에 기초하여 상기 이전 시점 모션의 상태 정보를 식별하는 단계를 더 포함하고, 상기 상태 정보를 결정하는 단계는 상기 이전 시점 모션의 각속도 및 상기 복수의 후보 모션 각각의 각속도 간 차이에 기초하여 상기 복수의 후보 모션 각각의 상태 정보를 결정할 수 있으며, 상기 분류 정보를 결정하는 단계는 상기 이전 시점 모션의 상태 정보 및 상기 복수의 후보 모션 각각의 상태 정보에 기초하여 상기 복수의 후보 모션 각각의 분류 정보를 결정할 수 있다.
한편, 상기 주행 스코어는 상기 복수의 후보 모션 중 특정 후보 모션에 기초하여 이동하는 상기 이동형 로봇이 장애물을 회피하기 위해 이동하는 거리가 클수록 커지며, 상기 주행 스코어는 상기 장애물을 회피한 이후 상기 이동형 로봇이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 커질 수 있다.
한편, 상기 상태 정보를 결정하는 단계는 특정 후보 모션에 대응되는 상기 각속도 변화량이 제1 임계값을 초과하면, 상기 복수의 후보 모션 중 상기 특정 후보 모션의 상태 정보를 제1 상태로 결정하고, 상기 특정 후보 모션에 대응되는 상기 각속도 변화량이 상기 제1 임계값보다 작은 제2 임계값 미만이면, 상기 복수의 후보 모션 중 상기 특정 후보 모션의 상태 정보를 제2 상태로 결정하고, 상기 특정 후보 모션에 대응되는 상기 각속도 변화량이 상기 제1 임계값 이하이고 상기 제2 임계값을 초과하면, 상기 특정 후보 모션의 상태 정보를 제3 상태로 결정할 수 있다.
한편, 상기 분류 정보를 결정하는 단계는 상기 특정 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제2 상태로 변경되거나 상기 제2 상태에서 상기 제1 상태로 변경되면, 상기 특정 후보 모션의 분류 정보를 제1 분류로 결정하고, 상기 특정 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제3 상태로 변경되거나, 상기 제2 상태에서 상기 제3 상태로 변경되거나, 상기 제3 상태에서 상기 제1 상태로 변경되거나, 상기 제3 상태에서 상기 제2 상태로 변경되면, 상기 특정 후보 모션의 분류 정보를 제2 분류로 결정하며, 상기 제1 분류는 상기 제2 분류에 비해 상기 특정 후보 모션의 상태 정보가 상대적으로 급격히 변경되는 분류일 수 있다.
한편, 상기 분류 정보를 결정하는 단계는 기 설정된 기간 안에 획득된 상기 특정 후보 모션의 상태 정보에 기초하여 상기 특정 후보 모션의 상기 분류 정보를 결정할 수 있다.
한편, 상기 제어 방법은 상기 제1 분류로 결정된 적어도 하나의 후보 모션 중 최대 주행 스코어의 제1 모션을 식별하는 단계, 상기 제2 분류로 결정된 적어도 하나의 후보 모션 중 최대 주행 스코어의 제2 모션을 식별하는 단계를 더 포함하고, 상기 최종 모션을 결정하는 단계는 상기 제1 모션 또는 상기 제2 모션 중 어느 하나를 상기 최종 모션으로 결정할 수 있다.
한편, 상기 제1 모션의 주행 스코어는 제1 주행 스코어이고, 상기 제2 모션의 주행 스코어는 제2 주행 스코어이고, 상기 최종 모션을 결정하는 단계는 상기 제1 주행 스코어가 상기 제2 주행 스코어 및 임계 주행 스코어의 합을 초과하면, 상기 제1 모션을 상기 최종 모션으로 결정하고, 상기 제1 주행 스코어가 상기 제2 주행 스코어 및 상기 임계 주행 스코어의 합 이하이면, 상기 제2 모션을 상기 최종 모션으로 결정할 수 있다.
한편, 상기 제어 방법은 상기 각속도 변화량이 양수에서 음수로 변경되거나 음수에서 양수로 변경되면, 상기 각속도 변화량에 기초하여 상기 복수의 후보 모션 중 상기 최종 모션에 기초하여 상기 이동형 로봇을 제어하고, 소프트 주행 모드에 기초하여 상기 이동형 로봇을 제어하는 단계를 더 포함할 수 있다.
도 1은 이동형 로봇의 주행 경로를 설정하는 동작을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 이동형 로봇을 도시한 블록도이다.
도 3은 도 2의 이동형 로봇 의 구체적인 구성을 설명하기 위한 블록도이다.
도 4는 이동형 로봇의 주행 경로를 계산하는 동작을 설명하기 위한 도면이다.
도 5는 이동형 로봇의 모션을 결정함에 있어 각속도 변화량을 고려하는 동작을 설명하기 위한 흐름도이다.
도 6은 이동형 로봇의 모션을 결정함에 있어 상태 정보를 고려하는 동작을 설명하기 위한 흐름도이다.
도 7은 이동형 로봇의 모션을 결정함에 있어 분류 정보를 고려하는 동작을 설명하기 위한 흐름도이다.
도 8은 이동형 로봇의 모션을 결정함에 있어 주행 스코어를 고려하는 동작을 설명하기 위한 흐름도이다.
도 9는 상태 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 10은 다양한 실시 예에 따라 분류 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 11은 다양한 실시 예에 따라 분류 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 12는 분류 정보 및 주행 스코어에 기초하여 최종 모션을 식별하는 과정을 설명하기 위한 흐름도이다.
도 13은 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 계산 과정을 전반적으로 설명하기 위한 표이다.
도 14는 각속도 변화량을 설명하기 위한 도면이다.
도 15는 다양한 실시 예에 따라 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 16은 다양한 실시 예에 따라 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 17은 다양한 실시 예에 따라 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 18은 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 19는 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 20은 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 21은 주행 스코어에 기초하여 최종 모션을 식별하는 실시 예를 설명하기 위한 도면이다.
도 22는 다양한 실시 예에 따라 주행 스코어를 계산하는 과정을 설명하기 위한 도면이다.
도 23은 다양한 실시 예에 따라 주행 스코어를 계산하는 과정을 설명하기 위한 도면이다.
도 24는 다양한 실시 예에 따라 주행 스코어의 최대값을 계산하는 과정을 설명하기 위한 도면이다.
도 25는 비결정 분류와 결정 분류 중 하나의 분류에 해당하는 모션을 최종 모션으로 식별하는 동작을 설명하기 위한 도면이다.
도 26은 복수의 후보 모션 중 하나의 모션을 최종 모션으로 선택하는 전체적 동작 과정을 설명하는 도면이다.
도 27은 이동형 로봇이 이동함에 따라 변경되는 위치 및 각속도를 설명하기 위한 도면이다.
도 28은 소프트 주행 모드로 동작하는 이동형 로봇을 설명하기 위한 흐름도이다.
도 29는 일반 주행 모드와 소프트 주행 모드를 비교하기 위한 도면이다.
도 30은 소프트 주행 모드와 관련된 인디케이터를 설명하기 위한 도면이다.
도 31은 다양한 실시 예에 따라 소프트 주행 모드로 주행하는 동작을 설명하기 위한 흐름도이다.
도 32는 다양한 실시 예에 따라 소프트 주행 모드로 주행하는 동작을 설명하기 위한 흐름도이다.
도 33은 본 개시의 일 실시 예에 따른 이동형 로봇의 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
본 명세서에서, 사용자라는 용어는 전자 장치(이동형 로봇)를 사용하는 사람 또는 전자 장치(이동형 로봇)를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.
도 1은 이동형 로봇(100)의 주행 경로를 설정하는 동작을 설명하기 위한 도면이다.
이동형 로봇(100)은 주행 경로(또는 주행 경로 정보)에 기초하여 이동할 수 있다. 주행 경로는 이동형 로봇(100)을 제어하기 위한 적어도 하나의 모션을 포함할 수 있다. 모션은 이동형 로봇의 이동 방향, 이동 속도, 회전 속도 등을 나타내는 정보를 의미할 수 있다. 주행 경로는 이동형 로봇(100)가 어디로 이동할지를 나타내는 것이므로, 주행 경로가 정해지는 단계에서 복수의 후보 모션이 존재할 수 있다.
이동형 로봇(100)은 목표 지점(10)까지 이동하기 위한 주행 경로를 생성(또는 획득)할 수 있다. 이동형 로봇(100)은 주행 경로 상에 장애물(20)이 존재하는지 판단할 수 있다. 주행 경로 상에 장애물(20)이 존재하는 경우, 이동형 로봇(100)은 장애물(20)을 회피하도록 주행 경로를 생성할 수 있다. 이동형 로봇(100)은 후보 모션(#1)에 따라 왼쪽으로 이동(또는 회전)할지 아니면 후보 모션(#2)에 따라 오른쪽으로 이동(또는 회전)할지 여부를 결정할 수 있다.
이동형 로봇(100)은 복수의 후보 모션 중 기 정해진 계산 방식에 따라 후보 모션 중 하나를 최종 모션으로 결정할 수 있다.
일 예로, 최고 주행 스코어(예를 들어, 최단 거리)를 가장 우선하는 계산 방식을 적용한다면, 이동형 로봇(100)은 후보 모션(#1)과 후보 모션(#2) 중 최고 주행 스코어를 가지는 모션(예를 들어, 최단 거리로 이동하는 모션)을 최종 모션으로 결정할 수 있다.
또 다른 예로, 각속도 변화량을 고려하는 계산 방식을 적용한다면, 이동형 로봇(100)은 각속도 변화량에 기초하여 기존 주행 방향을 최대한 유지하는 계산 방식으로 최종 모션을 결정할 수 있다.
한편, 도 1에서는 이동형 로봇(100)이 후보 모션 중 하나의 모션을 선택하는 것으로 설명하였다. 하나의 모션이 선택된 이후에도 장애물(20)을 회피하는 결정이 번복될 수 있다. 예를 들어, 장애물(20)을 바라보는 방향을 기준으로 좌측으로 피하기 위한 후보 모션이 선택된 이후에도, 이동형 로봇(100)은 우측으로 피하기 위한 후보 모션을 선택할 수 있다. 장애물(20)의 좌측으로 이동하는 후보 모션(#01)과 장애물(20)의 우측으로 이동하는 후보 모션(#02)의 스코어 차이가 임계값 미만일 경우, 이러한 상황이 발생할 수 있다.
한편, 도 1에서는 이동형 로봇(100)을 로봇 청소기로 표현하였으나, 본 발명에서 설명하는 로봇은 자동으로 이동하는 다양한 장치에 적용될 수 있다.
도 2는 본 개시의 일 실시 예에 따른 이동형 로봇(100)을 도시한 블록도이다.
도 2를 참조하면, 이동형 로봇(100)은 센서(110), 모터(120) 및 적어도 하나의 프로세서(130)를 포함할 수 있다.
센서(110)는 이동형 로봇(100)의 속도 또는 각속도를 센싱하는 센서일 수 있다. 적어도 하나의 프로세서(130)는 센서(110)로부터 획득된 센싱 데이터에 기초하여 이동형 로봇(100)의 속도 또는 각속도를 획득할 수 있다.
센서(110)는 이동형 로봇(100)의 주행 경로 상의 장애물을 식별할 수 있는 이미지 센서를 포함할 수 있다. 적어도 하나의 프로세서(130)는 센서(110)로부터 획득된 센싱 데이터에 기초하여 장애물 여부를 식별할 수 있다.
센서(110)는 복수의 센서를 포함하는 개념일 수 있다. 센서(110)는 센서부로 기재될 수 있다. 센서와 관련된 구체적인 설명은 도 3에서 기재한다.
모터(120)는 이동형 로봇(100)를 이동시키기 위해 물리적인 힘을 생성할 수 있다. 모터(120)는 구동부로 기재될 수 있다. 적어도 하나의 프로세서(130)는 주행 경로 또는 최종 모션에 따라 이동형 로봇(100)가 이동되도록 모터(120)를 제어할 수 있다.
적어도 하나의 프로세서(130)는 이동형 로봇(100)의 전반적인 제어 동작을 수행할 수 있다. 구체적으로, 적어도 하나의 프로세서(130)는 이동형 로봇(100)의 전반적인 동작을 제어하는 기능을 한다.
적어도 하나의 프로세서(130)는 디지털 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), GPU(graphics-processing unit) 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM(advanced reduced instruction set computer (RISC) machines) 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 적어도 하나의 프로세서(130)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 적어도 하나의 프로세서(130)는 메모리(160)에 저장된 컴퓨터 실행가능 명령어(computer executable instructions)를 실행함으로써 다양한 기능을 수행할 수 있다.
적어도 하나의 프로세서(130)는 이동형 로봇(100)을 구동하기 위해 모터(120)를 제어할 수 있다.
또한, 적어도 하나의 프로세서(130)은 센서(110)를 통해 센싱 데이터를 획득할 수 있다. 여기서, 센서(110)는 적어도 하나의 센서를 포함할 수 있다.
센서(110)는 주행 경로를 설정하기 위해 이동형 로봇(100)의 이동과 관련된 데이터를 센싱하기 위한 제1 센서를 포함할 수 있다. 예를 들어, 제1 센서는 이미지 센서 또는 라이다 센서 등을 의미할 수 있다. 따라서, 적어도 하나의 프로세서(130)은 제1 센서를 통해 획득한 센싱 데이터에 기초하여 주행 경로를 획득(또는 식별)할 수 있다.
센서(110)는 이동형 로봇(100)의 이동과 관련된 물리 데이터를 센싱하기 위한 제2 센서를 포함할 수 있다. 예를 들어, 제2 센서는 자이로 센서 등을 의미할 수 있다. 따라서, 적어도 하나의 프로세서(130)는 제2 센서를 통해 획득한 센싱 데이터에 기초하여 이동 위치, 속도, 가속도, 선속도 또는 각속도 중 적어도 하나를 획득(또는 식별)할 수 있다.
적어도 하나의 프로세서(130)는 이동형 로봇(100)의 주행 경로를 획득하고, 주행 경로를 따라 이동하는 이동형 로봇(100)의 복수의 후보 모션 각각에 대응되는 각속도 변화량을 센서(110)로부터 획득된 센싱 데이터에 기초하여 식별하고, 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하고, 최종 모션에 기초하여 이동형 로봇(100)을 이동하도록 모터(120)를 제어하는 적어도 하나의 프로세서(130)를 포함할 수 있다.
여기서, 모션은 이동형 로봇의 이동 방향, 이동 속도, 회전 속도 등을 나타내는 정보를 의미할 수 있다. 모션은 선속도 또는 각속도 중 적어도 하나를 포함할 수 있다. 모션은 이동형 로봇(100)의 이동과 관련된 물리 데이터를 의미할 수 있다. 모션은 이동 데이터 또는 이동 정보로 기재될 수 있다.
적어도 하나의 프로세서(130)는 이동형 로봇(100)의 주행 동안 센서(110)로부터 센싱 데이터를 획득할 수 있다. 여기서, 센싱 데이터는 이동형 로봇(100)의 각속도 정보를 포함할 수 있다. 따라서, 적어도 하나의 프로세서(130)는 이동형 로봇(100)의 각속도 정보에 기초하여 각속도 변화량을 획득(또는 계산)할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 메모리(160)에 획득된 각속도 변화량을 저장할 수 있다. 적어도 하나의 프로세서(130)는 기 설정된 기간 동안 각속도 변화량을 저장할 수 있다.
모션은 이미 이동형 로봇(100)이 주행을 완료한 데이터를 포함하는 과거 시점의 모션과 이동형 로봇(100)이 앞으로 주행할 데이터를 포함하는 미래 시점의 모션으로 구분될 수 있다.
미래 시점의 모션을 최종 모션으로 기재할 수 있다. 최종 모션은 복수의 후보 모션 중에서 최종적으로 선택될 수 있다. 후보 모션은 미래 시점에 이동형 로봇(100)이 이동할 방향 및 속도 등을 포함하는 정보일 수 있다. 후보 모션은 동적 윈도우 접근(Dynamic Window Approach) 방식에 기초하여 결정될 수 있다. 이와 관련된 설명은 도 14의 그래프(1410)에 기재한다. 후보 모션은 기 설정된 범위 이내의 선속도를 포함할 수 있다. 또한, 후보 모션은 기 설정된 범위 이내의 각속도를 포함할 수 있다.
적어도 하나의 프로세서(130)는 이동형 로봇(100)과 관련된 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별할 수 있다.
한편, 적어도 하나의 프로세서(130)는 후보 모션의 각속도 변화량에 기초하여 후보 모션의 상태 정보를 식별하고, 상태 정보의 변경 여부에 따라 후보 모션의 분류 정보를 식별하고, 후보 모션에 대응되는 주행 스코어를 획득하고, 주행 스코어 및 분류 정보에 기초하여 분류 별 복수의 후보 모션 중 최종 모션을 식별할 수 있다.
여기서, 상태 정보는 이동형 로봇(100)의 주행 특성을 나타내는 정보를 의미할 수 있다. 여기서, 주행 특성은 각속도 변화량의 상태를 포함할 수 있다. 즉, 상태 정보는 각속도 변화량의 상태를 포함할 수 있다.
여기서, 분류 정보는 후보 모션이 특정 기준에 따라 구분된 분류를 나타내는 정보를 의미할 수 있다. 여기서, 특정 기준은 상태 정보의 변경 여부를 의미할 수 있다. 분류 정보는 그룹 정보로 기재될 수 있으며, 분류는 그룹으로 기재될 수 있다. 분류 정보는 후보 모션이 기존 이동 방향(또는 회전 방향)을 유지하기 위한 모션인지 기존 이동 방향(또는 회전 방향)을 변경하고자 하는 것인지를 나타내는 정보일 수 있다.
여기서, 주행 스코어는 복수의 후보 모션 각각에 대하여 특정 기준에 따라 계산된 점수를 의미할 수 있다. 여기서, 특정 기준은 최소 시간, 최소 이동 거리, 안정성 등일 수 있다. 여기서, 안정성은 장애물과 충돌하지 않음에 대한 안전 여부를 의미할 수 있다.
한편, 적어도 하나의 프로세서(130)는 이전 시점 모션의 각속도에 기초하여 이전 시점 모션의 상태 정보를 식별하고, 이전 시점 모션의 각속도 및 복수의 후보 모션의 각속도 간 차이에 기초하여 후보 모션 각각의 각속도 변화량을 식별하고, 이전 시점 모션의 상태 정보 및 후보 모션의 상태 정보에 기초하여 후보 모션의 분류 정보를 식별할 수 있다.
상태 정보는 이전 시점(N-1)에서 획득된 각속도와 현재 시점(N)에서 최종 결정되어야 하는 후보 모션의 각속도의 차이인 각속도 변화량에 기초하여 결정될 수 있다.
상태 정보는 각속도 변화량이 양수인지 음수인지를 나타낼 수 있다.
각속도 변화량이 양수이면, 상태 정보는 제1 상태(Positive)일 수 있다. 이동형 로봇(100)의 기존 주행 방향(또는 회전 방향으로 더 빠르게 이동(또는 회전)하는 것을 나타낼 수 있다.
각속도 변화량이 음수이면, 상태 정보는 제2 상태(negative)일 수 있다. 이동형 로봇(100)의 기존 주행 방향(또는 회전 방향)이 변경하는 것을 나타낼 수 있다.
각속도 변화량이 0이면, 상태 정보는 제3 상태(stable)일 수 있다. 여기서, 제3상태는 안정 상태(stable state) 또는 제로 상태(zero state)로 기재될 수 있다.
여기서, 각속도 변화량을 양수, 음수, 0을 기준으로 구분하면, 상태 정보가 미세한 변화에도 변경될 수 있다. 따라서, 적어도 하나의 프로세서(130)는 상태 정보를 제1 임계값 및 제1 임계값보다 작은 제2 임계값으로 구분할 수 있다.
다양한 실시 예에 따라, 제1 임계값의 절대값과 제2 임계값의 절대값이 동일할 수 있다.
한편, 적어도 하나의 프로세서(130)는 후보 모션의 각속도 변화량이 제1 임계값을 초과하면, 후보 모션의 상태 정보를 제1 상태(Positive)로 식별하고, 후보 모션의 각속도 변화량이 제1 임계값보다 작은 제2 임계값 미만이면, 후보 모션의 상태 정보를 제2 상태(negative)로 식별하고, 후보 모션의 각속도 변화량이 제1 임계값 이하이고 제2 임계값을 초과하면, 후보 모션의 상태 정보를 제3 상태(stable)로 식별할 수 있다. 상태 정보를 제1 상태(Positive), 제2 상태(negative), 제3 상태(stable) 등으로 구분하는 실시 예는 도 14 내지 도 17에서 기재한다.
한편, 적어도 하나의 프로세서(130)는 후보 모션의 상태 정보가 제1 상태(Positive)에서 제2 상태(negative)로 변경되거나 후보 모션의 상태 정보가 제2 상태(negative)에서 제1 상태(Positive)로 변경되면, 후보 모션의 분류 정보를 제1 분류로 식별하고, 후보 모션의 상태 정보가 제1 상태(Positive)에서 제3 상태(stable)로 변경되거나, 후보 모션의 상태 정보가 제2 상태(negative)에서 제3 상태(stable)로 변경되거나, 후보 모션의 상태 정보가 제3 상태(stable)에서 제1 상태(Positive)로 변경되거나, 후보 모션의 상태 정보가 제3 상태(stable)에서 제2 상태(negative)로 변경되면, 후보 모션의 분류 정보를 제2 분류로 식별하며, 제1 분류는, 제2 분류에 비해 후보 모션의 상태 정보가 상대적으로 급격히 변경되는 분류일 수 있다.
적어도 하나의 프로세서(130)는 기 설정된 상태 정보와 후보 모션의 상태 정보를 비교할 수 있다. 기 설정된 상태 정보는 이전 시점의 상태 정보 또는 기 저장된 상태 정보를 의미할 수 있다. 예를 들어, 기 설정된 상태 정보는 도 13의 표(1305)에서 "previous state"에 해당하는 negative일 수 있다. 후보 모션의 상태 정보는 도 13의 표(1305)에서 "current state"에 해당할 수 있다.
적어도 하나의 프로세서(130)는 상태 정보의 변경에 기초하여 후보 모션의 분류 정보를 식별할 수 있다. 적어도 하나의 프로세서(130)는 기 설정된 상태 정보(또는 이전 시점의 상태 정보)가 변경되었는지 여부에 따라 분류 정보를 결정할 수 있다.
여기서, 분류 정보는 제1 분류와 제2 분류로 구분될 수 있다. 제1 분류는 기존의 주행 특성이 변경되는 분류를 의미할 수 있다. 제2 분류는 기존 주행 특성이 유지되는 분류를 의미할 수 있다.
상태 정보가 제1 상태(positive) 및 제2 상태(negative) 사이에서 변경되는 경우, 적어도 하나의 프로세서(130)는 후보 모션을 상태 정보가 급격하게 변경됨을 나타내는 비결정 분류(제1 분류)으로 결정할 수 있다.
상태 정보가 제3 상태(stable)에서 다른 상태(제1 상태 또는 제2 상태)로 변경되거나, 다른 상태(제1 상태 또는 제2 상태)에서 제3 상태(stable)로 변경되는 경우, 적어도 하나의 프로세서(130)는 후보 모션을 상태 정보가 유지됨을 나타내는 결정 분류(제2 분류)으로 결정할 수 있다.
여기서, 제1 분류는 비결정(indecisive) 분류로 기재할 수 있고, 제2 분류는 결정(decisive) 분류로 기재할 수 있다. 비결정 분류는 기존 주행 특성과 상이하므로 후보 모션을 바로 결정할 수 없는 분류(예를 들어, 방향 전환 모션 분류)임을 나타낼 수 있다. 결정 분류는 기존 주행 특성과 유사하므로 후보 모션을 바로 결정할 수 있는 분류(예를 들어, 방향 유지 모션 분류)임을 나타낼 수 있다.
한편, 적어도 하나의 프로세서(130)는 기 설정된 기간 동안 획득된 상태 정보에 기초하여 후보 모션의 분류 정보를 식별할 수 있다.
다양한 실시 예에 따라, 적어도 하나의 프로세서(130)는 바로 이전 시점의 상태 정보와 후보 모션의 상태 정보를 비교할 수 있다. 이전 시점은 현재 시점(N)을 기준으로 단위 시간 바로 직전 시점(N-1)을 의미할 수 있다.
다양한 실시 예에 따라, 적어도 하나의 프로세서(130)는 기 설정된 시간(또는 기간) 동안 획득된 상태 정보에 기초하여 기 설정된 상태 정보를 결정할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 기 설정된 상태 정보와 후보 모션의 상태 정보를 비교할 수 있다.
기 설정된 시간(또는 기간) 동안 획득된 상태 정보가 다양한 경우 기 설정된 상태 정보를 결정하는 기준이 다양할 수 있다.
다양한 실시 예에 따라, 기 설정된 기간에 제1 상태(positive) 또는 제2 상태(negative) 중 어느 하나가 식별되는 경우, 적어도 하나의 프로세서(130)는 기 설정된 상태 정보를 식별된 제1 상태(positive) 또는 식별된 제2 상태(negative)로 식별할 수 있다. 또한, 기 설정된 기간에 제3 상태(stable)만 포함되는 경우, 적어도 하나의 프로세서(130)은 기 설정된 상태 정보를 제3 상태(stable)로 식별할 수 있다. 또한, 기 설정된 기간에 제1 상태(positive) 및 제2 상태(negative)가 모두 식별되는 경우, 적어도 하나의 프로세서(130)은 기 설정된 상태 정보를 가장 최근에 식별된 상태 정보로 결정할 수 있다.
다양한 실시 예에 따라, 적어도 하나의 프로세서(130)는 기 설정된 기간에 포함된 복수의 상태 정보 중 가장 많이 식별되는 상태 정보를 기 설정된 상태 정보로 식별할 수 있다.
분류 정보를 구분하는 구체적인 방법은 도 18 내지 도 20에서 기재한다.
한편, 주행 스코어는 후보 모션에 기초하여 이동하는 이동형 로봇(100)이 장애물을 회피하도록 이동하는 거리가 클수록 큰 값이며, 장애물을 회피한 이후 이동형 로봇(100)이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 큰 값일 수 있다.
주행 스코어와 관련된 구체적인 계산 방법은 도 21의 수학식(2120)에 기재한다.
한편, 적어도 하나의 프로세서(130)는 제1 분류(비결정 분류)으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제1 모션을 식별하고, 제2 분류(결정 분류)으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제2 모션을 식별하고, 제1 모션 또는 제2 모션 중 어느 하나를 최종 모션으로 식별할 수 있다.
적어도 하나의 프로세서(130)는 분류별로(그룹별로) 주행 스코어가 최대인 모션을 식별할 수 있다. 적어도 하나의 프로세서(130)는 비결정 분류(제1 분류)에 속한 후보 모션들 중 주행 스코어가 가장 큰 모션(제1 모션)을 식별할 수 있다. 적어도 하나의 프로세서(130)는 결정 분류(제2 분류)에 속한 후보 모션들 중 주행 스코어가 가장 큰 모션(제2 모션)을 식별할 수 있다.
여기서, 제1 모션의 주행 스코어는 제1 주행 스코어이고, 제2 모션의 주행 스코어는 제2 주행 스코어일 수 있다.
한편, 적어도 하나의 프로세서(130)는 제1 모션의 제1 주행 스코어가 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합을 초과하면, 제1 모션을 최종 모션으로 식별하고, 제1 모션의 제1 주행 스코어가 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합 이하이면, 제2 모션을 최종 모션으로 식별할 수 있다. 이와 관련된 구체적인 설명은 도 12 및 도 25에서 기재한다.
한편, 적어도 하나의 프로세서(130)는 이동형 로봇(100)을 일반 주행 모드와 소프트 주행 모드로 구분하여 제어할 수 있다. 일반 주행 모드는 최소 시간, 최소 이동 거리, 단순 장애물 회피 등에 기초하여 이동형 로봇(100)이 주행되는 모드를 의미할 수 있다. 한편, 소프트 주행 모드는 일반 주행 모드에서 고려되는 항목 이외에 각속도 변화량을 추가적으로 고려하여 이동형 로봇(100)이 주행되는 모드를 의미할 수 있다. 각속도 변화량을 고려한다는 것은 기존 주행 방향(또는 기존 회전 방향)을 고려하는 것을 의미할 수 있다.
한편, 적어도 하나의 프로세서(130)은 사용자 설정에 따라 주행 모드를 결정할 수 있다. 사용자 입력을 수신하기 위해 적어도 하나의 프로세서(130)은 디스플레이(140)에 가이드 화면을 표시할 수 있다. 가이드 화면과 관련된 구체적인 내용은 도 29에서 기재한다.
다양한 실시 예에 따라, 이동형 로봇(100)은 소프트 주행 모드로 항상 주행할 수 있다. 이와 관련된 설명은 도 28에서 기재한다.
다양한 실시 예에 따라, 이동형 로봇(100)은 일반 주행 모드로 주행하고, 기 설정된 이벤트가 식별되는 경우에 한하여 소프트 주행 모드로 주행할 수 있다.
여기서, 기 설정된 이벤트는 장애물이 식별되는 이벤트일 수 있다. 장애물 식별 동작과 관련된 설명은 도 31에서 기재한다.
한편, 기 설정된 이벤트는 각속도 변화량의 부호(양수, 음수)가 변경되는 이벤트일 수 있다.
한편, 적어도 하나의 프로세서(130)는 각속도 변화량이 양수에서 음수로 변경되거나 각속도 변화량이 음수에서 양수로 변경되면, 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 소프트 주행 모드에 기초하여 이동형 로봇(100)을 이동하도록 모터(120)를 제어할 수 있다. 이와 관련된 구체적인 설명은 도 32에서 기재한다. 한편, 상술한 동작은 상기 각속도 변화량 상태 정보가 제1 상태(양수)에서 제2 상태(음수)로 변경되거나 상기 변화량 상태 정보가 제2 상태(음수)에서 제1 상태(양수)로 변경되면, 상기 각속도 변화량 상태 정보에 기초하여 상기 복수의 후보 모션 중 상기 최종 모션을 식별하는 소프트 주행 모드에 기초하여 상기 이동형 로봇을 이동하도록 제어하는 동작으로 기재될 수 있다.
한편, 기 설정된 이벤트는 각속도 변화량의 상태 정보가 변경되는 이벤트를 의미할 수 있다. 분류 정보에서는 제1 상태(positive) 및 제2 상태(negative) 상호 변경되는 경우에만 후보 모션이 비결정 분류(제1 분류)으로 구분된다고 기재하였다. 다양한 실시 예에 따라 기 설정된 이벤트는 분류 정보 결정 조건과 동일한 조건이 적용될 수 있다. 다양한 실시 예에 따라 기 설정된 이벤트는 분류 정보 결정 조건과 달리 상태 정보가 다른 상태로 변경되는 이벤트를 의미할 수 있다.
한편, 적어도 하나의 프로세서(130)는 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 소프트 주행 모드를 나타내는 인디케이터를 표시하도록 디스플레이(140)를 제어할 수 있다. 이와 관련된 구체적인 설명은 도 30에서 기재한다.
한편, 다양한 실시 예에 따라, 상태 정보가 2가지 상태(stable, unstable) 등으로 기재될 수 있다. 그리고, 분류 정보는 상태 정보가 변경되는 경우에 한하여 비결정 분류(제1 분류)으로 식별될 수 있다.
한편, 이상에서는 이동형 로봇(100)을 구성하는 간단한 구성에 대해서만 도시하고 설명하였지만, 구현 시에는 다양한 구성이 추가로 구비될 수 있다. 이에 대해서는 도 3을 참조하여 이하에서 설명한다.
도 3은 도 2의 이동형 로봇(100) 의 구체적인 구성을 설명하기 위한 블록도이다.
도 3을 참조하면, 이동형 로봇(100)은 센서(110), 모터(120), 적어도 하나의 프로세서(130), 디스플레이(140), 조작 인터페이스(150), 메모리(160), 스피커(170) 또는 마이크(180) 중 적어도 하나를 포함할 수 있다.
한편, 센서(110), 모터(120) 및 적어도 하나의 프로세서(130)의 동작 중에서 앞서 설명한 것과 동일한 동작에 대해서는 중복 설명은 생략한다.
센서(110)는 3차원 이미지 센서(111), 자이로 센서(112), 광 센서(113), 범퍼 센서(114), 가속도 센서(115), 벽면 추종 센서(116), 라이더 센서(117), 사물 인식 센서(118) 중 적어도 하나를 포함할 수 있다.
3차원 이미지 센서(111)는 이미지를 촬상하는 센서일 수 있다. 3차원 이미지 센서(111)는 3차원 공간 정보를 획득하는데 필요한 데이터를 획득할 수 있다. 3차원 이미지 센서(111)는 이미지를 입력 데이터로서 획득하고, 입력된 이미지에 기초하여 3차원 공간 정보를 출력 데이터로서 생성할 수 있다. 3차원 이미지 센서(111)는 2차원 이미지에 거리 정보를 추가적으로 획득하는 센서를 의미할 수 있다.
자이로 센서(112)는 각속도를 측정하는 센서를 의미할 수 있다. 자이로 센서(112)는 회전하는 물체의 위치 정보 및 방향 정보에 기초하여 방위 변화를 측정할 수 있다. 또한, 자이로 센서(112)에서 획득되는 센싱 데이터는 경사 각도에 관련된 정보를 획득하는데 이용될 수 있다.
광 센서(113)는 빛을 감지하는 센서일 수 있으며, 이동형 로봇(100)는 광 센서(113)로부터 획득되는 센싱 데이터에 기초하여 밝기 정보를 획득할 수 있다. 예를 들어, 광 센서(113)는 조도 센서, 적외선 센서, 자외선 센서, 가시광선 센서 중 적어도 하나를 의미할 수 있다. 여기서, 적외선 센서는 발광부와 수광부로 이루어 질 수 있으며, 적외선을 전방으로 발광하고 반사된 적외선을 수신할 수 있는 카메라를 이용하여 센싱 데이터를 획득할 수 있다.
범퍼 센서(114)는 이동형 로봇(100)의 본체에 부착되어 있는 접촉 센서를 의미할 수 있다. 범퍼 센서(114)는 장애물 또는 벽을 감지하기 위하여 물리적 접촉 여부에 대한 센싱 데이터를 획득할 수 있다. 또한, 범퍼 센서(114)는 본체의 외곽 부분에 배치될 수 있으며, 주행 중 장애물과 충돌 시 충격을 완화시키는 기능을 수행할 수 있다. 또한, 범퍼 센서(114)는 장애물 센서로 보조 센서의 역할을 수행할 수 있다. 예를 들어, 3차원 이미지 센서(111)가 인식하지 못한 장애물 등을 범퍼 센서(114)가 인식할 수 있다. 범퍼 센서(114)는 물체가 범퍼 센서(114)에 접촉되면 물리적인 힘에 의하여 스위치가 클릭되는 방식을 이용할 수 있다.
가속도 센서(115)는 이동형 로봇(100)의 운동 상태를 감지하여 속도의 변화에 대한 데이터를 획득하는 센서일 수 있다. 가속도 센서(115)는 이동형 로봇(100)의 이동 거리 및 이동 방향의 감지를 통해 움직임 벡터를 획득할 수 있다.
벽면 추종 센서(116, wall following sensor)는 벽면에 대한 데이터를 감지하여 벽면을 따라 주행할 수 있도록 센싱 데이터를 획득하는 센서를 의미할 수 있다. 이동형 로봇(100)는 벽면 추종 센서(116)에서 획득한 데이터에 기초하여 벽면을 따라 이동하면서 청소 동작을 수행할 수 있다.
라이다 센서(LIDAR sensor, 117)는 레이저를 비춰 사물과의 거리 정보 또는 위치 정보를 획득하는 센서일 수 있다. LIDAR(light detection and ranging)는 레이저 광을 이용하는 기술일 수 있으며, 레이저 광이 발광하는 시점부터 물체에 반사되어 수신되는 시점까지의 시간 및 파장의 변화를 이용하는 기술일 수 있다. 라이더 센서(117)로부터 획득되는 센싱 데이터를 이용하여 물체의 속도, 물체의 방향 또는 주변 공간의 형상을 획득할 수 있다.
사물 인식 센서(118)는 이동형 로봇(100)의 주행 경로 상에 있는 오브젝트를 인식하는 센서를 의미할 수 있다. 한편, 오브젝트를 인식하기 위해 사물 인식 센서(118)는 3차원 이미지 센서(111), 범퍼 센서(114), 라이다 센서(117) 중 적어도 하나로부터 센싱 데이터를 획득하여 오브젝트를 인식할 수 있다. 다른 센서들의 센싱 데이터를 이용한다는 점에서 사물 인식 센서(118)는 사물 인식 모듈로 기재할 수 있다.
또한, 센서(110)는 라인 레이저 센서(미도시)(line laser sensor)를 포함할 수 있다. 라인 레이저 센서(미도시)는 수직으로 라인 레이저를 발광하고 스캔한 영상을 이용하여 2차원 레이저가 장애물에 맺혔을 때 물리적으로 변하는 원리를 이용할 수 있다.
디스플레이(140)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(140)내에는 a-si TFT(amorphous silicon thin film transistor), LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(140)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display, three-dimensional dispaly) 등으로 구현될 수 있다. 또한, 본 개시의 일 실시 예에 따른, 디스플레이(140)는 영상을 출력하는 디스플레이 패널뿐만 아니라, 디스플레이 패널을 하우징하는 베젤을 포함할 수 있다. 특히, 본 개시의 일 실시 예에 따른, 베젤은 사용자 인터렉션을 감지하기 위한 터치 센서(미도시)를 포함할 수 있다.
조작 인터페이스(150)는 버튼, 터치 패드, 마우스 및 키보드와 같은 장치로 구현되거나, 상술한 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린으로도 구현될 수 있다. 여기서, 버튼은 이동형 로봇(100)의 본체 외관의 전면부나 측면부, 배면부 등의 임의의 영역에 형성된 기계적 버튼, 터치 패드, 휠 등과 같은 다양한 유형의 버튼이 될 수 있다.
메모리(160)는 적어도 하나의 프로세서(130)에 포함된 롬(ROM)(예를 들어, EEPROM(electrically erasable programmable read-only memory)), 램(RAM) 등의 내부 메모리로 구현되거나, 적어도 하나의 프로세서(130)와 별도의 메모리로 구현될 수도 있다. 이 경우, 메모리(160)는 데이터 저장 용도에 따라 이동형 로봇(100)에 임베디드된 메모리 형태로 구현되거나, 이동형 로봇(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 이동형 로봇(100)의 구동을 위한 데이터의 경우 이동형 로봇(100)에 임베디드된 메모리에 저장되고, 이동형 로봇(100)의 확장 기능을 위한 데이터의 경우 이동형 로봇(100)에 탈부착이 가능한 메모리에 저장될 수 있다.
한편, 이동형 로봇(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현되고, 이동형 로봇(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결 가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
스피커(170)는 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지 등을 출력하는 구성요소일 수 있다.
마이크(180)는 사용자 음성이나 기타 소리를 입력 받아 오디오 데이터로 변환하기 위한 구성이다. 마이크(180)는 활성화 상태에서 사용자의 음성을 수신할 수 있다. 예를 들어, 마이크(180)는 이동형 로봇(100)의 상측이나 전면 방향, 측면 방향 등에 일체형으로 형성될 수 있다. 마이크(180)는 아날로그 형태의 사용자 음성을 수집하는 마이크, 수집된 사용자 음성을 증폭하는 앰프 회로, 증폭된 사용자 음성을 샘플링하여 디지털 신호로 변환하는 A/D 변환회로, 변환된 디지털 신호로부터 노이즈 성분을 제거하는 필터 회로 등과 같은 다양한 구성을 포함할 수 있다.
도 4는 이동형 로봇(100)의 주행 경로를 계산하는 동작을 설명하기 위한 도면이다.
실시 예(410)에 따라, 이동형 로봇(100)은 최단 거리 또는 최소 시간에 기초하여 주행할 수 있다. 이동형 로봇(100)은 주행 경로 상에서 이동 거리의 최소화 또는 이동 시간의 최소화를 위해 주행 경로를 급격하게 변경할 수 있다. 실시 예(410)로 동작하는 모드를 일반 주행 모드로 기재할 수 있다.
실시 예(420)에 따라, 이동형 로봇(100)은 기존 주행 경로를 최대한 유지하면서 주행할 수 있다. 불가피한 상황이 아니라면 최단 거리(또는 최소 시간)이 아니더라도 이동형 로봇(100)은 기존 주행 방향을 최대한 유지하도록 주행 경로를 설정할 수 있다. 기존 방향을 최대한 유지하는 방식에 따라 주행 경로가 생성되는 경우, 이동형 로봇(100)은 주행 경로를 급격하게 변경하지 않을 수 있다. 실시 예(420)로 동작하는 모드를 소프트 주행 모드로 기재할 수 있다.
도 5는 이동형 로봇(100)의 모션을 결정함에 있어 각속도 변화량을 고려하는 동작을 설명하기 위한 흐름도이다.
도 5를 참조하면, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 각속도 변화량을 획득할 수 있다 (S505). 이동형 로봇(100)은 현재 이동형 로봇(100)이 위치하는 지점에서 다음 이동 지점까지 이동하기 위한 다양한 후보 모션 중 하나의 최적 모션을 결정할 수 있다.
그리고, 이동형 로봇(100)은 각속도 변화량에 기초하여 복수의 후보 모션 중 하나의 최종 모션을 식별할 수 있다 (S510). 이동형 로봇(100)은 모션 하나가 수행될 때마다 각속도를 획득하고, 획득된 각속도의 변화를 계산할 수 있다. 이동형 로봇(100)은 계산된 각속도 변화량을 분석함으로써 이동형 로봇(100)의 주행 경로를 식별(또는 생성)할 수 있다.
그리고, 이동형 로봇(100)은 최종 모션에 기초하여 모터를 제어할 수 있다 (S515). 최종 모션이 결정되면, 이동형 로봇(100)은 최종 모션에 기초하여 이동형 로봇(100)이 제어되도록 모터(또는 구동부)를 제어할 수 있다.
도 6은 이동형 로봇(100)의 모션을 결정함에 있어 상태 정보를 고려하는 동작을 설명하기 위한 흐름도이다.
도 6의 S605, S620 단계는 도 5의 S505, S515 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
각속도 변화량이 획득된 후, 이동형 로봇(100)은 각속도 변화량에 기초하여 복수의 후보 모션 각각에 대응되는 상태 정보를 식별할 수 있다 (S610). 상태 정보는 이전 시점에서 획득된 각속도와 현재 시점에서 최종 결정되어야 하는 후보 모션의 각속도의 차이인 각속도 변화량에 기초하여 결정될 수 있다. 상태 정보를 결정하는 구체적인 동작은 도 9 및 도 13에서 기재한다.
그리고, 이동형 로봇(100)은 상태 정보에 기초하여 복수의 후보 모션 중 최종 모션을 식별할 수 있다 (S615). 이동형 로봇(100)은 상태 정보의 변화를 고려하여 최종 모션을 식별할 수 있다.
도 7은 이동형 로봇(100)의 모션을 결정함에 있어 분류 정보를 고려하는 동작을 설명하기 위한 흐름도이다.
도 7의 S705, S710, S725 단계는 도 6의 S605, S610, S620 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
각속도 변화량에 기초하여 상태 정보가 식별된 후, 이동형 로봇(100)은 상태 정보에 기초하여 복수의 후보 모션 각각에 대응되는 분류 정보를 식별할 수 있다 (S715). 분류 정보는 이전 시점에서 획득된 각속도 변화량과 현재 시점에서 최종 결정되어야 하는 후보 모션의 각속도 변화량을 비교하여 결정될 수 있다. 분류 정보를 결정하는 구체적인 동작은 도 15 내지 도 20에서 기재한다.
그리고, 이동형 로봇(100)은 분류 정보에 기초하여 최종 모션을 식별할 수 있다 (S720). 이동형 로봇(100)은 분류 정보에 따라 구분된 복수의 후보 모션 중 하나의 모션을 최종 모션으로 결정할 수 있다.
도 8은 이동형 로봇(100)의 모션을 결정함에 있어 주행 스코어를 고려하는 동작을 설명하기 위한 흐름도이다.
도 8의 S805, S810, S815, S830 단계는 S705, S710, S715, S725 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
분류 정보가 식별된 후, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 주행 스코어를 획득할 수 있다 (S820). 주행 스코어는 이동형 로봇(100)이 목표 지점까지 이동함에 있어 이동 거리, 이동 시간 및 안정성 측면에서 얼마나 우수한지를 나타내는 스코어를 의미할 수 있다. 주행 스코어가 큰 값을 갖는 모션일수록 이동형 로봇(100)의 주행에 적합한 모션인 것을 의미할 수 있다.
그리고, 이동형 로봇(100)은 분류 정보 별 최대 주행 스코어를 갖는 모션 중 최종 모션을 식별할 수 있다 (S825). 이동형 로봇(100)은 복수의 후보 모션을 기 설정된 분류로 구분할 수 있다.
예를 들어, 10개의 후보 모션 중 3개의 후보 모션을 제1 분류로 결정하고, 7개의 후보 모션을 제2 분류로 결정하였다고 가정한다. 이동형 로봇(100)은 제1 분류의 후보 모션 중 주행 스코어가 가장 큰 모션을 제1 모션으로 결정할 수 있다. 또한, 이동형 로봇(100)은 제2 분류의 후보 모션 중 주행 스코어가 가장 큰 모션을 제2 모션으로 결정할 수 있다. 이동형 로봇(100)은 분류 정보 별 최대 주행 스코어를 갖는 제1 모션 또는 제2 모션 중 최종 모션을 식별할 수 있다.
도 9는 상태 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 9의 S905, S935, S940 단계는 도 6의 S605, S615, S620 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 각속도 변화량을 획득할 수 있다 (S905).
그리고, 이동형 로봇(100)은 각속도 변화량이 제1 임계값을 초과하는지 여부를 판단할 수 있다 (S910). 각속도 변화량이 제1 임계값을 초과하면 (S910-Y), 이동형 로봇(100)은 후보 모션의 상태 정보를 제1 상태(positive)로 식별할 수 있다 (S915).
각속도 변화량이 제1 임계값을 초과하지 않으면 (S910-N), 이동형 로봇(100)은 각속도 변화량이 제2 임계값 미만인지 여부를 판단할 수 있다 (S920). 각속도 변화량이 제2 임계값 미만이면 (S920-Y), 이동형 로봇(100)은 후보 모션의 상태 정보를 제2 상태(negative)로 식별할 수 있다 (S925).
각속도 변화량이 제2 임계값 미만이 아니면 (S920-N), 이동형 로봇(100)은 후보 모션의 상태 정보를 제3 상태(stable)로 식별할 수 있다 (S930).
이동형 로봇(100)은 후보 모션 각각에 대응되는 상태 정보를 식별하고, 식별된 정보를 저장할 수 있다.
그리고, 이동형 로봇(100)은 후보 모션의 상태 정보에 기초하여 최종 모션을 식별할 수 있다 (S935). 그리고, 이동형 로봇(100)은 최종 모션에 기초하여 모터를 제어할 수 있다 (S940).
도 10은 다양한 실시 예에 따라 분류 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 10의 S1005, S1010, S1035, S1040 단계는 도 7의 S705, S710, S720, S725 단계에 대응될 수 있다. 또한, 복수의 후보 모션 각각이 제1 상태, 제2 상태, 제3 상태로 구분되는 동작은 도 9의 S910 내지 S930 단계와 동일할 수 있다. 따라서, 중복 설명을 생략한다.
상태 정보를 식별한 후, 이동형 로봇(100)은 상태 정보가 제1 상태에서 제2 상태로 변경되는지 여부를 식별할 수 있다 (S1015). 이동형 로봇(100)은 이전 시점에서의 상태 정보(이전 시점의 최종 모션에 대응되는 상태 정보)가 제1 상태이고 현재 시점에서의 상태 정보(후보 모션에 대응되는 상태 정보)가 제2 상태인지 식별할 수 있다. 상태 정보가 제1 상태에서 제2 상태로 변경되면 (S1015-Y), 이동형 로봇(100)은 후보 모션의 분류 정보가 비결정 분류(제1 분류)인 것으로 식별할 수 있다 (S1020).
상태 정보가 제1 상태에서 제2 상태로 변경되지 않으면 (S1015-N), 이동형 로봇(100)은 상태 정보가 제2 상태에서 제1 상태로 변경되었는지 여부를 식별할 수 있다 (S1025). 상태 정보가 제2 상태에서 제1 상태로 변경되었다면 (S1025-Y), 이동형 로봇(100)은 후보 모션의 분류 정보가 비결정 분류(제1 분류)인 것으로 식별할 수 있다 (S1020).
상태 정보가 제2 상태에서 제1 상태로 변경되지 않았다면 (S1025-N), 이동형 로봇(100)은 후보 모션의 분류 정보가 결정 분류(제2 분류)인 것으로 식별할 수 있다 (S1030). 이동형 로봇(100)은 복수의 후보 모션 각각의 분류 정보를 저장할 수 있다.
도 11은 다양한 실시 예에 따라 분류 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 11의 S1105, S1110, S1130, S1135 단계는 도 10의 S1005, S1010, S1035, S1140 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
도 10에서는 상태 정보가 제1 상태에서 제2 상태로 변경되거나, 제2 상태에서 제1 상태로 변경되는 경우에 한하여 분류 정보가 비결정 분류(제1 분류)으로 식별할 수 있다. 하지만, 다양한 실시 예에 따라, 이동형 로봇(100)은 상태 정보가 다른 상태로 변경되는 경우 분류 정보를 비결정 분류(제1 분류)으로 식별할 수 있다. 예를 들어, 제1 상태에서 제2 상태 또는 제3 상태로 변경되는 경우, 이동형 로봇(100)은 후보 모션의 분류 정보를 비결정 분류(제1 분류)으로 식별할 수 있다. 또한, 제2 상태에서 제1 상태 또는 제 3상태로 변경되는 경우, 이동형 로봇(100)은 후보 모션의 분류 정보를 비결정 분류(제1 분류)으로 식별할 수 있다. 또한, 제3 상태에서 제1 상태 또는 제2 상태로 변경되는 경우, 이동형 로봇(100)은 후보 모션의 분류 정보를 비결정 분류(제1 분류)으로 식별할 수 있다.
상태 정보를 식별한 후, 이동형 로봇(100)은 상태 정보가 변경되었는지 여부를 식별할 수 있다 (S1115). 상태 정보가 변경된 경우 (S1115-Y), 이동형 로봇(100)은 후보 모션의 분류 정보가 비결정 분류(제1 분류)인 것으로 식별할 수 있다 (S1120).
상태 정보가 변경되지 않은 경우 (S1115-N), 이동형 로봇(100)은 후보 모션의 분류 정보가 결정 분류(제2 분류)인 것으로 식별할 수 있다 (S1125). 이동형 로봇(100)은 복수의 후보 모션 각각의 분류 정보를 저장할 수 있다.
도 12는 분류 정보 및 주행 스코어에 기초하여 최종 모션을 식별하는 과정을 설명하기 위한 흐름도이다.
도 12의 S1205, S1210, S1215, S1220, S1250 단계는 도 8의 S805, S810, S815, S820, S830 단계에 대응될 수 있다. 또한, 복수의 후보 모션 각각이 제1 상태, 제2 상태, 제3 상태로 구분되는 동작은 도 9의 S910 내지 S930 단계와 동일할 수 있다. 또한, 복수의 후보 모션 각각이 비결정 분류(제1 분류) 또는 결정 분류(제2 분류)으로 구분되는 동작은 도 10의 S1015 내지 S1030 단계와 동일할 수 있다. 따라서, 중복 설명을 생략한다.
주행 스코어를 획득한 후, 이동형 로봇(100)은 비결정 분류(제1 분류)에서 가장 높은 제1 주행 스코어를 갖는 제1 모션을 식별할 수 있다 (S1225).
그리고, 이동형 로봇(100)은 결정 분류(제2 분류)에서 가장 높은 제2 주행 스코어를 갖는 제2 모션을 식별할 수 있다 (S1230).
그리고, 이동형 로봇(100)은 제2 주행 스코어와 임계 주행 스코어를 합산할 수 있다. 그리고, 이동형 로봇(100)은 제1 주행 스코어가 제2 주행 스코어와 임계 주행 스코어의 합(또는 합산값)을 초과하는지 여부를 판단할 수 있다 (S1235). 제1 주행 스코어가 제2 주행 스코어와 임계 주행 스코어의 합(또는 합산값)을 초과하면 (S1235-Y), 이동형 로봇(100)은 제1 모션을 최종 모션으로 식별할 수 있다 (S1240).
제1 주행 스코어가 제2 주행 스코어와 임계 주행 스코어의 합(또는 합산값)을 초과하지 않으면 (S1235-N), 이동형 로봇(100)은 제2 모션을 최종 모션으로 식별할 수 있다 (S1245).
도 13은 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 계산 과정을 전반적으로 설명하기 위한 표이다.
도 13의 표(1305) 참조하면, 이동형 로봇(100)은 복수의 후보 모션(#01 내지 #10)의 주행 스코어를 획득할 수 있다. 여기서, 표(1305)는 주행 스코어 테이블을 의미할 수 있다.
Wi(W1 내지 W12)는 N 시점(현재 시점)에서 식별(또는 선택) 가능한 복수의 후보 모션의 각속도를 의미할 수 있다. 한편, 이동형 로봇(100)은 이전 시점(N-1)에서 식별된 최종 모션의 각속도를 저장할 수 있다. 표(1305)에서 이전 시점의 각속도는 -0.15이다.
그리고, 이동형 로봇(100)은 이전 시점의 각속도(-0.15)와 후보 모션의 각속도의 차이값에 기초하여 각속도 변화량을 획득할 수 있다.
예를 들어, 이동형 로봇(100)은 후보 모션(#01)의 각속도(0.1)와 이전 시점의 각속도(-0.15)의 차이값에 기초하여 각속도 변화량(+0.25)을 획득할 수 있다.
그리고, 이동형 로봇(100)은 각속도 변화량, 제1 임계값, 제2 임계값에 기초하여 후보 모션의 상태 정보를 식별할 수 있다. 제1 임계값은 0.1, 제2 임계값은 -0.1로 가정한다. 여기서, 제1 임계값 및 제2 임계값의 사용자의 설정에 따라 변경될 수 있다. 또한, 제1 임계값 및 제2 임계값의 절대값이 동일할 수 있다.
각속도 변화량이 제1 임계값(0.1)을 초과하면, 이동형 로봇(100)은 후보 모션의 상태 정보를 제1 상태(positive)로 식별할 수 있다. 각속도 변화량이 제1 임계값(0.1) 이하 및 제2 임계값(-0.1) 이상이면, 이동형 로봇(100)은 후보 모션의 상태 정보를 제3 상태(stable)로 식별할 수 있다. 각속도 변화량이 제2 임계값(-0.1) 미만이면, 이동형 로봇(100)은 후보 모션의 상태 정보를 제2 상태(negative)로 식별할 수 있다.
예를 들어, 후보 모션(#01)의 각속도 변화량(+0.25)이 제1 임계값(0.1)을 초과하므로, 이동형 로봇(100)은 후보 모션(#01)의 상태 정보를 제1 상태(positive)로 식별할 수 있다.
또한, 후보 모션(#04)의 각속도 변화량(+0.1)이 제1 임계값(0.1) 이하 및 제2 임계값(-0.1) 이상이므로, 후보 모션(#04)의 상태 정보를 제3 상태(stable)로 식별할 수 있다.
또한, 후보 모션(#09)의 각속도 변화량 (-0.15)이 제2 임계값(-0.1) 미만이므로, 이동형 로봇(100)은 후보 모션(#09)의 상태 정보를 제1 상태(positive)로 식별할 수 있다.
한편, 이동형 로봇(100)은 이전 시점에서 식별된 상태 정보를 저장할 수 있다. 여기서, 저장되는 상태 정보는 기 설정된 기간 동안 수집된 상태 정보를 종합하여 결정될 수 있다. 따라서, 상태 정보는 기 설정된 상태 정보로 기재될 수 있다. 예를 들어, 이전 시점의 상태 정보 또는 기 설정된 상태 정보가 제2 상태(negative)인 것으로 가정한다.
그리고, 이동형 로봇(100)은 기 설정된 상태 정보(이전 시점)와 후보 모션의 상태 정보(현재 시점)에 기초하여 분류 정보를 식별할 수 있다. 상태 정보가 제1 상태(positive)에서 제2 상태(negative)로 변경되거나 제2 상태(negative)에서 제1 상태(positive)로 변경되는 경우, 이동형 로봇(100)은 후보 모션의 분류 정보를 비결정 분류(제1 분류)으로 결정할 수 있다. 상태 정보가 제3 상태(stable)에서 변경되거나 제3 상태(stable)로 변경되는 경우, 이동형 로봇(100)은 후보 모션의 분류 정보를 결정 분류(제2 분류)으로 결정할 수 있다.
예를 들어, 후보 모션(#01)의 상태 정보가 제2 상태(negative)에서 제1 상태(positive)로 변경되었으므로, 이동형 로봇(100)은 후보 모션(#01)의 분류 정보를 비결정 분류(제1 분류)으로 식별할 수 있다.
또한, 후보 모션(#04)의 상태 정보가 제2 상태(negative)에서 제3 상태(stable)로 변경되었으므로, 이동형 로봇(100)은 후보 모션(#04)의 분류 정보를 결정 분류(제2 분류)으로 식별할 수 있다.
또한, 후보 모션(#09)의 상태 정보가 제2 상태(negative)에서 제2 상태(negative)로 유지되었으므로, 이동형 로봇(100)은 후보 모션(#09)의 분류 정보를 결정 분류(제2 분류)으로 식별할 수 있다.
그리고, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 주행 스코어를 계산할 수 있다. 주행 스코어와 관련된 구체적인 설명은 도 21 내지 도 24에서 기재한다.
그리고, 이동형 로봇(100)은 분류 정보 별로 최대 스코어를 갖는 모션을 식별할 수 있다.
예를 들어, 이동형 로봇(100)은 비결정 분류(제1 분류)으로 구분된 후보 모션들(w1, w2, w3) 중에서 최대 스코어(9)를 갖는 후보 모션(#02)을 식별할 수 있다. 또한, 이동형 로봇(100)은 결정 분류(제2 분류)으로 구분된 후보 모션들(w4, w5, w6, w7, w8, w9, w10) 중에서 최대 스코어(6)를 갖는 후보 모션(#07)을 식별할 수 있다.
그리고, 이동형 로봇(100)은 분류 정보 별 최대 스코어를 갖는 후보 모션들(w2, w7) 중에서 하나의 모션을 최종 모션으로 식별할 수 있다.
구체적으로, 이동형 로봇(100)은 분류 정보 별로 식별된 최대 스코어와 임계 스코어에 기초하여 최종 모션을 식별할 수 있다. 이동형 로봇(100)은 결정 분류(제2 분류)에서 획득된 최대 스코어와 임계 스코어를 합산한 값을 획득할 수 있다. 그리고, 이동형 로봇(100)은 비결정 분류(제1 분류)에서 획득된 최대 스코어가 결정 분류(제2 분류)에서 획득된 최대 스코어와 임계 스코어의 합산 값을 초과하는지 식별할 수 있다.
비결정 분류(제1 분류)에서 획득된 최대 스코어가 결정 분류(제2 분류)에서 획득된 최대 스코어와 임계 스코어의 합산 값을 초과하는 경우, 비결정 분류(제1 분류)에서 획득된 최대 스코어에 대응되는 후보 모션을 최종 모션으로 식별할 수 있다.
비결정 분류(제1 분류)에서 획득된 최대 스코어가 결정 분류(제2 분류)에서 획득된 최대 스코어와 임계 스코어의 합산 값을 초과하지 않는 경우, 결정 분류(제2 분류)에서 획득된 최대 스코어에 대응되는 후보 모션을 최종 모션으로 식별할 수 있다.
임계 스코어가 2라고 가정한다. 예를 들어, 비결정 분류(제1 분류)에서 획득된 최대 스코어(9)가 결정 분류(제2 분류)에서 획득된 최대 스코어(6)와 임계 스코어(2)의 합산 값(8)을 초과하므로, 이동형 로봇(100)은 비결정 분류(제1 분류)에서 획득된 최대 스코어에 대응되는 후보 모션(#02)을 최종 모션으로 식별할 수 있다.
도 14는 각속도 변화량을 설명하기 위한 도면이다.
도 14의 그래프(1410)를 참조하면, 이동형 로봇(100)은 동적 윈도우 접근(Dynamic Window Approach) 방식에 기초하여 주행 경로를 설정할 수 있다. 동적 윈도우 접근(Dynamic Window Approach) 방식은 로봇의 주행에 있어 장애물을 회피하는 방법을 의미하며, 유효한 검색 공간을 윈도우(window)로서 설정하고, 최적의 솔루션을 찾는 방법을 의미할 수 있다. 동적 윈도우 접근(Dynamic Window Approach) 방식에 따라 이동형 로봇(100)은 각속도(w^i) 및 선속도(V^j)가 정해진 모션을 결정할 수 있다. 여기서, 선속도는 이동형 로봇(100)에 포함된 센서(110)의 센싱 데이터에 기초하여 획득될 수 있다.
한편, 시점(N-2)의 유효한 검색 공간(1411)에서 복수의 후보 모션이 정해질 수 있다. 이동형 로봇(100)은 유효한 검색 공간(1411) 안에서 특정 각속도(w^i) 및 특정 선속도(v^j)를 포함하는 모션을 최종 모션으로 식별할 수 있다.
또한, 시점(N-1)의 유효한 검색 공간(1412)에서 복수의 후보 모션이 정해질 수 있다. 이동형 로봇(100)은 유효한 검색 공간(1412) 안에서 특정 각속도(w^i) 및 특정 선속도(v^j)를 포함하는 모션을 최종 모션으로 식별할 수 있다.
또한, 시점(N)의 유효한 검색 공간(1413)에서 복수의 후보 모션이 정해질 수 있다. 이동형 로봇(100)은 유효한 검색 공간(1413) 안에서 특정 각속도(w^i) 및 특정 선속도(v^j)를 포함하는 모션을 최종 모션으로 식별할 수 있다.
도 14의 그래프(1420)는 시간에 따른 각속도를 나타낸다. 즉, 그래프(1420)는 복수의 시점(N-2, N-1, N) 각각의 각속도를 나타낸다. 복수의 시점 각각에서 최종 모션이 선택될 수 있다. 이동형 로봇(100)은 복수의 시점 각각에서 선택된(또는 식별된) 최종 모션에 대응되는 각속도를 저장할 수 있다. 그리고, 이동형 로봇(100)은 각속도 변화량을 계산하고 계산된 각속도 변화량을 저장할 수 있다. 여기서, w^i는 각속도를 의미할 수 있으며, 각속도의 단위는 rad/s일 수 있다.
도 14의 그래프(1430)는 시간에 따른 각속도 변화량을 나타낸다. 그래프(1430)는 복수의 시점(N-2, N-1, N) 각각의 각속도 변화량을 나타낸다.
시점(N-2)에서는 각속도 변화량이 0인 것으로 가정한다. 이동형 로봇(100)은 각속도 변화량(0)이 제1 임계값 이하이고 제2 임계값 이상이므로, 이동형 로봇(100)은 N-2 시점의 상태 정보를 제3 상태(stable)로 식별할 수 있다.
시점(N-1)에서는 각속도 변화량이 제1 임계값을 초과하였으므로, 이동형 로봇(100)은 N-1 시점의 상태 정보를 제1 상태(positive)로 식별할 수 있다.
시점(N)에서는 각속도 변화량이 제2 임계값 미만이므로, 이동형 로봇(100)은 N 시점의 상태 정보를 제2 상태(negative)로 식별할 수 있다.
여기서, 제1 임계값과 제2 임계값의 절대값이 동일하며, 제1 임계값과 제2 임계값의 부호가 상이할 수 있다.
도 15는 다양한 실시 예에 따라 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 15의 실시 예(1510 )의 표(1511)는 상태 정보가 제3 상태(stable)에서 제1 상태(positive)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제3 상태(stable) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제1 상태(positive)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1510)의 분류 정보를 결정 분류(제2 분류)으로 결정할 수 있다.
도 15의 실시 예(1520 )의 표(1521)는 상태 정보가 제3 상태(stable)에서 제3 상태(stable)로 유지된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제3 상태(stable) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제3 상태(stable)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1520)의 분류 정보를 결정 분류(제2 분류)으로 결정할 수 있다.
도 15의 실시 예(1530 )의 표(1531)는 상태 정보가 제3 상태(stable)에서 제2 상태(negative)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제3 상태(stable) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제2 상태(negative) 일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1530)의 분류 정보를 결정 분류(제2 분류)으로 결정할 수 있다.
도 16은 다양한 실시 예에 따라 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 16의 실시 예(1610 )의 표(1611)는 상태 정보가 제1 상태(positive)에서 제1 상태(positive)로 유지된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제1 상태(positive) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제1 상태(positive)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1610)의 분류 정보를 결정 분류(제2 분류)으로 결정할 수 있다.
도 16의 실시 예(1620 )의 표(1621)는 상태 정보가 제1 상태(positive)에서 제3 상태(stable)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제1 상태(positive)였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제3 상태(stable)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1620)의 분류 정보를 결정 분류(제2 분류)으로 결정할 수 있다.
도 16의 실시 예(1630 )의 표(1631)는 상태 정보가 제1 상태(positive)에서 제2 상태(negative)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제1 상태(positive) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제2 상태(negative)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1630)의 분류 정보를 비결정 분류(제1 분류)으로 결정할 수 있다.
도 17은 다양한 실시 예에 따라 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 17의 실시 예(1710 )의 표(1711)는 상태 정보가 제2 상태(negative)에서 제1 상태(positive)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제2 상태(negative) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제1 상태(positive)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1710)의 분류 정보를 비결정 분류(제1 분류)으로 결정할 수 있다.
도 17의 실시 예(1720 )의 표(1721)는 상태 정보가 제2 상태(negative)에서 제3 상태(stable)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제2 상태(negative)였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제3 상태(stable)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1720)의 분류 정보를 결정 분류(제2 분류)으로 결정할 수 있다.
도 17의 실시 예(1730 )의 표(1731)는 상태 정보가 제2 상태(negative)에서 제2 상태(negative)로 유지된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제2 상태(negative) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제2 상태(negative)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1730)의 분류 정보를 결정 분류(제2 분류)으로 결정할 수 있다.
도 18은 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
다양한 실시 예에 따라, 기 설정된 기간에 제1 상태(positive) 또는 제2 상태(negative) 중 어느 하나가 식별되는 경우, 이동형 로봇(100)은 기 설정된 상태 정보를 식별된 제1 상태(positive) 또는 식별된 제2 상태(negative)로 식별할 수 있다. 또한, 기 설정된 기간에 제3 상태(stable)만 포함되는 경우, 이동형 로봇(100)은 기 설정된 상태 정보를 제3 상태(stable)로 식별할 수 있다. 또한, 기 설정된 기간에 제1 상태(positive) 및 제2 상태(negative)가 모두 식별되는 경우, 이동형 로봇(100)은 기 설정된 상태 정보를 가장 최근에 식별된 상태 정보로 결정할 수 있다.
도 18의 그래프(1810)는 시간에 따른 각속도를 나타낸다. 그래프(1810)는 t0 시점부터 t7 시점까지의 각속도를 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션의 각속도에 기초하여 각속도 변화량을 획득할 수 있다.
도 18의 그래프(1820)는 시간에 따른 각속도 변화량을 나타낸다. 그래프(1820)는 t1 시점부터 t7 시점까지의 각속도 변화량을 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션 각각의 각속도 변화량에 기초하여 상태 정보를 식별할 수 있다.
도 18의 표(1830)는 시간에 따른 상태 정보를 나타낸다. 표(1830)는 t1 시점부터 t7 시점까지의 상태 정보를 나타낸다. 이동형 로봇(100)은 기 설정된 기간에 기초하여 이전 시점의 상태 정보를 식별할 수 있다.
예를 들어, 기 설정된 기간을 5 단위 시간으로 가정한다. 이동형 로봇(100)은 t2 내지 t6 시점 각각에 대응되는 상태 정보에 기초하여 기 설정된 상태 정보가 제2 상태(negative)인 것으로 식별 할 수 있다. t2 내지 t6에서 제1 상태(positive)는 식별되지 않고 제2 상태(negative)만 식별되기 때문이다. 그리고, 후보 모션의 상태 정보가 제2 상태(negative)인 것으로 가정한다. 기 설정된 상태 정보가 제2 상태(negative)이고 후보 모션의 상태 정보가 제2 상태(negative)이므로, 이동형 로봇(100)은 후보 모션의 분류 정보를 결정 분류(제2 분류)으로 결정할 수 있다.
도 19는 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 19의 그래프(1910)는 시간에 따른 각속도를 나타낸다. 그래프(1910)는 t0 시점부터 t7 시점까지의 각속도를 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션의 각속도에 기초하여 각속도 변화량을 획득할 수 있다.
도 19의 그래프(1920)는 시간에 따른 각속도 변화량을 나타낸다. 그래프(1920)는 t1 시점부터 t7 시점까지의 각속도 변화량을 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션 각각의 각속도 변화량에 기초하여 상태 정보를 식별할 수 있다.
도 19의 표(1930)는 시간에 따른 상태 정보를 나타낸다. 표(1930)는 t1 시점부터 t7 시점까지의 상태 정보를 나타낸다. 이동형 로봇(100)은 기 설정된 기간에 기초하여 이전 시점의 상태 정보를 식별할 수 있다.
예를 들어, 기 설정된 기간을 5 단위 시간으로 가정한다. 이동형 로봇(100)은 t2 내지 t6 시점 각각에 대응되는 상태 정보에 기초하여 기 설정된 상태 정보가 제2 상태(negative)인 것으로 식별 할 수 있다. t2 내지 t6에서 제1 상태(positive)는 식별되지 않고 제2 상태(negative)만 식별되기 때문이다. 그리고, 후보 모션의 상태 정보가 제3 상태(stable)인 것으로 가정한다. 기 설정된 상태 정보가 제2 상태(negative)이고 후보 모션의 상태 정보가 제3 상태(stable)이므로, 이동형 로봇(100)은 후보 모션의 분류 정보를 결정 분류(제2 분류)으로 결정할 수 있다.
도 20은 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 분류 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 20의 그래프(2010)는 시간에 따른 각속도를 나타낸다. 그래프(2010)는 t0 시점부터 t7 시점까지의 각속도를 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션의 각속도에 기초하여 각속도 변화량을 획득할 수 있다.
도 20의 그래프(2020)는 시간에 따른 각속도 변화량을 나타낸다. 그래프(2020)는 t1 시점부터 t7 시점까지의 각속도 변화량을 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션 각각의 각속도 변화량에 기초하여 상태 정보를 식별할 수 있다.
도 20의 표(2030)는 시간에 따른 상태 정보를 나타낸다. 표(2030)는 t1 시점부터 t7 시점까지의 상태 정보를 나타낸다. 이동형 로봇(100)은 기 설정된 기간에 기초하여 이전 시점의 상태 정보를 식별할 수 있다.
예를 들어, 기 설정된 기간을 5 단위 시간으로 가정한다. 이동형 로봇(100)은 t2 내지 t6 시점 각각에 대응되는 상태 정보에 기초하여 기 설정된 상태 정보가 제2 상태(negative)인 것으로 식별 할 수 있다. t2 내지 t6에서 제1 상태(positive)는 식별되지 않고 제2 상태(negative)만 식별되기 때문이다. 그리고, 후보 모션의 상태 정보가 제1 상태(positive)인 것으로 가정한다. 기 설정된 상태 정보가 제2 상태(negative)이고 후보 모션의 상태 정보가 제1 상태(positive)이므로, 이동형 로봇(100)은 후보 모션의 분류 정보를 비결정 분류(제1 분류)으로 결정할 수 있다.
도 21은 주행 스코어에 기초하여 최종 모션을 식별하는 실시 예를 설명하기 위한 도면이다.
도 21의 실시 예(2110)는 이동형 로봇(100), 장애물(20) 및 목표 지점(10)을 나타낼 수 있다. 이동형 로봇(100)은 목표 지점(10)까지 이동하기 위해 장애물(20)을 회피하는 주행 경로를 생성할 수 있다. 주행 경로를 생성함에 있어 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 주행 스코어를 계산할 수 있다.
도 21의 수학식(2120)은 주행 스코어를 계산하는 방법을 나타낸다. 수학식(2120)에 따라 주행 스코어는 "W_obs*C_obs - W_goal*D_goal"로 계산될 수 있다.
w^i는 후보 모션의 각속도를 나타낸다.
v^j는 후보 모션의 선속도를 나타낸다.
W_obs는 C_obs에 대응되는 가중치를 나타낸다.
C_obs는 이동형 로봇(100)의 예측 궤적 내에서 이동형 로봇(100)의 위치에서 장애물(20)의 위치까지의 거리(호(arc)의 길이 또는 직선의 길이)를 나타낸다. 다양한 실시 예에 따라, C_obs는 장애물(20)을 회피하기 위해 이동형 로봇(100)이 이동해야 하는 거리를 나타낼 수 있다.
W_goal은 D_goal 에 대응되는 가중치를 나타낸다.
D_goal은 이동형 로봇(100)의 예측 지점에서 목표 지점(10)까지의 거리를 나타낸다. 예측 지점은 예측 궤적 내에서 장애물(20)을 회피한 후 이동형 로봇(100)이 위치할 수 있는 지점을 의미할 수 있다.
W_obs 및 W_goal은 0보다 큰 값을 가질 수 있다.
도 21의 수학식(2130)은 최종 모션을 선택하기 위해 계산하는 방법을 나타낸다.
Desired Velocity(w,v)는 최종 모션을 나타낸다.
w는 최종 모션의 각속도를 나타낸다.
v는 최종 모션의 선속도를 나타낸다.
argmaxScore(w^i,v^j)는 각속도 및 선속도를 포함하는 복수의 후보 모션 중 주행 스코어가 최대인 각속도 및 선속도를 찾는 함수를 의미할 수 있다.
w^i는 후보 모션의 각속도를 나타내며, W_List에 포함된 값을 나타낼 수 있다.
v^j는 후보 모션의 선속도를 나타내며, V_List에 포함된 값을 나타낼 수 있다.
W_List는 기 설정된 공간(또는 유효한 검색 공간)을 나타내는 후보 모션의 각속도 범위를 나타낼 수 있다.
V_List는 기 설정된 공간(또는 유효한 검색 공간)을 나타내는 후보 모션의 각속도 범위를 나타낼 수 있다.
도 22는 다양한 실시 예에 따라 주행 스코어를 계산하는 과정을 설명하기 위한 도면이다.
도 22의 실시 예(2210)는 이동형 로봇(100), 장애물(20) 및 목표 지점(10)을 나타낼 수 있다. 도 22의 실시 예(2210)는 장애물(20)이 이동형 로봇(100)의 주행 방향의 우측에 존재하는 상황을 나타낸다.
이동형 로봇(100)이 위치하는 지점은 (x0,y0)이고, 목표 지점은 (x1,y1)이고, 장애물이 위치하는 지점은 (x2,y2)일 수 있다. 이동형 로봇(100)은 후보 모션의 각속도 및 후보 모션의 선속도에 기초하여 가상의 중심점을 (x3,y3)로 식별할 수 있다. 이동형 로봇(100)은 가상의 중심점 및 회전 반경(r)에 기초하여 예측 궤적을 식별할 수 있다. 그리고, 이동형 로봇(100)은 예측 궤적 내에서 예측 지점을 (x4,y4)로 식별할 수 있다. 그리고, 이동형 로봇(100)은 예측 궤적 내에서 이동형 로봇(100)과 장애물(20) 사이의 각도(θ)를 식별할 수 있다. 또한, 이동형 로봇(100)은 이동형 로봇(100)의 예측 궤적 내에서 이동형 로봇(100)의 위치에서 장애물(20)의 위치까지의 거리(C_obs)를 식별할 수 있다. 또한, 이동형 로봇(100)은 이동형 로봇(100)의 예측 지점에서 목표 지점(10)까지의 거리(D_goal)를 식별할 수 있다.
도 22의 그래프(2220)는 실시 예(2210)를 나타내기 위한 2차원 그래프일 수 있다. 그래프(2220)에서 가상의 삼각형(2221)을 통해 θ를 식별할 수 있다.
수학식(2230)은 가상의 중심점을 찾는 계산 방법을 나타낼 수 있다. 가상의 중심점은 이동형 로봇(100)의 위치(x0,y0)로부터 회전 반경(r)만큼 y축으로 이동된 점일 수 있다. 회전 반경(r)은 y3를 의미할 수 있다. 그리고, 회전 반경 (r)은 |v^j/w^i|일 수 있다.
수학식(2240)은 예측 궤적 내에서 이동형 로봇(100)과 장애물(20) 사이의 각도(θ)를 계산하는 방식을 나타낸다. 가상의 삼각형(2221)에 따라, 각도(θ)는 tan-1(|x2|/|y3-y2|)일 수 있다. 또한, r에 대한 수학식(2230)을 고려하면, 각도(θ)는 tan^-1(|x2|/||v^j/w^i|-y2|)일 수 있다.
수학식(2250)은 거리(C_obs)를 계산하는 방식을 나타낸다. 거리(C_obs)는 r*θ일 수 있다. 또한, r에 대한 수학식(2230)을 고려하면, 거리(C_obs)는 |v^j/w^i| *θ일 수 있다. 또한, θ에 대한 수학식(2240)을 고려하면, 거리(C_obs)는 |v^j/w^i|* tan^-1(|x2|/||v^j/w^i|-y2|)일 수 있다.
수학식(2260)은 거리(D_goal)를 계산하는 방식을 나타낸다. 거리(D_goal)는 root((x1-x4)^2+(y1-y4)^2)일 수 있다.
도 23은 다양한 실시 예에 따라 주행 스코어를 계산하는 과정을 설명하기 위한 도면이다.
도 23의 실시 예(2310)는 이동형 로봇(100), 장애물(20) 및 목표 지점(10)을 나타낼 수 있다. 도 23의 실시 예(2310)는 장애물(20)이 이동형 로봇(100)의 주행 방향의 좌측에 존재하는 상황을 나타낸다.
이동형 로봇(100)이 위치하는 지점은 (x0,y0)이고, 목표 지점은 (x1,y1)이고, 장애물이 위치하는 지점은 (x2,y2)일 수 있다. 가상의 중심점은 (x3,y3)이고. 예측 궤적 내에서 예측 지점은 (x4,y4)일 수 있다. 예측 궤적 내에서 이동형 로봇(100)과 장애물(20) 사이의 각도는 θ이고, 예측 궤적 내에서 이동형 로봇(100)의 위치에서 장애물(20)의 위치까지의 거리는 C_obs이고, 예측 지점에서 목표 지점(10)까지의 거리는 D_goal일 수 있다. 이와 관련된 설명은 도 23에서 기재하였으므로 중복 설명을 생략한다.
도 23의 그래프(2320)는 실시 예(2310)를 나타내기 위한 2차원 그래프일 수 있다. 그래프(2320)에서 가상의 삼각형(2321)을 통해 θ를 식별할 수 있다.
도 23의 수학식(2330, 2340, 2350, 2360)은 도 22의 수학식(2230,2240,2250,2260)에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
도 24는 다양한 실시 예에 따라 주행 스코어의 최대값을 계산하는 과정을 설명하기 위한 도면이다.
도 24의 실시 예(2410)는 주행 스코어의 최대값을 찾는 과정을 그래프로 표현한 것이다. 그래프(2411)는 특정 유효한 검색 공간에 포함된 후보 모션의 각속도 및 후보 모션의 선속도를 나타낼 수 있다. 유효한 검색 공간은 후보 모션의 각속도 범위가 wa에서 wb이며, 후보 모션의 선속도 범위가 va에서 vb일 수 있다.
도 24의 수학식(2420)은 도 21의 수학식(2120)에 대응될 수 있다. 따라서, 중복 설명을 생략한다. 여기서, 수학식(2430)은 수학식(2420)을 "W_goal*D_goal"로 정리한 식일 수 있다.
여기서, 수학식(2440)은 수학식(2430)을 "D_goal"로 정리한 식일 수 있다. 수학식(2440)에 따라, 그래프(2412)는 x축이 C_obs이고 y축이 D_goal일 수 있다. 그래프(2412)에서 후보 모션 각각의 y축 절편을 고려하면 주행 스코어의 최대 주행 스코어를 계산할 수 있다.
도 25는 비결정 분류와 결정 분류 중 하나의 분류에 해당하는 모션을 최종 모션으로 식별하는 동작을 설명하기 위한 도면이다.
도 25를 참조하면, 이동형 로봇(100)은 분류 정보 별로 주행 스코어의 최대값을 획득할 수 있다. 구체적으로, 이동형 로봇(100)은 복수의 후보 모션을 비결정 분류(제1 분류) 또는 결정 분류(제2 분류)으로 구분할 수 있다.
이동형 로봇(100)은 비결정 분류(제1 분류)으로 구분된 후보 모션 중 최대 주행 스코어를 갖는 후보 모션(제1 모션)을 식별할 수 있다. 비결정 분류(제1 분류)에서 획득되는 최대 주행 스코어를 S_i로 기재한다. 또한, 이동형 로봇(100)은 결정 분류(제2 분류)으로 구분된 후보 모션 중 최대 주행 스코어를 갖는 후보 모션(제2 모션)을 식별할 수 있다. 결정 분류(제2 분류)에서 획득되는 최대 주행 스코어를 S_d로 기재한다.
이동형 로봇(100)은 제1 모션의 주행 스코어(S_i)와 제2 모션의 주행 스코어(S_d)에 기초하여 최종 모션을 식별할 수 있다. 이동형 로봇(100)은 제2 모션의 주행 스코어(S_d)와 임계 주행 스코어(S_adv)를 합산한 값(S_d+ S_adv)을 획득할 수 있다. 그리고, 이동형 로봇(100)은 제1 모션의 주행 스코어(S_i)와 합산값(S_d+ S_adv)을 비교하여 최종 모션을 식별할 수 있다.
실시 예(2510)에 따라, 제1 모션의 주행 스코어(S_i)가 합산값(S_d+ S_adv)을 초과하면, 이동형 로봇(100)은 주행 스코어(S_i)에 대응되는 제1 모션을 최종 모션으로 식별할 수 있다.
실시 예(2520)에 따라, 제1 모션의 주행 스코어(S_i)가 합산값(S_d+ S_adv) 이하이면, 이동형 로봇(100)은 주행 스코어(S_d)에 대응되는 제2 모션을 최종 모션으로 식별할 수 있다.
실시 예(2530)에 따라, 이동형 로봇(100)은 임계 주행 스코어(S_adv)를 추가적으로 고려함으로써 결정 분류로 구분된 후보 모션을 선택할 확률을 높일 수 있다. 임계 주행 스코어(S_adv)가 클수록 결정 분류(제2 분류)의 후보 모션이 선택될 가능성이 높아질 수 있다.
실시 예(2530)에서 x축은 제1 모션(비결정 분류)의 주행 스코어(S_i)이고 y축은 선속도를 의미할 수 있다. 여기서, V_i는 제1 모션(비결정 분류)의 선속도이고 V_d는 제2 모션(결정 분류)의 선속도이다. 제1 모션의 주행 스코어(S_i)가 합산값(S_d+ S_adv)을 초과하면(또는 이상이면), 이동형 로봇(100)은 제1 모션(비결정 분류)의 선속도(V_i)로 모터를 제어할 수 있다. 또한, 제1 모션의 주행 스코어(S_i)가 합산값(S_d+ S_adv)을 초과하지 않으면, 이동형 로봇(100)은 제2 모션(결정 분류)의 선속도(V_d)로 모터를 제어할 수 있다. S_d에서 S_d+ S_adv까지 인 영역을 활성화 영역(Activation Region)으로 표현할 수 있다. 활성화 영역은 제2 모션의 주행 스코어(S_d )보다 큰 주행 스코어에 해당하여도 제2 모션(결정 분류)의 선속도(V_d)로 모터를 제어하는 영역일 수 있다.
도 26은 복수의 후보 모션 중 하나의 모션을 최종 모션으로 선택하는 전체적 동작 과정을 설명하는 도면이다.
도 26을 참조하면, 이동형 로봇(100)은 주행 경로 생성 모듈(2600)을 포함할 수 있다. 여기서, 주행 경로 생성 모듈(2600)은 "Forward Planner"로 기재될 수 있다. 주행 경로 생성 모듈(2600)은 모션 후보 생성 모듈(2610) (or Motion Candidate Generator), 모션 분석 모듈(2620), 스코어 테이블 생성 모듈(2630) (or Score Table Builder) 또는 모션 선택 모듈(2640) (or Optimal Motion Selector)중 적어도 하나를 포함할 수 있다.
모션 후보 생성 모듈(2610)은 유효한 검색 공간(또는 동적 윈도우)에서 식별 가능한 복수의 후보 모션을 생성하는 모듈을 의미할 수 있다.
모션 분석 모듈(2620)은 모션 저장부(2621) 또는 모션 분류부(2622) 중 적어도 하나를 포함할 수 있다. 모션 저장부(2621)는 이동형 로봇(100)이 실제로 주행한 선속도 또는 각속도 정보를 저장할 수 있다. 모션 저장부(2621)는 모션과 관련된 정보를 저장할 수 있다. 모션 분류부(2622)는 모션 저장부(2621)에 저장된 모션 기록과 모션 후보 생성 모듈(2610)에서 생성된 후보 모션을 비교하여 모션의 분류 정보를 구분할 수 있다.
스코어 테이블 생성 모듈(2630)은 복수의 후보 모션 각각의 주행 스코어를 생성할 수 있다.
모션 선택 모듈(2640)은 생성된 주행 스코어에 기초하여 최종 모션을 식별할 수 있다. 구체적으로, 이동형 로봇(100)은 모션 분류부(2622)에서 분류된 분류 정보 및 스코어 테이블 생성 모듈(2630)에서 생성된 주행 스코어에 기초하여 최적의 최종 모션을 선택할 수 있다.
도 27은 이동형 로봇(100)이 이동함에 따라 변경되는 위치 및 각속도를 설명하기 위한 도면이다.
도 27의 그래프(2710)는 이동형 로봇(100)의 주행 경로를 나타내는 2차원 좌표계이다. 그래프(2710)에 따라, 이동형 로봇(100)은 시작 지점에서 출발하여 장애물(20)의 좌측 방향으로 이동할 수 있다.
도 27의 그래프(2720)는 시간에 따른 각속도를 나타낸다. 일반 주행 모드로 주행하는 경우 3초 전후 및 6초 전후에서 각속도가 급격하게 변경된다. 하지만, 소프트 주행 모드(각속도 변화량을 고려하여 주행하는 모드)로 주행하는 경우, 3초 전후 및 6초 전후에서 각속도가 일정하게 유지될 수 있다. 따라서, 이동형 로봇(100)의 주행 안정성이 높아질 수 있다.
도 28은 소프트 주행 모드로 동작하는 이동형 로봇(100)을 설명하기 위한 흐름도이다.
도 28을 참조하면, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 각속도 변화량을 획득할 수 있다 (S2805). 그리고, 이동형 로봇(100)은 소프트 주행 모드로 주행할 수 있다 (S2810). 이동형 로봇(100)은 기본적으로 소프트 주행 모드로 항상 주행할 수 있다. 여기서, 소프트 주행 모드는 최소 시간 또는 최단 거리이외에 각속도 변화량을 추가적으로 고려하여 주행하는 모드일 수 있다. 각속도 변화량을 고려하는 주행 동작은 도 5 내지 도 12에서 기재한다.
도 29는 일반 주행 모드와 소프트 주행 모드를 비교하기 위한 도면이다.
도 29를 참조하면, 이동형 로봇(100)은 주행 모드를 선택하도록 가이드하기 위한 UI 화면(2900)을 사용자에게 제공할 수 있다. UI 화면(2900)은 주행 모드를 선택할 것을 나타내는 텍스트 정보(2910), 일반 주행 모드를 설명하는 UI(2910) 또는 소프트 주행 모드를 설명하는 UI(2920) 중 적어도 하나를 포함할 수 있다.
일반 주행 모드를 설명하는 UI(2910)는 최단 경로(또는 최소 시간)을 기준으로 주행함을 나타내는 텍스트 정보(2911) 또는 일반 주행 모드에 따른 주행 경로의 대표 예시를 나타내는 가이드 이미지 정보(2912) 중 적어도 하나를 포함할 수 있다. 여기서, 이미지 정보(2912)는 대표 실시 예의 이미지를 포함할 수 있다. 다양한 실시 예에 따라, 이미지 정보(2912)는 실제 예상 주행 경로의 이미지를 포함할 수 있다.
소프트 주행 모드를 설명하는 UI(2920)는 최단 경로(또는 최소 시간)을 기준으로 주행함을 나타내는 텍스트 정보(2921) 또는 소프트 주행 모드에 따른 주행 경로의 대표 예시를 나타내는 가이드 이미지 정보(2922) 중 적어도 하나를 포함할 수 있다. 여기서, 이미지 정보(2922)는 대표 실시 예의 이미지를 포함할 수 있다. 다양한 실시 예에 따라, 이미지 정보(2922)는 실제 예상 주행 경로의 이미지를 포함할 수 있다.
도 30은 소프트 주행 모드와 관련된 인디케이터를 설명하기 위한 도면이다.
도 30의 실시 예(3010)에 따라, 이동형 로봇(100)은 소프트 주행 모드를 나타내는 인디케이터(3011)를 표시할 수 있다. 이동형 로봇(100)은 사용자 설정에 따라 일반 주행 모드와 소프트 주행 모드로 동작할 수 있다. 이동형 로봇(100)이 소프트 주행 모드로 동작하는 경우, 이동형 로봇(100)은 인디케이터(3011)를 표시할 수 있다. 인디케이터(3011)를 표시하는 동작은 특정 위치에 배치된 LED(light emitting diode)를 발광하는 것을 의미할 수 있다.
도 30의 실시 예(3020)에 따라, 이동형 로봇(100)은 디스플레이(140)를 포함할 수 있다. 그리고, 이동형 로봇(100)이 소프트 주행 모드로 동작하는 경우, 이동형 로봇(100)은 소프트 주행 모드로 주행함을 나타내는 인디케이터를 디스플레이(140)에 표시할 수 있다. 여기서, 인디케이터는 텍스트 정보(3021) 또는 아이콘(3022) 중 적어도 하나를 포함할 수 있다.
도 31은 다양한 실시 예에 따라 소프트 주행 모드로 주행하는 동작을 설명하기 위한 흐름도이다.
도 31을 참조하면, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 각속도 변화량을 획득할 수 있다 (S3105). 그리고, 이동형 로봇(100)은 장애물의 존재 여부를 식별할 수 있다 (S3110). 이동형 로봇(100)은 센서(110)로부터 획득된 센싱 데이터에 기초하여 이동형 로봇(100)의 주행 경로 상에 장애물이 있는지 여부를 식별할 수 있다.
장애물이 식별되면 (S3110-Y), 이동형 로봇(100)은 소프트 주행 모드로 주행할 수 있다 (S3115). 소프트 주행 모드는 각속도 변화량에 기초하여 이동형 로봇(100)의 주행 경로가 설정되는 모드일 수 있다.
장애물이 식별되지 않으면 (S3110-N), 이동형 로봇(100)은 일반 주행 모드로 주행할 수 있다 (S3120). 일반 주행 모드는 최단 거리 또는 최소 시간에 기초하여 이동형 로봇(100)의 주행 경로가 설정되는 모드일 수 있다.
도 32는 다양한 실시 예에 따라 소프트 주행 모드로 주행하는 동작을 설명하기 위한 흐름도이다.
도 32를 참조하면, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 각속도 변화량을 획득할 수 있다 (S3205). 그리고, 이동형 로봇(100)은 각속도 변화량이 양수에서 음수로 변경되는지 여부를 식별할 수 있다 (S3210).
각속도 변화량이 양수에서 음수로 변경되면 (S3210-Y), 이동형 로봇(100)은 소프트 주행 모드로 주행할 수 있다 (S3215).
각속도 변화량이 양수에서 음수로 변경되지 않으면 (S3210-N), 이동형 로봇(100)은 각속도 변화량이 음수에서 양수로 변경되는지 여부를 식별할 수 있다 (S3220). 각속도 변화량이 음수에서 양수로 변경되면 (S3220-Y), 이동형 로봇(100)은 소프트 주행 모드로 주행할 수 있다 (S3215).
각속도 변화량이 음수에서 양수로 변경되지 않으면 (S3220-N), 이동형 로봇(100)은 일반 주행 모드로 주행할 수 있다.
즉, 각속도 변화량이 양수에서 음수로 변경되거나 각속도 변화량이 음수에서 양수로 변경되는 경우에 한하여, 이동형 로봇(100)은 소프트 주행 모드로 주행할 수 있다. 각속도 변화량의 부호(음수, 양수)가 변경된다고 하여도, 실제로 이동 방향이 바로 변경되지 않을 수 있으며, 속도가 줄어들 수 있다. 따라서, 이동형 로봇(100)은 이동 방향이 급격하게 변경될 가능성을 각속도 변화량의 부호(음수, 양수)의 변화에 기초하여 판단할 수 있다. 그리고, 각속도 변화량의 부호(음수, 양수)의 변화가 식별되면, 이동형 로봇(100)은 소프트 주행 모드로 주행하여 이동 방향을 최대한 유지할 수 있다.
도 33은 본 개시의 일 실시 예에 따른 이동형 로봇(100)의 제어 방법을 설명하기 위한 흐름도이다.
도 33을 참조하면, 이동형 로봇(100)의 제어 방법은 이동형 로봇(100)의 주행 경로를 획득하는 단계, 주행 경로를 따라 이동하는 이동형 로봇(100)의 복수의 후보 모션 각각에 대응되는 각속도 변화량을 센서로부터 획득된 센싱 데이터에 기초하여 식별하는 단계, 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 단계 및 최종 모션에 기초하여 이동형 로봇(100)을 이동하도록 제어하는 단계를 포함할 수 있다.
한편, 최종 모션을 식별하는 단계는 후보 모션의 각속도 변화량에 기초하여 후보 모션의 상태 정보를 식별할 수 있고, 상태 정보의 변경 여부에 따라 후보 모션의 분류 정보를 식별할 수 있고, 후보 모션에 대응되는 주행 스코어를 획득할 수 있고, 주행 스코어 및 분류 정보에 기초하여 복수의 후보 모션 중 최종 모션을 식별할 수 있다.
한편, 상태 정보를 식별하는 단계는 이전 시점 모션의 각속도에 기초하여 이전 시점 모션의 상태 정보를 식별할 수 있고, 이전 시점 모션의 각속도 및 복수의 후보 모션의 각속도 간 차이에 기초하여 후보 모션의 상태 정보를 식별할 수 있고, 분류 정보를 식별하는 단계는 이전 시점 모션의 상태 정보 및 후보 모션의 상태 정보에 기초하여 후보 모션의 분류 정보를 식별할 수 있다.
한편, 주행 스코어는 후보 모션에 기초하여 이동하는 이동형 로봇(100)이 장애물을 회피하도록 이동하는 거리가 클수록 큰 값이며, 장애물을 회피한 이후 이동형 로봇(100)이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 큰 값일 수 있다.
한편, 상태 정보를 식별하는 단계는 후보 모션의 각속도 변화량이 제1 임계값을 초과하면, 후보 모션의 상태 정보를 제1 상태로 식별할 수 있고, 후보 모션의 각속도 변화량이 제1 임계값보다 작은 제2 임계값 미만이면, 후보 모션의 상태 정보를 제2 상태로 식별할 수 있고, 후보 모션의 각속도 변화량이 제1 임계값 이하이고 제2 임계값을 초과하면, 후보 모션의 상태 정보를 제3 상태로 식별할 수 있다.
한편, 분류 정보를 식별하는 단계는 후보 모션의 상태 정보가 제1 상태에서 제2 상태로 변경되거나 후보 모션의 상태 정보가 제2 상태에서 제1 상태로 변경되면, 후보 모션의 분류 정보를 제1 분류로 식별할 수 있고, 후보 모션의 상태 정보가 제1 상태에서 제3 상태로 변경되거나, 후보 모션의 상태 정보가 제2 상태에서 제3 상태로 변경되거나, 후보 모션의 상태 정보가 제3 상태에서 제1 상태로 변경되거나, 후보 모션의 상태 정보가 제3 상태에서 제2 상태로 변경되면, 후보 모션의 분류 정보를 제2 분류로 식별할 수 있다. 여기서, 제1 분류는 제2 분류에 비해 후보 모션의 상태 정보가 상대적으로 급격히 변경되는 분류일 수 있다.
한편, 분류 정보를 식별하는 단계는 기 설정된 기간 동안 획득된 상태 정보에 기초하여 후보 모션의 분류 정보를 식별할 수 있다.
한편, 최종 모션을 식별하는 단계는 제1 분류로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제1 모션을 식별할 수 있고, 제2 분류로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제2 모션을 식별할 수 있고, 제1 모션 또는 제2 모션 중 어느 하나를 최종 모션으로 식별할 수 있다.
한편, 최종 모션을 식별하는 단계는 제1 모션의 제1 주행 스코어가 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합을 초과하면, 제1 모션을 최종 모션으로 식별할 수 있고, 제1 모션의 제1 주행 스코어가 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합 이하이면, 제2 모션을 최종 모션으로 식별할 수 있다.
한편, 각속도 변화량이 양수에서 음수로 변경되거나 각속도 변화량이 음수에서 양수로 변경되면, 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 소프트 주행 모드에 기초하여 이동형 로봇(100)을 이동하도록 제어하는 단계를 더 포함할 수 있다.
한편, 도 33과 같은 이동형 로봇(100)의 제어 방법은 도 2 또는 도 3의 구성을 가지는 이동형 로봇(100) 상에서 실행될 수 있으며, 그 밖의 구성을 가지는 장치 상에서도 실행될 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 이동형 로봇(100)에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 이동형 로봇(100)에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 이동형 로봇(100)에 구비된 임베디드 서버, 또는 이동형 로봇(100) 및 디스플레이 장치 중 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 이동형 로봇(100)를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장 매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (15)

  1. 이동형 로봇에 있어서,
    센서;
    상기 이동형 로봇을 구동하기 위한 모터; 및
    상기 이동형 로봇의 주행 경로를 획득하고,
    상기 주행 경로를 따라 이동하는 상기 이동형 로봇의 복수의 후보 모션 각각에 대응되는 각속도 변화량을 상기 센서로부터 획득된 센싱 데이터에 기초하여 결정하고,
    상기 복수의 후보 모션 각각에 대응되는 각속도 변화량에 기초하여 상기 복수의 후보 모션 중 최종 모션을 결정하고,
    상기 최종 모션에 기초하여 상기 이동형 로봇을 이동하도록 상기 모터를 제어하는 적어도 하나의 프로세서;를 포함하는, 이동형 로봇.
  2. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 복수의 후보 모션 각각에 대응되는 각속도 변화량에 기초하여 상기 복수의 후보 모션 각각의 상태 정보를 결정하고,
    상기 상태 정보의 변경 여부에 따라 상기 복수의 후보 모션 각각의 분류 정보를 결정하고,
    상기 복수의 후보 모션 각각에 대응되는 주행 스코어를 계산하고,
    상기 복수의 후보 모션에 대한 상기 주행 스코어 및 상기 복수의 후보 모션에 대한 분류 정보에 기초하여 상기 복수의 후보 모션 중 최종 모션을 결정하는, 이동형 로봇.
  3. 제2 항에 있어서,
    상기 적어도 하나의 프로세서는,
    이전 시점 모션의 각속도에 기초하여 상기 이전 시점 모션의 상태 정보를 식별하고,
    상기 이전 시점 모션의 각속도 및 상기 복수의 후보 모션 각각의 각속도 간 차이에 기초하여 상기 복수의 후보 모션 각각의 상태 정보를 결정하고,
    상기 이전 시점 모션의 상태 정보 및 상기 복수의 후보 모션 각각의 상태 정보에 기초하여 상기 복수의 후보 모션 각각의 분류 정보를 결정하는, 이동형 로봇.
  4. 제2 항에 있어서,
    상기 주행 스코어는,
    상기 복수의 후보 모션 중 특정 후보 모션에 기초하여 이동하는 상기 이동형 로봇이 장애물을 회피하기 위해 이동하는 거리가 클수록 커지며,
    상기 주행 스코어는,
    상기 장애물을 회피한 이후 상기 이동형 로봇이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 커지는, 이동형 로봇.
  5. 제2 항에 있어서,
    상기 적어도 하나의 프로세서는,
    특정 후보 모션에 대응되는 상기 각속도 변화량이 제1 임계값을 초과하면, 상기 복수의 후보 모션 중 상기 특정 후보 모션의 상태 정보를 제1 상태로 결정하고,
    상기 특정 후보 모션에 대응되는 상기 각속도 변화량이 상기 제1 임계값보다 작은 제2 임계값 미만이면, 상기 복수의 후보 모션 중 상기 특정 후보 모션의 상태 정보를 제2 상태로 결정하고,
    상기 특정 후보 모션에 대응되는 상기 각속도 변화량이 상기 제1 임계값 이하이고 상기 제2 임계값을 초과하면, 상기 특정 후보 모션의 상태 정보를 제3 상태로 결정하는, 이동형 로봇.
  6. 제5항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 특정 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제2 상태로 변경되거나 상기 제2 상태에서 상기 제1 상태로 변경되면, 상기 특정 후보 모션의 분류 정보를 제1 분류로 결정하고,
    상기 특정 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제3 상태로 변경되거나, 상기 제2 상태에서 상기 제3 상태로 변경되거나, 상기 제3 상태에서 상기 제1 상태로 변경되거나, 상기 제3 상태에서 상기 제2 상태로 변경되면, 상기 특정 후보 모션의 분류 정보를 제2 분류로 결정하며,
    상기 제1 분류는,
    상기 제2 분류에 비해 상기 특정 후보 모션의 상태 정보가 상대적으로 급격히 변경되는 분류인, 이동형 로봇.
  7. 제6항에 있어서,
    상기 적어도 하나의 프로세서는,
    기 설정된 기간 안에 획득된 상기 특정 후보 모션의 상태 정보에 기초하여 상기 특정 후보 모션의 상기 분류 정보를 결정하는, 이동형 로봇.
  8. 제6항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 분류로 결정된 적어도 하나의 후보 모션 중 최대 주행 스코어의 제1 모션을 식별하고,
    상기 제2 분류로 결정된 적어도 하나의 후보 모션 중 최대 주행 스코어의 제2 모션을 식별하고,
    상기 제1 모션 또는 상기 제2 모션 중 어느 하나를 상기 최종 모션으로 결정하는, 이동형 로봇.
  9. 제8항에 있어서,
    상기 제1 모션의 주행 스코어는 제1 주행 스코어이고,
    상기 제2 모션의 주행 스코어는 제2 주행 스코어이고,
    상기 적어도 하나의 프로세서는,
    상기 제1 주행 스코어가 상기 제2 주행 스코어 및 임계 주행 스코어의 합을 초과하면, 상기 제1 모션을 상기 최종 모션으로 결정하고,
    상기 제1 주행 스코어가 상기 제2 주행 스코어 및 상기 임계 주행 스코어의 합 이하이면, 상기 제2 모션을 상기 최종 모션으로 결정하는, 이동형 로봇.
  10. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 각속도 변화량이 양수에서 음수로 변경되거나 음수에서 양수로 변경되면, 상기 각속도 변화량에 기초하여 상기 복수의 후보 모션 중 상기 최종 모션에 기초하여 상기 이동형 로봇을 이동하도록 상기 모터를 제어하고, 소프트 주행 모드에 기초하여 상기 이동형 로봇을 이동하도록 상기 모터를 제어하는, 이동형 로봇.
  11. 이동형 로봇의 제어 방법에 있어서,
    상기 이동형 로봇의 주행 경로를 획득하는 단계;
    상기 주행 경로를 따라 이동하는 상기 이동형 로봇의 복수의 후보 모션 각각에 대응되는 각속도 변화량을 센서로부터 획득된 센싱 데이터에 기초하여 결정하는 단계;
    상기 복수의 후보 모션 각각에 대응되는 각속도 변화량에 기초하여 상기 복수의 후보 모션 중 최종 모션을 결정하는 단계; 및
    상기 최종 모션에 기초하여 상기 이동형 로봇을 제어하는 단계;를 포함하는, 제어 방법.
  12. 제11 항에 있어서,
    상기 복수의 후보 모션 각각에 대응되는 각속도 변화량에 기초하여 상기 복수의 후보 모션 각각의 상태 정보를 결정하는 단계;
    상기 상태 정보의 변경 여부에 따라 상기 복수의 후보 모션 각각의 분류 정보를 결정하는 단계;
    상기 복수의 후보 모션 각각에 대응되는 주행 스코어를 계산하는 단계; 및
    상기 복수의 후보 모션에 대한 상기 주행 스코어 및 상기 복수의 후보 모션에 대한 분류 정보에 기초하여 상기 복수의 후보 모션 중 최종 모션을 결정하는 단계;를 더 포함하는, 제어 방법.
  13. 제12 항에 있어서,
    이전 시점 모션의 각속도에 기초하여 상기 이전 시점 모션의 상태 정보를 식별하는 단계;를 더 포함하고,
    상기 상태 정보를 결정하는 단계는,
    상기 이전 시점 모션의 각속도 및 상기 복수의 후보 모션 각각의 각속도 간 차이에 기초하여 상기 복수의 후보 모션 각각의 상태 정보를 결정하고,
    상기 분류 정보를 결정하는 단계는,
    상기 이전 시점 모션의 상태 정보 및 상기 복수의 후보 모션 각각의 상태 정보에 기초하여 상기 복수의 후보 모션 각각의 분류 정보를 결정하는, 제어 방법.
  14. 제12 항에 있어서,
    상기 주행 스코어는,
    상기 복수의 후보 모션 중 특정 후보 모션에 기초하여 이동하는 상기 이동형 로봇이 장애물을 회피하기 위해 이동하는 거리가 클수록 커지며,
    상기 주행 스코어는,
    상기 장애물을 회피한 이후 상기 이동형 로봇이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 커지는, 제어 방법.
  15. 제12 항에 있어서,
    상기 상태 정보를 결정하는 단계는,
    특정 후보 모션에 대응되는 상기 각속도 변화량이 제1 임계값을 초과하면, 상기 복수의 후보 모션 중 상기 특정 후보 모션의 상태 정보를 제1 상태로 결정하고,
    상기 특정 후보 모션에 대응되는 상기 각속도 변화량이 상기 제1 임계값보다 작은 제2 임계값 미만이면, 상기 복수의 후보 모션 중 상기 특정 후보 모션의 상태 정보를 제2 상태로 결정하고,
    상기 특정 후보 모션에 대응되는 상기 각속도 변화량이 상기 제1 임계값 이하이고 상기 제2 임계값을 초과하면, 상기 특정 후보 모션의 상태 정보를 제3 상태로 결정하는, 제어 방법.
PCT/KR2023/001385 2022-05-09 2023-01-31 이동형 로봇 및 그 제어 방법 WO2023219229A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/142,928 US20230356391A1 (en) 2022-05-09 2023-05-03 Movable robot and controlling method thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2022-0056459 2022-05-09
KR20220056459 2022-05-09
KR10-2022-0103567 2022-08-18
KR1020220103567A KR20230157214A (ko) 2022-05-09 2022-08-18 이동형 로봇 및 그 제어 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/142,928 Continuation US20230356391A1 (en) 2022-05-09 2023-05-03 Movable robot and controlling method thereof

Publications (1)

Publication Number Publication Date
WO2023219229A1 true WO2023219229A1 (ko) 2023-11-16

Family

ID=88730458

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/001385 WO2023219229A1 (ko) 2022-05-09 2023-01-31 이동형 로봇 및 그 제어 방법

Country Status (1)

Country Link
WO (1) WO2023219229A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007313592A (ja) * 2006-05-24 2007-12-06 Toyota Motor Corp 経路作成装置及び経路作成方法
KR20080057928A (ko) * 2006-12-21 2008-06-25 삼성전자주식회사 이동 로봇의 주행 상태 판별 장치 및 방법
KR20100118454A (ko) * 2009-04-28 2010-11-05 목포대학교산학협력단 농업용 잔디 예초 모우어 로봇 및 그의 주행 안내방법
KR20190123673A (ko) * 2018-04-06 2019-11-01 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR20220055167A (ko) * 2020-10-26 2022-05-03 주식회사 케이티 자율주행 로봇, 자율주행 로봇의 충돌 회피 방법 및 월드 맵 관리 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007313592A (ja) * 2006-05-24 2007-12-06 Toyota Motor Corp 経路作成装置及び経路作成方法
KR20080057928A (ko) * 2006-12-21 2008-06-25 삼성전자주식회사 이동 로봇의 주행 상태 판별 장치 및 방법
KR20100118454A (ko) * 2009-04-28 2010-11-05 목포대학교산학협력단 농업용 잔디 예초 모우어 로봇 및 그의 주행 안내방법
KR20190123673A (ko) * 2018-04-06 2019-11-01 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR20220055167A (ko) * 2020-10-26 2022-05-03 주식회사 케이티 자율주행 로봇, 자율주행 로봇의 충돌 회피 방법 및 월드 맵 관리 방법

Similar Documents

Publication Publication Date Title
AU2019231476B2 (en) Electronic device with flexible display and method for operating same
WO2021107506A1 (en) Electronic device for providing augmented reality service and operating method thereof
WO2019107945A1 (en) Method of providing service based on location of sound source and speech recognition device therefor
WO2012043932A1 (ko) 키보드 제어 장치 및 그 방법
WO2017105130A1 (ko) 통신 장치 및 이를 구비하는 전자기기
WO2015142023A1 (en) Method and wearable device for providing a virtual input interface
EP3864501A1 (en) Method for providing image using foldable display and electronic device for supporting the same
EP3241093A1 (en) Electronic system with gesture calibration mechanism and method of operation thereof
WO2016190458A1 (ko) Hmd 장치를 통하여 가상 이미지를 디스플레이하는 시스템 및 방법
WO2019117652A1 (en) Prism apparatus, and camera apparatus including the same
WO2021251549A1 (en) Display device
WO2020209624A1 (en) Head mounted display device and operating method thereof
WO2017159931A1 (en) Electronic device including touch panel and method of controlling the electronic device
WO2017196023A1 (en) Camera module and auto focusing method thereof
WO2019066133A1 (ko) 혼합 현실에서의 가상 모바일 단말 구현 시스템 및 이의 제어 방법
WO2023219229A1 (ko) 이동형 로봇 및 그 제어 방법
WO2021137629A1 (en) Display device, mobile device, video calling method performed by the display device, and video calling method performed by the mobile device
WO2021075910A1 (en) Electronic device and method for operating screen capturing by electronic device
WO2016108502A1 (en) Electronic system with gesture calibration mechanism and method of operation thereof
WO2020022571A1 (ko) 스마트 디바이스 및 그 제어 방법
WO2020122590A1 (en) Method and robot device for sharing object data
WO2019190159A1 (en) Prism apparatus, and camera apparatus including the same
WO2020184734A1 (ko) 로봇
WO2020022569A1 (ko) 스마트 프로젝터 및 그 제어 방법
WO2022196986A1 (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: 23803658

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023803658

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2023803658

Country of ref document: EP

Effective date: 20240516