WO2024058411A1 - 특정 공간을 주행하는 로봇 및 이의 제어 방법 - Google Patents

특정 공간을 주행하는 로봇 및 이의 제어 방법 Download PDF

Info

Publication number
WO2024058411A1
WO2024058411A1 PCT/KR2023/010956 KR2023010956W WO2024058411A1 WO 2024058411 A1 WO2024058411 A1 WO 2024058411A1 KR 2023010956 W KR2023010956 W KR 2023010956W WO 2024058411 A1 WO2024058411 A1 WO 2024058411A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
areas
identified
area
processor
Prior art date
Application number
PCT/KR2023/010956
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 KR1020220124644A external-priority patent/KR20240037787A/ko
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US18/378,429 priority Critical patent/US20240094732A1/en
Publication of WO2024058411A1 publication Critical patent/WO2024058411A1/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

Definitions

  • This disclosure relates to a robot and a control method thereof, and more specifically, to a robot that travels in a specific space based on the priorities identified in each of a plurality of sub-spaces included in the specific space and a control method thereof.
  • a robot includes a memory for storing map information, at least one sensor, and a first area that is a stopping point within the driving path. Based on this, a driver moves the robot to its destination and identifies a plurality of second areas within the first area, identifies priority information corresponding to each of the plurality of second areas, and obtains it through the at least one sensor.
  • the plurality of first It may include one or more processors that update priority information corresponding to each of the two areas and control the driving unit to move based on the updated priority information.
  • a method of controlling a robot includes identifying a plurality of second areas within a first area that are stops within a driving route based on map information, each of the plurality of second areas identifying priority information corresponding to, identifying the location of one or more objects in the first area based on sensing data acquired through at least one sensor, the location of the identified one or more objects or the driving Updating priority information corresponding to each of the plurality of second areas based on at least one of the predicted departure times for the next stopover in the route and controlling the driving unit to move based on the updated priority information. It can be included.
  • the action includes map information Identifying a plurality of second areas within a first area that is a stopping point within the driving route based on, identifying priority information corresponding to each of the plurality of second areas, sensing data acquired through at least one sensor identifying the location of one or more objects in the first area based on the plurality of second areas based on at least one of the location of the identified one or more objects or a predicted possible departure time for the next stopover in the driving route It may include updating priority information corresponding to each and controlling the driving unit to move based on the updated priority information.
  • FIG. 1A and 1B are diagrams for explaining a robot control method according to an embodiment.
  • Figure 2 is a block diagram showing the configuration of a robot according to one embodiment.
  • Figure 3A is a flowchart for explaining a robot control method according to an embodiment.
  • FIG. 3B is a diagram for explaining a robot control method according to an embodiment.
  • 4A and 4B are diagrams to explain the priority of subspaces according to one embodiment.
  • Figure 5 is a diagram for explaining the relationship between weight and priority according to an embodiment.
  • 6A to 6B are diagrams for explaining a method of updating weights or priorities according to an embodiment.
  • FIG. 7A is a flowchart for explaining a robot driving method according to an embodiment.
  • 7B to 7C are diagrams for explaining a method of driving a robot according to an embodiment.
  • Figure 8 is a diagram for explaining a method of controlling a robot based on the location of an object according to an embodiment.
  • Figure 9 is a diagram for explaining a method of controlling a robot based on the number of objects according to an embodiment.
  • Figure 10 is a flowchart explaining a method of outputting a notification by a robot according to an embodiment.
  • FIG. 11A is a flowchart illustrating a method of controlling a robot according to the number of objects according to an embodiment.
  • 11B to 11C are diagrams for explaining a method of controlling a robot according to the number of objects according to an embodiment.
  • Figure 12 is a flowchart to explain a method of updating priority according to an embodiment.
  • Figure 13 is a block diagram showing the detailed configuration of a robot according to an embodiment.
  • 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).
  • modules perform 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” may be integrated into at least one module and implemented with at least one processor, except for “modules” or “units” that need to be implemented with specific hardware.
  • FIG. 1A and 1B are diagrams for explaining a robot control method according to an embodiment.
  • the robot 100 can reach a destination by traveling in a travel space.
  • the robot 100 may provide services such as transmitting goods to a specific location or serving food.
  • the robot 100 may be configured to provide other types of services.
  • the robot 100 may already store map information corresponding to the driving space, and can drive in the space by creating a path based on this.
  • the driving space may mean an area or environment in which the robot can move.
  • the robot 100 may reach the destination through at least one stop included in the driving route. If the stopping point included in the driving route is a specific space, for example, an elevator, the robot 100 must move to the destination via the specific space.
  • the present invention is not limited to an elevator, and according to another embodiment, the specific space may include other areas, environments, or surroundings that the robot 100 can pass through to reach the destination.
  • the robot 100 may enter a specific space 10, which is a stopping point on the driving route, in order to reach the destination.
  • the robot 100 may identify a space in which the robot 100 can be located within a specific space and be located in one area 20 of the specific space (eg, an elevator).
  • the robot can further identify the direction it is facing in a specific space (indicated by an arrow in Figure 1A).
  • each of the plurality of objects 30 to 33 may be a person in an elevator.
  • the robot 100 may identify the locations of the objects 30 to 33 within a specific space and, based on this, identify an area within the specific space where the robot 100 can be located. In this case, in order not to interfere with the passage of objects 30 to 33 existing in the same specific space as the robot 100, the robot 100 is positioned based on the positions of the objects 30 to 33. Areas within a specific space can be identified.
  • the robot 100 identifies an area within a specific space where the robot 100 will be located based on driving information, for example, information about the time to get off at a specific space 10 and move to the next stopover. You may.
  • the robot 100 may identify an area within a specific space where it is easy to get off.
  • Figure 2 is a block diagram showing the configuration of a robot according to one embodiment.
  • the robot 100 may include a memory 110, at least one sensor 120, a driver 130, and one or more processors 140.
  • Memory 110 may store data necessary for various embodiments.
  • the memory 110 may be implemented as a memory embedded in the robot 100 or as a memory detachable from the robot 100 depending on the data storage purpose. For example, in the case of data for driving the robot 100, it is stored in a memory embedded in the robot 100, and in the case of data for the expansion function of the robot 100, it is stored in a memory that is detachable from the robot 100. It can be saved.
  • volatile memory e.g., dynamic RAM (DRAM), static RAM (SRAM), or synchronous dynamic RAM (SDRAM), etc.
  • non-volatile memory e.g. : OTPROM (one time programmable ROM), PROM (programmable ROM), EPROM (erasable and programmable ROM), EEPROM (electrically erasable and programmable ROM), mask ROM, flash ROM, flash memory (e.g. NAND flash or NOR flash, etc.) , a hard drive, or a solid state drive (SSD).
  • OTPROM one time programmable ROM
  • PROM programmable ROM
  • EPROM erasable and programmable ROM
  • EEPROM electrically erasable and programmable ROM
  • mask ROM e.g. NAND flash or NOR flash, etc.
  • flash memory e.g. NAND flash or NOR flash, etc.
  • hard drive e.g. NAND flash or NOR flash, etc.
  • 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.
  • external memory that can be connected to a USB port (e.g., it may be implemented in a form such as USB memory).
  • map information about the driving space may be stored in the memory 110.
  • the driving space refers to the space in which the robot 100 is currently driving or is scheduled to drive.
  • At least one sensor 120 may include a plurality of sensors of various types.
  • the sensor 120 may measure a physical quantity or detect the operating state of the robot 100 and convert the measured or sensed information into an electrical signal.
  • the sensor 120 may include a camera, and the camera may include a lens that focuses visible light and other optical signals reflected by an object and received into an image sensor, and an image sensor that can detect visible light and other optical signals.
  • the image sensor may include a 2D pixel array divided into a plurality of pixels.
  • the camera may be implemented as a depth camera.
  • the sensor 120 may include a thermal imaging sensor that reads the shape as well as a distance sensor such as a LIDAR (Light Detection And Ranging) sensor and a TOF (Time of Flight) sensor.
  • LIDAR Light Detection And Ranging
  • TOF Time of Flight
  • the robot 100 may acquire the above-described sensing data from an external device through a communication interface.
  • the driving unit 130 is a device that can drive the robot 100.
  • the driving unit 130 can adjust the traveling direction and traveling speed according to the control of the processor 140, and the driving unit 130 according to one example is a power generator (e.g., a power generator that generates power for the robot 100 to travel).
  • a power generator e.g., a power generator that generates power for the robot 100 to travel.
  • fuel or energy source
  • steering device to control the driving direction e.g., mechanical steering (manual steering), hydraulic It may include steering (hydraulics steering), electronic control power steering (EPS), etc.
  • EPS electronic control power steering
  • the driving unit 130 may be modified according to the driving type of the robot 100 (e.g., wheel type, walking type, flying type, etc.).
  • processors 140 are electrically connected to the memory 110, at least one sensor 120, and the driving unit 130 to control the overall operation of the robot 100.
  • the processor 140 may be comprised of one or multiple processors. Specifically, the processor 140 may perform the operation of the robot 100 according to various embodiments of the present disclosure by executing at least one instruction stored in the memory.
  • the processor 140 may include a digital signal processor (DSP), a microprocessor, a graphics processing unit (GPU), an artificial intelligence (AI) processor, and a neural processor (NPU) that process digital image signals.
  • DSP digital signal processor
  • GPU graphics processing unit
  • AI artificial intelligence
  • NPU neural processor
  • Processing Unit TCON (Time controller).
  • CPU central processing unit
  • MCU Micro Controller Unit
  • MPU micro processing unit
  • controller It may include one or more of a (controller), an application processor (AP), a communication processor (CP), or an ARM processor, or may be defined by the corresponding term.
  • the processor 140 may be implemented as a System on Chip (SoC) with a built-in processing algorithm, large scale integration (LSI), or in the form of an application specific integrated circuit (ASIC) or a Field Programmable Gate Array (FPGA).
  • SoC System on Chip
  • LSI large scale integration
  • ASIC application specific integrated circuit
  • FPGA Field Programmable Gate Array
  • the processor 140 may be implemented as a digital signal processor (DSP), a microprocessor, or a time controller (TCON). However, it is not limited to this, and the central processing unit ( central processing unit (CPU), micro controller unit (MCU), micro processing unit (MPU), controller, application processor (AP), or communication processor (CP), ARM processor It may include one or more of the following, or may be defined by the corresponding term.
  • the processor 140 may be implemented as a System on Chip (SoC) with a built-in processing algorithm, a large scale integration (LSI), or an FPGA (FPGA). It can also be implemented in the form of a Field Programmable gate array.
  • SoC System on Chip
  • LSI large scale integration
  • FPGA field Programmable gate array
  • one or more processors 140 may identify a specific space as a plurality of subspaces.
  • the processor 140 may first identify whether a specific space is included as a waypoint on the identified driving route based on map information about the driving space stored in the memory 110. That is, the processor 140 can identify whether the robot 100 moves through a specific space while moving to the destination.
  • the specific space is a part of the travel space of the robot 100, and may be, for example, a closed space (eg, an elevator) where many objects (eg, people) enter and exit. That is, the specific space may be a closed space where at least one object (eg, a person, etc.) is detected. However, it is not limited to this, and according to another disclosure, even if the specific space is not a closed space, it is a space where there is a possibility of difficulty in driving the robot 100, such as a space where the movement of an object in the driving space is detected more than a preset number of times. It may be.
  • a specific space may be an area where multiple objects can move in and out of the area to the extent that it is difficult to control a robot within the area.
  • the object may be at least one of a dynamic object or a static object.
  • the memory 110 may include information about a specific space along with map information about the driving space.
  • Information about a specific space including information about the location or area of a specific space within the driving map, may be pre-stored in the memory 110 during initial setup.
  • the present disclosure is not limited to this, and of course, information about a specific space may be obtained based on user input.
  • the processor 140 may identify the specific space as a plurality of subspaces. For example, if a specific space is identified as being included in the driving path identified based on map information about the driving space, the processor 140 may identify the specific space as a plurality of sub-spaces.
  • subspaces can be divided according to preset criteria. For example, it may be a space classified according to the physical structure of a specific space, but it is not limited to this and can be classified according to various criteria.
  • the processor 140 may identify a plurality of subspaces based on at least one of the user input data, and the size (or area) of the subspaces may have different values for each subspace. You can.
  • the processor 140 may identify the priority of each of a plurality of subspaces.
  • priority refers to the relative ranking of each of a plurality of subspaces.
  • the robot 100 may set a driving path within a specific space based on information about the priority corresponding to each of the plurality of sub-spaces.
  • the priority of each of the plurality of sub-spaces may be identified based on at least one of the location of an object in a specific space, a predicted departure time for the robot 100's next stop, or a user input. This will be explained in detail through Figures 4 to 6.
  • the processor 140 may identify the location of an object in a specific space based on sensing data acquired through at least one sensor 120.
  • the processor 140 when at least one sensor 120 is implemented as a LiDAR or a depth camera, the processor 140 performs a specific sensor based on sensing data acquired through the sensor 120. Objects (eg, people) located in space can be identified.
  • at least one sensor 120 may include an RGB Camera, and the processor 140 can identify the positional movement information of the object along with information about the relative position of the object located within a specific space.
  • the processor 140 may update the priority of each of the plurality of subspaces based on at least one of the location of the identified object or the predicted departure time for the next stopover in the driving route.
  • the processor 140 predicts the possible departure time to the next stopping point scheduled to travel through the elevator based on the driving route, and thereby predicts the possible departure time to the next stopping point in the driving route can be identified.
  • the processor 140 identifies the height of the floor where the robot 100 currently enters the elevator and the height of the floor where the robot 100 is scheduled to get off based on the travel path, and based on the number of floors the robot 100 is scheduled to move to identified through this, the robot 100
  • the elevator exit time of (100) can be predicted.
  • the floor where the robot 100 is scheduled to get off the elevator may be the next stopping point.
  • the processor 140 may predict the elevator exit time of the robot 100 based on information about the number and stop times of the elevator while the robot 100 is riding the elevator. The information about the number and stopping time of the elevator described above may be obtained based on, for example, audio information indicating the current floor of the elevator.
  • the processor 140 may identify information about the floor on which the elevator is currently located based on image information obtained through a camera.
  • the processor 140 may identify the current floor where the elevator on which the robot 100 is currently located is located, and may predict the expected disembarkation time of the robot 100 based on this.
  • the processor 140 may update the priority for the subspace based on this.
  • the processor 140 identifies the location of an object in a specific space and sets the priority of a subspace existing at a location spaced a preset distance from the location of the identified object to be higher than the priority of other subspaces. You can. Alternatively, the processor 140 may set the priority of the subspace closest to the location of the identified object to be lower than the priority of other subspaces.
  • the processor 140 identifies the remaining driving time within a specific space of the robot 100 based on the identified predicted time, and identifies the remaining driving time within the specific space of the robot 100. If the travel time is identified as being less than the threshold time, the priority of the sub-space corresponding to a specific location within the specific space (for example, the location closest to the elevator door) can be set higher than the priority of other sub-spaces.
  • the processor 140 may control the driver 130 to move based on the updated priority.
  • the processor 140 identifies the subspace with the highest priority based on information about the updated priority, and operates the driver 130 to move the robot 100 to the subspace with the highest priority. can be controlled.
  • the processor 140 may identify the highest priority subspace, that is, the highest priority subspace, based on the updated priority, and the robot 100 may use the identified highest priority subspace.
  • the driving unit 130 can be controlled to move.
  • FIG. 3A is a flowchart for explaining a robot control method according to an embodiment
  • FIG. 3B is a diagram for explaining a robot control method according to an embodiment.
  • the control method may identify the specific space as a plurality of sub-spaces (S310).
  • the processor 140 may identify the specific space 300 as a plurality of subspaces, as shown in FIG. 3B.
  • the processor 140 may identify or obtain a plurality of subspaces within a specific space.
  • the plurality of sub-spaces shown in FIG. 3B is an area corresponding to a specific space in the map of the driving space divided into a plurality of areas.
  • each subspace may have an x-axis value and a y-axis value based on the subspace at the bottom left.
  • the subspace at the bottom left may have a coordinate value of (1,1).
  • control method may identify the priority of each of a plurality of subspaces (S320).
  • the processor 140 identifies the priority based on the relative positions of each of the plurality of subspaces when the location of the object is not identified within a specific space or the predicted departure time for the next stopover is not identified. can do.
  • the processor 140 selects a subspace (coordinate values (2,2), (3,2), (2) that exists at a position close to the center of a specific space among a plurality of identified subspaces. ,3) and the subspace corresponding to (3,3)) can be identified as having a higher priority than other subspaces.
  • a subspace coordinate values (2,2), (3,2), (2) that exists at a position close to the center of a specific space among a plurality of identified subspaces. ,3) and the subspace corresponding to (3,3)
  • the center of the elevator can be set as a high priority.
  • control method can identify the location of an object in a specific space based on sensing data (S330).
  • the processor 140 detects the object 30 in the specific space based on sensing data acquired through LIDAR. The relative position of can be identified.
  • the processor 140 determines that the object 30 corresponds to a specific subspace (coordinate values (1,4) and (4,4). It can be identified as being located in a subspace).
  • the processor 140 may identify at least one subspace in which the object is located based on the location of the object 30 within the identified specific space.
  • the control method updates the priority based on at least one of the location of the identified object or the predicted time of possible departure to the next stop in the driving path (S340), and based on the updated priority, the robot (
  • the driving unit 130 can be controlled so that 100 moves.
  • the processor 140 may update the priority identified based on the relative location information of the subspace based on the location of the object 30. there is.
  • the processor 140 can identify the location of the object 30 in real time through at least one sensor 120.
  • the processor 140 selects one of the subspaces (subspaces corresponding to coordinate values (2,2), (3,2), (2,3), and (3,3) located at the center of a specific space.
  • a subspace (subspace corresponding to coordinate values (2,2) and (3,2)) whose distance from the object is more than a preset distance can be identified and identified as the highest priority subspace.
  • the processor 140 randomly identifies one of the plurality of subspaces with the same priority, and robots ( The driving unit 130 can be controlled so that 100 moves.
  • the driving unit 130 can be controlled so that 100 moves.
  • the processor 140 may randomly identify one of the subspaces and control the driver 130 to move to the identified one.
  • the processor 140 applies a different method to one of the subspaces having the same priority, and the driving unit moves the robot 100 to one of the identified subspaces. (130) can be controlled.
  • the processor 140 may control the driver 130 based on the updated priority. For example, if one of the subspaces 302 is identified as the highest priority according to the updated priority, the processor 140 moves the robot 100 to the subspace 302 corresponding to the identified highest priority.
  • the driving unit 130 can be controlled to do so.
  • the processor 140 may identify a predicted departure time for the next stopover in the driving route based on the driving route and update the priority based on this. This will be explained in detail through FIGS. 7A and 7B.
  • the robot 100 when the robot 100 travels in a specific space, such as an elevator, the robot 100 may travel in the specific space by considering the expected disembarkation time of the robot 100 or the location of an object in the specific space. Accordingly, the robot 100 can not only efficiently move to the next stopover, but also reduce discomfort felt by people in a specific space.
  • 4A and 4B are diagrams to explain the priority of subspaces according to one embodiment.
  • the processor 140 may identify a weight corresponding to each of a plurality of subspaces and identify a priority corresponding to each of the plurality of subspaces based on the size of the identified weight value.
  • the weight corresponding to each of the plurality of subspaces has a relative value for each subspace, and may have a value between 0 and 1, depending on the example, but is not limited thereto.
  • the processor 140 determines the plurality of subspaces based on at least one of the location of the identified object, the predicted time of departure for the next stopover in the driving route, or information about the relative positions of the plurality of subspaces in a specific space.
  • the weight corresponding to each can be identified, and the priority of each of the plurality of subspaces can be identified based on the size of the identified weight value.
  • the weights corresponding to each of the plurality of subspaces may be included in AOI (Area of Interest) information, and the AOI (Area of Interest) information may be previously stored in the memory 110.
  • the AOI is an area set as an area of interest, and is different from a POI (POInt of Interest) in which a specific point (POInt) is set as an area of interest.
  • POI information may include only information about a specific point, and AOI may include information about a specific area (or information about at least one specific point included in a specific area).
  • the processor 140 may obtain AOI information for the specific space by mapping weights corresponding to each of a plurality of subspaces within the specific space.
  • AOI information may be at least one of a grid type or a graph type.
  • AOI information may be grid-type information as shown in FIG. 4A.
  • the processor 140 maps the identified weight to each grid corresponding to the plurality of subspaces to create an Area of Interest (AOI). ) information can be obtained.
  • AOI Area of Interest
  • the processor 140 maps the identified weight value to the corresponding subspace to obtain AOI information. You can.
  • the AOI information may be graph-type information as shown in FIG. 4B.
  • a data structure that gathers nodes and edges connecting the nodes is called a graph model, and is generally used to express relationships between connected objects.
  • the processor 140 may obtain AOI information by mapping the identified weight to each node corresponding to a plurality of subspaces. For example, if the weight of the subspace 411 corresponding to the coordinate value (2,2) is identified as 1.0, the processor 140 maps the identified weight value to the corresponding subspace to obtain AOI information. You can.
  • the processor 140 may update the weight included in the AOI information based on at least one of the location of the identified object or the predicted departure time for the next stopover in the driving route. According to another embodiment, the processor 140 may update the weight based on the location information of each subspace included in a specific space.
  • the processor 140 may update the priority of the subspace based on the size of the weight value corresponding to each subspace.
  • the processor 140 may update the weight included in the AOI information based on at least one of the location of the identified object or the predicted departure time for the next stopover in the driving route. In addition, the processor 140 may obtain updated AOI information.
  • the processor 140 may identify whether a subspace in which the updated weight is greater than or equal to a threshold exists. For example, the processor 140 may identify whether a subspace with an updated weight value of 0.9 or more is newly identified.
  • the threshold may have different values depending on user input, etc.
  • the processor 140 may update the priority of each of the plurality of subspaces based on the updated weight. For example, when a subspace with an updated weight of 0.9 or more is newly identified, the processor 140 may update the priority of each of the plurality of subspaces based on the updated weight.
  • the processor 140 gives priority based on this. Rankings can be updated.
  • the processor 140 identifies the subspace with the maximum weight value within the plurality of subspaces based on the updated weight value, and when the subspace with the maximum weight value is identified as changed, the updated weight The priority of the subspace can be updated based on the value.
  • the processor 140 updates the weight included in the AOI information based on the location of the newly identified object, and when the sub space with the maximum weight value is identified as having changed based on the updated weight, the sub space is changed based on the updated weight value. You can also update the priority of a space.
  • the processor 140 may control the driver 130 based on the updated priority. According to one example, when the subspace with the highest priority changes as the priority is updated, the processor 140 may control the driver 130 to move the robot 100 to the subspace with the highest priority.
  • the processor 140 may control the driver 130 based on the updated weight value.
  • the processor 140 may identify a subspace with the maximum weight value based on updated AOI information and control the driver 130 to move the robot 100 to the identified subspace.
  • Figure 5 is a diagram for explaining the relationship between weight and priority according to an embodiment.
  • the processor 140 may identify the priorities of a plurality of subspaces based on weight values corresponding to each of the plurality of subspaces.
  • the processor 140 when the weight of each of the plurality of sub-spaces is identified based on at least one of the location of the identified object or the predicted time of possible departure to the next stop in the driving route, the processor 140 includes the identified weight.
  • AOI information (500) can be obtained.
  • the processor 140 may identify whether a subspace whose weight is greater than or equal to a threshold exists based on the acquired AOI information 500. For example, the processor 140 may identify subspaces 501 to 503 with a weight of 0.9 or more.
  • the processor 140 may identify priorities of a plurality of subspaces based on the weight value. For example, the processor 140 may identify information 510 about the priority of each subspace based on the identified weight value and the order of magnitude of the weight value. Meanwhile, the present invention is not limited to this, and as such, according to another embodiment, information 510 about the priority of each subspace may also be included in the AOI information.
  • the processor 140 may identify the priorities of a plurality of subspaces including the subspace 511 having the highest priority, and based on this, allow the robot 100 to move to the subspace 511 having the highest priority.
  • the driving unit 130 can be controlled.
  • 6A to 6B are diagrams for explaining a method of updating weights or priorities according to an embodiment.
  • the processor 140 may update the weight included in the AOI information based on at least one of the location of the identified object or the predicted time of possible departure to the next stopover in the driving route.
  • the memory 110 may store AOI information 600 including weight values corresponding to each of a plurality of subspaces.
  • the robot 100 may be located in the subspace 601 with the largest weight value.
  • the processor 140 updates the weight included in the AOI information 600 to obtain updated AOI information 610. You can.
  • the processor 140 determines the weight of the subspace (subspace corresponding to the coordinate values (2,1) and (3,1)) close to the entrance of the elevator based on this.
  • the weight value of the subspace can be updated so that the value is maximum. Additionally, the processor 140 may update the weight value so that the size of the weight value of the subspace 611, which has a relatively largest distance from the entrance of the elevator, is minimized.
  • the processor 140 may identify whether a subspace in which the updated weight is greater than or equal to a threshold exists.
  • the processor 140 may identify whether a subspace in which the weight value is greater than or equal to a threshold value (eg, 0.9) exists based on the AOI information 610 including the updated weight value.
  • a threshold value eg, 0.9
  • subspace 612 subspace corresponding to coordinate values (2,1) and (3,1) close to the entrance of the elevator can be identified as having a weight greater than the threshold.
  • the processor 140 may update the priority of each of the plurality of subspaces based on the updated weight.
  • the processor 140 updates the information 620 about priorities corresponding to a plurality of subspaces to the updated priority.
  • Information 630 can be obtained.
  • the subspace 621 with the highest priority before the weight is updated may have its priority changed based on the updated weight, and the subspace 632 with the highest priority after the weight is updated ) may be different from the subspace 621 with the highest priority before update.
  • the processor 140 may control the driving unit 130 to move the robot 100 based on the updated priority.
  • the processor 140 determines that the robot 100 is updated as the subspace 632 with the highest priority according to the updated priority is different from the subspace 621 with the highest priority before the update.
  • the driver 130 can be controlled to move to the subspace 632 with the highest priority according to priority.
  • FIG. 7A is a flowchart for explaining a robot driving method according to an embodiment
  • FIGS. 7B to 7C are diagrams for explaining a robot driving method according to an embodiment.
  • the control method may identify whether the robot 100 enters a specific space and is located in one of a plurality of sub-spaces (S710).
  • the processor 140 first allows the robot 100 to enter a specific space 700 based on sensing data acquired through the sensor 120 and selects one of a plurality of sub-spaces 701. ) can be identified by being located at.
  • the control method identifies the predicted time at which the robot 100 can depart from the specific space to the next stop in the driving path. You can do it (S720).
  • the specific space is an elevator
  • the processor 140 determines that the robot 100 is located in any one of the plurality of sub-spaces 701, and determines the current robot 100 based on the travel path. The height of the floor where the elevator entered and the height of the floor where it is expected to get off can be identified, and based on this, the predicted time when the robot 100 can depart for the next stop (or the expected time of getting off of the robot 100) can be identified. .
  • control method may identify the remaining driving time within a specific space based on the predicted time (S730).
  • the processor 140 may identify the remaining driving time within a specific space by comparing the current time and the predicted departure time.
  • the control method may identify whether the remaining driving time is less than the threshold time (S740).
  • the processor 140 may compare the remaining driving time and the threshold time to identify whether the remaining driving time is less than the threshold time.
  • the critical time may be a value stored in the memory 110 at the time of initial setting, but it is not limited to this, and of course, the size of the critical time may be changed based on user input thereafter.
  • the priority may be updated based on the positions of each of the plurality of subspaces (S750).
  • the processor 140 determines the subspace (corresponding to the coordinate values (2,1) and (3,1) of the plurality of subspaces close to the entrance and exit of the elevator.
  • the priority can be updated so that the subspace) becomes the highest priority subspace. That is, the information 720 about the priorities of the plurality of sub-spaces shown in FIG. 7B can be updated with the information 730 about the priorities reflecting the locations of each of the plurality of sub-spaces and the predicted time of departure for the next stopover. there is.
  • the subspace 701 corresponding to the highest priority before update may be changed after update.
  • a plurality of subspaces (subspaces corresponding to coordinate values (2,1) and (3,1)) corresponding to the highest priority can be identified.
  • the processor 140 controls the driver 130 to move the robot 100 to the identified subspace. You can.
  • the processor 140 may identify any one 711 of a plurality of identified sub-spaces and control the driving unit 130 to move the robot 100 to one of the identified sub-spaces. Accordingly, the robot 100 moves to one of the identified sub-spaces 711.
  • the processor 140 may update the priority based on user preference information.
  • the robot 100 may further include a user interface, and when preference information for each of a plurality of sub-spaces is received through the user interface, the processor 140 generates a plurality of sub-spaces based on the preference information. You can also update each priority. For example, when subspaces corresponding to a plurality of highest priorities are identified as shown in FIG. 7C, the processor 140 creates subspaces (coordinate values (2,1)) corresponding to the plurality of highest priorities based on user preference information. and the subspace corresponding to (3,1)) can be identified as the subspace corresponding to the highest priority.
  • the processor 140 may control the driver 130 to move based on the updated priority based on user preference information.
  • the processor 140 controls the driver 130 to move to the identified one 711. You can.
  • Figure 8 is a diagram for explaining a method of controlling a robot based on the location of an object according to an embodiment.
  • the processor 140 may control the driving unit 130 to move the robot 100 based on at least one of the number or location of subspaces in which the object is located.
  • the processor 140 may first identify whether the robot 100 enters a specific space and is located in one of a plurality of sub-spaces. For example, the processor 140 may identify whether the robot 100 enters a specific space and is located in one of the subspaces based on sensing data acquired through the sensor 120.
  • the processor 140 may identify a subspace that is spaced apart from the at least one object by a critical distance or more based on the location of the subspace where the at least one object is located within the specific space.
  • the robot 100 is located in a specific space 800 where no object is identified, but then the object enters the specific space and at least one object is identified as being located within the specific space.
  • the processor 140 identifies the positions of the objects 811, 812, and 813 within a specific space 810 based on the sensing data acquired through the sensor 120, and objects 811, 812, and 813 based on the identified positions.
  • the location of the subspace where 813) is located can be identified.
  • the processor 140 As the location of the subspace where the objects 811 to 813 are located (the location of the subspace corresponding to the coordinate values (1,1), (4,1), and (1,4)) are identified, the processor 140
  • the subspace 821 corresponding to the coordinate value (4,4) can be identified as a subspace spaced apart from each of the identified subspaces by more than a threshold distance (for example, the distance corresponding to 2 subspaces).
  • a threshold distance for example, the distance corresponding to 2 subspaces.
  • the threshold distance may be changed according to user input.
  • the processor 140 may control the driver 130 to move to the identified subspace 821.
  • the processor 140 has been described as an example of controlling the driving unit 130 to move the robot 100 to a subspace spaced a critical distance away from the location of the subspace where the identified object is located. It is not limited, and of course, according to another embodiment, the processor 140 may control the driving unit 130 to move the robot 100 according to the updated priority based on the position of the object.
  • the robot 100 can be located at a distance from an object existing in a specific space, and accordingly, the robot moves so as not to cause inconvenience to the passage of objects such as people located in a specific space. do.
  • Figure 9 is a diagram for explaining a method of controlling a robot based on the number of objects according to an embodiment.
  • the processor 140 may control the driving unit 130 to move the robot 100 based on at least one of the number or location of subspaces in which the object is located.
  • the processor 140 may first identify whether the robot 100 enters a specific space and is located in one of a plurality of sub-spaces. For example, the processor 140 may identify whether the robot 100 enters a specific space and is located in one of the subspaces based on sensing data acquired through the sensor 120.
  • the processor 140 identifies the number of subspaces in which at least one object is located within a specific space, and when the number of identified subspaces is identified as being greater than or equal to a threshold number, the processor 140 determines that the number of subspaces is greater than or equal to a threshold distance from at least one object. Separated subspaces can be identified.
  • the robot 100 is located in a specific space 900 in which no object is identified, but then the object enters the specific space and at least one object is identified as being located in the specific space.
  • the processor 140 identifies the objects 911 and 912 within the specific space 910 based on the sensing data acquired through the sensor 120, and based on this, identifies the subspace where the objects are located within the specific space 910. It can be identified as having two numbers.
  • the processor 140 determines a threshold distance (e.g., a sub-space) from each of the identified plurality of sub-spaces.
  • the subspace corresponding to the coordinate value (4,4) and the subspace corresponding to the coordinate value (1,4) can be identified as subspaces spaced apart by more than the distance corresponding to 2 spaces.
  • the threshold number may be changed according to user input according to other embodiments.
  • the processor 140 may control the driver 130 to move to the identified subspace. For example, the processor 140 identifies any one of the identified subspaces (subspaces corresponding to coordinate values (4,4) and coordinate values (1,4)) and identifies any one of the identified subspaces (921). ), the driving unit 130 can be controlled so that the robot 100 moves.
  • the present invention is not limited to this, and for example, the processor 140 may identify one of the identified subspaces based on user preference.
  • the robot 100 in a crowded situation where the number of objects in a specific space is greater than a critical number, the robot 100 can be located at a distance from the object, and accordingly, people, etc. located in the specific space. It is driven so as not to cause inconvenience to the passage of objects.
  • Figure 10 is a flowchart explaining a method of outputting a notification by a robot according to an embodiment.
  • the robot 100 may further include an output unit, and the processor 140 sends a notification guiding that the robot 100 is scheduled to move to a specific subspace based on the priorities of each of the plurality of subspaces.
  • the output unit can be controlled to output.
  • the output unit may include hardware components, software components, or a combination of hardware components and software components.
  • the output unit may include one or more electronic components and/or circuits.
  • the control method may first identify whether the remaining driving time is less than the threshold time (S1010).
  • the processor 140 may identify a predicted departure time for the next stopover within the driving path in a specific space and compare this with the current time to identify the remaining driving time of the robot 100.
  • Processor 140 may then identify whether the identified remaining driving time is less than a threshold time.
  • the control method may update the priority based on the positions of each of the plurality of subspaces (S1020). For example, when a specific space is an elevator, the processor 140 determines that the remaining travel time is less than the threshold time, and then prioritizes the subspace closest to the entrance of the elevator among the plurality of subspaces so that it becomes the highest priority subspace. It can be updated.
  • the control method may identify a specific subspace within a specific space based on priority (S1030). For example, the processor 140 may identify the identified highest priority subspace as a specific subspace within a specific space. Meanwhile, when a plurality of highest priority subspaces are identified, the processor 140 identifies any one or identifies one based on user preference, and identifies any one of the identified subspaces as the highest priority subspace. You can.
  • control method may output a notification guiding that the user is scheduled to move to a specific subspace (S1040).
  • the processor 140 guides that the robot 100 is scheduled to move to the highest priority subspace through an output unit. Notifications can be printed.
  • the processor 140 controls the driving unit 130 to move the robot 100 to the highest priority subspace while the notification is output, or the driving unit 130 to move the robot 100 to the highest priority subspace after the notification ends. (130) can also be controlled.
  • FIG. 11A is a flowchart for explaining a robot control method according to the number of objects according to an embodiment
  • FIGS. 11B and 11C are diagrams for explaining a robot control method according to the number of objects according to an embodiment.
  • control method may identify the number of subspaces in which at least one object is located among a plurality of subspaces (S1110).
  • the processor 140 may identify an object existing in a specific space based on sensing data acquired through the sensor 120 and identify a subspace in which the identified object is located.
  • the processor 140 can also identify the number of subspaces identified based on this. In this case, of course, the number of objects and the number of subspaces in which the objects are located may be different.
  • the control method may identify whether the number of identified subspaces is less than the threshold number (S1120).
  • the critical number may be a value stored at the time of initial setting, but it is not limited to this, and of course, the size of the critical number can be changed based on user input, etc.
  • control method may control the driver 130 to enter the specific space (S1130).
  • the processor 140 uses the sensing data acquired through the sensor 120. Based on this, an object 1100 existing within a specific space 1111 can be identified.
  • the processor 140 may identify the number of subspaces in which the object 1100 existing in the specific space 1111 is located as two. As the number of identified sub-spaces is identified as being less than the threshold number (e.g., 5), the processor 140, as shown in the right drawing 1120 of FIG. 11B, allows the robot 100 to enter a specific space 1111. ) can be controlled to enter the driving unit 130.
  • the threshold number e.g. 5
  • the processor 140 may control the driver 130 to be located in one of the plurality of sub-spaces 1122 based on the location of the object.
  • control method may update the driving path to drive while avoiding the specific space (S1140).
  • the processor 140 uses the sensing data acquired through the sensor 120. Based on this, an object 1100 existing within a specific space 1131 can be identified.
  • the processor 140 may identify the number of subspaces in which the object 1100 existing in the specific space 1131 is located as 12. As the number of identified sub-spaces is identified as being more than a threshold number (eg, 5), the processor 140 may update the driving path to drive while avoiding the specific space.
  • a threshold number eg, 5
  • the processor 140 may control the driving unit 130 not to enter the current elevator but to stop traveling until the next elevator arrives.
  • the processor 140 can identify the number of objects in the next elevator 1141 and the number of subspaces corresponding thereto.
  • the processor 140 may control the driver 130 so that the robot 100 enters the elevator 1141 as the number of identified sub-spaces is two, which is less than the critical number.
  • a plurality of elevators exist, that is, a plurality of specific spaces are identified. If the number of sub-spaces identified in the first specific space among the plurality of specific spaces is identified as being greater than or equal to the threshold number, the processor 140 controls the driver 130 to enter the second specific space without entering the first specific space. can do.
  • the processor 140 when the processor 140 identifies the number of subspaces of the first specific space among the plurality of specific spaces as the critical number of 5 or more, the processor 140 selects the second specific space based on the map information stored in the memory 110. It is possible to identify the location and control the driving unit 130 to move to the second specific space.
  • the processor 140 identifies the number of subspaces in which the object in the second specific space is located, and if the identified number is less than the threshold number, the driver 130 allows the robot 100 to enter the second specific space. ) can be controlled.
  • the robot 100 enters and drives in a specific space only when the congestion level in the specific space is not high, thereby reducing the discomfort of people in the specific space.
  • Figure 12 is a flowchart to explain a method of updating priority according to an embodiment.
  • control method can identify whether a plurality of sub-spaces are free space or occupied space while at least one object enters or exits a specific space (S1210).
  • free space means a subspace not occupied by objects including dynamic objects or static objects.
  • Occupied space refers to the subspace currently occupied by an object. However, it is not limited to this, and whether it is a free space or an occupied space can be identified depending on the user input. According to one example, when a user input for setting a specific subspace as an occupied space is received, the processor 140 may identify the specific subspace as an occupied space.
  • a specific space may be a closed space that can be moved.
  • the processor 140 may identify whether a plurality of subspaces within the closed space are free space or occupied space based on sensing data acquired through the sensor 120 while an object enters or exits the closed space.
  • control method may update the priority of each of the plurality of subspaces based on the characteristics of the identified subspaces (S1220).
  • the characteristics of the subspace mean whether the subspace is free space or occupied space.
  • the processor 140 determines the priorities of each of the plurality of subspaces based on the characteristics of the subspaces.
  • the priority of each subspace can be updated.
  • the processor 140 may identify one of the remaining subspaces as the highest priority subspace.
  • Figure 13 is a block diagram showing the detailed configuration of a robot according to an embodiment.
  • the robot 100' includes a memory 110, at least one sensor 120, a driving unit 130, one or more processors 140, an output unit 150, a user interface 160, and a microphone ( 170) and a communication interface 180.
  • a memory 110 volatile and non-volatile memory
  • processors 140 volatile and non-volatile memory
  • the output unit 150 may include a speaker 150-1, a display 150-2, etc., but is not limited thereto and is an example of various embodiments that transmit information in a form that can be sensed by the user's five senses. It can be done.
  • the speaker 150-1 includes a tweeter for reproducing high-pitched sounds, a midrange for reproducing mid-range sounds, a woofer for reproducing low-pitched sounds, a subwoofer for reproducing extremely low-pitched sounds, an enclosure for controlling resonance, and a speaker. It may be composed of a crossover network that divides the electrical signal frequency input into each band.
  • the speaker 150-1 may output an acoustic signal to the outside of the robot 100'.
  • the speaker 150-1 can output multimedia playback, recording playback, various notification sounds, voice messages, etc.
  • the robot 100' may include an audio output device such as the speaker 150-1, or may include an output device such as an audio output terminal.
  • the speaker 150-1 can provide acquired information, information processed and produced based on the acquired information, response results to the user's voice, or operation results, etc. in voice form.
  • the display 150-2 may be implemented as a display including a self-emitting device or a display including a non-light-emitting device and a backlight.
  • a display including a self-emitting device or a display including a non-light-emitting device and a backlight.
  • LCD Liquid Crystal Display
  • OLED Organic Light Emitting Diodes
  • LED Light Emitting Diodes
  • micro LED micro LED
  • Mini LED Micro LED
  • PDP Plasma Display Panel
  • QD Quantum dot
  • QLED Quantum dot light-emitting diodes
  • the display 150-2 may also include a driving circuit and a backlight unit that can be implemented in the form of a-si TFT, low temperature poly silicon (LTPS) TFT, organic TFT (OTFT), etc.
  • LTPS low temperature poly silicon
  • OFT organic TFT
  • the display 150-2 may be a touch screen combined with a touch sensor, a flexible display, a rollable display, a 3D display, a display in which a plurality of display modules are physically connected, etc. It can be implemented as:
  • the processor 140 may control the display 150-2 to output an output image obtained according to the various embodiments described above.
  • the output image may be a high-resolution image of 4K or 8K or higher.
  • the user interface 160 is a configuration for the robot 100' to interact with a user.
  • the user interface 160 may include at least one of a touch sensor, a motion sensor, a button, a jog dial, a switch, a microphone, or a speaker, but is not limited thereto.
  • the microphone 170 may refer to a module that acquires sound and converts it into an electrical signal, and may be a condenser microphone, ribbon microphone, moving coil microphone, piezoelectric element microphone, carbon microphone, or MEMS (Micro Electro Mechanical System) microphone. Additionally, it can be implemented in omni-directional, bi-directional, uni-directional, sub-cardioid, super-cardioid, and hyper-cardioid ways.
  • the communication interface 180 can input and output various types of data.
  • the communication interface 180 includes AP-based Wi-Fi (Wireless LAN network), Bluetooth, Zigbee, wired/wireless LAN (Local Area Network), WAN (Wide Area Network), Ethernet, IEEE 1394, HDMI (High-Definition Multimedia Interface), USB (Universal Serial Bus), MHL (Mobile High-Definition Link), AES/EBU (Audio Engineering Society/ European Broadcasting Union), Optical , external devices (e.g., source devices), external storage media (e.g., USB memory), and external servers (e.g., web hard drives) and various types of data through communication methods such as coaxial, etc. Can send and receive.
  • the robot 100' when the robot 100' travels in a specific space, such as an elevator, the robot 100' may travel in the specific space by considering the expected disembarkation time of the robot 100' or the location of an object in the specific space. . Accordingly, the robot 100' can not only efficiently move to the next stopover, but also reduce discomfort felt by people in a specific space.
  • the methods according to various embodiments of the present disclosure described above may be implemented in the form of an application that can be installed on an existing robot.
  • the methods according to various embodiments of the present disclosure described above may be performed using a deep learning-based learned neural network (or deep learned neural network), that is, a learning network model.
  • the methods according to various embodiments of the present disclosure described above may be implemented only by upgrading software or hardware for an existing robot.
  • the various embodiments of the present disclosure described above can also be performed through an embedded server provided in the robot or an external server of the robot.
  • 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 instructions stored from a storage medium and operating according to the called instructions, and may include a display device (eg, display device A) 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.
  • 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).
  • a machine-readable storage medium e.g. compact disc read only memory (CD-ROM)
  • 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 a single 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)
  • Human Computer Interaction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

로봇이 개시된다. 로봇은, 맵(Map) 정보를 저장하는 메모리, 적어도 하나의 센서, 주행 경로 내 경유지인 제1 영역을 포함하는 주행 경로 상에서 맵 정보에 기초하여 로봇을 목적지로 이동시키는 구동부 및 제1 영역 내의 복수의 제2 영역을 식별하고, 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 식별하고, 적어도 하나의 센서를 통해 획득된 센싱 데이터에 기초하여 제1 영역 내의 하나 이상의 오브젝트의 위치를 식별하고, 식별된 하나 이상의 오브젝트의 위치 또는 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 업데이트하고, 업데이트된 우선 순위 정보에 기초하여 이동하도록 구동부를 제어하는 하나 이상의 프로세서를 포함한다.

Description

특정 공간을 주행하는 로봇 및 이의 제어 방법
본 개시는 로봇 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 특정 공간에 포함된 복수의 서브 공간 각각에 식별된 우선 순위에 기초하여 특정 공간을 주행하는 로봇 및 그 제어 방법에 관한 것이다.
전자 기술의 발달에 힘입어 다양한 유형의 전자 기기가 개발 및 널리 사용되고 있다. 최근에는 사용자 등에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 사용자에게 서비스를 제공하기 위하여 특정 공간을 주행하는 로봇의 경우, 주행 경로 상의 다양한 타입의 정보들을 고려하여 주행하여야 사용자에게 신속한 서비스를 제공할 수 있게 된다.
엘리베이터(elevator)와 같은 특정 공간을 경유하여 주행하는 경우, 특정 공간 내의 오브젝트에 대한 정보와 함께 로봇의 주행 정보를 고려하여 주행함으로써 로봇이 효율적인 서비스를 제공할 수 있는 방안이 요구된다.
이상과 같은 목적을 달성하기 위한 일 실시 예에 따른 로봇은, 맵(Map) 정보를 저장하는 메모리, 적어도 하나의 센서, 주행 경로 내 경유지인 제1 영역을 포함하는 상기 주행 경로 상에서 상기 맵 정보에 기초하여 상기 로봇을 목적지로 이동시키는 구동부 및 상기 제1 영역 내의 복수의 제2 영역을 식별하고, 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 식별하고, 상기 적어도 하나의 센서를 통해 획득된 센싱 데이터에 기초하여 상기 제1 영역 내의 하나 이상의 오브젝트의 위치를 식별하고, 상기 식별된 하나 이상의 오브젝트의 위치 또는 상기 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 업데이트하고, 상기 업데이트된 우선 순위 정보에 기초하여 이동하도록 상기 구동부를 제어하는 하나 이상의 프로세서를 포함할 수 있다.
이상과 같은 목적을 달성하기 위한 일 실시 예에 따른 로봇의 제어 방법은, 맵 정보에 기초하여 주행 경로 내 경유지인 제1 영역 내의 복수의 제2 영역을 식별하는 단계, 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 식별하는 단계, 적어도 하나의 센서를 통해 획득된 센싱 데이터에 기초하여 상기 제1 영역 내의 하나 이상의 오브젝트의 위치를 식별하는 단계, 상기 식별된 하나 이상의 오브젝트의 위치 또는 상기 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 업데이트하는 단계 및 상기 업데이트된 우선 순위 정보에 기초하여 이동하도록 구동부를 제어하는 단계를 포함할 수 있다.
이상과 같은 목적을 달성하기 위한 일 실시 예에 따른 로봇의 프로세서에 의해 실행되는 경우 상기 로봇이 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체에 있어서, 상기 동작은, 맵 정보에 기초하여 주행 경로 내 경유지인 제1 영역 내의 복수의 제2 영역을 식별하는 단계, 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 식별하는 단계, 적어도 하나의 센서를 통해 획득된 센싱 데이터에 기초하여 상기 제1 영역 내의 하나 이상의 오브젝트의 위치를 식별하는 단계, 상기 식별된 하나 이상의 오브젝트의 위치 또는 상기 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 업데이트하는 단계 및 상기 업데이트된 우선 순위 정보에 기초하여 이동하도록 구동부를 제어하는 단계를 포함할 수 있다.
본 개시의 상기 및/또는 다른 양태는 첨부된 도면을 참조하여 본 개시의 특정 실시예를 설명함으로써 더욱 명백해질 것이다:
도 1a 및 1b는 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 도면이다.
도 2는 일 실시 예에 따른 로봇의 구성을 나타내는 블록도이다.
도 3a는 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 흐름도이다.
도 3b는 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 도면이다.
도 4a 및 4b는 일 실시 예에 따른 서브 공간의 우선 순위를 설명하기 위한 도면이다.
도 5는 일 실시 예에 따른 가중치와 우선 순위의 관계를 설명하기 위한 도면이다.
도 6a 내지 6b는 일 실시 예에 따른 가중치 또는 우선 순위를 업데이트하는 방법을 설명하기 위한 도면이다.
도 7a는 일 실시 예에 따른 로봇의 주행 방법을 설명하기 위한 흐름도이다.
도 7b 내지 7c는 일 실시 예에 따른 로봇의 주행 방법을 설명하기 위한 도면이다.
도 8은 일 실시 예에 따른 오브젝트의 위치에 기초하여 로봇을 제어하는 방법을 설명하기 위한 도면이다.
도 9는 일 실시 예에 따른 오브젝트의 개수에 기초하여 로봇을 제어하는 방법을 설명하기 위한 도면이다.
도 10은 일 실시 예에 따른 로봇의 알림 출력 방법을 설명하기 위한 흐름도이다.
도 11a는 일 실시 예에 따른 오브젝트의 개수에 따른 로봇의 제어 방법을 설명하기 위한 흐름도이다.
도 11b 내지 11c는 일 실시 예에 따른 오브젝트의 개수에 따른 로봇의 제어 방법을 설명하기 위한 도면이다.
도 12는 일 실시 예에 따른 우선 순위를 업데이트하는 방법을 설명하기 위한 흐름도이다.
도 13은 일 실시 예에 따른 로봇의 세부 구성을 나타내는 블록도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 “유닛”, "모듈", “인터페이스” 혹은 "부"와 관련된 용어는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
도 1a 및 1b는 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 도면이다.
도 1a 및 1b에 따르면 로봇(100)은 주행 공간을 주행하여 목적지에 도달할 수 있다. 예를 들어, 로봇(100)은 특정 위치로 물건을 전송하거나 음식 등을 서빙(serving)하는 서비스를 제공할 수 있다. 다만, 이에 한정되는 것은 아니며, 다른 실시예에 따르면 로봇(100)은 다른 형태의 서비스를 제공하도록 구성될 수도 있다. 로봇(100)은 주행 공간을 주행하기 위해 주행 공간에 대응되는 맵 정보를 기 저장하고 있을 수 있으며, 이에 기초하여 경로 생성을 수행하여 공간을 주행할 수 있다. 일 실시 예에 따르면, 주행 공간은 로봇이 이동할 수 있는 영역 또는 환경을 의미할 수 있다.
일 실시 예에 따라 로봇(100)은 주행 경로에 포함된 적어도 하나의 경유지를 거쳐 목적지에 도달할 수 있다. 주행 경로에 포함된 경유지가 특정 공간, 예를 들어 엘리베이터(elevator)인 경우, 로봇(100)은 특정 공간을 경유하여 목적지로 이동하여야 한다. 그러나 본 발명은 엘리베이터에 한정되지 않으며, 다른 실시 예에 따르면 특정 공간은 로봇(100)이 목적지에 도달하기 위해 통과할 수 있는 다른 영역, 환경 또는 주변을 포함할 수 있다.
도 1a에 따르면, 일 예에 따라 로봇(100)은 목적지에 도달하기 위해 주행 경로 상의 경유지인 특정 공간(10)에 진입할 수 있다. 이 경우, 로봇(100)은 특정 공간 내 로봇(100)이 위치할 수 있는 공간을 식별하여, 특정 공간(예를 들어, 엘리베이터) 중 일 영역(20)에 위치할 수 있다. 일 실시 예에 따르면, 로봇은 특정 공간에서 향하는 방향(도 1a에서 화살표로 표시됨)을 더 식별할 수 있다.
한편, 도 1b와 같이 특정 공간(10)에 복수의 오브젝트(30, 31, 32 및 33), 예를 들어 사람이 존재하는 경우, 로봇(100)은 특정 공간 내 오브젝트(30 내지 33)를 고려하여 주행 경로를 생성하여야 한다. 예를 들어, 복수의 오브젝트(30~33) 각각은 엘리베이터에 탄 사람일 수 있다.
일 예에 따라, 로봇(100)은 오브젝트(30 내지 33)의 특정 공간 내 위치를 식별하고, 이에 기초하여 로봇(100)이 위치할 수 있는 특정 공간 내 영역을 식별할 수 있다. 이 경우, 로봇(100)과 동일한 특정 공간에 존재하는 오브젝트(30 내지 33)의 통행에 방해되지 않기 위하여, 로봇(100)은 오브젝트(30 내지 33)의 위치에 기초하여 로봇(100)이 위치할 수 있는 특정 공간 내 영역을 식별할 수 있다.
또는, 일 예에 따라 로봇(100)은 주행 정보, 예를 들어 특정 공간(10)을 하차하여 다음 경유지로 이동하는 시간에 대한 정보에 기초하여 로봇(100)이 위치할 특정 공간 내 영역을 식별할 수도 있다. 예를 들어, 로봇(100)은 특정 공간에서 하차하기 용이한 특정 공간 내 영역을 식별할 수도 있다.
이하에서는, 엘리베이터와 같은 특정 공간 내 존재하는 오브젝트 또는 로봇의 주행 정보를 고려하여 특정 공간을 주행하는 로봇에 대한 다양한 실시 예에 대하여 설명하도록 한다.
도 2는 일 실시 예에 따른 로봇의 구성을 나타내는 블록도이다.
도 2에 따르면, 로봇(100)은 메모리(110), 적어도 하나의 센서(120), 구동부(130) 및 하나 이상의 프로세서(140)를 포함할 수 있다.
메모리(110)는 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(110)는 데이터 저장 용도에 따라 로봇(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 메모리) 등과 같은 형태로 구현될 수 있다.
일 실시 예에 따라, 메모리(110)에는 주행 공간에 대한 맵(Map) 정보가 저장되어 있을 수 있다. 여기서, 주행 공간은 로봇(100)이 현재 주행 또는 주행 예정인 공간을 의미한다.
적어도 하나의 센서(120, 이하 센서)는 다양한 타입의 복수의 센서를 포함할 수 있다. 센서(120)는 물리량을 계측하거나 로봇(100)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서(120)는 카메라를 포함할 수 있으며, 카메라는 오브젝트에 의해 반사되어 수신되는 가시광 기타 광학 신호를 이미지 센서로 포커싱하는 렌즈 및 가시광 기타 광학 신호를 감지할 수 있는 이미지 센서를 포함할 수 있다. 여기서, 이미지 센서는 복수의 픽셀로 구분되는 2D의 픽셀 어레이를 포함할 수 있다.
한편, 일 예에 따른 카메라는 뎁스 카메라(Depth Camera)로 구현될 수 있다. 또한, 일 예에 따라 센서(120)는 라이더(LIDAR, Light Detection And Ranging) 센서 및 TOF(Time of flight) 센서와 같은 거리 센서뿐 아니라 형태를 판독하는 열 화상 센서를 포함할 수 있다.
다만, 이에 한정되지 않으며 일 실시 예에 따라 로봇(100)은 통신 인터페이스를 통해 외부 장치로부터 상술한 센싱 데이터를 획득할 수도 있음은 물론이다.
구동부(130)는 로봇(100)을 주행시킬 수 있는 장치이다. 구동부(130)는 프로세서(140)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있으며, 일 예에 따른 구동부(130)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력발생장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등), 동력에 따라 로봇(100)을 주행시키는 주행 장치(예: 바퀴, 프로펠러 등) 등을 포함할 수 있다. 여기서, 구동부(130)는 로봇(100)의 주행 타입(예: 휠 타입, 보행 타입, 비행 타입 등)에 따라 변형 실시될 수 있다.
본 개시에 따르면, 하나 이상의 프로세서(140)(이하, 프로세서)는 메모리(110), 적어도 하나의 센서(120) 및 구동부(130)와 전기적으로 연결되어 로봇(100)의 전반적인 동작을 제어한다. 프로세서(140)는 하나 또는 복수의 프로세서로 구성될 수 있다. 구체적으로, 프로세서(140)는 메모리에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 본 개시의 다양한 실시 예에 따른 로봇(100)의 동작을 수행할 수 있다.
일 실시 예에 따라 프로세서(140)는 디지털 영상 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), GPU(Graphics Processing Unit), AI(Artificial Intelligence) 프로세서, NPU (Neural Processing Unit), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(140)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, ASIC(application specific integrated circuit), FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
일 실시 예에 따라 프로세서(140)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(140)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
일 실시 예에 따라, 하나 이상의 프로세서(140)는 특정 공간을 복수의 서브 공간으로 식별할 수 있다.
일 예에 따라, 먼저 프로세서(140)는 메모리(110)에 저장된 주행 공간에 대한 맵 정보에 기초하여 식별된 주행 경로 상에 특정 공간이 경유지로 포함되는지 여부를 식별할 수 있다. 즉, 프로세서(140)는 로봇(100)이 목적지로 이동하는 동안 특정 공간을 경유해서 이동하는지 여부를 식별할 수 있다.
여기서, 특정 공간은 로봇(100)의 주행 공간의 일 부분으로서, 예를 들어 오브젝트(예를 들어, 사람)의 출입이 많은 폐쇄 공간(예를 들어, 엘리베이터)일 수 있다. 즉, 특정 공간은 적어도 하나의 오브젝트(예를 들어, 사람 등)이 감지되는 폐쇄 공간일 수 있다. 다만, 이에 한정되지 않으며, 다른 개시에 따르면, 특정 공간은 폐쇄 공간이 아니더라도 주행 공간 내 오브젝트의 이동이 기 설정된 횟수 이상 감지된 공간과 같이 로봇(100)의 주행에 어려움이 발생할 가능성이 존재하는 공간일 수도 있다. 예를 들어, 특정 공간은 복수의 오브젝트가 그 영역 내에서 로봇을 조종하기 어려울 정도로 영역 안팎으로 이동할 수 있는 영역일 수 있다. 일 예에 따라 오브젝트는 동적 오브젝트 또는 정적 오브젝트 중 적어도 하나일 수 있다.
한편, 일 예에 따라 메모리(110)에는 주행 공간에 대한 맵 정보와 함께 특정 공간에 대한 정보를 포함할 수 있다. 주행 맵 내 특정 공간의 위치에 대한 정보 또는 면적에 대한 정보를 포함하는 특정 공간에 대한 정보는 초기 설정시 메모리(110)에 기 저장되어 있을 수 있다. 다만,본 개시는 이에 한정되지 않으며 사용자 입력에 기초하여 특정 공간에 대한 정보가 획득될 수도 있음은 물론이다.
일 예에 따라, 프로세서(140)는 특정 공간이 경유지로 포함되면, 특정 공간을 복수의 서브 공간으로 식별할 수 있다. 예를 들어, 프로세서(140)는 주행 공간에 대한 맵 정보에 기초하여 식별된 주행 경로 상에 특정 공간이 포함되는 것으로 식별되면, 특정 공간을 복수의 서브 공간으로 식별할 수 있다.
여기서, 서브 공간은 기 설정된 기준에 따라 구분될 수 있다. 예를 들어, 특정 공간의 물리적 구조에 따라 구분되는 공간일 수 있으나, 이에 한정되는 것은 아니며 다양한 기준에 따라 구분 가능하다. 일 예에 따라, 프로세서(140)는 및 사용자의 입력 데이터 중 적어도 하나에 기초하여 복수의 서브 공간을 식별할 수도 있으며, 서브 공간의 크기(또는, 면적)은 각각의 서브 공간마다 상이한 값을 가질 수 있다.
일 실시 예에 따라, 프로세서(140)는 복수의 서브 공간 각각의 우선 순위를 식별할 수 있다. 여기서, 우선 순위는 복수의 서브 공간 각각의 상대적인 순위를 의미한다. 로봇(100)은 복수의 서브 공간 각각에 대응되는 우선 순위에 대한 정보에 기초하여 특정 공간 내에서의 주행 경로를 설정할 수 있다.
한편, 일 예에 따라 복수의 서브 공간 각각의 우선 순위는 특정 공간 내의 오브젝트의 위치, 로봇(100)의 다음 경유지로 출발 가능한 예측 시간 또는 사용자 입력 중 적어도 하나에 기초하여 식별될 수 있다. 이에 대하여는 도 4 내지 6을 통하여 자세히 설명하도록 한다.
일 실시 예에 따라, 프로세서(140)는 적어도 하나의 센서(120)를 통해 획득된 센싱 데이터에 기초하여 특정 공간 내의 오브젝트의 위치를 식별할 수 있다.
일 예에 따라, 적어도 하나의 센서(120)가 라이다(LiDAR) 또는 뎁스 카메리(Depth Camera)로 구현되는 경우, 프로세서(140)는 센서(120)를 통해 획득된 센싱 데이터에 기초하여 특정 공간 내에 위치하는 오브젝트(예를 들어, 사람)를 식별할 수 있다. 이와 함께, 적어도 하나의 센서(120)는 RGB Camera가 포함될 수도 있으며, 프로세서(140)는 특정 공간 내에 위치하는 오브젝트의 상대적인 위치에 대한 정보와 함께 오브젝트의 위치 이동 정보를 식별할 수 있다.
일 실시 예에 따라, 프로세서(140)는 식별된 오브젝트의 위치 또는 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 복수의 서브 공간 각각의 우선 순위를 업데이트할 수 있다.
여기서, 일 예에 따라 특정 공간이 엘리베이터인 경우, 프로세서(140)는 주행 경로에 기초하여 엘리베이터를 거쳐 이동할 예정인 다음 경유지로 출발 가능한 시간을 예측하고, 이를 통해 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간을 식별할 수 있다.
예를 들어, 프로세서(140)는 주행 경로에 기초하여 현재 로봇(100)이 엘리베이터에 진입한 층의 높이 및 하차할 예정인 층의 높이를 식별하고, 이를 통해 식별된 이동 예정인 층 수에 기초하여 로봇(100)의 엘리베이터 하차 시간을 예측할 수 있다. 일 실시 예에 따르면, 로봇(100)이 엘리베이터에서 내릴 예정인 층이 다음 경유지가 될 수 있다. 이 경우, 프로세서(140)는 로봇(100)의 엘리베이터 탑승 중 엘리베이터의 멈춤 횟수 및 멈춤 시간에 대한 정보에 기초하여 로봇(100)의 엘리베이터 하차 시간을 예측할 수 있다. 상술한 엘리베이터의 멈춤 횟수 및 멈춤 시간에 대한 정보는 예를 들어 엘리베이터의 현재 층을 알려주는 오디오 정보에 기초하여 획득될 수도 있다.
다만, 이에 한정되는 것은 아니며 예를 들어, 프로세서(140)는 카메라를 통해 획득된 이미지 정보에 기초하여 현재 엘리베이터가 위치한 층에 대한 정보를 식별할 수도 있다. 프로세서(140)는 현재 로봇(100)이 탑승한 엘리베이터가 위치한 현재 층을 식별하고, 이에 기초하여 로봇(100)의 하차 예정 시간을 예측할 수도 있다.
이어서, 일 예에 따라 프로세서(140)는 특정 공간 내 오브젝트의 위치 또는 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나가 식별되면, 이에 기초하여 서브 공간에 대한 우선 순위를 업데이트할 수 있다.
예를 들어, 프로세서(140)는 특정 공간 내 오브젝트의 위치를 식별하고, 식별된 오브젝트의 위치로부터 기 설정된 거리만큼 이격된 위치에 존재하는 서브 공간의 우선 순위를 다른 서브 공간의 우선 순위보다 높게 설정할 수 있다. 또는, 프로세서(140)는 식별된 오브젝트의 위치와 가장 근접한 서브 공간의 우선 순위를 다른 서브 공간의 우선 순위보다 낮게 설정할 수도 있다.
또한, 예를 들어 프로세서(140)는 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간이 식별된 경우, 식별된 예측 시간에 기초하여 로봇(100)의 특정 공간 내에서의 잔여 주행 시간을 식별하고, 잔여 주행 시간이 임계 시간 미만인 것으로 식별되면 특정 공간 내 특정 위치(예를 들어, 엘리베이터의 출입문에서 가장 가까운 위치)에 대응되는 서브 공간의 우선 순위를 다른 서브 공간의 우선 순위보다 높게 설정할 수 있다.
일 실시 예에 따라, 프로세서(140)는 업데이트된 우선 순위에 기초하여 이동하도록 구동부(130)를 제어할 수 있다. 일 예에 따라, 프로세서(140)는 업데이트된 우선 순위에 대한 정보에 기초하여 우선 순위가 제일 높은 서브 공간을 식별하고, 우선 순위가 제일 높은 서브 공간으로 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다.
일 예에 따라, 프로세서(140)는 업데이트된 우선 순위에 기초하여, 우선 순위가 가장 높은 서브 공간, 즉 최우선 순위의 서브 공간을 식별할 수 있고, 식별된 최우선 순위의 서브 공간으로 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다.
도 3a는 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 흐름도이며, 도 3b는 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 도면이다.
도 3a에 따르면, 일 실시 예에 따라 제어 방법은 주행 경로 상에 특정 공간이 경유지로 포함되면 특정 공간을 복수의 서브 공간으로 식별할 수 있다(S310). 일 예에 따라, 프로세서(140)는 특정 공간(300)이 주행 경로 상에서 경유지로 포함된 것으로 식별되면, 도 3b에 도시된 바와 같이 특정 공간(300)을 복수의 서브 공간으로 식별할 수 있다. 예를 들어, 프로세서(140)는 특정 공간 내 복수의 서브 공간을 식별 또는 획득할 수 있다. 여기서, 도 3b에 도시된 복수의 서브 공간은 주행 공간에 대한 맵 중 특정 공간에 대응되는 영역이 복수 개의 영역으로 분할된 것이다.
이 경우, 일 예에 따라 복수의 서브 공간 각각에 대응되는 좌표 정보가 식별될 수 있다. 도 3b에 따르면, 좌측 하단의 서브 공간을 기준으로 각각의 서브 공간은 x축 값 및 y축 값을 가질 수 있다. 예를 들어, 좌측 하단의 서브 공간은 (1,1)의 좌표 값을 가질 수 있다.
이어서, 일 실시 예에 따라 제어 방법은 복수의 서브 공간 각각의 우선 순위를 식별할 수 있다(S320). 일 예에 따라, 프로세서(140)는 특정 공간 내에서 오브젝트의 위치가 식별되지 않거나, 다음 경유지로 출발 가능한 예측 시간이 식별되지 않은 경우, 복수의 서브 공간 각각의 상대적인 위치에 기초하여 우선 순위를 식별할 수 있다.
예를 들어, 도 3b를 참조하면 프로세서(140)는 식별된 복수의 서브 공간 중 특정 공간의 중심에 가까운 위치에 존재하는 서브 공간(좌표 값 (2,2), (3,2), (2,3) 및 (3,3)에 대응되는 서브 공간)의 우선 순위를 다른 서브 공간에 비하여 높은 우선 순위로 식별할 수 있다. 엘리베이터의 경우 로봇(100)이 탑승 및 하차가 가장 용이한 위치는 엘리베이터의 중심이므로, 이를 고려하여 엘리베이터의 중심을 높은 우선 순위로 설정할 수 있다.
이어서, 일 실시 예에 따라 제어 방법은 센싱 데이터에 기초하여 특정 공간 내의 오브젝트의 위치 식별할 수 있다(S330).
일 예에 따라, 도 3b에 따르면, 로봇(100)이 아직 특정 공간에 진입하지 않은 경우(310), 프로세서(140)는 라이다를 통해 획득된 센싱 데이터에 기초하여 특정 공간 내 오브젝트(30)의 상대적인 위치를 식별할 수 있다.
예를 들어, 로봇(100)이 아직 특정 공간에 진입하지 않은 경우(310), 프로세서(140)는 오브젝트(30)가 특정 서브 공간(좌표 값 (1,4) 및 (4,4)에 대응되는 서브 공간)에 위치한 것으로 식별할 수 있다.
이 경우 일 예에 따라, 프로세서(140)는 식별된 특정 공간 내 오브젝트(30)의 위치에 기초하여 오브젝트가 위치하는 적어도 하나의 서브 공간을 식별할 수 있다.
이어서, 일 실시 예에 따라 제어 방법은 식별된 오브젝트의 위치 또는 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 우선 순위를 업데이트하고(S340), 업데이트된 우선 순위에 기초하여 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다.
일 예에 따라, 먼저 프로세서(140)는 오브젝트(30)의 위치가 식별되면(310), 서브 공간의 상대적인 위치 정보에 기초하여 식별된 우선 순위를 오브젝트(30)의 위치에 기초하여 업데이트할 수 있다. 이 경우, 프로세서(140)는 적어도 하나의 센서(120)를 통해 오브젝트(30)의 위치를 실시간으로 식별할 수 있다.
예를 들어, 프로세서(140)는 특정 공간의 중심에 위치한 서브 공간(좌표 값 (2,2), (3,2), (2,3) 및 (3,3)에 대응되는 서브 공간) 중 오브젝트와의 거리가 기 설정된 거리 이상인 서브 공간(좌표 값 (2,2), (3,2)에 대응되는 서브 공간)을 식별하고, 이를 최우선 순위의 서브 공간으로 식별할 수 있다. 상술한 예와 같이 오브젝트(예를 들어, 사람)와 로봇(100)의 거리가 기 설정된 거리 이상이 되도록 함으로써 엘리베이터에 함께 탑승한 사람에게 불편함을 주지 않도록 할 수 있다.
한편, 일 예에 따라 동일한 우선 순위를 갖는 복수 개의 서브 공간이 존재할 수 있으며, 이 경우 프로세서(140)는 동일한 우선 순위를 갖는 복수 개의 서브 공간 중 임의로 어느 하나를 식별하고, 식별된 어느 하나로 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다. 도 3b의 경우처럼 특정 공간의 중심에 위치한 서브 공간 중 오브젝트와의 거리가 기 설정된 거리 이상인 서브 공간(좌표 값 (2,2), (3,2)에 대응되는 서브 공간)이 복수 개 식별된 경우, 프로세서(140)는 이중 어느 하나의 서브 공간을 임의로 식별하고, 식별된 어느 하나로 이동하도록 구동부(130)를 제어할 수 있다. 다만 이에 한정되는 것은 아니며, 다른 실시 예에 따르면, 프로세서(140)는 동일한 우선 순위를 갖는 서브 공간 중 어느 하나에 다른 방법을 적용하고, 식별된 서브 공간 중 어느 하나로 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다.
이어서, 일 예에 따라 프로세서(140)는 업데이트된 우선 순위에 기초하여 구동부(130)를 제어할 수 있다. 예를 들어, 업데이트된 우선 순위에 따라 서브 공간 중 어느 하나(302)가 최우선 순위로 식별된 경우, 프로세서(140)는 식별된 최우선 순위에 대응되는 서브 공간(302)으로 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다.
또는, 일 예에 따라 프로세서(140)는 주행 경로에 기초하여 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간을 식별하고, 이에 기초하여 우선 순위를 업데이트할 수도 있다. 이에 대하여는 도 7a 및 7b를 통해 자세히 설명하도록 한다.
상술한 예에 따르면, 로봇(100)이 엘리베이터와 같은 특정 공간을 주행하는 경우, 로봇(100)의 하차 예정 시간 또는 특정 공간 내의 오브젝트의 위치를 고려하여 특정 공간을 주행할 수 있다. 이에 따라 로봇(100)은 효율적으로 다음 경유지로 이동할 수 있을 뿐 아니라, 특정 공간 내의 사람이 느낄 수 있는 불편함을 감소시킬 수 있다.
도 4a 및 4b는 일 실시 예에 따른 서브 공간의 우선 순위를 설명하기 위한 도면이다.
일 실시 예에 따라, 프로세서(140)는 복수의 서브 공간 각각에 대응되는 가중치를 식별하고, 식별된 가중치 값의 크기에 기초하여 복수의 서브 공간 각각에 대응되는 우선 순위를 식별할 수 있다. 복수의 서브 공간 각각에 대응되는 가중치는 서브 공간 각각에 대하여 상대적인 값을 가지며, 일 예에 따라 0~1 사이의 값을 가질 수 있으나 이에 한정되는 것은 아니다.
일 예에 따라, 프로세서(140)는 식별된 오브젝트의 위치, 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 또는 특정 공간 내 복수의 서브 공간의 상대적인 위치에 대한 정보 중 적어도 하나에 기초하여 복수의 서브 공간 각각에 대응되는 가중치를 식별하고, 식별된 가중치 값의 크기에 기초하여 복수의 서브 공간 각각의 우선 순위를 식별할 수 있다.
이 경우, 일 예에 따라 복수의 서브 공간 각각에 대응되는 가중치는 AOI(Area of Interest) 정보에 포함되어 있을 수 있으며, AOI(Area of Interest) 정보는 메모리(110)에 기 저장되어 있을 수 있다. 여기서, AOI는 관심 영역으로 설정된 영역(area)이며, 특정 지점(POInt)이 관심 영역으로 설정된 POI(POInt of Interest)와는 상이하다. 이에 따라, POI 정보는 특정 지점에 대한 정보만을 포함할 수 있으며 AOI는 특정 영역에 대한 정보(또는, 특정 영역에 포함된 적어도 하나의 특정 지점에 대한 정보)를 포함할 수 있다.
일 예에 따라, 특정 공간이 AOI로 식별되는 경우, 프로세서(140)는 특정 공간 내의 복수의 서브 공간 각각에 대응되는 가중치를 맵핑하여 특정 공간에 대한 AOI 정보를 획득할 수 있다. 예를 들어, AOI 정보는 그리드(Grid) 타입 또는 그래프(Graph) 타입 중 적어도 하나일 수 있다.
일 실시 예에 따라, AOI 정보는 도 4a에 도시된 바와 같이 그리드 타입의 정보일 수 있다. 일 예에 따라, 프로세서(140)는 복수의 서브 공간 각각의 우선 순위에 대응되는 가중치가 식별되면, 복수의 서브 공간에 대응되는 그리드(Grid) 각각에 식별된 가중치를 맵핑하여 AOI(Area of Interest) 정보를 획득할 수 있다.
예를 들어, 좌표 값 (2,2)에 대응되는 서브 공간(401)의 가중치가 1.0으로 식별된 경우, 프로세서(140)는 식별된 가중치 값을 대응되는 서브 공간에 맵핑하여 AOI 정보를 획득할 수 있다.
한편, 일 실시 예에 따라, AOI 정보는 도 4b에 도시된 바와 같이 그래프 타입의 정보일 수도 있다. 여기서, 노드(node)와 그 노드를 연결하는 에지(edge)를 하나로 모아 놓은 자료 구조를 그래프(Graph) 모델이라 하며, 연결되어 있는 객체 간의 관계를 표현하는 경우에 일반적으로 사용한다.
일 예에 따라, 프로세서(140)는 복수의 서브 공간에 대응되는 노드(Node) 각각에 식별된 가중치를 맵핑하여 AOI 정보를 획득할 수 있다. 예를 들어, 좌표 값 (2,2)에 대응되는 서브 공간(411)의 가중치가 1.0으로 식별된 경우, 프로세서(140)는 식별된 가중치 값을 대응되는 서브 공간에 맵핑하여 AOI 정보를 획득할 수 있다.
일 실시 예에 따라, 프로세서(140)는 식별된 오브젝트의 위치 또는 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 AOI 정보에 포함된 가중치를 업데이트할 수 있다. 다른 실시 예에 따라 프로세서(140)는 특정 공간 내 포함된 서브 공간 각각의 위치 정보에 기초하여 가중치를 업데이트할 수도 있다.
한편, 일 실시 예에 따라, 서브 공간 각각에 대응되는 가중치 값이 업데이트되면, 프로세서(140)는 서브 공간 각각에 대응되는 가중치 값의 크기에 기초하여 서브 공간의 우선 순위를 업데이트할 수 있다.
일 예에 따라, 먼저 프로세서(140)는 식별된 오브젝트의 위치 또는 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 AOI 정보에 포함된 가중치를 업데이트할 수 있다. 이와 함께 프로세서(140)는 업데이트된 AOI 정보를 획득할 수도 있다.
이어서, 일 예에 따라 프로세서(140)는 업데이트된 가중치가 임계 값 이상인 서브 공간이 존재하는지 식별할 수 있다. 예를 들어, 프로세서(140)는 업데이트된 가중치 값이 0.9 이상인 서브 공간이 새롭게 식별되는지 여부를 식별할 수 있다. 다만, 이에 한정되지 않으며, 다른 실시 예에 따라 임계 값은 사용자 입력 등에 따라 상이한 값을 가질 수 있음은 물론이다.
이어서, 일 예에 따라 프로세서(140)는 업데이트된 가중치가 임계 값 이상인 서브 공간이 존재하는 것으로 식별되면, 업데이트된 가중치에 기초하여 복수의 서브 공간 각각의 우선 순위를 업데이트할 수 있다. 예를 들어, 프로세서(140)는 업데이트된 가중치가 0.9 이상인 서브 공간이 새롭게 식별되면, 업데이트된 가중치에 기초하여 복수의 서브 공간 각각의 우선 순위를 업데이트할 수 있다.
즉, 업데이트된 가중치가 임계 값 이상인 서브 공간이 새롭게 식별되면, 서브 공간의 우선 순위가 변동될 가능성이 높아지게 되므로, 프로세서(140)는 업데이트된 가중치가 임계 값 이상인 서브 공간이 새롭게 식별되면 이에 기초하여 우선 순위를 업데이트할 수 있다.
또는, 일 예에 따라 프로세서(140)는 업데이트된 가중치 값에 기초하여 복수의 서브 공간 내 가중치 값이 최대인 서브 공간을 식별하여, 가중치 값이 최대인 서브 공간이 변경된 것으로 식별되면, 업데이트된 가중치 값에 기초하여 서브 공간의 우선 순위를 업데이트할 수 있다.
예를 들어, 특정 공간에 오브젝트가 새롭게 식별되는 경우를 상정한다. 프로세서(140)는 새롭게 식별된 오브젝트의 위치에 기초하여 AOI 정보에 포함된 가중치를 업데이트하고, 업데이트된 가중치에 기초하여 가중치 값이 최대인 서브 공간이 변경된 것으로 식별되면 업데이트된 가중치 값에 기초하여 서브 공간의 우선 순위를 업데이트할 수도 있다.
이어서, 일 실시 예에 따라 프로세서(140)는 업데이트된 우선 순위에 기초하여 구동부(130)를 제어할 수 있다. 일 예에 따라, 프로세서(140)는 우선 순위가 업데이트됨에 따라 최우선 순위를 갖는 서브 공간이 변경된 경우, 최우선 순위를 갖는 서브 공간으로 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다.
다만, 이에 한정되는 것은 아니며 일 실시 예에 따라 프로세서(140)는 업데이트된 가중치 값에 기초하여 구동부(130)를 제어할 수도 있다. 일 예에 따라, 프로세서(140)는 업데이트된 AOI 정보에 기초하여 최대 가중치 값을 갖는 서브 공간을 식별하고, 식별된 서브 공간으로 로봇(100)이 이동하도록 구동부(130)를 제어할 수도 있다.
도 5는 일 실시 예에 따른 가중치와 우선 순위의 관계를 설명하기 위한 도면이다.
도 5에 따르면, 일 실시 예에 따라 프로세서(140)는 복수의 서브 공간 각각에 대응되는 가중치 값에 기초하여 복수의 서브 공간의 우선 순위를 식별할 수 있다.
일 예에 따라, 식별된 오브젝트의 위치 또는 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 복수의 서브 공간 각각의 가중치가 식별된 경우, 프로세서(140)는 식별된 가중치가 포함된 AOI 정보(500)를 획득할 수 있다.
일 예에 따라, 프로세서(140)는 획득된 AOI 정보(500)에 기초하여, 가중치가 임계 값 이상인 서브 공간이 존재하는지 식별할 수 있다. 예를 들어, 프로세서(140)는 가중치가 0.9 이상인 서브 공간(501 내지 503)을 식별할 수 있다.
일 예에 따라 프로세서(140)는 가중치가 임계 값 이상인 서브 공간 이 식별됨에 따라, 가중치 값에 기초하여 복수의 서브 공간의 우선 순위를 식별할 수 있다. 예를 들어, 프로세서(140)는 식별된 가중치 값에 기초하여, 가중치 값의 크기 순서에 기초하여 서브 공간 각각의 우선 순위에 대한 정보(510)를 식별할 수 있다. 한편, 본 발명은 이에 제한되지 않으며, 이와 같이, 다른 실시 예에 따르면, 서브 공간 각각의 우선 순위에 대한 정보(510) 역시 AOI 정보에 포함될 수 있음은 물론이다.
프로세서(140)는 최우선 순위를 가지는 서브 공간(511)를 포함하는 복수의 서브 공간의 우선 순위를 식별할 수 있으며, 이에 기초하여 로봇(100)이 최우선 순위를 가지는 서브 공간(511)으로 이동하도록 구동부(130)를 제어할 수 있다.
도 6a 내지 6b는 일 실시 예에 따른 가중치 또는 우선 순위를 업데이트하는 방법을 설명하기 위한 도면이다.
도 6a에 따르면, 일 실시 예에 따라 프로세서(140) 식별된 오브젝트의 위치 또는 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 AOI 정보에 포함된 가중치를 업데이트할 수 있다.
먼저, 일 예에 따라 메모리(110)에는 복수의 서브 공간 각각에 대응되는 가중치 값이 포함된 AOI 정보(600)가 저장되어 있을 수 있다. 이 경우, 로봇(100)은 가중치 값이 가장 큰 서브 공간(601)에 위치해 있을 수 있다.
이어서, 일 예에 따라 프로세서(140)는 출발 가능한 예측 시간에 기초하여 잔여 시간이 임계 시간 미만인 것으로 식별되면, AOI 정보(600)에 포함된 가중치를 업데이트하여 업데이트된 AOI 정보(610)를 획득할 수 있다.
예를 들어, 특정 공간이 엘리베이터인 경우를 상정한다. 잔여 시간이 임계 시간인 10초 미만인 것으로 식별되면, 프로세서(140)는 이에 기초하여 엘리베이터의 입구에 근접한 서브 공간(좌표 값 (2,1) 및 (3,1)에 대응되는 서브 공간)의 가중치 값이 최대가 되도록 서브 공간의 가중치 값을 업데이트할 수 있다. 또한, 프로세서(140)는 엘리베이터의 입구와의 거리가 상대적으로 가장 큰 서브 공간(611)의 가중치 값의 크기가 최소가 되도록 가중치 값을 업데이트할 수 있다.
일 실시 예에 따라 프로세서(140)는 가중치가 업데이트되면, 업데이트된 가중치가 임계 값 이상인 서브 공간이 존재하는지 식별할 수 있다.
일 예에 따라, 프로세서(140)는 업데이트 된 가중치 값이 포함된 AOI 정보(610)에 기초하여 가중치 값이 임계 값(예를 들어, 0.9) 이상인 서브 공간이 존재하는지 식별할 수 있다. 도 6a의 경우, 엘리베이터의 입구에 근접한 서브 공간 612 (좌표 값 (2,1) 및 (3,1)에 대응되는 서브 공간)이 임계 값 이상의 가중치를 갖는 것으로 식별할 수 있다.
일 실시 예에 따라 프로세서(140)는 업데이트된 가중치가 임계 값 이상인 서브 공간이 존재하는 것으로 식별되면, 업데이트된 가중치에 기초하여 복수의 서브 공간 각각의 우선 순위를 업데이트할 수 있다.
일 예에 따라, 프로세서(140)는 업데이트된 가중치가 임계 값 이상인 서브 공간이 존재하는 것으로 식별됨에 따라, 복수의 서브 공간에 대응되는 우선 순위에 대한 정보(620)를 업데이트하여 업데이트된 우선 순위에 대한 정보(630)를 획득할 수 있다. 도 6b에 도시된 바와 같이, 가중치가 업데이트되기 이전의 최우선 순위를 갖는 서브 공간(621)은 업데이트된 가중치에 기초하여 우선 순위가 변동될 수 있으며, 가중치가 업데이트된 후 최우선 순위를 갖는 서브 공간(632)는 업데이트 이전의 최우선 순위를 갖는 서브 공간(621)과 상이할 수 있다.
일 실시 예에 따라, 프로세서(140)는 업데이트된 우선 순위에 기초하여 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다.
일 예에 따라, 프로세서(140)는 업데이트된 우선 순위에 따라 최우선 순위를 갖는 서브 공간(632)가 업데이트 이전의 최우선 순위를 갖는 서브 공간(621)과 상이함에 따라, 로봇(100)이 업데이트된 우선 순위에 따라 최우선 순위를 갖는 서브 공간(632)으로 이동하도록 구동부(130)를 제어할 수 있다.
도 7a는 일 실시 예에 따른 로봇의 주행 방법을 설명하기 위한 흐름도이며, 도 7b 내지 7c는 일 실시 예에 따른 로봇의 주행 방법을 설명하기 위한 도면이다.
도 7a에 따르면, 일 실시 예에 따라 제어 방법은 로봇(100)이 특정 공간으로 진입하여 복수의 서브 공간 중 어느 하나에 위치하는지 여부를 식별할 수 있다(S710). 일 예에 따라, 도 7b에 따르면 프로세서(140)는 센서(120)를 통해 획득된 센싱 데이터에 기초하여 먼저 로봇(100)이 특정 공간(700)으로 진입하여 복수의 서브 공간 중 어느 하나(701)에 위치하는 것으로 식별할 수 있다.
일 실시 예에 따라 제어 방법은 로봇(100)이 특정 공간으로 진입하여 복수의 서브 공간 중 어느 하나에 위치하는 것으로 식별되면(Y), 특정 공간에서 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간을 식별할 수 있다(S720). 일 예에 따라, 특정 공간이 엘리베이터인 경우, 프로세서(140)는 로봇(100)이 복수의 서브 공간 중 어느 하나(701)에 위치하는 것으로 식별되면, 주행 경로에 기초하여 현재 로봇(100)이 엘리베이터에 진입한 층의 높이 및 하차할 예정인 층의 높이를 식별하고, 이에 기초하여 로봇(100)이 다음 경유지로 출발 가능한 예측 시간(또는, 로봇(100)의 하차 예정 시간)을 식별할 수 있다.
일 실시 예에 따라 제어 방법은 예측 시간에 기초하여 특정 공간 내에서의 잔여 주행 시간을 식별할 수 있다(S730). 일 예에 따라, 프로세서(140)는 현재 시간 및 출발 가능한 예측 시간을 비교하여 특정 공간 내에서의 잔여 주행 시간을 식별할 수 있다.
이어서, 일 실시 예에 따라 제어 방법은 잔여 주행 시간이 임계 시간 미만인지 여부를 식별할 수 있다(S740). 일 예에 따라, 프로세서(140)는 잔여 주행 시간과 임계 시간을 비교하여 잔여 주행 시간이 임계 시간 미만인지 여부를 식별할 수 있다. 한편 임계 시간은 초기 설정시 메모리(110)에 저장된 값일 수 있으나 이에 한정되지 않으며 이후 사용자 입력에 기초하여 임계 시간의 크기는 변경될 수 있음은 물론이다.
이어서, 일 실시 예에 따라 제어 방법은 잔여 주행 시간이 임계 시간 미만인 것으로 식별되면(Y), 복수의 서브 공간 각각의 위치에 기초하여 우선 순위를 업데이트할 수 있다(S750).
일 예에 따라, 프로세서(140)는 잔여 주행 시간이 임계 시간 미만인 것으로 식별되면, 복수의 서브 공간 중 엘리베이터의 출입구와 근접한 서브 공간(좌표 값 (2,1) 및 (3,1)에 대응되는 서브 공간)을 최우선 순위의 서브 공간이 되도록 우선 순위를 업데이트할 수 있다. 즉, 도 7b에 도시된 복수의 서브 공간의 우선 순위에 대한 정보(720)는 복수의 서브 공간 각각의 위치 및 다음 경유지로 출발 가능한 예측 시간이 반영된 우선 순위에 대한 정보(730)로 업데이트될 수 있다.
이 경우, 업데이트되기 이전의 최우선 순위에 대응되는 서브 공간(701)은 업데이트 이후 변경될 수 있다. 도 7b의 경우, 최우선 순위에 대응되는 복수의 서브 공간(좌표 값 (2,1) 및 (3,1)에 대응되는 서브 공간)이 식별될 수 있다.
일 실시 예에 따라, 프로세서(140)는 업데이트된 우선 순위에 기초하여 식별된 최우선 순위에 대응되는 서브 공간이 식별되면, 식별된 서브 공간으로 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다.
일 예에 따라, 프로세서(140)는 복수의 식별된 서브 공간 중 임의의 어느 하나(711)를 식별하고, 식별된 어느 하나로 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다. 이에 따라, 로봇(100)은 식별된 서브 공간 중 어느 하나(711)로 이동하게 된다.
한편, 일 실시 예에 따라, 프로세서(140)는 사용자 선호도 정보에 기초하여 우선 순위를 업데이트할 수도 있다.
일 예에 따라, 로봇(100)은 사용자 인터페이스를 더 포함할 수 있으며, 프로세서(140)는 사용자 인터페이스를 통해 복수의 서브 공간 각각에 대한 선호도 정보가 수신되면, 선호도 정보에 기초하여 복수의 서브 공간 각각의 우선 순위를 업데이트할 수도 있다. 예를 들어, 도 7c와 같이 복수의 최우선 순위에 대응되는 서브 공간이 식별되는 경우, 프로세서(140)는 사용자 선호도 정보에 기초하여 복수의 최우선 순위에 대응되는 서브 공간(좌표 값 (2,1) 및 (3,1)에 대응되는 서브 공간) 중 어느 하나를 최우선 순위에 대응되는 서브 공간으로 식별할 수 있다.
이어서, 일 예에 따라, 프로세서(140)는 사용자 선호도 정보에 기초하여 업데이트된 우선 순위에 기초하여 이동하도록 구동부(130)를 제어할 수 있다. 도 7의 경우, 프로세서(140)는 사용자 선호도 정보에 기초하여 최우선 순위에 대응되는 서브 공간 중 어느 하나(711)가 식별되면, 식별된 어느 하나(711)로 이동하도록 구동부(130)를 제어할 수 있다.
도 8은 일 실시 예에 따른 오브젝트의 위치에 기초하여 로봇을 제어하는 방법을 설명하기 위한 도면이다.
도 8에 따르면, 일 실시 예에 따라 프로세서(140)는 오브젝트가 위치하는 서브 공간의 개수 또는 위치 중 적어도 하나에 기초하여 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다.
일 예에 따라, 먼저 프로세서(140)는 로봇(100)이 특정 공간으로 진입하여 복수의 서브 공간 중 어느 하나에 위치하는지 여부를 식별할 수 있다. 예를 들어, 프로세서(140)는 센서(120)를 통해 획득된 센싱 데이터에 기초하여 로봇(100)이 특정 공간에 진입하여 서브 공간 중 어느 하나에 위치하는지 여부를 식별할 수 있다.
이어서, 일 예에 따라 프로세서(140)는 특정 공간 내에서 적어도 하나의 오브젝트가 위치하는 서브 공간의 위치에 기초하여 적어도 하나의 오브젝트와 임계 거리 이상 이격된 서브 공간을 식별할 수 있다.
예를 들어, 오브젝트가 식별되지 않은 특정 공간(800) 내에 로봇(100)이 위치하였으나, 이후 오브젝트가 특정 공간으로 진입하여 특정 공간 내에서 적어도 하나의 오브젝트가 위치하는 것으로 식별된 경우를 상정한다. 프로세서(140)는 센서(120)를 통해 획득된 센싱 데이터에 기초하여 특정 공간(810) 내 오브젝트(811, 812 및 813)의 위치를 식별하고, 식별된 위치에 기초하여 오브젝트(811, 812 및 813)가 위치하는 서브 공간의 위치를 식별할 수 있다.
오브젝트(811 내지 813)가 위치하는 서브 공간의 위치(좌표 값 (1,1), (4,1) 및 (1,4)에 대응되는 서브 공간의 위치)가 식별됨에 따라, 프로세서(140)는 식별된 서브 공간 각각과 임계 거리(예를 들어, 서브 공간 2칸에 대응되는 거리) 이상 이격된 서브 공간으로 좌표 값(4,4)에 대응되는 서브 공간(821)을 식별할 수 있다. 다만, 이에 한정되는 것은 아니며, 다른 실시 예에 따라, 임계 거리는 사용자 입력에 따라 변경될 수 있음은 물론이다.
이어서, 일 예에 따라 프로세서(140)는 식별된 서브 공간(821)으로 이동하도록 구동부(130)를 제어할 수 있다.
한편, 도 8의 경우, 프로세서(140)는 식별된 오브젝트가 위치하는 서브 공간의 위치로부터 임계 거리 이격된 서브 공간으로 로봇(100)이 이동하도록 구동부(130)를 제어하는 실시 예로 설명하였으나, 이에 한정되지 않으며, 다른 실시 예에 따라 프로세서(140)는 오브젝트의 위치에 기초하여 업데이트된 우선 순위에 따라 로봇(100)이 이동하도록 구동부(130)를 제어할 수도 있음은 물론이다.
상술한 예에 따르면, 로봇(100)은 특정 공간 내에 존재하는 오브젝트로부터 이격된 거리에 위치할 수 있게 되며, 이에 따라 로봇은 특정 공간 내에 위치하는 사람 등의 오브젝트의 통행에 불편을 주지 않도록 주행하게 된다.
도 9는 일 실시 예에 따른 오브젝트의 개수에 기초하여 로봇을 제어하는 방법을 설명하기 위한 도면이다.
도 9에 따르면, 일 실시 예에 따라 프로세서(140)는 오브젝트가 위치하는 서브 공간의 개수 또는 위치 중 적어도 하나에 기초하여 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다.
일 예에 따라, 먼저 프로세서(140)는 로봇(100)이 특정 공간으로 진입하여 복수의 서브 공간 중 어느 하나에 위치하는지 여부를 식별할 수 있다. 예를 들어, 프로세서(140)는 센서(120)를 통해 획득된 센싱 데이터에 기초하여 로봇(100)이 특정 공간에 진입하여 서브 공간 중 어느 하나에 위치하는지 여부를 식별할 수 있다.
일 예에 따라 프로세서(140)는 특정 공간 내에서 적어도 하나의 오브젝트가 위치하는 서브 공간의 개수를 식별하고, 식별된 서브 공간의 개수가 임계 개수 이상인 것으로 식별되면, 적어도 하나의 오브젝트와 임계 거리 이상 이격된 서브 공간을 식별할 수 있다.
예를 들어, 오브젝트가 식별되지 않은 특정 공간(900) 내에 로봇(100)이 위치하였으나, 이후 오브젝트가 특정 공간으로 진입하여 특정 공간 내에서 적어도 하나의 오브젝트가 위치하는 것으로 식별된 경우를 상정한다. 프로세서(140)는 센서(120)를 통해 획득된 센싱 데이터에 기초하여 특정 공간(910) 내 오브젝트(911 및 912)를 식별하고, 이에 기초하여 특정 공간(910) 내에 오브젝트가 위치하는 서브 공간의 개수가 2개인 것으로 식별할 수 있다.
프로세서(140)는 특정 공간(910) 내 오브젝트(911 및 912)가 위치하는 서브 공간의 개수가 임계 개수인 2개 이상임에 따라, 식별된 복수의 서브 공간 각각과 임계 거리(예를 들어, 서브 공간 2칸에 대응되는 거리) 이상 이격된 서브 공간으로 좌표 값 (4,4)에 대응되는 서브 공간 및 좌표 값 (1,4)에 대응되는 서브 공간을 식별할 수 있다. 다만, 이에 한정되는 것은 아니며, 다른 실시 예에 따라 임계 개수는 사용자 입력에 따라 변경될 수 있음은 물론이다.
이어서, 일 예에 따라 프로세서(140)는 식별된 서브 공간으로 이동하도록 구동부(130)를 제어할 수 있다. 예를 들어, 프로세서(140)는 식별된 서브 공간(좌표 값 (4,4) 및 좌표 값 (1,4)에 대응되는 서브 공간) 중 임의의 어느 하나를 식별하고, 식별된 어느 하나(921)로 로봇(100)이 이동하도록 구동부(130)를 제어할 수 있다. 다만, 이에 한정되지 않으며, 예를 들어 프로세서(140)는 사용자 선호도에 기초하여 식별된 서브 공간 중 어느 하나를 식별할 수도 있다.
상술한 예에 따르면, 로봇(100)은 특정 공간 내 오브젝트의 개수가 임계 개수 이상 위치하는 혼잡한 상황의 경우, 오브젝트로부터 이격된 거리에 위치할 수 있게 되며, 이에 따라 특정 공간 내에 위치하는 사람 등의 오브젝트의 통행에 불편을 주지 않도록 주행하게 된다.
도 10은 일 실시 예에 따른 로봇의 알림 출력 방법을 설명하기 위한 흐름도이다.
일 실시 예에 따라 로봇(100)은 출력부를 더 포함할 수 있으며, 프로세서(140)는 복수의 서브 공간 각각의 우선 순위에 기초하여 로봇(100)이 특정 서브 공간으로 이동 예정임을 가이드하는 알림을 출력하도록 출력부를 제어할 수 있다. 예시적인 실시 예에 따르면, 출력부는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소와 소프트웨어 구성요소의 조합을 포함할 수 있다. 한 실시예에 따르면, 출력부는 하나 이상의 전자 부품 및/또는 회로를 포함할 수 있다.
도 10에 따르면, 일 예에 따라 먼저 제어 방법은 잔여 주행 시간이 임계 시간 미만인지 여부를 식별할 수 있다(S1010). 예를 들어, 프로세서(140)는 특정 공간에서 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간을 식별하고, 이를 현재 시간과 비교하여 로봇(100)의 잔여 주행 시간을 식별할 수 있다. 이어서, 프로세서(140)는 식별된 잔여 주행 시간이 임계 시간 미만인지 여부를 식별할 수 있다.
이어서, 일 예에 따라 잔여 주행 시간이 임계 시간 미만이면(Y), 제어 방법은 복수의 서브 공간 각각의 위치에 기초하여 우선 순위를 업데이트할 수 있다(S1020). 예를 들어, 특정 공간이 엘리베이터인 경우, 프로세서(140)는 잔여 주행 시간이 임계 시간 미만인 것으로 식별되면, 복수의 서브 공간 중 엘리베이터의 출입구와 근접한 서브 공간을 최우선 순위의 서브 공간이 되도록 우선 순위를 업데이트할 수 있다.
이어서, 일 예에 따라 제어 방법은 우선 순위에 기초하여 특정 공간 내의 특정 서브 공간을 식별할 수 있다(S1030). 예를 들어, 프로세서(140)는 식별된 최우선 순위의 서브 공간을 특정 공간 내 특정 서브 공간으로 식별할 수 있다. 한편, 복수의 최우선 순위의 서브 공간이 식별되는 경우, 프로세서(140)는 임의의 어느 하나를 식별하거나 사용자 선호도에 기초하여 어느 하나를 식별하고, 식별된 어느 하나를 최우선 순위의 서브 공간으로 식별할 수 있다.
이어서, 일 예에 따라 제어 방법은 특정 서브 공간으로 이동 예정임을 가이드하는 알림을 출력할 수 있다(S1040).
예를 들어, 프로세서(140)는 식별된 최우선 순위의 서브 공간이 로봇(100)이 현재 위치하는 서브 공간과 상이한 경우, 출력부를 통해 로봇(100)이 최우선 순위의 서브 공간으로 이동 예정임을 가이드하는 알림을 출력할 수 있다. 이 경우, 프로세서(140)는 알림의 출력되는 동안 로봇(100)이 최우선 순위의 서브 공간으로 이동하도록 구동부(130)를 제어하거나, 알림의 출력이 종료된 후 최우선 순위의 서브 공간으로 이동하도록 구동부(130)를 제어할 수도 있다.
도 11a는 일 실시 예에 따른 오브젝트의 개수에 따른 로봇의 제어 방법을 설명하기 위한 흐름도이며, 도 11b 및 11c는 일 실시 예에 따른 오브젝트의 개수에 따른 로봇의 제어 방법을 설명하기 위한 도면이다.
도 11a에 따르면, 일 실시 예에 따라 제어 방법은 복수의 서브 공간 중 적어도 하나의 오브젝트가 위치하는 서브 공간의 개수를 식별할 수 있다(S1110).
일 예에 따라, 프로세서(140)는 센서(120)를 통해 획득된 센싱 데이터에 기초하여 특정 공간 내 존재하는 오브젝트를 식별하고, 식별된 오브젝트가 위치하는 서브 공간을 식별할 수 있다. 프로세서(140)는 이에 기초하여 식별된 서브 공간의 개수 역시 식별할 수 있다. 이 경우, 오브젝트의 개수 및 오브젝트가 위치하는 서브 공간의 개수는 상이할 수 있음은 물론이다.
일 실시 예에 따라 제어 방법은 식별된 서브 공간의 개수가 임계 개수 미만인지 여부를 식별할 수 있다(S1120). 여기서, 임계 개수는 초기 설정시에 저장된 값일 수 있으나, 이에 한정되는 것은 아니며 사용자 입력 등에 기초하여 임계 개수의 크기는 변경될 수 있음은 물론이다.
일 실시 예에 따라 식별된 서브 공간의 개수가 임계 개수 미만이면(Y), 제어 방법은 특정 공간으로 진입하도록 구동부(130)를 제어할 수 있다(S1130).
일 예에 따라, 도 11b에 의 좌측 도면(1110)에 도시된 바와 같이 로봇(100)이 특정 공간(1111)에 진입하지 않은 경우, 프로세서(140)는 센서(120)를 통해 획득된 센싱 데이터에 기초하여 특정 공간(1111) 내 존재하는 오브젝트(1100)를 식별할 수 있다.
일 예에 따라 프로세서(140)는 특정 공간(1111) 내 존재하는 오브젝트(1100)가 위치하는 서브 공간의 개수를 2개로 식별할 수 있다. 식별된 서브 공간의 개수가 임계 개수(예를 들어, 5개) 미만인 것으로 식별됨에 따라, 도 11b의 우측 도면(1120)에 도시된 바와 같이 프로세서(140)는 로봇(100)이 특정 공간(1111)으로 진입하도록 구동부(130)를 제어할 수 있다.
이 경우, 프로세서(140)는 오브젝트의 위치에 기초하여 복수의 서브 공간 중 어느 하나(1122)에 위치하도록 구동부(130)를 제어할 수 있다.
한편, 일 실시 예에 따라 식별된 서브 공간의 개수가 임계 개수 이상이면(N), 제어 방법은 특정 공간을 회피하여 주행하도록 주행 경로를 업데이트할 수 있다 (S1140).
일 예에 따라, 도 11c에 의 좌측 도면(1130)에 도시된 바와 같이 로봇(100)이 특정 공간(1131)에 진입하지 않은 경우, 프로세서(140)는 센서(120)를 통해 획득된 센싱 데이터에 기초하여 특정 공간(1131) 내 존재하는 오브젝트(1100)를 식별할 수 있다.
일 예에 따라 프로세서(140)는 특정 공간(1131) 내 존재하는 오브젝트(1100)가 위치하는 서브 공간의 개수를 12개로 식별할 수 있다. 식별된 서브 공간의 개수가 임계 개수(예를 들어, 5개) 이상인 것으로 식별됨에 따라, 프로세서(140)는 특정 공간을 회피하여 주행하도록 주행 경로를 업데이트할 수 있다.
예를 들어, 특정 공간이 엘리베이터인 경우를 상정한다. 프로세서(140)는 식별된 서브 공간의 개수가 임계 개수 이상인 것으로 식별됨에 따라, 현재 엘리베이터에 진입하지 않고 다음 엘리베이터가 도착할 때까지 주행을 중지하도록 구동부(130)를 제어할 수 있다.
이어서, 도 11c의 우측 도면(1140)에 도시된 바와 같이 프로세서(140)는 다음 엘리베이터(1141) 내 오브젝트의 및 이에 대응되는 서브 공간의 개수를 식별할 수 있다. 프로세서(140)는 식별된 서브 공간의 개수가 임계 개수 미만인 2개인 것으로 식별됨에 따라, 로봇(100)이 엘리베이터(1141)로 진입하도록 구동부(130)를 제어할 수 있다.
한편, 일 예에 따라 복수의 엘리베이터가 존재하는 경우, 즉 복수의 특정 공간이 식별되는 경우를 상정한다. 프로세서(140)는 복수의 특정 공간 중 제1 특정 공간 내 식별된 서브 공간의 개수가 임계 개수 이상인 것으로 식별되면, 제1 특정 공간으로 진입하지 않고 제2 특정 공간으로 진입하도록 구동부(130)를 제어할 수 있다.
예를 들어, 프로세서(140)는 복수의 특정 공간 중 제1 특정 공간의 서브 공간의 개수가 임계 개수인 5개 이상으로 식별되는 경우, 메모리(110)에 저장된 맵 정보에 기초하여 제2 특정 공간의 위치를 식별하고, 제2 특정 공간으로 이동하도록 구동부(130)를 제어할 수 있다.
이어서, 프로세서(140)는 제2 특정 공간 내 오브젝트가 위치하는 서브 공간의 개수를 식별하고, 식별된 개수가 임계 개수 미만으로 식별되면, 제2 특정 공간으로 로봇(100)이 진입하도록 구동부(130)를 제어할 수 있다.
상술한 예에 따르면, 로봇(100)은 특정 공간 내의 혼잡도가 높지 않은 경우에만 특정 공간으로 진입하여 주행하게 되며, 이에 따라 특정 공간 내 사람들의 불편함을 감소시킬 수 있다.
도 12는 일 실시 예에 따른 우선 순위를 업데이트하는 방법을 설명하기 위한 흐름도이다.
도 12에 따르면, 일 실시 예에 따라 제어 방법은 적어도 하나의 오브젝트가 특정 공간으로 출입하는 동안 복수의 서브 공간이 Free space 또는 Occupied space 인지 식별할 수 있다(S1210).
여기서, Free space는 동적 오브젝트 또는 정적 오브젝트를 포함하는 오브젝트가 점유하지 않는 서브 공간을 의미한다. Occupied space는 오브젝트가 현재 점유 중인 서브 공간을 의미한다. 다만, 이에 한정되지 않으며 사용자 입력에 따라 Free space 또는 Occupied space인지 여부가 식별될 수 있다. 일 예에 따라, 특정 서브 공간을 Occupied space로 설정하기 위한 사용자 입력이 수신되면, 프로세서(140)는 특정 서브 공간을 Occupied space로 식별할 수 있다.
일 예에 따라, 특정 공간은, 이동이 가능한 폐쇄 공간일 수 있다. 프로세서(140)는 폐쇄 공간 내에서 오브젝트가 출입하는 동안 센서(120)를 통해 획득된 센싱 데이터에 기초하여 폐쇄 공간 내 복수의 서브 공간이 Free space 또는 Occupied space 인지 식별할 수 있다.
이어서, 일 실시 예에 따라 제어 방법은 식별된 서브 공간의 특성에 기초하여 복수의 서브 공간 각각의 우선 순위를 업데이트할 수 있다(S1220). 여기서, 서브 공간의 특성은 서브 공간이 Free space 또는 Occupied space인지 여부를 의미한다.
일 예에 따라, 프로세서(140)는 오브젝트의 위치 또는 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 복수의 서브 공간 각각의 우선 순위가 식별된 경우, 서브 공간의 특성에 기초하여 서브 공간 각각의 우선 순위를 업데이트할 수 있다.
예를 들어, 프로세서(140)는 최우선 순위로 식별된 제1 서브 공간이 사용자 입력에 기초하여 Occupied space로 식별되면, 이를 제외한 나머지 서브 공간 중 어느 하나를 최우선 순위의 서브 공간으로 식별할 수 있다.
도 13은 일 실시 예에 따른 로봇의 세부 구성을 나타내는 블록도이다.
도 13에 따르면, 로봇(100')은 메모리(110), 적어도 하나의 센서(120), 구동부(130), 하나 이상의 프로세서(140), 출력부(150), 사용자 인터페이스(160), 마이크(170) 및 통신 인터페이스(180)를 포함할 수 있다. 도 13에 도시된 구성 중 도 2에 도시된 구성과 중복된 구성에 대해서는 자세한 설명을 생략하도록 한다.
출력부(150)는 스피커(150-1), 디스플레이(150-2) 등을 포함할 수 있으며, 이에 국한되는 것은 아니고, 사용자의 오감에 의해 감지될 수 있는 형태로 정보를 전달하는 다양한 실시 예로 이루어질 수 있다.
스피커(150-1)는, 고음역대 소리 재생을 위한 트위터, 중음역대 소리 재생을 위한 미드레인지, 저음역대 소리 재생을 위한 우퍼, 극저음역대 소리 재생을 위한 서브우퍼, 공진을 제어하기 위한 인클로저, 스피커에 입력되는 전기 신호 주파수를 대역 별로 나누는 크로스오버 네트워크 등으로 이루어질 수 있다.
스피커(150-1)는, 음향 신호를 로봇(100')의 외부로 출력할 수 있다. 스피커(150-1)는 멀티미디어 재생, 녹음 재생, 각종 알림음, 음성 메시지 등을 출력할 수 있다. 로봇(100')은 스피커(150-1)와 같은 오디오 출력 장치를 포함할 수 있으나, 오디오 출력 단자와 같은 출력 장치를 포함할 수 있다. 특히, 스피커(150-1)는 획득한 정보, 획득한 정보에 기초하여 가공·생산한 정보, 사용자 음성에 대한 응답 결과 또는 동작 결과 등을 음성 형태로 제공할 수 있다.
디스플레이(150-2)는 자발광 소자를 포함하는 디스플레이 또는, 비자발광 소자 및 백라이트를 포함하는 디스플레이로 구현될 수 있다. 예를 들어, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, LED(Light Emitting Diodes), 마이크로 LED(micro LED), Mini LED, PDP(Plasma Display Panel), QD(Quantum dot) 디스플레이, QLED(Quantum dot light-emitting diodes) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(150-2) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(150-2)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 롤러블 디스플레이(rollable display), 3차원 디스플레이(3D display), 복수의 디스플레이 모듈이 물리적으로 연결된 디스플레이 등으로 구현될 수 있다. 프로세서(140)는 상술한 다양한 실시 예에 따라 획득된 출력 영상을 출력하도록 디스플레이(150-2)를 제어할 수 있다. 여기서, 출력 영상은, 4K 또는 8K 이상의 고해상도 영상일 수 있다.
사용자 인터페이스(160)는 로봇(100')이 사용자와 인터렉션(Interaction)을 수행하기 위한 구성이다. 예를 들어 사용자 인터페이스(160)는 터치 센서, 모션 센서, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
마이크(170)는 소리를 획득하여 전기 신호로 변환하는 모듈을 의미할 수 있으며, 콘덴서 마이크, 리본 마이크, 무빙코일 마이크, 압전소자 마이크, 카본 마이크, MEMS(Micro Electro Mechanical System) 마이크일 수 있다. 또한, 무지향성, 양지향성, 단일지향성, 서브 카디오이드(Sub Cardioid), 슈퍼 카디오이드(Super Cardioid), 하이퍼 카디오이드(Hyper Cardioid)의 방식으로 구현될 수 있다.
통신 인터페이스(180)는 다양한 타입의 데이터를 입력 및 출력할 수 있다. 예를 들어 통신 인터페이스(180)는 AP 기반의 Wi-Fi(와이파이, Wireless LAN 네트워크), 블루투스(Bluetooth), 지그비(Zigbee), 유/무선 LAN(Local Area Network), WAN(Wide Area Network), 이더넷(Ethernet), IEEE 1394, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), MHL(Mobile High-Definition Link), AES/EBU(Audio Engineering Society/ European Broadcasting Union), 옵티컬(Optical), 코액셜(Coaxial) 등과 같은 통신 방식을 통해 외부 장치(예를 들어, 소스 장치), 외부 저장 매체(예를 들어, USB 메모리), 외부 서버(예를 들어 웹 하드)와 다양한 타입의 데이터를 송수신할 수 있다.
상술한 다양한 실시 예에 따르면, 로봇(100')이 엘리베이터와 같은 특정 공간을 주행하는 경우, 로봇(100')의 하차 예정 시간 또는 특정 공간 내의 오브젝트의 위치를 고려하여 특정 공간을 주행할 수 있다. 이에 따라 로봇(100')은 효율적으로 다음 경유지로 이동할 수 있을 뿐 아니라, 특정 공간 내의 사람이 느낄 수 있는 불편함을 감소시킬 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 로봇에 설치 가능한 어플리케이션 형태로 구현될 수 있다. 또는 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 딥 러닝 기반의 학습된 신경망(또는 심층 학습된 신경망) 즉, 학습 네트워크 모델을 이용하여 수행될 수 있다. 또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 로봇에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다. 또한, 상술한 본 개시의 다양한 실시 예들은 로봇에 구비된 임베디드 서버, 또는 로봇의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 디스플레이 장치(예: 디스플레이 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.

Claims (15)

  1. 로봇에 있어서,
    맵(Map) 정보를 저장하는 메모리;
    적어도 하나의 센서;
    주행 경로 내 경유지인 제1 영역을 포함하는 상기 주행 경로 상에서 상기 맵 정보에 기초하여 상기 로봇을 목적지로 이동시키는 구동부; 및
    상기 제1 영역 내의 복수의 제2 영역을 식별하고,
    상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 식별하고,
    상기 적어도 하나의 센서를 통해 획득된 센싱 데이터에 기초하여 상기 제1 영역 내의 하나 이상의 오브젝트의 위치를 식별하고,
    상기 식별된 하나 이상의 오브젝트의 위치 또는 상기 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 업데이트하고,
    상기 업데이트된 우선 순위 정보에 기초하여 이동하도록 상기 구동부를 제어하는 하나 이상의 프로세서;를 포함하는, 로봇.
  2. 제1항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 로봇이 상기 제1 영역으로 진입하거나 상기 복수의 제2 영역 중 어느 하나에 위치하는 동안, 상기 제1 영역에서 상기 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간을 식별하고,
    상기 예측 시간에 기초하여 상기 제1 영역 내에서의 잔여 주행 시간을 식별하고,
    상기 잔여 주행 시간이 임계 시간 미만인 것으로 식별되면, 상기 복수의 제2 영역 각각의 위치에 기초하여 상기 우선 순위 정보를 업데이트하고,
    상기 업데이트된 우선 순위 정보에 기초하여 이동하도록 상기 구동부를 제어하는, 로봇.
  3. 제2항에 있어서,
    사용자 인터페이스;를 더 포함하며,
    상기 하나 이상의 프로세서는,
    상기 사용자 인터페이스를 통해 수신된 상기 복수의 제2 영역 각각에 대응되는 선호도 정보에 기초하여 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 업데이트하고,
    상기 업데이트된 우선 순위 정보에 기초하여 이동하도록 상기 구동부를 제어하는, 로봇.
  4. 제2항에 있어서,
    출력부;를 더 포함하며,
    상기 하나 이상의 프로세서는,
    상기 우선 순위 정보에 기초하여 상기 복수의 제2 영역 중 어느 하나를 후보 영역으로 식별하고,
    상기 후보 영역으로 이동 예정임을 표시하는 알림을 출력하도록 상기 출력부를 제어하는, 로봇.
  5. 제1항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 로봇이 상기 제1 영역으로 진입하거나 상기 복수의 제2 영역 중 어느 하나에 위치하는 동안, 상기 제1 영역 내에서 하나 이상의 오브젝트가 위치하는 제2 영역의 개수 또는 위치 중 적어도 하나에 기초하여 상기 복수의 제2 영역 중에서 상기 하나 이상의 오브젝트와 임계 거리 이상 이격된 후보 영역을 식별하고,
    상기 식별된 후보 영역으로 이동하도록 상기 구동부를 제어하는, 로봇.
  6. 제1항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 제1 영역 내의 하나 이상의 오브젝트의 위치에 기초하여 상기 복수의 제2 영역 중 상기 하나 이상의 오브젝트가 위치하는 제2 영역의 개수를 식별하고,
    상기 식별된 제2 영역의 개수가 임계 개수 미만이면 상기 제1 영역으로 진입하도록 상기 구동부를 제어하고,
    상기 식별된 제2 영역의 개수가 상기 임계 개수 이상이면 상기 제1 영역을 회피하여 주행하도록 상기 주행 경로를 업데이트하는, 로봇.
  7. 제1항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보에 대응되는 가중치를 식별하고,
    AOI(Area of Interest) 정보를 획득하기 위하여 상기 복수의 제2 영역에 대응되는 그리드(Grid) 각각에 식별된 가중치를 맵핑(mapping)AOI하거나, 상기 복수의 제2 영역에 대응되는 노드(Node) 각각에 식별된 가중치를 맵핑하AOI고,
    상기 식별된 하나 이상의 오브젝트의 위치 또는 상기 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 상기 AOI 정보에 포함된 하나 이상의 가중치를 업데이트하는, 로봇.
  8. 제7항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 식별된 하나 이상의 오브젝트의 위치 또는 상기 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 상기 AOI 정보에 포함된 가중치가 업데이트되면, 상기 복수의 제2 영역 중 상기 업데이트된 가중치가 임계 값 이상인 영역이 존재하는지 식별하고,
    상기 업데이트된 가중치에 기초하여 상기 복수의 제2 영역 각각의 우선 순위 정보를 업데이트하는, 로봇.
  9. 제1항에 있어서,
    상기 제1 영역은, 이동이 가능한 폐쇄 공간이며,
    상기 하나 이상의 프로세서는,
    하나 이상의 오브젝트가 상기 제1 영역으로 출입하는 동안 상기 복수의 제2 영역이 Free space 또는 Occupied space 인지 식별하고,
    상기 식별된 제2 영역이 Free space 또는 Occupied space 인지 여부에 기초하여 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 업데이트하는, 로봇.
  10. 로봇의 제어 방법에 있어서,
    맵 정보에 기초하여 주행 경로 내 경유지인 제1 영역 내의 복수의 제2 영역을 식별하는 단계;
    상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 식별하는 단계;
    적어도 하나의 센서를 통해 획득된 센싱 데이터에 기초하여 상기 제1 영역 내의 하나 이상의 오브젝트의 위치를 식별하는 단계;
    상기 식별된 하나 이상의 오브젝트의 위치 또는 상기 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 업데이트하는 단계; 및
    상기 업데이트된 우선 순위 정보에 기초하여 이동하도록 구동부를 제어하는 단계;를 포함하는, 로봇.
  11. 제10항에 있어서,
    상기 우선 순위 정보를 업데이트하는 단계는,
    상기 로봇이 상기 제1 영역으로 진입하거나 상기 복수의 제2 영역 중 어느 하나에 위치하는 동안, 상기 제1 영역에서 상기 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간을 식별하는 단계;
    상기 예측 시간에 기초하여 상기 제1 영역 내에서의 잔여 주행 시간을 식별하는 단계; 및
    상기 잔여 주행 시간이 임계 시간 미만인 것으로 식별되면, 상기 복수의 제2 영역 각각의 위치에 기초하여 상기 우선 순위 정보를 업데이트하는 단계;를 더 포함하는, 제어 방법.
  12. 제11항에 있어서,
    상기 우선 순위 정보를 업데이트하는 단계는,
    사용자 인터페이스를 통해 수신된 상기 복수의 제2 영역 각각에 대응되는 선호도 정보에 기초하여 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 업데이트하는, 제어 방법.
  13. 제11항에 있어서,
    상기 우선 순위 정보에 기초하여 상기 복수의 제2 영역 중 어느 하나를 후보 영역으로 식별하는 단계; 및
    상기 후보 영역으로 이동 예정임을 표시하는 알림을 출력부를 통해 출력하는 단계;를 더 포함하는, 제어 방법.
  14. 제10항에 있어서,
    상기 구동부를 제어하는 단계는,
    상기 로봇이 상기 제1 영역으로 진입하거나 상기 복수의 제2 영역 중 어느 하나에 위치하는 동안, 상기 제1 영역 내에서 하나 이상의 오브젝트가 위치하는 제2 영역의 개수 또는 위치 중 적어도 하나에 기초하여 상기 하나 이상의 오브젝트와 임계 거리 이상 이격된 후보 영역을 식별하는 단계; 및
    상기 식별된 후보 영역으로 이동하도록 상기 구동부를 제어하는 단계;를 더 포함하는, 제어 방법.
  15. 로봇의 프로세서에 의해 실행되는 경우 상기 로봇이 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체에 있어서, 상기 동작은,
    맵 정보에 기초하여 주행 경로 내 경유지인 제1 영역 내의 복수의 제2 영역을 식별하는 단계;
    상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 식별하는 단계;
    적어도 하나의 센서를 통해 획득된 센싱 데이터에 기초하여 상기 제1 영역 내의 하나 이상의 오브젝트의 위치를 식별하는 단계;
    상기 식별된 하나 이상의 오브젝트의 위치 또는 상기 주행 경로 내의 다음 경유지로 출발 가능한 예측 시간 중 적어도 하나에 기초하여 상기 복수의 제2 영역 각각에 대응되는 우선 순위 정보를 업데이트하는 단계; 및
    상기 업데이트된 우선 순위 정보에 기초하여 이동하도록 구동부를 제어하는 단계;를 포함하는, 컴퓨터 판독 가능 기록 매체.
PCT/KR2023/010956 2022-09-15 2023-07-27 특정 공간을 주행하는 로봇 및 이의 제어 방법 WO2024058411A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/378,429 US20240094732A1 (en) 2022-09-15 2023-10-10 Robot traveling in specific space and method of controlling the same

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2022-0116610 2022-09-15
KR20220116610 2022-09-15
KR1020220124644A KR20240037787A (ko) 2022-09-15 2022-09-29 특정 공간을 주행하는 로봇 및 이의 제어 방법
KR10-2022-0124644 2022-09-29

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/378,429 Continuation US20240094732A1 (en) 2022-09-15 2023-10-10 Robot traveling in specific space and method of controlling the same

Publications (1)

Publication Number Publication Date
WO2024058411A1 true WO2024058411A1 (ko) 2024-03-21

Family

ID=90275194

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/010956 WO2024058411A1 (ko) 2022-09-15 2023-07-27 특정 공간을 주행하는 로봇 및 이의 제어 방법

Country Status (1)

Country Link
WO (1) WO2024058411A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170134165A (ko) * 2016-05-26 2017-12-06 고려대학교 산학협력단 이동 로봇 제어 방법
KR102194426B1 (ko) * 2020-04-29 2020-12-24 주식회사 트위니 실내 이동 로봇이 엘리베이터에서 환경을 인식하기 위한 장치 및 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
KR20210063121A (ko) * 2019-11-22 2021-06-01 엘지전자 주식회사 로봇 및 그의 제어 방법
KR20210083812A (ko) * 2019-12-27 2021-07-07 엘지전자 주식회사 자율주행 이동로봇 및 이의 동작 방법
KR20220102379A (ko) * 2021-01-13 2022-07-20 주식회사 트위니 다중 로봇의 엘리베이터 승하차 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170134165A (ko) * 2016-05-26 2017-12-06 고려대학교 산학협력단 이동 로봇 제어 방법
KR20210063121A (ko) * 2019-11-22 2021-06-01 엘지전자 주식회사 로봇 및 그의 제어 방법
KR20210083812A (ko) * 2019-12-27 2021-07-07 엘지전자 주식회사 자율주행 이동로봇 및 이의 동작 방법
KR102194426B1 (ko) * 2020-04-29 2020-12-24 주식회사 트위니 실내 이동 로봇이 엘리베이터에서 환경을 인식하기 위한 장치 및 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
KR20220102379A (ko) * 2021-01-13 2022-07-20 주식회사 트위니 다중 로봇의 엘리베이터 승하차 방법 및 장치

Similar Documents

Publication Publication Date Title
WO2019209041A1 (ko) 플렉서블 디스플레이 및 이를 구비하는 전자 장치
WO2022065722A1 (ko) 외부 물체에 대한 알림을 디스플레이하는 전자 장치 및 그 방법
WO2021206221A1 (en) Artificial intelligence apparatus using a plurality of output layers and method for same
WO2020262721A1 (ko) 인공 지능을 이용하여, 복수의 로봇들을 제어하는 관제 시스템
WO2020241923A1 (ko) 사용자 환경에서의 음성 인식 모델의 성능을 예측하는 인공 지능 장치 및 그 방법
WO2022119276A1 (ko) 플렉서블 디스플레이 전자 장치 및 그 동작 방법
WO2022108192A1 (ko) 전자 장치 및 전자 장치의 멀티윈도우 제어방법
WO2020256169A1 (ko) 인공 지능을 이용하여, 안내 서비스를 제공하는 로봇 및 그의 동작 방법
WO2024058411A1 (ko) 특정 공간을 주행하는 로봇 및 이의 제어 방법
WO2021107200A1 (ko) 이동 단말기 및 이동 단말기 제어 방법
WO2021006363A1 (ko) 인공 지능을 이용하여, 안내 서비스를 제공하는 로봇 및 그의 동작 방법
WO2024085544A1 (ko) 로봇 및 이의 제어 방법
WO2021091105A1 (en) Electronic apparatus and control method thereof
WO2024034774A1 (ko) 복수의 디스플레이들을 포함하는 전자 장치 및 복수의 디스플레이들의 화질 편차를 줄이는 방법
WO2024143859A1 (ko) 입력 장치와 연결된 디스플레이 장치 및 그 제어 방법
WO2022265269A1 (ko) 디스플레이의 잔상을 예측 및 보상하는 전자 장치 및 방법
WO2018062688A1 (en) Method and apparatus for identifying location of terminal in vehicle
WO2024043516A1 (ko) 특정 공간을 주행하는 로봇 및 이의 제어 방법
WO2024034852A1 (ko) 전자 장치의 멀티 윈도우 제어 방법 및 그 전자 장치
WO2024080553A1 (ko) 전자 장치 및 그 동작 방법
WO2024025192A1 (ko) 주행이 가능한 소형 로봇 및 이의 제어 방법
WO2024071660A1 (ko) 특정 공간을 주행하는 로봇 및 이의 제어 방법
WO2024053851A1 (ko) 전자 장치 및 이의 제어 방법
WO2024058409A1 (ko) 아이콘을 표시하는 전자 장치 및 이의 제어 방법
WO2024043719A1 (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: 23865714

Country of ref document: EP

Kind code of ref document: A1