WO2024043461A1 - 로봇 및 로봇의 제어 방법 - Google Patents

로봇 및 로봇의 제어 방법 Download PDF

Info

Publication number
WO2024043461A1
WO2024043461A1 PCT/KR2023/007758 KR2023007758W WO2024043461A1 WO 2024043461 A1 WO2024043461 A1 WO 2024043461A1 KR 2023007758 W KR2023007758 W KR 2023007758W WO 2024043461 A1 WO2024043461 A1 WO 2024043461A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
length
information
stairs
staircase
Prior art date
Application number
PCT/KR2023/007758
Other languages
English (en)
French (fr)
Inventor
홍현기
고영일
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of WO2024043461A1 publication Critical patent/WO2024043461A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/646Following a predefined trajectory, e.g. a line marked on the floor or a flight path
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • 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
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/243Means capturing signals occurring naturally from the environment, e.g. ambient optical, acoustic, gravitational or magnetic signals

Definitions

  • This disclosure relates to a robot and a method of controlling the robot, and specifically, to a robot capable of stably boarding and disembarking an escalator and a method of controlling the same.
  • inter-floor movement through stairs is a method applicable only to robots with a form factor that allows inter-floor movement through stairs.
  • Moving between floors via an elevator can be one method, but the travel time to the destination can be increased by the time required to travel to the elevator and the time spent waiting for the elevator to arrive, and the limited internal space of the elevator can increase the travel time to the destination. In situations where you must board with other people, boarding itself may be restricted, or even if you board, it may cause inconvenience to many people.
  • moving between floors through an escalator may be a way to improve driving efficiency.
  • problems with boarding availability and stability may arise. Specifically, if the width of the robot or the distance between the left and right wheels of the robot is shorter than the width of the escalator stairs, the robot's boarding on the escalator may be restricted.
  • the robot's center of gravity is in a position where downward torque is generated, the robot may fall from the escalator when the escalator rises or falls.
  • the present disclosure is intended to overcome the problems described above, and the purpose of the present disclosure is to provide a robot capable of stable boarding and disembarking from an escalator and a method of controlling the robot.
  • a robot includes a plurality of wheels, a plurality of motors for driving the plurality of wheels, at least one sensor, and Obtaining image data about the escalator from a memory in which first information is stored and the at least one sensor, obtaining second information about the size of a plurality of stairs included in the escalator based on the image data, and Based on the first information and the second information, a boarding position where the robot can board the escalator among the plurality of stairs and a posture of the robot for allowing the robot to board the boarding position are identified, and the boarding position and a processor that, when the posture is identified, obtains control information for controlling the robot to ride at the riding position in the posture, and controls the plurality of motors based on the control information.
  • the first information includes information about a first length corresponding to the first width of the robot, information about a second length corresponding to the second width of the robot and shorter than the first length, and information about the plurality of wheels. May include information about height adjustment.
  • the second information is information about the horizontal length of each of the plurality of stairs that is perpendicular to the non-elevating element in the moving direction of the plurality of stairs and is longer than at least one of the first length and the second length, and the moving direction It includes information about the vertical length of each of the plurality of stairs that is parallel to the non-elevating element and is shorter than the horizontal length, and information about the height of the plurality of stairs, and the information about the height of the plurality of stairs is included in the plurality of stairs. It may include information about the height difference between adjacent stairs among stairs and information about the rate of change of the height difference.
  • the processor may identify the first position on the first staircase among the plurality of stairs as the boarding position.
  • the processor is configured to allow the robot to ride in the first position in a posture in which the direction corresponding to the first length is parallel to the direction corresponding to the vertical length. controls the motor, and when the first length is longer than the vertical length and the second length is shorter than the vertical length, the direction corresponding to the first length is parallel to the direction corresponding to the horizontal length.
  • the plurality of motors can be controlled so that the robot rides in the first position.
  • the processor determines the second position overlapping between the first staircase and the second staircase adjacent to the first staircase among the plurality of stairs. It can be identified by location.
  • the processor is in an attitude such that the direction corresponding to the first length is parallel to the direction corresponding to the vertical length.
  • Control the plurality of motors so that the robot rides in the second position, and while the height difference between the first stair and the second stair is changed, the height difference between the plurality of wheels is changed between the first stair and the second stair.
  • the plurality of motors may be controlled to correspond to the height difference between the second stairs.
  • the direction corresponding to the first length is Control the plurality of motors so that the robot rides in the second position in a posture parallel to the direction corresponding to the horizontal length, and while the height difference between the first staircase and the second staircase changes, the plurality of motors
  • the plurality of motors may be controlled such that the height difference between the wheels corresponds to the height difference between the first staircase and the second staircase.
  • the at least one sensor includes a balance sensor
  • the processor obtains a sensing value indicating whether the robot is balanced through the balance sensor, and based on the sensing value, a height difference between the plurality of wheels.
  • the plurality of motors may be controlled to correspond to a height difference between the first staircase and the second staircase.
  • the processor acquires information about objects around the escalator through the at least one sensor, and based on the first information, the second information, and the information about the object, the boarding position and the robot The movement path from the current location to the boarding location can be identified.
  • a method for controlling a robot including a plurality of wheels, a plurality of motors for driving the plurality of wheels, and at least one sensor is provided.
  • Identifying, when the boarding position and the posture are identified, obtaining control information for controlling the robot to ride at the boarding position and in the posture, and controlling the plurality of motors based on the control information. Includes steps.
  • the first information includes information about a first length corresponding to the first width of the robot, information about a second length corresponding to the second width of the robot and shorter than the first length, and information about the plurality of wheels. May include information about height adjustment.
  • the second information is information about the horizontal length of each of the plurality of stairs that is perpendicular to the non-elevating element in the moving direction of the plurality of stairs and is longer than at least one of the first length and the second length, and the moving direction It includes information about the vertical length of each of the plurality of stairs that is parallel to the non-elevating element and is shorter than the horizontal length, and information about the height of the plurality of stairs, and the information about the height of the plurality of stairs is included in the plurality of stairs. It may include information about the height difference between adjacent stairs among the stairs and information about the rate of change of the height difference.
  • the step of identifying the boarding position and the posture of the robot includes determining the first position on the first stair among the plurality of stairs to the boarding position if at least one of the first length and the second length is shorter than the vertical length. It may include the step of identifying.
  • the step of controlling the plurality of motors includes, if the first length is shorter than the vertical length, the robot moves the first robot in an attitude such that the direction corresponding to the first length is parallel to the direction corresponding to the vertical length. controlling the plurality of motors to ride in position; and if the first length is longer than the vertical length and the second length is shorter than the vertical length, a direction corresponding to the first length is a direction corresponding to the horizontal length. It may include controlling the plurality of motors so that the robot rides in the first position in a posture parallel to the robot.
  • FIG. 1 is a diagram briefly showing the configuration of a robot according to an embodiment of the present disclosure
  • FIG. 2 is a diagram showing the shape of a robot according to an embodiment of the present disclosure
  • FIG. 3 is a diagram showing the shape of a robot according to an embodiment of the present disclosure.
  • 4 and 5 are diagrams for explaining in detail the escalator boarding process of a robot according to an embodiment of the present disclosure
  • 6 and 7 are diagrams for explaining in detail the escalator boarding process of a robot according to an embodiment of the present disclosure
  • FIG. 8 is a diagram illustrating in detail the configuration of a robot according to an embodiment of the present disclosure.
  • Figure 9 is a flowchart showing a method of controlling a robot according to an embodiment of the present disclosure.
  • expressions such as “have,” “may have,” “includes,” or “may include” refer to the presence of the corresponding feature (e.g., component such as numerical value, function, operation, or part). , and does not rule out the existence of additional features.
  • expressions such as “A or B,” “at least one of A or/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together.
  • “A or B,” “at least one of A and B,” or “at least one of A or B” includes (1) at least one A, (2) at least one B, or (3) it may refer to all cases including both at least one A and at least one B.
  • a component e.g., a first component
  • another component e.g., a second component
  • any component may be directly connected to the other component or may be connected through another component (e.g., a third component).
  • a component e.g., a first component
  • another component e.g., a second component
  • it refers to the component and the other component. It may be understood that there are no other components (e.g., a third component) in between.
  • the expression “configured to” used in the present disclosure may mean, for example, “suitable for,” “having the capacity to,” depending on the situation. ,” can be used interchangeably with “designed to,” “adapted to,” “made to,” or “capable of.”
  • the term “configured (or set to)” may not necessarily mean “specifically designed to” in hardware.
  • the expression “a device configured to” may mean that the device is “capable of” working with other devices or components.
  • the phrase "processor configured (or set) to perform A, B, and C" refers to a processor dedicated to performing the operations (e.g., an embedded processor), or by executing one or more software programs stored on a memory device.
  • a 'module' or 'unit' performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Additionally, a plurality of 'modules' or a plurality of 'units' 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. 1 is a diagram briefly illustrating the configuration of a robot 100 according to an embodiment of the present disclosure. Additionally, FIG. 2 is a diagram showing the shape of the robot 100 according to an embodiment of the present disclosure, and FIG. 3 is also a diagram showing the shape of the robot 100 according to an embodiment of the present disclosure.
  • the robot 100 refers to a device that can move to a destination.
  • the robot 100 may be a service robot 100 such as a guidance robot 100, a cleaning robot 100, a retail service robot 100, etc., and may be a manufacturing robot 100 for performing work at a product manufacturing site. It may be a robot 100. Additionally, any device that can move to a destination may correspond to the robot 100.
  • the robot 100 may include a plurality of wheels 110, a plurality of motors 120, at least one sensor 130, a memory 140, and a processor 150.
  • the plurality of wheels 110 can move the robot 100 to its destination.
  • the plurality of wheels 110 can move the robot 100 from its current position to the boarding position of the escalator.
  • the robot 100 may include two wheels disposed on both left and right sides of the bottom of the body of the robot 100, and four wheels, two each disposed on the left and right sides of the bottom of the body of the robot 100. It may also include .
  • description will be made on the assumption that the robot 100 includes a plurality of wheels 110, but some embodiments may be implemented even when the robot 100 includes one wheel. .
  • the plurality of wheels 110 may be implemented to allow height adjustment. Specifically, the plurality of wheels 110 are connected to the body of the robot 100 through a height adjustment frame, and as the coupling distance between the plurality of wheels 110 and the height adjustment frame changes, the plurality of wheels 110 and The distance between the bodies of the robot 100 can be adjusted. Of course, various other technologies for height adjustment can be applied.
  • a plurality of motors 120 may drive a plurality of wheels 110. Specifically, some of the plurality of motors 120 may be connected to the wheels through a spindle, and may cause the wheels to roll by transmitting power generated by the plurality of motors 120 to the wheels. When implemented to allow height adjustment of the plurality of wheels 110, some of the plurality of motors 120 adjust the plurality of wheels 110 and the height adjustment frame by changing the coupling distance between the plurality of wheels 110 and the height adjustment frame. The distance between the bodies of the robot 100 can be adjusted. The plurality of motors 120 may also be used to implement various movements of the robot 100.
  • At least one sensor 130 may acquire various data about the robot 100 or the escalator.
  • at least one sensor 130 may include an optical sensor, a 3D distance sensor, a 2D distance sensor, a balance sensor, etc.
  • the at least one sensor 130 may be a charge coupled device (CCD) image sensor, a complementary metal oxide semiconductor (CMOS) image sensor, a lidar sensor, an inertial measurement unit (IMU), or a gyro. It may include a sensor (gyro sensor, gyroscope), acceleration sensor (accelerometer), global positioning system (GPS) sensor, vision sensor, and motion sensor.
  • any sensor capable of acquiring data about the robot 100 or escalator may be included in the sensor 130 without limitation on its type.
  • At least one instruction regarding the robot 100 may be stored in the memory 140 .
  • an O/S (Operating System) for driving the robot 100 may be stored in the memory 140.
  • various software programs or applications for operating the robot 100 may be stored in the memory 140.
  • the memory 140 may include a semiconductor memory such as flash memory or a magnetic storage medium such as a hard disk.
  • various software modules for operating the robot 100 may be stored in the memory 140, and the processor 150 controls the operation of the robot 100 by executing various software modules stored in the memory 140. can do. That is, the memory 140 is accessed by the processor 150, and data read/write/modify/delete/update, etc. can be performed by the processor 150.
  • memory 140 refers to memory 140, ROM (not shown), RAM (not shown) in the processor 150, or a memory card (not shown) mounted on the robot 100 (e.g., micro SD card). , memory stick).
  • the memory 140 stores image data, first information, second information, information about the boarding position, information about the posture of the robot 100, and control information about the robot 100 according to the present disclosure. You can.
  • various information may be stored in the memory 140, and the information stored in the memory 140 may be updated as it is received from an external device or input by a user.
  • the processor 150 controls the overall operation of the robot 100. Specifically, the processor 150 is connected to the configuration of the robot 100 including a plurality of wheels 110, a plurality of motors 120, at least one sensor 130, and a memory 140, as described above. By executing at least one instruction stored in the same memory 140, the overall operation of the robot 100 can be controlled.
  • Processor 150 may be implemented in various ways.
  • the processor 150 may include an application specific integrated circuit (ASIC), an embedded processor, a microprocessor, hardware control logic, a hardware finite state machine (FSM), and a digital signal processor.
  • ASIC application specific integrated circuit
  • FSM hardware finite state machine
  • DSP digital signal processor.
  • the term processor 150 may be used to include a CPU (Central Processing Unit), GPU (Graphics Processing Unit), and MPU (Main Processing Unit).
  • the processor 150 can control the robot 100 so that the robot 100 can stably board the escalator.
  • the meaning of the first information and the second information according to the present disclosure will first be described with reference to FIGS. 2 and 3, and then various embodiments according to control of the processor 150 will be described.
  • the term first information is used as a general term for information about the size of the robot 100.
  • the first information may include information about the first length, information about the second length, and information about height adjustment of the plurality of wheels 110.
  • the information about the height adjustment of the plurality of wheels 110 includes information about whether the plurality of wheels 110 can be height adjusted, information about the maximum value of the height adjustment, and information about the maximum speed of the height adjustment. It can be included.
  • the first length refers to a length representing the first width of the robot 100
  • the second length represents the second width of the robot 100 and refers to a length shorter than the first length. That is, it is assumed that the first length is greater than the second length. This is only for clearly explaining the exemplary embodiment, and the first length and the second length may be the same.
  • the robot 100 may include a rectangular parallelepiped-shaped body and two wheels.
  • the length of the side with the maximum width of the body of the robot 100 may be determined as the first length
  • the length of the side having the minimum width in the body of the robot 100 may be determined as the second length.
  • the robot 100 may include an elliptical pillar-shaped body and two wheels.
  • the length of the long axis of the ellipse with the maximum width in the body of the robot 100 is the first length. It can be determined as , and the length of the minor axis of the ellipse with the minimum width in the body of the robot 100 can be determined as the second length.
  • FIGS. 2 and 3 are merely examples, and the shape and number of wheels of the robot 100 may be implemented in various ways.
  • configurations different from those shown in FIGS. 2 and 3 e.g., manipulators, etc.
  • the rotation axis which is the center of rotation, is parallel to the direction of the second length (i.e., the rotation of the robot according to the rotation of the two wheels
  • the rotation axes of the two wheels may be implemented to be parallel to the direction of the first length, or may be implemented to be parallel to other directions.
  • the rotation axis refers to the axis that becomes the center of rotation of the plurality of wheels when the plurality of wheels rotate to move the robot 100.
  • two wheels The rotation axis may be the same.
  • the robot 100 may be implemented to rotate its body about an axis perpendicular to the ground while the plurality of wheels 110 are in contact with the ground.
  • the rotation axis of the plurality of wheels 110 is in contact with the ground. It can rotate 360 degrees around a vertical axis.
  • the first information may be stored in the memory 140 by the developer when manufacturing the robot 100, or may be received from an external device and stored in the memory 140.
  • the description will be made on the assumption that the first information is already stored in the memory 140.
  • the term second information is used as a general term for information about the sizes of a plurality of stairs included in the escalator.
  • the second information may include information about the horizontal length of the stairs, information about the vertical length of the stairs, and information about the heights of the stairs.
  • the horizontal length of the stairs refers to the length perpendicular to the direction of movement of the stairs of the escalator
  • the vertical length of the stairs refers to a length that is parallel to the direction of movement of the stairs of the escalator and is shorter than the horizontal length.
  • the stairs of an escalator are implemented in a rectangular shape.
  • the horizontal length of the stairs refers to the length of the longer side of the long and short sides of the rectangle forming the stairs
  • the vertical length of the stairs refers to the length of the long and short sides of the rectangle forming the stairs. It refers to the length of the short side of the middle.
  • the horizontal and vertical lengths of the stairs are the same, and this refers to the horizontal and vertical lengths of the stairs when they are exposed to the outside of the escalator.
  • Information about the height of the stairs may include information about the height difference between adjacent stairs among the stairs of the escalator and information about the rate of change of the height difference.
  • the processor 150 may acquire image data about the escalator through at least one sensor 130.
  • image data is used as a general term for data about the structure of the escalator and the size of the stairs.
  • image data may include image data about an escalator acquired through an image sensor and point cloud information acquired through a 3D lidar sensor, and may also include information about the structure of the escalator and the size of the stairs. If it is relevant, it may be included in the image data according to the present disclosure. Of course, depending on the embodiment, various data other than image data may be used in the present disclosure.
  • the processor 150 may obtain second information about the sizes of a plurality of stairs included in the escalator based on the image data.
  • the processor 150 not only acquires second information by performing processing and calculation processes according to a predefined algorithm on image data, but also learns to acquire second information according to the present disclosure when image data is input.
  • Second information may be obtained through a neural network model.
  • the processor 150 Based on the first information and the second information, the processor 150 identifies a boarding position where the robot 100 can board among a plurality of stairs and a posture of the robot 100 for boarding the robot 100 at the boarding position. can do.
  • the processor 150 may identify the first position on the first stair among the plurality of stairs as the boarding position. . That is, if at least one of the first and second lengths of the robot 100 is shorter than the vertical length of the stairs, it can be said that the robot 100 can ride on one staircase, so the processor 150 The first position on the first staircase among the plurality of stairs may be identified as the boarding position.
  • the first stair may be the first stair that appears based on the escalator's entrance when the robot 100 boards the escalator, or it may be the second stair.
  • the process of identifying the first staircase among the plurality of stairs may be performed based on the distance between the robot 100 and the escalator, the moving speed of the robot 100, etc.
  • the first position on the first staircase may be determined as an arbitrary area including the center of gravity of the plane (rectangle) of the first staircase. As will be described later, if an object exists on the first staircase, the object It may also be determined based on the location of .
  • the posture of the robot 100 is not a problem because the second length of the robot 100, defined as shorter than the first length, is also shorter than the vertical length of the stairs. No.
  • the posture of the robot 100 for stable riding on the first stairs must be adjusted. There is a need to identify
  • the processor 150 is in a posture in which the direction corresponding to the first length of the robot 100 is parallel to the direction corresponding to the vertical length of the stairs.
  • the plurality of motors 120 can be controlled so that the robot 100 rides in the first position. If the first length of the robot 100 is longer than the vertical length of the stairs and the second length of the robot 100 is shorter than the vertical length of the stairs, the processor 150 moves the direction corresponding to the first length of the robot 100 to the stairs.
  • the plurality of motors 120 can be controlled so that the robot 100 rides in the first position in an attitude parallel to the direction corresponding to the horizontal length of the robots.
  • a method of boarding the robot 100 while changing its posture may vary depending on the structure and shape of the robot 100, and an example of this will be described in detail with reference to FIGS. 4 and 5.
  • the processor 150 identifies the first staircase among the plurality of stairs and the second position on the second stair adjacent to the first staircase as the boarding position. can do. That is, if the first and second lengths of the robot 100 are longer than the vertical length of the stairs, it can be said that the robot 100 cannot ride on one staircase. Therefore, the processor 150 may use a plurality of stairs. The robot 100 can be boarded using the first staircase and the second staircase adjacent to the first staircase.
  • the second stair may be the stair that appears after the first stair, or may be the stair that appears before the first stair. It could be stairs.
  • the position on the first staircase and the second staircase may be determined as an arbitrary area including the center of gravity of the area including the plane of the first staircase and the plane of the second staircase, and the position of the first staircase and/or the second staircase If an object exists on the screen, it may be determined based on the location of the object.
  • the posture of the robot 100 for boarding the second position on the first and second stairs is not a problem.
  • the first length of the robot 100 is longer than twice the vertical length of the stairs and the second length of the robot 100 is shorter than twice the vertical length of the stairs, it is located at the second position on the first and second stairs. It is necessary to identify the posture of the robot 100 for stable boarding.
  • the processor 150 determines that the direction corresponding to the first length of the robot 100 is parallel to the direction corresponding to the vertical length of the stairs.
  • the plurality of motors 120 can be controlled so that the robot 100 rides in the second position in the desired posture. If the first length of the robot 100 is longer than twice the vertical length of the stairs and the second length of the robot 100 is shorter than twice the vertical length of the stairs, the processor 150 corresponds to the first length of the robot 100.
  • the plurality of motors 120 can be controlled so that the robot 100 rides in the second position in an attitude whose direction is parallel to the direction corresponding to the horizontal length of the stairs.
  • the processor 150 includes a plurality of motors such that the height difference between the plurality of wheels 110 corresponds to the height difference between the first staircase and the second staircase. 120) can be controlled. Specifically, the processor 150 determines the height difference between the plurality of wheels 110 between the first stair and the second stair, based on information about the height difference between adjacent stairs among the stairs of the escalator and the speed of change of the height difference. It is possible to enable stable riding of the robot 100 by adaptively adjusting the height of at least one of the plurality of wheels 110 to correspond to the height difference between stairs.
  • Adjusting the height difference between the plurality of wheels 110 to correspond to the height difference between the first and second stairs means that the height difference between the first and second stairs and the height between the plurality of wheels 110 It includes the meaning of maintaining the height difference between the first and second stairs and the height difference between the plurality of wheels 110 within a range that prevents the robot 100 from falling from the escalator, as well as when the difference is exactly the same. can do.
  • the processor 150 acquires a sensing value indicating whether the robot 100 is balanced through the balance sensor, and the obtained sensing Based on the value, the plurality of motors 120 may be controlled so that the height difference between the plurality of wheels 110 corresponds to the height difference between the first staircase and the second staircase.
  • a balance sensor such as a gyroscope or an acceleration sensor
  • a third position adjacent to the first or second staircase is provided.
  • the processor 150 may identify the second location on the first and second stairs as the boarding location when the first or second length of the robot 100 is shorter than twice the vertical length of the stairs.
  • the third position on the first, second, and third stairs may be identified as the boarding position.
  • the number of stairs subject to boarding may be determined based on the first and second lengths of the robot 100, as well as the left wheel and the left wheel among the plurality of wheels 110 of the robot 100. It may also be determined based on the distance between the right wheels.
  • the processor 150 may obtain control information for controlling the robot 100 to ride at the identified boarding position and in the identified posture. Additionally, the processor 150 may control the plurality of motors 120 based on the obtained control information.
  • the processor 150 identifies a movement path for moving the robot 100 from the current location of the robot 100 to the identified boarding position, and provides control information for moving the robot 100 to the movement path. It can be obtained. Additionally, the processor 150 may obtain control information to control the robot 100 to assume the identified posture at the boarding position. In particular, control information for changing the posture of the robot 100 may include information for changing the forward direction of the robot 100 and information for adjusting the height of at least one of the plurality of wheels 110. there is. The processor 150 controls the plurality of motors 120 based on the control information described above, allowing the robot 100 to ride at the identified boarding position and in the identified posture.
  • the processor 150 acquires information about objects around the escalator through at least one sensor 130, and determines the boarding position and the robot 100 based on the first information, second information, and information about the object. You can identify the movement path from your current location to your boarding location.
  • the processor 150 may control the robot 100 to wait at the current location until it is identified that the object does not exist within a preset threshold distance around the escalator. For example, if there is another object that boarded the escalator before the robot 100, the processor 150 processes the escalator after the distance between the object and the robot 100 becomes greater than the critical distance (i.e., the safety distance is secured). After the robot 100 is installed, the robot 100 can be controlled to board the escalator.
  • the critical distance i.e., the safety distance is secured
  • the processor 150 operates when the maximum height adjustment of the wheel is less than the height difference between adjacent stairs or the maximum speed of height adjustment of the wheel is the change rate of the height difference between stairs. In slower cases, it is difficult for the robot 100 to board the escalator stably, so the robot 100 may decide not to board the escalator.
  • the processor 150 identifies another movement path that does not go through the escalator, and controls the robot 100 to reach the destination through the other identified path. can do.
  • the processor 150 controls the plurality of motors 120 to perform a disembarkation operation of the robot 100 when the height difference between the boarding stairs and the preceding stairs is less than a preset threshold through the ground observation sensor. You can.
  • performing the disembarking operation is not limited to performing the disembarking operation of the robot 100 as soon as the height difference between the boarding stairs and the preceding stairs becomes less than a preset threshold, and performing the disembarking operation after a predetermined time. It may include the meaning that
  • the processor 150 may perform a disembarkation operation of the robot 100 based on the ground expansion being detected at the same height as the upper surface of the boarding stairs, and identify that the height difference between the plurality of wheels 110 is reduced. The disembarkation operation of the robot 100 may be performed based on this.
  • the processor 150 sends a voice warning and/or a gesture warning to the object through the output unit 180 (180 in FIG. 8). You can also print it out. If an object is identified as existing within a critical distance while the robot 100 is performing a disembarkation operation, the processor 150 moves the robot 100 backwards at a speed equal to the moving speed of the escalator and in the direction opposite to the moving direction of the escalator. A plurality of motors 120 can be controlled to maintain the position.
  • the processor 150 controls the communication unit 160 to transmit a request for emergency stop to the escalator management server, so that the escalator is emergency stopped. .
  • the robot 100 identifies the preferred boarding position for the escalator and the posture of the robot 100, and based on this, the robot 100 can stably board/disembark the escalator.
  • the robot 100 can be controlled.
  • the robot 100 can board the escalator by rotating its body, and adaptively controls the height of the plurality of wheels 110 in accordance with the speed of change in height difference between adjacent stairs to control the height of the escalator. You can also ride stably using two or more stairs. As a result, the robot 100 can adopt a path using an escalator as a movement path instead of another path, and thus the driving efficiency of the robot 100 can be significantly improved.
  • 4 and 5 are diagrams for explaining in detail the escalator boarding process of the robot 100 according to an embodiment of the present disclosure.
  • the x-axis corresponds to the moving direction of the escalator
  • the y-axis is parallel to the ground and corresponds to a direction perpendicular to the moving direction of the escalator
  • the z-axis corresponds to a direction perpendicular to the ground. That is, Figure 4 is a diagram showing the robot 100 riding on an escalator as seen from the side of the escalator, and Figure 5 is a diagram showing the operation of the robot 100 until boarding at the boarding position as seen from above the escalator. am.
  • the robot 100 is implemented in the shape shown in FIG. 2, includes two wheels, and when the two wheels rotate to move the robot 100
  • the explanation will be made on the assumption that the rotation axis, which is the center of rotation, is implemented to be parallel to the direction of the second length.
  • the following description will be made on the premise that the length of the side with the maximum width of the body of the robot 100 is the first length, and the length of the side with the minimum width of the body of the robot 100 is the second length.
  • the robot 100 may be located at the origin, and the origin refers to a location suitable for acquiring image data about the escalator through at least one sensor 130.
  • the processor 150 may identify the origin, which is a suitable location for acquiring image data for the escalator, based on image data for the escalator acquired before the robot 100 arrives at the origin.
  • the origin may be determined according to the developer's or user's settings.
  • FIG. 5 shows a boarding process of the robot 100 when the first length of the robot 100 is longer than the vertical length of the stairs and the second length of the robot 100 is shorter than the vertical length of the stairs.
  • the processor 150 may identify the first position on the first staircase among the plurality of stairs as the boarding position. You can. That is, if at least one of the first and second lengths of the robot 100 is shorter than the vertical length of the stairs, it can be said that the robot 100 can ride on one staircase, so the processor 150
  • the first position on the first staircase among the plurality of stairs may be identified as the boarding position. For example, in the examples according to FIGS. 4 and 5, the area 50 of FIG. 5 may be identified as the first location.
  • the processor 150 uses the robot 100 to allow the robot 100 to ride in the first position in a posture in which the direction corresponding to the first length of the robot 100 is parallel to the direction corresponding to the horizontal length of the stairs. ) can be identified by its posture.
  • the direction corresponding to the first length of the robot 100 i.e., the direction corresponding to the front of the robot 100 in the examples of FIGS. 4 and 5 is rotated by 90 degrees.
  • the posture rotated counterclockwise can be identified as the posture in the first position.
  • the processor 150 identifies a movement path for moving the robot 100 from the current location of the robot 100 (i.e., the origin in FIG. 5) to the boarding position, and provides a path for moving the robot 100 to the movement path. Control information can be obtained.
  • the first position is determined to be the area 50 of FIG. 5 and the robot 100 rotates counterclockwise by 90 degrees in the direction corresponding to the first length. It can be decided based on the fact that That is, when the robot 100 gets on the area 50 of FIG. 5 while rotating counterclockwise, the movement path of the robot 100 may be determined to pass through the right side rather than the center of the escalator.
  • the processor 150 may determine the movement path of the robot 100 by comprehensively considering the boarding position of the robot 100 and the posture of the robot 100. there is.
  • Figures 6 and 7 are diagrams for explaining in detail the escalator boarding process of the robot 100 according to an embodiment of the present disclosure.
  • FIG. 6 is a view showing the robot 100 riding on an escalator as seen from the side of the escalator
  • FIG. 7 is a view showing the operation of the robot 100 until boarding at the boarding position as seen from above the escalator. am.
  • the robot 100 is implemented in the shape shown in FIG. 2, includes two wheels, and the robot 100
  • the rotation axis which is the center of rotation
  • the following description will be made on the premise that the length of the side with the maximum width of the body of the robot 100 is the first length, and the length of the side with the minimum width of the body of the robot 100 is the second length.
  • first and second lengths of the robot 100 are longer than the vertical length of the stairs, and the first length of the robot 100 is longer than twice the vertical length of the stairs and the second length of the robot 100 If is shorter than twice the vertical length of the stairs, it indicates the boarding process of the robot 100.
  • the processor 150 moves the first staircase among the plurality of stairs and a second position on the second staircase adjacent to the first staircase. can be identified by the boarding location. That is, if the first and second lengths of the robot 100 are longer than the vertical length of the stairs, it can be said that the robot 100 cannot ride on one staircase. Therefore, the processor 150 may use a plurality of stairs.
  • the robot 100 can be boarded using the first staircase and the second staircase adjacent to the first staircase. For example, in the examples according to FIGS. 6 and 7 , the area 70 of FIG. 7 may be identified as the second location.
  • the processor 150 uses the robot 100 to allow the robot 100 to ride in the second position in a posture in which the direction corresponding to the first length of the robot 100 is parallel to the direction corresponding to the horizontal length of the stairs. ) can be identified by its posture. For example, in the examples shown in FIGS. 6 and 7 , a posture in which the direction corresponding to the first length of the robot 100 is rotated counterclockwise by 90 degrees may be identified as the posture in the second position.
  • the processor 150 can control the robot 100 to board the robot 100 at the identified boarding position and in the identified posture.
  • the resulting control process is as shown in FIG. 7: 1) It may include a movement process, 2) a rotation process, and 3) a height adjustment process.
  • the robot 100 located at the origin in FIG. 7, the robot 10 performing the rotation process, and the robot 20 performing the height adjustment are not different from each other, but are the positions of the same robot 100 at different times. It indicates posture. Since the movement process and rotation process of the robot 100 have been described in detail in the description of the embodiment of FIGS. 4 and 5, the height adjustment process will be described below.
  • the robot 100 moves according to the movement path of FIG. 7 to a second position on the first stair (the first stair from the left in FIG. 7) and the second stair ((the second stair from the left in FIG. 7) of the escalator.
  • the first and second stairs correspond to the third and fourth stairs from the left in FIG. 7 It moves to a position where it moves. And as a result, a height difference occurs between the first stair and the second stair.
  • the robot 100 may fall backwards based on the moving direction of the escalator.
  • the processor 150 sets the plurality of wheels 110 so that the height difference between the plurality of wheels 110 corresponds to the height difference between the first staircase and the second staircase.
  • the motor 120 can be controlled.
  • the processor 150 determines the height difference between the plurality of wheels 110 between the first stair and the second stair, based on information about the height difference between adjacent stairs among the stairs of the escalator and the speed of change of the height difference. It is possible to enable stable riding of the robot 100 by adaptively adjusting the height of at least one of the plurality of wheels 110 to correspond to the height difference between stairs.
  • the processor 150 determines the height between the left wheel of the robot 100 located on the first staircase and the right wheel of the robot 100 located on the second staircase.
  • the plurality of motors 120 may be controlled so that the difference matches the height difference between the first staircase and the second staircase.
  • the processor 150 controls the operation of the robot 100 so that the robot 100 moves to the stairs and gets on when there is little difference in height between the first and second stairs of the elevator so that they are flat or close to a flat level. can do.
  • the direction corresponding to the first length of the robot 100 and the direction corresponding to the second length are perpendicular to each other.
  • the direction corresponding to the first length and the second direction are perpendicular to each other. If the directions corresponding to the lengths are not perpendicular to each other, a rotational motion different from the above-described embodiment may be performed depending on the shape of the robot 100.
  • the processor 150 determines the maximum width of the robot 100 ( For example, in FIG. 7, it is identified whether the diagonal length of the square representing the shape of the robot 100 viewed from above is shorter than the horizontal length of the escalator stairs, and the maximum width of the robot 100 is greater than the horizontal length of the stairs. Only in short cases, the control process according to the above-described embodiment can be performed.
  • FIG. 8 is a diagram illustrating in detail the configuration of the robot 100 according to an embodiment of the present disclosure.
  • the robot 100 includes a plurality of wheels 110, a plurality of motors 120, at least one sensor 130, a memory 140, and a processor 150, as well as a communication unit 160. ), an input unit 170, and an output unit 180 may be further included.
  • the configurations shown in FIGS. 1 and 8 are merely exemplary, and of course, new configurations may be added or some configurations may be omitted in addition to the configurations shown in FIGS. 1 and 8.
  • the communication unit 160 includes a circuit and can perform communication with an external device. Specifically, the processor 150 can receive various data or information from an external device connected through the communication unit 160, and can also transmit various data or information to the external device.
  • the communication unit 160 may include at least one of a WiFi module, a Bluetooth module, a wireless communication module, an NFC module, and a UWB module (Ultra Wide Band).
  • the WiFi module and the Bluetooth module can each communicate using WiFi and Bluetooth methods.
  • various connection information such as SSID is first transmitted and received, and various information can be transmitted and received after establishing a communication connection using this.
  • the wireless communication module can perform communication according to various communication standards such as IEEE, Zigbee, 3rd Generation (3G), 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE), and 5th Generation (5G).
  • the NFC module can perform communication using the NFC (Near Field Communication) method using the 13.56MHz band among various RF-ID frequency bands such as 135kHz, 13.56MHz, 433MHz, 860 ⁇ 960MHz, 2.45GHz, etc.
  • the UWB module can accurately measure ToA (Time of Arrival), which is the time for a pulse to reach the target, and AoA (Angle of Arrival), which is the angle of arrival of the pulse at the transmitter. Precise distance and position recognition is possible within an error range of several tens of centimeters.
  • the processor 150 may receive user commands for controlling the operation of the robot 100 from an external device through the communication unit 160.
  • the processor 150 may receive information about the location of the escalator from an external device through the communication unit 160.
  • the processor 150 may receive first information about the size of the robot 100, image data about an escalator, or second information about the size of a plurality of stairs, etc. from an external device through the communication unit 160.
  • the processor 150 may control the communication unit 160 to transmit first information and second information according to the present disclosure to an external device.
  • the processor 150 controls the communication unit 160 to transmit a request for emergency stop to the escalator management server, so that the escalator is emergency stopped. .
  • the input unit 170 includes a circuit, and the processor 150 can receive user commands for controlling the operation of the robot 100 through the input unit 170.
  • the input unit 170 may be comprised of a microphone, a camera (not shown), and a remote control signal receiver (not shown).
  • the input unit 170 may be implemented as a touch screen included in the display.
  • the microphone can receive voice signals and convert the received voice signals into electrical signals.
  • the processor 150 may obtain a user command for controlling the operation of the robot 100 through the input unit 170.
  • the user command may be a user command for the robot 100 to board the escalator, a user command for the robot 100 to move to a specific destination, or a user command for the robot 100 to perform a specific task. It could be a command. That is, the escalator boarding process according to the present disclosure may be performed based on a user command that causes the robot 100 to move to a specific destination or a user command that causes the robot 100 to perform a specific task.
  • the output unit 180 includes a circuit, and the processor 150 can output various functions that the robot 100 can perform through the output unit 180. And, the output unit 180 may include at least one of a display, a speaker, and an indicator.
  • the display can output image data under the control of the processor 150.
  • the display may output images previously stored in the memory 140 under the control of the processor 150.
  • the display may display a user interface (User Interface) stored in the memory 140.
  • the display can be implemented as a liquid crystal display panel (LCD), organic light emitting diodes (OLED), etc., and in some cases, the display can also be implemented as a flexible display, transparent display, etc.
  • the display is not limited to a specific type.
  • the speaker can output audio data under the control of the processor 150, and the indicator can be turned on under the control of the processor 150.
  • the processor 150 may output a guidance message indicating that the robot 100 has completed boarding the escalator through the output unit 180. Additionally, the processor 150 may output a guidance message indicating that the robot 100 cannot board the escalator through the output unit 180.
  • the guidance message indicating that the robot 100 cannot board the escalator may include information about a new route that does not use the escalator.
  • Figure 9 is a flowchart showing a control method of the robot 100 according to an embodiment of the present disclosure.
  • the robot 100 may obtain first information about the size of the robot 100 (S910).
  • the first information may be stored in the memory by the developer when manufacturing the robot 100, or may be received from an external device and stored in the memory.
  • the robot 100 may acquire image data about the escalator through at least one sensor (S920).
  • Information about the structure of the escalator and the size of the stairs may be included in the image data according to the present disclosure, and depending on the embodiment, various data other than the form of image data may also be used.
  • the robot 100 may obtain second information about the sizes of a plurality of stairs included in the escalator based on the image data (S930). And, based on the first information and the second information, the robot 100 determines the posture of the robot 100 for boarding the robot 100 at a boarding position and a boarding position where the robot 100 can board among a plurality of stairs. can be identified (S940).
  • the robot 100 may identify the first position on the first staircase among the plurality of stairs as the boarding position.
  • the robot 100 is positioned in the first posture such that the direction corresponding to the first length of the robot 100 is parallel to the direction corresponding to the vertical length of the stairs.
  • a plurality of motors can be controlled so that the robot 100 rides on the desired location. If the first length of the robot 100 is longer than the vertical length of the stairs and the second length of the robot 100 is shorter than the vertical length of the stairs, the robot 100 moves in the direction corresponding to the first length of the robot 100 A plurality of motors can be controlled so that the robot 100 rides in the first position in an attitude parallel to the direction corresponding to the horizontal length of the robots.
  • the processor may identify the first staircase among the plurality of stairs and the second position on the second stair adjacent to the first staircase as the boarding position. .
  • the robot 100 is positioned in a posture where the direction corresponding to the first length of the robot 100 is parallel to the direction corresponding to the vertical length of the stairs.
  • a plurality of motors can be controlled so that the robot 100 rides in the second position. If the first length of the robot 100 is longer than twice the vertical length of the stairs and the second length of the robot 100 is shorter than twice the vertical length of the stairs, the robot 100 corresponds to the first length of the robot 100.
  • a plurality of motors can be controlled so that the robot 100 rides in the second position in an attitude whose direction is parallel to the direction corresponding to the horizontal length of the stairs.
  • the robot 100 may control the plurality of motors so that the height difference between the plurality of wheels corresponds to the height difference between the first and second stairs.
  • the robot 100 determines the height difference between the plurality of wheels between the first and second stairs based on information about the height difference between adjacent stairs among the stairs of the escalator and the speed of change of the height difference. It is possible to enable stable riding of the robot 100 by adaptively adjusting the height of at least one of the plurality of wheels to correspond to the height difference.
  • the robot 100 can obtain control information to control the robot 100 to ride at the identified boarding position and in the identified posture (S950).
  • the robot 100 can control a plurality of motors based on the obtained control information (S960).
  • the robot 100 identifies a movement path for moving the robot 100 from the current location of the robot 100 to the identified boarding position, and provides control information for moving the robot 100 to the movement path. It can be obtained. Additionally, the robot 100 may obtain control information to control the robot 100 to assume an identified posture at the boarding position. In particular, control information for changing the posture of the robot 100 may include information for changing the forward direction of the robot 100 and information for adjusting the height of at least one of the plurality of wheels. The robot 100 can control a plurality of motors based on the control information described above, allowing the robot 100 to ride at an identified boarding position and in an identified posture.
  • the control method of the robot 100 may be implemented as a program and provided to the robot 100.
  • a program including a control method for the robot 100 may be stored and provided in a non-transitory computer readable medium.
  • the control method of the robot 100 includes obtaining first information about the size of the robot 100. , acquiring image data for the escalator through at least one sensor, acquiring second information about the size of a plurality of stairs included in the escalator based on the image data, based on the first information and the second information.
  • the robot 100 may include obtaining control information for controlling the vehicle to ride at the identified riding position in the identified posture, and controlling a plurality of motors based on the control information.
  • control method of the robot 100 and the computer-readable recording medium including a program for executing the control method of the robot 100 have been briefly described, but this is only to omit redundant description, and the robot (100) ), of course, can be applied to a control method of the robot 100 and a computer-readable recording medium including a program that executes the control method of the robot 100.
  • the robot 100 identifies the preferred boarding position on the escalator and the posture of the robot 100, and based on this, the robot 100 can be controlled to ride stably on the escalator. .
  • the robot 100 can board an escalator by rotating its body, and can adaptively control the height of a plurality of wheels in accordance with the speed of change in height difference between adjacent stairs to move two or more wheels of the escalator. You can also ride safely using stairs. As a result, the robot 100 can adopt a path using an escalator as a movement path instead of another path, and thus the driving efficiency of the robot 100 can be significantly improved.
  • Functions related to the above-described functions may be performed through memory and a processor.
  • the processor may consist of one or multiple processors.
  • one or more processors may be general-purpose processors such as CPU, AP, GPU, etc. It may be a processor dedicated to graphics, such as a VPU, or a processor dedicated to artificial intelligence, such as an NPU.
  • One or more processors control input data to be processed according to predefined operation rules or artificial intelligence models stored in non-volatile memory and volatile memory.
  • Predefined operation rules or artificial intelligence models are characterized by being created through learning.
  • being created through learning means that a predefined operation rule or artificial intelligence model with desired characteristics is created by applying a learning algorithm to a large number of learning data.
  • This learning may be accomplished in the device itself that performs artificial intelligence according to the present disclosure, or may be accomplished through a separate server/system.
  • An artificial intelligence model may be composed of multiple neural network layers. Each layer has multiple weight values, and layer operations are performed through the operation results of the previous layer and multiple weight values.
  • Examples of neural networks include CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN (Bidirectional Recurrent Deep Neural Network), and GAN. (Generative Adversarial Networks) and Deep Q-Networks (Deep Q-Networks), and the neural network in the present disclosure is not limited to the above examples except as specified.
  • a learning algorithm is a method of training a target device (eg, the robot 100) using a plurality of learning data so that the target device can make decisions or make predictions on its own.
  • Examples of learning algorithms include supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, and the learning algorithm in the present disclosure is specified. Except, it is not limited to the examples described above.
  • a storage medium that can be read by a device may be provided in the form of a non-transitory storage medium.
  • 'non-transitory storage medium' simply means that it is a tangible device and does not contain signals (e.g. electromagnetic waves). This term refers to cases where data is semi-permanently stored in a storage medium and temporary storage media. It does not distinguish between cases where it is stored as .
  • a 'non-transitory storage medium' may include a buffer where data is temporarily stored.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • the computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or via an application store (e.g. Play Store TM ) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smartphones) or online.
  • a machine-readable storage medium e.g. compact disc read only memory (CD-ROM)
  • an application store e.g. Play Store TM
  • two user devices e.g. It can be distributed (e.g. downloaded or uploaded) directly between smartphones) or online.
  • at least a portion of the computer program product e.g., a downloadable app
  • a machine-readable storage medium such as the memory of a manufacturer's server, an application store's server, or a relay server. It can be temporarily stored or created temporarily.
  • 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. Alternatively, other sub-components may be further 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.
  • 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.
  • unit or “module” used in this disclosure includes a unit comprised of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example.
  • a “part” or “module” may be an integrated part, a minimum unit that performs one or more functions, or a part thereof.
  • a module may be comprised of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • Various embodiments may be implemented as software including instructions stored in a machine-readable storage media that can be read by a machine (e.g., a computer).
  • the device calls the stored instructions from the storage medium, and calls the A device capable of operating according to a given command may include an electronic device (eg, robot 100) according to the disclosed embodiments.
  • the processor may perform the function corresponding to the instruction directly or using other components under the control of the processor.
  • Instructions may contain code generated or executed by a compiler or interpreter.

Landscapes

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

Abstract

로봇 및 로봇의 제어 방법이 개시된다. 특히, 본 개시에 따른 로봇은 복수의 휠(wheel), 복수의 휠을 구동하기 위한 복수의 모터, 적어도 하나의 센서, 로봇의 크기에 대한 제1 정보가 저장되는 메모리 및 적어도 하나의 센서로부터 에스컬레이터에 대한 이미지 데이터를 획득하고, 이미지 데이터에 기초하여 에스컬레이터에 포함된 복수의 계단의 크기에 대한 제2 정보를 획득하고, 제1 정보 및 제2 정보에 기초하여, 복수의 계단 중 로봇이 상기 에스컬레이터에 탑승이 가능한 탑승 위치 및 탑승 위치에 로봇이 탑승하도록 하기 위한 로봇의 자세를 식별하며, 탑승 위치 및 자세가 식별되면, 로봇이 식별된 탑승 위치에 식별된 자세로 탑승하도록 제어하기 위한 제어 정보를 획득하고, 제어 정보에 기초하여 복수의 모터를 제어하는 프로세서를 포함한다. 그 밖에도 다양한 실시 예가 가능하다.

Description

로봇 및 로봇의 제어 방법
본 개시는 로봇 및 로봇의 제어 방법에 관한 것으로서, 구체적으로는 에스컬레이터에 안정적인 탑승 및 하차가 가능한 로봇 및 이의 제어 방법에 관한 것이다.
근래에는 로봇에 대한 기술의 발전 속도가 가속화되고 있다. 특히, 최근에는 청소 로봇, 서비스 로봇, 산업용 로봇 등과 같은 다양한 유형의 로봇이 실생활에 이용되고 있으며, 이들 로봇의 활용 가능성을 높이기 위해서는 로봇이 임무를 수행하고자 하는 목적지까지 효율적으로 이동하는 것이 중요하다.
그런데, 로봇이 목적지까지 이동할 때 층간 이동이 필요한 경우가 있을 수 있으며, 이 경우 로봇은 계단, 엘리베이터 또는 에스컬레이터 등을 이용하여 층간 이동하는 것을 고려할 수 있다. 그러나, 계단을 통한 층간 이동은 계단을 통한 층간 이동이 가능하도록 하는 폼 팩터를 갖춘 로봇에 한하여 적용 가능한 방법이다.
엘리베이터를 통한 층간 이동도 하나의 방법이 될 수는 있으나, 엘리베이터까지의 이동에 따른 시간과 엘리베이터의 도착을 기다리는 시간만큼 목적지까지의 이동 시간을 증가시킬 수 있으며, 엘리베이터의 한정적인 내부 공간에 다수의 사람들과 함께 탑승해야 하는 상황에서는 탑승 자체가 제한되거나 탑승을 하더라도 다수의 사람들에게 불편을 초래할 수 있다.
따라서, 에스컬레이터를 통해 층간 이동을 하는 것이 주행 효율을 향상시키기 위한 방법일 수 있다. 다만 에스컬레이터에 로봇이 탑승하거나 하차하는 경우, 탑승 가능성과 안정성에 대한 문제가 발생할 수 있다. 구체적으로, 로봇의 너비 또는 로봇의 좌측 휠(wheel)과 우측 휠 사이의 거리가 에스컬레이터 계단의 폭보다 짧은 경우에는 에스컬레이터에 대한 로봇의 탑승이 제한될 수 있다. 뿐만 아니라, 에스컬레이터에 대한 로봇의 탑승이 가능한 경우에도, 로봇의 무게 중심이 하방으로 토크가 발생하는 위치에 있다면, 에스컬레이터의 상승 또는 하강시 로봇은 에스컬레이터에서 추락할 수 있게 된다.
본 개시는 상술한 바와 같은 문제점을 극복하기 위한 것으로서, 본 개시의 목적은 에스컬레이터에 안정적인 탑승 및 하차가 가능한 로봇 및 로봇의 제어 방법을 제공하기 위한 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 로봇은 복수의 휠(wheel), 상기 복수의 휠을 구동하기 위한 복수의 모터, 적어도 하나의 센서, 상기 로봇의 크기에 대한 제1 정보가 저장되는 메모리 및 상기 적어도 하나의 센서로부터 에스컬레이터에 대한 이미지 데이터를 획득하고, 상기 이미지 데이터에 기초하여 상기 에스컬레이터에 포함된 복수의 계단의 크기에 대한 제2 정보를 획득하고, 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 복수의 계단 중 상기 로봇이 상기 에스컬레이터에 탑승이 가능한 탑승 위치 및 상기 탑승 위치에 상기 로봇이 탑승하도록 하기 위한 상기 로봇의 자세를 식별하며, 상기 탑승 위치 및 상기 자세가 식별되면, 상기 로봇이 상기 탑승 위치에 상기 자세로 탑승하도록 제어하기 위한 제어 정보를 획득하고, 상기 제어 정보에 기초하여 상기 복수의 모터를 제어하는 프로세서를 포함한다.
여기서, 상기 제1 정보는 상기 로봇의 제1 너비에 대응되는 제1 길이에 대한 정보, 상기 로봇의 제2 너비에 대응되며 상기 제1 길이보다 짧은 제2 길이에 대한 정보 및 상기 복수의 휠의 높이 조절에 대한 정보를 포함할 수 있다.
여기서, 상기 제2 정보는 상기 복수의 계단의 진행 방향의 비상승 요소에 수직이며 상기 제1 길이 및 상기 제2 길이 중 적어도 하나보다 긴 상기 복수의 계단 각각의 가로 길이에 대한 정보, 상기 진행 방향의 비상승 요소에 평행이며 상기 가로 길이보다 짧은 상기 복수의 계단 각각의 세로 길이에 대한 정보 및 상기 복수의 계단의 높이에 대한 정보를 포함하고, 상기 복수의 계단의 높이에 대한 정보는 상기 복수의 계단 중 인접한 계단들 사이의 높이 차이에 대한 정보 및 상기 높이 차이의 변화 속도에 대한 정보를 포함할 수 있다.
여기서, 상기 프로세서는 상기 제1 길이 및 상기 제2 길이 중 적어도 하나가 상기 세로 길이보다 짧으면, 상기 복수의 계단 중 제1 계단 상의 제1 위치를 상기 탑승 위치로 식별할 수 있다.
여기서, 상기 프로세서는 상기 제1 길이가 상기 세로 길이보다 짧으면, 상기 로봇이 상기 제1 길이에 대응되는 방향이 상기 세로 길이에 대응되는 방향과 평행이 되는 자세로 상기 제1 위치에 탑승하도록 상기 복수의 모터를 제어하며, 상기 제1 길이가 상기 세로 길이보다 길고 상기 제2 길이가 상기 세로 길이보다 짧으면, 상기 제1 길이에 대응되는 방향이 상기 가로 길이에 대응되는 방향과 평행이 되는 자세로 상기 제1 위치에 상기 로봇이 탑승하도록 상기 복수의 모터를 제어할 수 있다.
한편, 상기 프로세서는 상기 제1 길이 및 상기 제2 길이가 상기 세로 길이보다 길면, 상기 복수의 계단 중 상기 제1 계단 및 상기 제1 계단에 인접한 제2 계단 사이에 중첩되는 제2 위치를 상기 탑승 위치로 식별할 수 있다.
여기서, 상기 프로세서는 상기 제1 길이가 상기 세로 길이보다 길고 상기 제1 길이가 상기 세로 길이의 두배보다 짧으면, 상기 제1 길이에 대응되는 방향이 상기 세로 길이에 대응되는 방향과 평행이 되는 자세로 상기 로봇이 상기 제2 위치에 탑승하도록 상기 복수의 모터를 제어하며, 상기 제1 계단 및 상기 제2 계단 사이의 높이 차이가 변화하는 동안, 상기 복수의 휠 사이의 높이 차이가 상기 제1 계단 및 상기 제2 계단 사이의 높이 차이에 대응되도록 상기 복수의 모터를 제어할 수 있다.
한편, 상기 프로세서는 상기 제1 길이가 상기 세로 길이의 두배보다 길고 상기 제2 길이가 상기 세로 길이보다 길고 상기 제2 길이가 상기 세로 길이의 두배보다 짧으면, 상기 제1 길이에 대응되는 방향이 상기 가로 길이에 대응되는 방향과 평행이 되는 자세로 상기 로봇이 상기 제2 위치에 탑승하도록 상기 복수의 모터를 제어하며, 상기 제1 계단 및 상기 제2 계단 사이의 높이 차이가 변화하는 동안, 상기 복수의 휠 사이의 높이 차이가 상기 제1 계단 및 상기 제2 계단 사이의 높이 차이에 대응되도록 상기 복수의 모터를 제어할 수 있다.
여기서, 상기 적어도 하나의 센서는 평형 센서를 포함하고, 상기 프로세서는 상기 평형 센서를 통해 상기 로봇의 평형 여부를 나타내는 센싱 값을 획득하고, 상기 센싱 값에 기초하여, 상기 복수의 휠 사이의 높이 차이가 상기 제1 계단 및 상기 제2 계단 사이의 높이 차이에 대응되도록 상기 복수의 모터를 제어할 수 있다.
한편, 상기 프로세서는 상기 적어도 하나의 센서를 통해 상기 에스컬레이터 주변의 오브젝트에 대한 정보를 획득하고, 상기 제1 정보, 상기 제2 정보 및 상기 오브젝트에 대한 정보에 기초하여, 상기 탑승 위치 및 상기 로봇의 현재 위치에서부터 상기 탑승 위치까지의 이동 경로를 식별할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 복수의 휠(wheel), 상기 복수의 휠을 구동하기 위한 복수의 모터 및 적어도 하나의 센서를 포함하는 로봇의 제어 방법은 상기 로봇의 크기에 대한 제1 정보를 획득하는 단계, 상기 적어도 하나의 센서로부터 에스컬레이터에 대한 이미지 데이터를 획득하는 단계, 상기 이미지 데이터에 기초하여 상기 에스컬레이터에 포함된 복수의 계단의 크기에 대한 제2 정보를 획득하는 단계, 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 복수의 계단 중 상기 로봇이 상기 에스컬레이터에 탑승이 가능한 탑승 위치 및 상기 탑승 위치에 상기 로봇이 탑승하도록 하기 위한 상기 로봇의 자세를 식별하는 단계, 상기 탑승 위치 및 상기 자세가 식별되면, 상기 로봇이 상기 탑승 위치에 상기 자세로 탑승하도록 제어하기 위한 제어 정보를 획득하는 단계 및 상기 제어 정보에 기초하여 상기 복수의 모터를 제어하는 단계를 포함한다.
여기서, 상기 제1 정보는 상기 로봇의 제1 너비에 대응되는 제1 길이에 대한 정보, 상기 로봇의 제2 너비에 대응되며 상기 제1 길이보다 짧은 제2 길이에 대한 정보 및 상기 복수의 휠의 높이 조절에 대한 정보를 포함할 수 있다.
여기서, 상기 제2 정보는 상기 복수의 계단의 진행 방향의 비상승 요소에 수직이며 상기 제1 길이 및 상기 제2 길이 중 적어도 하나보다 긴 상기 복수의 계단 각각의 가로 길이에 대한 정보, 상기 진행 방향의 비상승 요소에 평행이며 상기 가로 길이보다 짧은 상기 복수의 계단 각각의 세로 길이에 대한 정보 및 상기 복수의 계단의 높이에 대한 정보를 포함하고, 상기 복수의 계단의 높이에 대한 정보는 상기 복수의 계단의 중 인접한 계단들 사이의 높이 차이에 대한 정보 및 상기 높이 차이의 변화 속도에 대한 정보를 포함할 수 있다.
여기서, 상기 탑승 위치 및 상기 로봇의 자세를 식별하는 단계는 상기 제1 길이 및 상기 제2 길이 중 적어도 하나가 상기 세로 길이보다 짧으면, 상기 복수의 계단 중 제1 계단 상의 제1 위치를 상기 탑승 위치로 식별하는 단계를 포함할 수 있다.
여기서, 상기 복수의 모터를 제어하는 단계는 상기 제1 길이가 상기 세로 길이보다 짧으면, 상기 로봇이 상기 제1 길이에 대응되는 방향이 상기 세로 길이에 대응되는 방향과 평행이 되는 자세로 상기 제1 위치에 탑승하도록 상기 복수의 모터를 제어하는 단계 및 상기 제1 길이가 상기 세로 길이보다 길고 상기 제2 길이가 상기 세로 길이보다 짧으면, 상기 제1 길이에 대응되는 방향이 상기 가로 길이에 대응되는 방향과 평행이 되는 자세로 상기 제1 위치에 상기 로봇이 탑승하도록 상기 복수의 모터를 제어하는 단계를 포함할 수 있다.
본 개시의 상기 및/또는 다른 양태는 첨부된 도면을 참조하여 본 개시의 특정 실시예를 설명함으로써 더욱 명백해질 것이다.
도 1은 본 개시의 일 실시 예에 따른 로봇의 구성을 간략하게 나타내는 도면,
도 2은 본 개시의 일 실시 예에 따른 로봇의 형상을 나타내는 도면,
도 3은 본 개시의 일 실시 예에 따른 로봇의 형상을 나타내는 도면,
도 4 및 도 5는 본 개시의 일 실시 예에 따른 로봇의 에스컬레이터 탑승 과정을 상세하게 설명하기 위한 도면,
도 6 및 도 7은 본 개시의 일 실시 예에 따른 로봇의 에스컬레이터 탑승 과정을 상세하게 설명하기 위한 도면,
도 8은 본 개시의 일 실시 예에 따른 로봇의 구성을 상세하게 나타내는 도면, 그리고,
도 9는 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 나타내는 흐름도이다.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다.
덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다.
대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
한편, 도면에서의 다양한 요소와 영역은 개략적으로 그려진 것이다. 따라서, 본 발명의 기술적 사상은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다.
이하에서는 첨부한 도면을 참고하여 본 개시에 따른 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 로봇(100)의 구성을 간략하게 나타내는 도면이다. 그리고, 도 2은 본 개시의 일 실시 예에 따른 로봇(100)의 형상을 나타내는 도면이고, 도 3 또한 본 개시의 일 실시 예에 따른 로봇(100)의 형상을 나타내는 도면이다.
로봇(100)은 목적지까지의 이동이 가능한 장치를 말한다. 예를 들어, 로봇(100)은 안내 로봇(100), 청소 로봇(100), 리테일 서비스 로봇(100) 등과 같은 서비스용 로봇(100)일 수 있으며, 제품의 제조 현장에서 작업을 수행하기 위한 제조용 로봇(100)일 수도 있다. 그 밖에도 목적지까지의 이동이 가능한 장치라면 로봇(100)에 해당될 수 있다.
도 1에 도시된 바와 같이, 로봇(100)은 복수의 휠(110), 복수의 모터(120), 적어도 하나의 센서(130), 메모리(140) 및 프로세서(150)를 포함할 수 있다.
복수의 휠(110)(wheel)은 로봇(100)을 목적지로 이동시킬 수 있다. 특히, 복수의 휠(110)은 로봇(100)이 현재 위치에서 에스컬레이터의 탑승 위치로 이동시킬 수 있다. 예를 들어, 로봇(100)은 로봇(100)의 몸체 하단의 좌우 양측에 배치된 두 개의 휠을 포함할 수도 있으며, 로봇(100)의 몸체 하단의 좌우 양측에 각각 두 개씩 배치된 네 개의 휠을 포함할 수도 있다. 본 개시에 대한 설명에 있어서는 로봇(100)이 복수의 휠(110)을 포함하는 경우를 전제로 설명할 것이지만, 일부 실시 예는 로봇(100)이 하나의 휠을 포함하는 경우에도 구현될 수 있다.
복수의 휠(110)은 높이 조절이 가능하도록 구현될 수 있다. 구체적으로, 복수의 휠(110)은 높이 조절 프레임을 통해 로봇(100)의 몸체에 연결되며, 복수의 휠(110)과 높이 조절 프레임 사이의 결합 거리가 변경됨에 따라 복수의 휠(110)과 로봇(100)의 몸체 사이의 거리가 조절될 수 있다. 그 밖에도 높이 조절에 대한 다양한 기술이 적용될 수 있음은 물론이다.
복수의 모터(120)는 복수의 휠(110)을 구동시킬 수 있다. 구체적으로, 복수의 모터(120) 중 일부 모터는 굴대를 통해 바퀴와 연결되어, 복수의 모터(120)에 의해 발생된 동력을 바퀴에 전달함으로써 바퀴가 굴러가도록 할 수 있다. 복수의 휠(110)의 높이 조절이 가능하도록 구현된 경우, 복수의 모터(120) 중 일부 모터는 복수의 휠(110)과 높이 조절 프레임 사이의 결합 거리를 변경시킴으로써 복수의 휠(110)과 로봇(100)의 몸체 사이의 거리를 조절할 수 있다. 복수의 모터(120)는 그 밖에도 로봇(100)의 다양한 움직임을 구현하는 데 이용될 수 있다.
적어도 하나의 센서(130)는 로봇(100) 또는 에스컬레이터에 대한 다양한 데이터를 획득할 수 있다. 구체적으로, 적어도 하나의 센서(130)는 광 센서, 3차원 거리 센서, 2차원 거리 센서, 평형 센서 등을 포함할 수 있다. 예를 들어, 적어도 하나의 센서(130)는 CCD(charge coupled device) 이미지 센서, CMOS(complementary metal oxide semiconductor) 이미지 센서, 라이다 센서(lidar sensor), 관성 센서(inertial measurement unit, IMU), 자이로 센서(gyro sensor, gyroscope), 가속도 센서(acceleration sensor, accelerometer), GPS(global positioning system) 센서, 비전 센서 및 모션 센서 등을 포함할 수 있다. 상술한 예시 외에도 로봇(100) 또는 에스컬레이터에 대한 데이터를 획득할 수 있는 센서라면 그 종류에 대한 제한 없이 센서(130)에 포함될 수 있다.
메모리(140)에는 로봇(100)에 관한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 그리고, 메모리(140)에는 로봇(100)을 구동시키기 위한 O/S(Operating System)가 저장될 수 있다. 또한, 메모리(140)에는 로봇(100)이 동작하기 위한 각종 소프트웨어 프로그램이나 애플리케이션이 저장될 수도 있다. 그리고, 메모리(140)는 플래시 메모리(Flash Memory) 등과 같은 반도체 메모리나 하드디스크(Hard Disk) 등과 같은 자기 저장 매체 등을 포함할 수 있다.
구체적으로, 메모리(140)에는 로봇(100)이 동작하기 위한 각종 소프트웨어 모듈이 저장될 수 있으며, 프로세서(150)는 메모리(140)에 저장된 각종 소프트웨어 모듈을 실행하여 로봇(100)의 동작을 제어할 수 있다. 즉, 메모리(140)는 프로세서(150)에 의해 액세스되며, 프로세서(150)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
메모리(140)라는 용어는 메모리(140), 프로세서(150) 내 롬(미도시), 램(미도시) 또는 로봇(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함하는 의미로 사용될 수 있다.
특히, 메모리(140)는 본 개시에 따른 이미지 데이터, 제1 정보, 제2 정보, 탑승 위치에 대한 정보, 로봇(100)의 자세에 대한 정보 및 로봇(100)에 대한 제어 정보 등이 저장될 수 있다. 그 밖에도 다양한 정보가 메모리(140)에 저장될 수 있으며, 메모리(140)에 저장된 정보는 외부 장치로부터 수신되거나 사용자에 의해 입력됨에 따라 갱신될 수도 있다.
프로세서(150)는 로봇(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(150)는 복수의 휠(110), 복수의 모터(120), 적어도 하나의 센서(130) 및 메모리(140)를 포함하는 로봇(100)의 구성과 연결되며, 상술한 바와 같은 메모리(140)에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 로봇(100)의 동작을 전반적으로 제어할 수 있다.
프로세서(150)는 다양한 방식으로 구현될 수 있다. 예를 들어, 프로세서(150)는 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 임베디드 프로세서, 마이크로 프로세서, 하드웨어 컨트롤 로직, 하드웨어 유한 상태 기계(hardware Finite State Machine, FSM), 디지털 신호 프로세서(Digital Signal Processor, DSP) 중 적어도 하나로 구현될 수 있다. 프로세서(150)라는 용어는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 및 MPU(Main Processing Unit)등을 포함하는 의미로 사용될 수 있다.
특히, 프로세서(150)는 로봇(100)이 에스컬레이터에 안정적으로 탑승할 수 있도록 로봇(100)을 제어할 수 있다. 이하에서는 먼저 도 2 및 도 3을 참조하여 본 개시에 따른 제1 정보 및 제2 정보의 의미에 대해 설명한 후, 프로세서(150)의 제어에 따른 다양한 실시 예에 대해 설명한다.
제1 정보라는 용어는 로봇(100)의 크기에 대한 정보를 총칭하기 위한 용어로 사용된다. 구체적으로, 제1 정보는 제1 길이에 대한 정보, 제2 길이에 대한 정보 및 복수의 휠(110)의 높이 조절에 대한 정보를 포함할 수 있다. 먼저, 복수의 휠(110)의 높이 조절에 대한 정보는 복수의 휠(110)이 높이 조절이 가능한지 여부에 대한 정보, 높이 조절의 최대치에 대한 정보, 그리고 높이 조절의 최대 속도에 대한 정보 등을 포함할 수 있다.
제1 길이는 로봇(100)의 제1 너비를 나타내는 하나의 길이를 말하며, 제2 길이는 로봇(100)의 제2 너비를 나타내며 제1 길이보다 짧은 길이를 말한다. 즉, 제1 길이는 제2 길이보다 큰 것을 전제로 하는 바, 이는 예시적인 실시 예를 명확하게 설명하기 위한 것일 뿐, 제1 길이와 제2 길이는 동일할 수 있다.
도 2의 예시를 참조하면, 로봇(100)은 직육면체 형상의 몸체 및 두 개의 휠을 포함할 수 있으며, 이 경우 로봇(100)의 몸체에서 최대 너비를 갖는 변의 길이가 제1 길이로 결정될 수 있고, 로봇(100)의 몸체에서 최소 너비를 갖는 변의 길이가 제2 길이로 결정될 수 있다.
도 3의 예시를 참조하면, 로봇(100)은 타원 기둥 형상의 몸체 및 두 개의 휠을 포함할 수 있으며, 이 경우 로봇(100)의 몸체에서 최대 너비를 갖는 타원의 장축의 길이가 제1 길이로 결정될 수 있고, 로봇(100)의 몸체에서 최소 너비를 갖는 타원의 단축의 길이가 제2 길이로 결정될 수 있다.
다만, 도 2 및 도 3은 예시에 불과하며, 로봇(100)의 형상과 휠의 개수 등은 다양하게 구현될 수 있다. 또한, 도 2 및 도 3에 도시된 것과는 다른 구성(예: 매니퓰레이터 등)이 로봇(100)에 더 부가될 수 있으며, 이에 따라 로봇(100)의 제1 길이와 로봇(100)의 제2 길이 도 2 또는 도 3에 도시된 것과는 다르게 결정될 수 있다.
도 2 및 도 3에서는 로봇(100)의 이동을 위해 두 개의 휠이 회전할 때 그 회전의 중심이 되는 회전축이 제2 길이의 방향과 평행한 경우(즉, 두 개의 휠의 회전에 따른 로봇의 진행 방향이 제1 길이의 방향과 평행한 경우)를 도시하였으나, 실시 예들이 이에 국한되는 것은 아니다. 즉, 두 개의 휠의 회전축은 제1 길이의 방향과 평행하도록 구현될 수도 있으며, 그 밖에 다른 방향과 평행하도록 구현될 수도 있다. 여기서, 회전축은 로봇(100)의 이동을 위해 복수의 휠이 회전할 때 복수의 휠의 회전의 중심이 되는 축을 의미하며, 로봇(100)이 도 2 및 도 3과 같이 구현되는 경우 두 개의 휠의 회전축은 동일할 수 있다.
도 2 및 도 3에서는 복수의 휠(110)의 회전축이 제2 길이의 방향과 평행한 방향으로 고정된 경우를 도시하였으나, 실시 예들이 이에 국한되는 것은 아니다. 즉, 로봇(100)은 복수의 휠(110)이 지면에 접한 상태에서 지면에 수직인 축을 중심으로 몸체를 회전할 수 있도록 구현될 수 있으며, 이 경우 복수의 휠(110)의 회전축은 지면에 수직인 축을 기준으로 360도 방향으로 회전할 수 있다.
제1 정보는 로봇(100)의 제작 시에 개발자에 의해 메모리(140)에 저장되거나 또는 외부 장치로부터 수신되어 메모리(140)에 저장될 수 있다. 이하에서는 제1 정보가 메모리(140)에 기 저장되어 있음을 전제로 설명한다.
본 개시에 있어서 제2 정보라는 용어는 에스컬레이터에 포함된 복수의 계단의 크기에 대한 정보를 총칭하기 위한 용어로 사용된다. 구체적으로, 제2 정보는 계단의 가로 길이에 대한 정보, 계단의 세로 길이에 대한 정보 및 계단들의 높이에 대한 정보를 포함할 수 있다.
여기서, 계단의 가로 길이는 에스컬레이터의 계단들의 진행 방향에 수직인 길이를 말하며, 계단의 세로 길이는 에스컬레이터의 계단들의 진행 방향에 평행이며 가로 길이 보다 짧은 길이를 말한다. 즉, 에스컬레이터의 계단은 직사각형 형태로 구현되는바, 계단의 가로 길이는 계단을 이루는 직사각형의 긴 변과 짧은 변 중 긴 변의 길이를 말하며, 계단의 세로 길이는 계단을 이루는 직사각형의 긴 변과 짧은 변 중 짧은 변의 길이를 말한다. 본 개시에 있어서 계단들의 가로 길이와 세로 길이는 모두 동일한 것을 전제로 하며, 계단이 에스컬레이터의 외부로 노출된 상태의 가로 길이와 세로 길이를 의미한다.
계단의 가로 길이는 로봇(100)의 제1 길이 및 제2 길이 중 적어도 하나보다 긴 것을 전제로 설명한다. 이는 로봇(100)의 제1 길이 및 제2 길이 모두가 계단의 가로 길이보다 긴 경우에는 에스컬레이터에 탑승하기 어렵기 때문이다.
계단들의 높이에 대한 정보는 에스컬레이터의 계단들 중 인접한 계단들 사이의 높이 차이에 대한 정보 및 높이 차이의 변화 속도에 대한 정보를 포함할 수 있다.
프로세서(150)는 적어도 하나의 센서(130)를 통해 에스컬레이터에 대한 이미지 데이터를 획득할 수 있다. 여기서, 이미지 데이터라는 용어는 에스컬레이터의 구조와 계단들의 크기 등에 대한 데이터를 총칭하기 위한 용어로 사용된다. 예를 들어, 이미지 데이터는 이미지 센서를 통해 획득된 에스컬레이터에 대한 이미지 데이터 및 3차원 라이더 센서를 통해 획득된 포인트 클라우드 정보 등을 포함할 수 있으며, 그 밖에도 에스컬레이터의 구조와 계단들의 크기에 대한 정보에 관련된 것이라면 본 개시에 따른 이미지 데이터에 포함될 수 있다. 실시 예에 따라서는 이미지 데이터의 형태가 아닌 다양한 데이터들도 본 개시에 이용될 수 있음은 물론이다.
프로세서(150)는 이미지 데이터에 기초하여 에스컬레이터에 포함된 복수의 계단의 크기에 대한 제2 정보를 획득할 수 있다. 프로세서(150)는 이미지 데이터에 대해 기 정의된 알고리즘에 따른 처리 과정과 연산 과정을 수행하여 제2 정보를 획득할 수 있을 뿐만 아니라, 이미지 데이터가 입력되면 본 개시에 따른 제2 정보를 획득하도록 학습된 신경망 모델을 통해 제2 정보를 획득할 수도 있다.
프로세서(150)는 제1 정보 및 제2 정보에 기초하여, 복수의 계단 중 로봇(100)의 탑승이 가능한 탑승 위치 및 탑승 위치에 로봇(100)이 탑승하기 위한 로봇(100)의 자세를 식별할 수 있다.
구체적으로, 로봇(100)의 제1 길이 및 제2 길이 중 적어도 하나가 계단들의 세로 길이보다 짧으면, 프로세서(150)는 복수의 계단 중 제1 계단 상의 제1 위치를 탑승 위치로 식별할 수 있다. 즉, 로봇(100)의 제1 길이 및 제2 길이 중 적어도 하나가 계단들의 세로 길이보다 짧은 경우는 로봇(100)이 하나의 계단에 탑승할 수 있는 경우라고 할 수 있으므로, 프로세서(150)는 복수의 계단 중 제1 계단 상의 제1 위치를 탑승 위치로 식별할 수 있다.
여기서, 제1 계단은 로봇(100)이 에스컬레이터에 탑승하는 경우 에스컬레이터의 진입로를 기준으로 첫번째로 나타나는 계단일 수 있으며, 두 번째 계단일 수도 있다. 복수의 계단 중 제1 계단을 식별하는 과정은 로봇(100)과 에스컬레이터 사이의 거리, 로봇(100)의 이동 속도 등에 기초하여 수행될 수 있다. 그리고, 제1 계단 상의 제1 위치는 제1 계단의 평면(직사각형)의 무게 중심을 포함하는 임의의 영역으로 결정될 수도 있으며, 후술하는 바와 같이, 제1 계단 상에 오브젝트가 존재하는 경우에는 그 오브젝트의 위치에 기초하여 결정될 수도 있다.
로봇(100)의 제1 길이가 계단들의 세로 길이 보다 짧은 경우에는 제1 길이보다 짧은 것으로 정의된 로봇(100)의 제2 길이 역시 계단들의 세로 길이 보다 짧기 때문에 로봇(100)의 자세는 문제되지 않는다. 다만, 로봇(100)의 제1 길이가 계단들의 세로 길이보다 길고 로봇(100)의 제2 길이가 계단들의 세로 길이보다 짧은 경우에는 제1 계단에 안정적으로 탑승하기 위한 로봇(100)의 자세를 식별할 필요가 있다.
구체적으로, 로봇(100)의 제1 길이가 계단들의 세로 길이보다 짧으면, 프로세서(150)는 로봇(100)의 제1 길이에 대응되는 방향이 계단들의 세로 길이에 대응되는 방향과 평행이 되는 자세로 제1 위치에 로봇(100)이 탑승하도록 복수의 모터(120)를 제어할 수 있다. 로봇(100)의 제1 길이가 계단들의 세로 길이보다 길고 로봇(100)의 제2 길이가 계단들의 세로 길이보다 짧으면, 프로세서(150)는 로봇(100)의 제1 길이에 대응되는 방향이 계단들의 가로 길이에 대응되는 방향과 평행이 되는 자세로 제1 위치에 로봇(100)이 탑승하도록 복수의 모터(120)를 제어할 수 있다. 로봇(100)의 자세를 변경하면서 탑승하는 방법은 로봇(100)의 구조와 형상에 따라 달라질 수 있으며, 그 중 일 예시에 대해서는 도 4 및 도 5를 참조하여 상세하게 설명한다.
로봇(100)의 제1 길이 및 제2 길이가 계단들의 세로 길이보다 길면, 프로세서(150)는 복수의 계단 중 제1 계단 및 제1 계단에 인접한 제2 계단 상의 제2 위치를 탑승 위치로 식별할 수 있다. 즉, 로봇(100)의 제1 길이 및 제2 길이가 계단들의 세로 길이보다 긴 경우는 로봇(100)이 하나의 계단에 탑승할 수 없는 경우라고 할 수 있으므로, 프로세서(150)는 복수의 계단 중 제1 계단과 함께 제1 계단에 인접한 제2 계단을 이용하여 로봇(100)을 탑승시킬 수 있다.
여기서, 제1 계단은 로봇(100)이 에스컬레이터에 탑승하 시 에스컬레이터의 진입로를 기준으로 첫번째로 나타나는 계단인 경우, 제2 계단은 제1 계단 다음으로 나타내는 계단일 수도 있고, 제1 계단 이전에 나타난 계단일 수도 있다. 그리고, 제1 계단 및 제2 계단 상의 위치는 제1 계단의 평면 및 제2 계단의 평면을 포함하는 영역의 무게 중심을 포함하는 임의의 영역으로 결정될 수도 있으며, 제1 계단 및/또는 제2 계단 상에 오브젝트가 존재하는 경우에는 그 오브젝트의 위치에 기초하여 결정될 수도 있다.
로봇(100)의 제1 길이가 계단들의 세로 길이의 두배 보다 짧은 경우에는 제1 계단 및 제2 계단 상의 제2 위치에 탑승하기 위한 로봇(100)의 자세는 문제되지 않는다. 다만, 로봇(100)의 제1 길이가 계단들의 세로 길이의 두배보다 길고 로봇(100)의 제2 길이가 계단들의 세로 길이의 두배보다 짧은 경우에는 제1 계단 및 제2 계단 상의 제2 위치에 안정적으로 탑승하기 위한 로봇(100)의 자세를 식별할 필요가 있다.
구체적으로, 로봇(100)의 제1 길이가 계단들의 세로 길이의 두배보다 짧으면, 프로세서(150)는 로봇(100)의 제1 길이에 대응되는 방향이 계단들의 세로 길이에 대응되는 방향과 평행이 되는 자세로 제2 위치에 로봇(100)이 탑승하도록 복수의 모터(120)를 제어할 수 있다. 로봇(100)의 제1 길이가 계단들의 세로 길이의 두배보다 길고 로봇(100)의 제2 길이가 계단들의 세로 길이의 두배보다 짧으면, 프로세서(150)는 로봇(100)의 제1 길이에 대응되는 방향이 계단들의 가로 길이에 대응되는 방향과 평행이 되는 자세로 제2 위치에 로봇(100)이 탑승하도록 복수의 모터(120)를 제어할 수 있다.
이상에서 제1 계단 및 제2 계단 상의 제2 위치에 로봇(100)이 탑승할 때 로봇(100)의 제1 길이에 대응되는 방향을 회전함으로써 로봇(100)의 자세를 변경하는 방법에 대해 설명하였는바, 이는 변경된 로봇(100)의 자세에서 후술하는 바와 같은 복수의 휠(110)의 높이 조절이 가능하다는 것을 전제로 한다. 즉, 이상에서 제1 계단 및 제2 계단 상의 제2 위치에 로봇(100)이 탑승할 때 로봇(100)의 자세를 변경하는 방법은, 로봇(100)이 제1 계단 및 제2 계단 상의 제2 위치에 탑승하는 경우 제1 계단 상에 배치되는 휠의 높이와 제2 계단 상에 배치되는 휠의 높이를 상이하게 조절할 수 있다는 것을 전제로 한다.
제1 계단 및 제2 계단 사이의 높이 차이가 변화하는 동안, 프로세서(150)는 복수의 휠(110) 사이의 높이 차이가 제1 계단 및 제2 계단 사이의 높이 차이에 대응되도록 복수의 모터(120)를 제어할 수 있다. 구체적으로, 프로세서(150)는 에스컬레이터의 계단들 중 인접한 계단들 사이의 높이 차이에 대한 정보 및 높이 차이의 변화 속도에 기초하여, 복수의 휠(110) 사이의 높이 차이가 제1 계단 및 제2 계단 사이의 높이 차이에 대응되도록 복수의 휠(110) 중 적어도 하나의 높이를 적응적으로 조절함으로써 로봇(100)의 안정적인 탑승이 가능하도록 할 수 있다.
복수의 휠(110) 사이의 높이 차이가 제1 계단 및 제2 계단 사이의 높이 차이에 대응되도록 조절한다는 것은, 제1 계단 및 제2 계단 사이의 높이 차이와 복수의 휠(110) 사이의 높이 차이가 정확하게 일치되는 경우뿐만 아니라, 로봇(100)이 에스컬레이터에서 추락하지 않도록 하는 범위 이내로 제1 계단 및 제2 계단 사이의 높이 차이와 복수의 휠(110) 사이의 높이 차이를 유지한다는 의미를 포함할 수 있다.
적어도 하나의 센서(130)가 자이로스코프 또는 가속도 센서와 같은 평형 센서를 포함하는 경우, 프로세서(150)는 평형 센서를 통해 상기 로봇(100)의 평형 여부를 나타내는 센싱 값을 획득하고, 획득된 센싱 값에 기초하여 복수의 휠(110) 사이의 높이 차이가 제1 계단 및 제2 계단 사이의 높이 차이에 대응되도록 복수의 모터(120)를 제어할 수도 있다.
이상에서는 로봇(100)이 제1 계단 및 제2 계단 상의 제2 위치에 탑승할 수 있는 경우를 전제로 설명하였으나, 제1 계단 및 제2 계단과 함께 제1 계단 또는 제2 계단에 인접한 제3 계단을 이용하여 탑승하는 것도 가능함은 물론이다. 구체적으로, 프로세서(150)는 로봇(100)의 제1 길이 또는 제2 길이가 계단들의 세로 길이의 두배보다 짧은 경우 제1 계단 및 제2 계단 상의 제2 위치를 탑승 위치로 식별할 수 있으나, 로봇(100)의 제1 길이 또는 제2 길이가 계단들의 세로 길이의 두배보다 긴 경우에는 제1 계단, 제2 계단 및 제3 계단 상의 제3 위치를 탑승 위치로 식별할 수 있다. 탑승의 대상이 되는 계단의 개수는 상술한 바와 같이, 로봇(100)의 제1 길이 및 제2 길이에 기초하여 결정될 수 있을 뿐만 아니라, 로봇(100)의 복수의 휠(110) 중 좌측 휠과 우측 휠 사이의 거리에 기초하여 결정될 수도 있다.
탑승 위치 및 로봇(100)의 자세가 식별되면, 프로세서(150)는 로봇(100)이 식별된 탑승 위치에 식별된 자세로 탑승하도록 제어하기 위한 제어 정보를 획득할 수 있다. 그리고, 프로세서(150)는 획득된 제어 정보에 기초하여 복수의 모터(120)를 제어할 수 있다.
구체적으로, 프로세서(150)는 로봇(100)의 현재 위치에서 식별된 탑승 위치까지 로봇(100)을 이동시키기 위한 이동 경로를 식별하고, 그 이동 경로까지 로봇(100)을 이동시키기 위한 제어 정보를 획득할 수 있다. 또한, 프로세서(150)는 로봇(100)이 탑승 위치에서 식별된 자세를 취하도록 제어하기 위한 제어 정보를 획득할 수 있다. 특히, 로봇(100)의 자세 변경을 위한 제어 정보는 로봇(100)의 전방이 향하는 방향을 변경하기 위한 정보 및 복수의 휠(110) 중 적어도 하나의 높이를 조절하기 위한 정보 등을 포함할 수 있다. 프로세서(150)는 상술한 바와 같은 제어 정보에 기초하여 복수의 모터(120)를 제어함으로써, 로봇(100)이 식별된 탑승 위치에 식별된 자세로 탑승하도록 할 수 있다.
식별된 탑승 위치, 탑승 위치까지의 이동 경로에 오브젝트(예: 사람, 동물, 다른 로봇(100) 등)가 존재하는 경우에는 그 오브젝트의 존재를 고려하여 제어 정보를 획득할 필요가 있다. 따라서, 프로세서(150)는 적어도 하나의 센서(130)를 통해 에스컬레이터 주변의 오브젝트에 대한 정보를 획득하고, 제1 정보, 제2 정보 및 오브젝트에 대한 정보에 기초하여 탑승 위치 및 로봇(100)의 현재 위치에서부터 탑승 위치까지의 이동 경로를 식별할 수 있다.
뿐만 아니라, 에스컬레이터 주변의 오브젝트가 식별되는 경우, 프로세서(150)는 에스컬레이터 주변의 기 설정된 임계 거리 내에 오브젝트가 존재하지 않는 것으로 식별될 때까지 현재 위치에 대기하도록 로봇(100)을 제어할 수도 있다. 예를 들어, 에스컬레이터에 로봇(100)보다 먼저 탑승한 다른 오브젝트가 존재하는 경우, 프로세서(150)는 그 오브젝트와 로봇(100) 사이의 거리가 임계 거리 이상으로 멀어진 이후(즉, 안전 거리가 확보된 이후)에 로봇(100)이 에스컬레이터에 탑승하도록 로봇(100)을 제어할 수 있다.
이상에서는 복수의 계단 중 두 개 이상의 계단에 로봇(100)이 탑승하는 실시 예에 대해 설명하였으나, 이는 복수의 휠(110)의 높이 조절을 통해 안정적인 탑승이 가능한 경우를 전제로 하는 것이다. 즉, 프로세서(150)는 제1 정보 및 제2 정보에 기초하여, 휠의 높이 조절 최대치가 인접한 계단들 사이의 높이 차이보다 작은 경우 또는 휠의 높이 조절의 최대 속도가 계단들의 높이 차이의 변화 속도보다 느린 경우에는 로봇(100)이 에스컬레이터에 안정적으로 탑승하기는 어려우므로, 로봇(100)이 에스컬레이터에 탑승하지 않는 것으로 결정할 수도 있다. 로봇(100)이 에스컬레이터에 탑승하지 않는 것으로 결정되는 경우, 프로세서(150)는 에스컬레이터를 경유하지 않는 다른 이동 경로를 식별하고, 식별된 다른 경로를 통해 목적지에 도달할 수 있도록 로봇(100)을 제어할 수 있다.
로봇(100)이 에스컬레이터에 탑승하는 경우만을 예로 들어 설명할 것이지만, 탑승의 경우뿐만 아니라 하차의 경우에도 다양한 실시 예가 마찬가지로 적용될 수 있음은 물론이다. 하차 동작을 수행함에 있어서는 탑승 시의 회전 방향과 반대 방향의 회전, 그리고 탑승 시 높이 조절 방향과 반대 방향의 높이 조절이 수행될 수 있다.
구체적으로, 프로세서(150)는 지면 관찰 센서를 통해 탑승 계단과 선행 계단 사이의 높이 차이가 기 설정된 임계 값 미만이 되면, 로봇(100)의 하차 동작을 수행하도록 복수의 모터(120)를 제어할 수 있다. 여기서, 하차 동작을 수행한다는 것은 탑승 계단과 선행 계단 사이의 높이 차이가 기 설정된 임계 값 미만이 되는 즉시 로봇(100)의 하차 동작을 수행하는 것에 국한되지 않으며, 소정의 시간 후에 하차 동작을 수행하는 것이라는 의미를 포함할 수 있다. 또한, 프로세서(150)는 탑승 계단의 윗면과 같은 높이에서 지면 확장이 감지되는 것에 기초하여 로봇(100)의 하차 동작을 수행할 수 있고, 복수의 휠(110) 사이의 높이 차이가 줄어드는 것을 식별하는 것에 기초하여 로봇(100)의 하차 동작을 수행할 수도 있다.
로봇(100)이 하차 동작을 수행하는 동안 임계 거리 내에 오브젝트가 존재하는 것으로 식별되면, 프로세서(150)는 출력부(180)(도 8의 180)를 통해 오브젝트에게 음성 경고 및/또는 제스처 경고를 출력할 수도 있다. 로봇(100)이 하차 동작을 수행하는 동안 임계 거리 내에 오브젝트가 존재하는 것으로 식별되면, 프로세서(150)는 에스컬레이터의 이동 속력과 같은 속력 및 에스컬레이터의 이동 방향과 반대 방향으로 후진함으로써 로봇(100)의 위치가 유지되도록 복수의 모터(120)를 제어할 수 있다.
로봇(100)의 승차 또는 하차 시 기 설정된 긴급 상황이 식별되면, 프로세서(150)는 에스컬레이터 관리 서버에 긴급 정지에 대한 요청을 전송하도록 통신부(160)를 제어함으로써, 에스컬레이터가 긴급 정지되도록 할 수 있다.
이상에서 상술한 다양한 실시 예에 따르면, 로봇(100)은 에스컬레이터에 대한 바람직한 탑승 위치와 로봇(100)의 자세를 식별하고, 그에 기초하여 로봇(100)이 에스컬레이터에 안정적으로 탑승/하차할 수 있도록 로봇(100)을 제어할 수 있다.
특히, 로봇(100)은 전진 탑승이 불가능한 경우 몸체를 회전함으로써 에스컬레이터에 탑승할 수 있으며, 인접한 계단들 사이의 높이 차이 변화 속도에 맞추어 적응적으로 복수의 휠(110)의 높이를 제어함으로써 에스컬레이터의 두 개 이상의 계단을 이용한 안정적인 탑승을 할 수도 있다. 그 결과 로봇(100)은 다른 경로 대신 에스컬레이터를 이용하는 경로를 이동 경로로 채택할 수 있게 되며, 이에 따라 로봇(100)의 주행 효율이 현저하게 향상될 수 있다.
도 4 및 도 5는 본 개시의 일 실시 예에 따른 로봇(100)의 에스컬레이터 탑승 과정을 상세하게 설명하기 위한 도면이다.
도 4 및 도 5에서 x축은 에스컬레이터의 진행 방향에 대응되고, y축은 지면에 평행이며 에스컬레이터의 진행 방향에 수직인 방향에 대응되며, z축은 지면에 수직인 방향에 대응된다. 즉, 도 4는 에스컬레이터에 탑승한 로봇(100)을 에스컬레이터의 측면에서 바라본 모습을 나타내는 도면이고, 도 5는 탑승 위치에 탑승하기까지의 로봇(100)의 동작을 에스컬레이터의 위에서 바라본 모습을 나타내는 도면이다.
도 4 및 도 5에 대한 설명에서는 로봇(100)이 도 2에 도시된 바와 같은 형상으로 구현되는 경우로서, 두 개의 휠을 포함하고, 로봇(100)의 이동을 위해 두 개의 휠이 회전할 때 그 회전의 중심이 되는 회전축이 제2 길이의 방향과 평행하도록 구현된 경우를 전제로 설명한다. 또한, 이하에서는 로봇(100)의 몸체에서 최대 너비를 갖는 변의 길이가 제1 길이이고, 로봇(100)의 몸체에서 최소 너비를 갖는 변의 길이가 제2 길이임을 전제로 설명한다.
도 5에 도시된 바와 같이, 로봇(100)은 원점에 위치할 수 있는바, 원점은 적어도 하나의 센서(130)를 통해 에스컬레이터에 대한 이미지 데이터를 획득하기에 적합한 위치를 말한다. 프로세서(150)는 로봇(100)이 원점에 도착하기에 앞서 획득된 에스컬레이터에 대한 이미지 데이터에 기초하여, 에스컬레이터에 대한 이미지 데이터를 획득하기에 적합한 위치인 원점을 식별할 수 있다. 뿐만 아니라, 원점은 개발자 또는 사용자의 설정에 따라 결정될 수도 있다.
도 5은 로봇(100)의 제1 길이가 계단들의 세로 길이보다 길고 로봇(100)의 제2 길이가 계단들의 세로 길이보다 짧은 경우, 로봇(100)의 탑승 과정을 나타낸다.
전술한 바와 같이, 로봇(100)의 제1 길이 및 제2 길이 중 적어도 하나가 계단들의 세로 길이보다 짧으면, 프로세서(150)는 복수의 계단 중 제1 계단 상의 제1 위치를 탑승 위치로 식별할 수 있다. 즉, 로봇(100)의 제1 길이 및 제2 길이 중 적어도 하나가 계단들의 세로 길이보다 짧은 경우는 로봇(100)이 하나의 계단에 탑승할 수 있는 경우라고 할 수 있으므로, 프로세서(150)는 복수의 계단 중 제1 계단 상의 제1 위치를 탑승 위치로 식별할 수 있다. 예를 들어, 도 4 및 도 5에 따른 예시에서는 도 5의 영역(50)이 제1 위치로 식별될 수 있다.
전술한 바와 같이, 로봇(100)의 제1 길이가 계단들의 세로 길이보다 길고 로봇(100)의 제2 길이가 계단들의 세로 길이보다 짧은 경우에는 제1 계단에 안정적으로 탑승하기 위한 로봇(100)의 자세를 식별할 필요가 있다. 따라서, 프로세서(150)는 로봇(100)의 제1 길이에 대응되는 방향이 계단들의 가로 길이에 대응되는 방향과 평행이 되는 자세를 제1 위치에 로봇(100)이 탑승하도록 하기 위한 로봇(100)의 자세로 식별할 수 있다. 예를 들어, 도 4 및 도 5에 따른 예시에서는 로봇(100)의 제1 길이에 대응되는 방향(즉, 도 4 및 도 5의 예시에서 로봇(100)의 전방에 해당하는 방향)을 90도만큼 반시계 방향으로 회전한 자세를 제1 위치에서의 자세로 식별할 수 있다.
이상에서는 로봇(100)의 탑승 위치를 식별하는 과정에 대해 설명하고 로봇(100)의 자세를 식별하는 과정에 대해 설명하였으나, 이들 사이에 순서의 제한이 있는 것은 아니며, 프로세서(150)는 제1 정보 및 제2 정보를 종합적으로 고려하여 로봇(100)의 탑승 위치와 로봇(100)의 자세를 식별할 수 있다.
프로세서(150)는 로봇(100)의 현재 위치(즉, 도 5의 원점)에서 탑승 위치까지 로봇(100)을 이동시키기 위한 이동 경로를 식별하고, 그 이동 경로까지 로봇(100)을 이동시키기 위한 제어 정보를 획득할 수 있다. 예를 들어, 도 5에 도시된 바와 같은 이동 경로는 제1 위치가 도 5의 영역(50)으로 결정되고 로봇(100)이 제1 길이에 대응되는 방향을 90도만큼 반시계 방향으로 회전할 것이라는 점에 기초하여 결정될 수 있다. 즉, 도 5의 영역(50)에 로봇(100)이 반시계 방향으로 회전하면서 탑승하는 경우, 로봇(100)의 이동 경로는 에스컬레이터의 중심부보다 오른쪽을 경유하도록 결정될 수 있다. 다시 말해, 탑승 위치 및 로봇(100)의 자세가 식별되면, 프로세서(150)는 로봇(100)의 탑승 위치 및 로봇(100)의 자세를 종합적으로 고려하여 로봇(100)의 이동 경로를 결정할 수도 있다.
도 6 및 도 7은 본 개시의 일 실시 예에 따른 로봇(100)의 에스컬레이터 탑승 과정을 상세하게 설명하기 위한 도면이다.
도 4 및 도 5의 경우와 마찬가지로, 도 6 및 도 7에서 x축은 에스컬레이터의 진행 방향에 대응되고, y축은 지면에 평행이며 에스컬레이터의 진행 방향에 수직인 방향에 대응되며, z축은 지면에 수직인 방향에 대응된다. 즉, 도 6은 에스컬레이터에 탑승한 로봇(100)을 에스컬레이터의 측면에서 바라본 모습을 나타내는 도면이고, 도 7은 탑승 위치에 탑승하기까지의 로봇(100)의 동작을 에스컬레이터의 위에서 바라본 모습을 나타내는 도면이다.
도 4 및 도 5의 경우와 마찬가지로, 도 6 및 도 7에 대한 설명에서는 로봇(100)이 도 2에 도시된 바와 같은 형상으로 구현되는 경우로서, 두 개의 휠을 포함하고, 로봇(100)의 이동을 위해 두 개의 휠이 회전할 때 그 회전의 중심이 되는 회전축이 제2 길이의 방향과 평행하도록 구현된 경우를 전제로 설명한다. 또한, 이하에서는 로봇(100)의 몸체에서 최대 너비를 갖는 변의 길이가 제1 길이이고, 로봇(100)의 몸체에서 최소 너비를 갖는 변의 길이가 제2 길이임을 전제로 설명한다.
도 7은 로봇(100)의 제1 길이 및 제2 길이가 계단들의 세로 길이보다 긴 경우이자, 로봇(100)의 제1 길이는 계단들의 세로 길이의 두배보다 길고 로봇(100)의 제2 길이가 계단들의 세로 길이의 두배보다 짧은 경우, 로봇(100)의 탑승 과정을 나타낸다.
전술한 바와 같이, 로봇(100)의 제1 길이 및 제2 길이가 계단들의 세로 길이보다 길면, 프로세서(150)는 복수의 계단 중 제1 계단 및 제1 계단에 인접한 제2 계단 상의 제2 위치를 탑승 위치로 식별할 수 있다. 즉, 로봇(100)의 제1 길이 및 제2 길이가 계단들의 세로 길이보다 긴 경우는 로봇(100)이 하나의 계단에 탑승할 수 없는 경우라고 할 수 있으므로, 프로세서(150)는 복수의 계단 중 제1 계단과 함께 제1 계단에 인접한 제2 계단을 이용하여 로봇(100)을 탑승시킬 수 있다. 예를 들어, 도 6 및 도 7에 따른 예시에서는 도 7의 영역(70)이 제2 위치로 식별될 수 있다.
전술한 바와 같이, 로봇(100)의 제1 길이가 계단들의 세로 길이의 두배보다 길고 로봇(100)의 제2 길이가 계단들의 세로 길이의 두배보다 짧은 경우에는 제1 계단 및 제2 계단 상의 제2 위치에 안정적으로 탑승하기 위한 로봇(100)의 자세를 식별할 필요가 있다. 따라서, 프로세서(150)는 로봇(100)의 제1 길이에 대응되는 방향이 계단들의 가로 길이에 대응되는 방향과 평행이 되는 자세를 제2 위치에 로봇(100)이 탑승하도록 하기 위한 로봇(100)의 자세로 식별할 수 있다. 예를 들어, 도 6 및 도 7에 따른 예시에서는 로봇(100)의 제1 길이에 대응되는 방향을 90도만큼 반시계 방향으로 회전한 자세를 제2 위치에서의 자세로 식별할 수 있다.
탑승 위치 및 자세가 식별되면, 프로세서(150)는 로봇(100)이 식별된 탑승 위치에 식별된 자세로 탑승하도록 제어할 수 있는바, 이에 따른 제어 과정은 도 7에 도시된 바와 같이, 1) 이동 과정, 2) 회전 과정, 3) 높이 조절의 과정을 포함할 수 있다. 도 7의 원점에 위치하고 있는 로봇(100), 회전 과정을 수행하고 있는 로봇(10), 그리고 높이 조절을 수행하고 있는 로봇(20)은 서로 다른 것이 아니라 서로 다른 시간의 같은 로봇(100)의 위치와 자세를 나타내는 것이다. 로봇(100)의 이동 과정 및 회전 과정에 대해서는 도 4 및 도 5의 실시 예에 대한 설명에서 상술하였으므로, 이하에서는 높이 조절 과정에 대해 설명한다.
로봇(100)이 도 7의 이동 경로에 따라 이동하여 에스컬레이터의 제1 계단(도 7에서 좌측을 기준으로 첫번째 계단)과 제2 계단((도 7에서 좌측을 기준으로 두번째 계단) 상의 제2 위치에 탑승하고, 로봇(100)의 제1 길이에 대응되는 방향을 90도만큼 반시계 방향으로 회전한 경우, 제1 계단과 제2 계단은 도 7에서 좌측을 기준으로 세번째 계단 및 네번째 계단에 대응되는 위치로 이동하게 된다. 그리고 이에 따라 제1 계단 및 제2 계단 사이의 높이 차이가 발생된다. 이 경우, 제1 계단 상에 위치하고 있는 로봇(100)의 좌측 휠과 제2 계단 상에 위치하고 있는 로봇(100)의 우측 휠 사이의 높이 차이를 조절하지 않으면, 로봇(100)은 에스컬레이터의 진행 방향을 기준으로 할 때 뒤쪽으로 추락할 수 있다.
따라서, 제1 계단 및 제2 계단 사이의 높이 차이가 변화하는 동안, 프로세서(150)는 복수의 휠(110) 사이의 높이 차이가 제1 계단 및 제2 계단 사이의 높이 차이에 대응되도록 복수의 모터(120)를 제어할 수 있다. 구체적으로, 프로세서(150)는 에스컬레이터의 계단들 중 인접한 계단들 사이의 높이 차이에 대한 정보 및 높이 차이의 변화 속도에 기초하여, 복수의 휠(110) 사이의 높이 차이가 제1 계단 및 제2 계단 사이의 높이 차이에 대응되도록 복수의 휠(110) 중 적어도 하나의 높이를 적응적으로 조절함으로써 로봇(100)의 안정적인 탑승이 가능하도록 할 수 있다.
예를 들어, 도 4 및 도 5에 따른 예시에서 프로세서(150)는 제1 계단 상에 위치하고 있는 로봇(100)의 좌측 휠과 제2 계단 상에 위치하고 있는 로봇(100)의 우측 휠 사이의 높이 차이가 제1 계단 및 제2 계단 사이의 높이 차이와 일치하도록 복수의 모터(120)를 제어할 수 있다.
상술한 바와 같은 로봇(100)의 이동 과정, 회전 과정 및 높이 조절 과정을 연속적으로 수행함에 있어서는 에스컬레이터에 포함된 복수의 계단들의 이동 속도를 고려하는 것이 바람직할 수 있다. 예를 들어, 프로세서(150)는 엘리베이터에의 첫번째 계단과 두번째 계단이 평면 또는 평면에 가까울 정도로 높이 차이가 거의 나지 않을 때에 로봇(100)이 계단으로 이동하여 탑승하도록 로봇(100)의 동작을 제어할 수 있다.
이상에서는 로봇(100)의 제1 길이에 대응되는 방향과 제2 길이에 대응되는 방향이 서로 수직인 것을 전제로 설명하였으나, 로봇(100)의 형상에 따라 제1 길이에 대응되는 방향과 제2 길이에 대응되는 방향이 서로 수직이 아닌 경우에는 로봇(100)의 형상에 따라 상술한 실시 예와는 다른 방식의 회전 동작이 수행될 수도 있다.
도 4 내지 도 7에 대한 설명에서는 로봇(100)이 에스컬레이터의 계단에 탑승한 상태에서 반시계 방향으로 90도 회전하는 동작에 대해 설명하였는바, 프로세서(150)는 로봇(100)의 최대 너비(예를 들어, 도 7에서 로봇(100)을 위에서 내려다본 형태를 나타내는 사각형의 대각선 길이)가 에스컬레이터 계단들의 가로 길이보다 짧은지 여부를 식별하고, 로봇(100)의 최대 너비가 계단들의 가로 길이보다 짧은 경우에 한하여, 상술한 실시 예에 따른 제어 과정을 수행할 수 있다.
이상에서는 도 4 내지 도 7에서는 로봇(100)이 위층으로 이동하기 위해 상향 에스컬레이터에 탑승하는 경우를 전제로 설명하였으나, 로봇(100)이 에스컬레이터의 아래층으로 이동하기 위해 하향 에스컬레이터에 탑승하는 경우에도 이상에서 상술한 실시 예들이 마찬가지로 적용될 수 있음은 물론이다.
도 8은 본 개시의 일 실시 예에 따른 로봇(100)의 구성을 상세하게 나타내는 도면이다.
도 8에 도시된 바와 같이, 로봇(100)은 복수의 휠(110), 복수의 모터(120), 적어도 하나의 센서(130), 메모리(140) 및 프로세서(150)뿐만 아니라, 통신부(160), 입력부(170) 및 출력부(180)를 더 포함할 수 있다. 그러나, 도 1 및 도 8에 도시된 바와 같은 구성들은 예시적인 것에 불과할 뿐이며, 도 1 및 도 8에 도시된 바와 같은 구성에 더하여 새로운 구성이 추가되거나 일부 구성이 생략될 수 있음은 물론이다.
통신부(160)는 회로를 포함하며, 외부 장치와의 통신을 수행할 수 있다. 구체적으로, 프로세서(150)는 통신부(160)를 통해 연결된 외부 장치로부터 각종 데이터 또는 정보를 수신할 수 있으며, 외부 장치로 각종 데이터 또는 정보를 전송할 수도 있다.
통신부(160)는 WiFi 모듈, Bluetooth 모듈, 무선 통신 모듈, NFC 모듈 및 UWB 모듈(Ultra Wide Band) 중 적어도 하나를 포함할 수 있다. 구체적으로, WiFi 모듈과 Bluetooth 모듈 각각은 WiFi 방식, Bluetooth 방식으로 통신을 수행할 수 있다. WiFi 모듈이나 Bluetooth 모듈을 이용하는 경우에는 SSID 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다.
또한, 무선 통신 모듈은 IEEE, Zigbee, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), 5G(5th Generation) 등과 같은 다양한 통신 규격에 따라 통신을 수행할 수 있다. 그리고, NFC 모듈은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 통신을 수행할 수 있다. 또한, UWB 모듈은 UWB 안테나 간 통신을 통하여, 펄스가 목표물에 도달하는 시간인 ToA(Time of Arrival), 송신 장치에서의 펄스 도래각인 AoA(Angle of Arrival)을 정확히 측정할 수 있고, 이에 따라 실내에서 수십 cm 이내의 오차 범위에서 정밀한 거리 및 위치 인식이 가능하다.
특히, 프로세서(150)는 통신부(160)를 통해 외부 장치로부터 로봇(100)의 동작을 제어하기 위한 사용자 명령을 수신할 수 있다. 프로세서(150)는 통신부(160)를 통해 외부 장치로부터 에스컬레이터의 위치에 대한 정보를 수신할 수 있다. 프로세서(150)는 통신부(160)를 통해 외부 장치로부터 로봇(100)의 크기에 대한 제1 정보, 에스컬레이터에 대한 이미지 데이터 또는 복수의 계단의 크기에 대한 제2 정보 등을 수신할 수 있다. 그리고, 프로세서(150)는 본 개시에 따른 제1 정보 및 제2 정보 등을 외부 장치로 전송하도록 통신부(160)를 제어할 수도 있다.
로봇(100)의 승차 또는 하차 시 기 설정된 긴급 상황이 식별되면, 프로세서(150)는 에스컬레이터 관리 서버에 긴급 정지에 대한 요청을 전송하도록 통신부(160)를 제어함으로써, 에스컬레이터가 긴급 정지되도록 할 수 있다.
입력부(170)는 회로를 포함하며, 프로세서(150)는 입력부(170)를 통해 로봇(100)의 동작을 제어하기 위한 사용자 명령을 수신할 수 있다. 구체적으로, 입력부(170)는 마이크, 카메라(미도시), 및 리모컨 신호 수신부(미도시) 등과 같은 구성으로 이루어질 수 있다. 그리고, 입력부(170)는 터치 스크린으로서 디스플레이에 포함된 형태로 구현될 수도 있다. 특히, 마이크는 음성 신호를 수신하고, 수신된 음성 신호를 전기 신호로 변환할 수 있다.
특히, 프로세서(150)는 입력부(170)를 통해 로봇(100)의 동작을 제어하기 위한 사용자 명령을 획득할 수 있다. 여기서, 사용자 명령은 로봇(100)이 에스컬레이터에 탑승하도록 하는 사용자 명령일 수도 있으며, 로봇(100)이 특정한 목적지까지 이동하도록 하는 사용자 명령일 수도 있으며, 로봇(100)에게 특정한 임부를 수행하도록 하는 사용자 명령일 수도 있다. 즉, 본 개시에 따른 에스컬레이터 탑승 과정은 로봇(100)이 특정한 목적지까지 이동하도록 하는 사용자 명령 또는 로봇(100)에게 특정한 임부를 수행하도록 하는 사용자 명령에 기초하여 수행될 수도 있다.
출력부(180)는 회로를 포함하며, 프로세서(150)는 출력부(180)를 통해 로봇(100)이 수행할 수 있는 다양한 기능을 출력할 수 있다. 그리고, 출력부(180)는 디스플레이, 스피커 및 인디케이터 중 적어도 하나를 포함할 수 있다.
디스플레이는 프로세서(150)의 제어에 의하여 영상 데이터를 출력할 수 있다. 구체적으로, 디스플레이는 프로세서(150)의 제어에 의하여 메모리(140)에 기 저장된 영상을 출력할 수 있다. 특히, 디스플레이는 메모리(140)에 저장된 사용자 인터페이스(User Interface)를 표시할 수도 있다. 디스플레이는 LCD(Liquid Crystal Display Panel), OLED(Organic Light Emitting Diodes) 등으로 구현될 수 있으며, 또한 디스플레이는 경우에 따라 플렉서블 디스플레이, 투명 디스플레이 등으로 구현되는 것도 가능하다. 다만, 디스플레이가 특정한 종류에 한정되는 것은 아니다. 스피커는 프로세서(150)의 제어에 의하여 오디오 데이터를 출력할 수 있으며, 인디케이터는 프로세서(150)의 제어에 의하여 점등될 수 있다.
특히, 프로세서(150)는 출력부(180)를 통해 로봇(100)이 에스컬레이터에 탑승을 완료하였음을 나타내는 안내 메시지를 출력할 수 있다. 또한, 프로세서(150)는 출력부(180)를 통해 로봇(100)이 에스컬레이터에 탑승할 수 없음을 나타내는 안내 메시지를 출력할 수 있다. 로봇(100)이 에스컬레이터에 탑승할 수 없음을 나타내는 안내 메시지는 에스컬레이터를 이용하지 않는 새로운 경로에 대한 정보를 포함할 수도 있다.
도 9는 본 개시의 일 실시 예에 따른 로봇(100)의 제어 방법을 나타내는 흐름도이다.
도 9에 도시된 바와 같이, 로봇(100)은 로봇(100)의 크기에 대한 제1 정보를 획득할 수 있다(S910). 구체적으로, 제1 정보는 로봇(100)의 제작 시에 개발자에 의해 메모리에 저장되거나 또는 외부 장치로부터 수신되어 메모리에 저장될 수 있다.
로봇(100)은 적어도 하나의 센서를 통해 에스컬레이터에 대한 이미지 데이터를 획득할 수 있다(S920). 에스컬레이터의 구조와 계단들의 크기에 대한 정보에 관련된 것이라면 본 개시에 따른 이미지 데이터에 포함될 수 있으며, 실시 예에 따라서는 이미지 데이터의 형태가 아닌 다양한 데이터들도 이용될 수 있다.
로봇(100)은 이미지 데이터에 기초하여 에스컬레이터에 포함된 복수의 계단의 크기에 대한 제2 정보를 획득할 수 있다(S930). 그리고, 로봇(100)은 제1 정보 및 제2 정보에 기초하여, 복수의 계단 중 로봇(100)의 탑승이 가능한 탑승 위치 및 탑승 위치에 로봇(100)이 탑승하기 위한 로봇(100)의 자세를 식별할 수 있다(S940).
로봇(100)의 제1 길이 및 제2 길이 중 적어도 하나가 계단들의 세로 길이보다 짧으면, 로봇(100)은 복수의 계단 중 제1 계단 상의 제1 위치를 탑승 위치로 식별할 수 있다.
로봇(100)의 제1 길이가 계단들의 세로 길이보다 짧으면, 로봇(100)은 로봇(100)의 제1 길이에 대응되는 방향이 계단들의 세로 길이에 대응되는 방향과 평행이 되는 자세로 제1 위치에 로봇(100)이 탑승하도록 복수의 모터를 제어할 수 있다. 로봇(100)의 제1 길이가 계단들의 세로 길이보다 길고 로봇(100)의 제2 길이가 계단들의 세로 길이보다 짧으면, 로봇(100)은 로봇(100)의 제1 길이에 대응되는 방향이 계단들의 가로 길이에 대응되는 방향과 평행이 되는 자세로 제1 위치에 로봇(100)이 탑승하도록 복수의 모터를 제어할 수 있다.
로봇(100)의 제1 길이 및 제2 길이가 계단들의 세로 길이보다 길면, 프로세서는 복수의 계단 중 제1 계단 및 제1 계단에 인접한 제2 계단 상의 제2 위치를 탑승 위치로 식별할 수 있다.
로봇(100)의 제1 길이가 계단들의 세로 길이의 두배보다 짧으면, 로봇(100)은 로봇(100)의 제1 길이에 대응되는 방향이 계단들의 세로 길이에 대응되는 방향과 평행이 되는 자세로 제2 위치에 로봇(100)이 탑승하도록 복수의 모터를 제어할 수 있다. 로봇(100)의 제1 길이가 계단들의 세로 길이의 두배보다 길고 로봇(100)의 제2 길이가 계단들의 세로 길이의 두배보다 짧으면, 로봇(100)은 로봇(100)의 제1 길이에 대응되는 방향이 계단들의 가로 길이에 대응되는 방향과 평행이 되는 자세로 제2 위치에 로봇(100)이 탑승하도록 복수의 모터를 제어할 수 있다.
제1 계단 및 제2 계단 사이의 높이 차이가 변화하는 동안, 로봇(100)은 복수의 휠 사이의 높이 차이가 제1 계단 및 제2 계단 사이의 높이 차이에 대응되도록 복수의 모터를 제어할 수 있다. 구체적으로, 로봇(100)은 에스컬레이터의 계단들 중 인접한 계단들 사이의 높이 차이에 대한 정보 및 높이 차이의 변화 속도에 기초하여, 복수의 휠 사이의 높이 차이가 제1 계단 및 제2 계단 사이의 높이 차이에 대응되도록 복수의 휠 중 적어도 하나의 높이를 적응적으로 조절함으로써 로봇(100)의 안정적인 탑승이 가능하도록 할 수 있다.
탑승 위치 및 로봇(100)의 자세가 식별되면, 로봇(100)은 로봇(100)이 식별된 탑승 위치에 식별된 자세로 탑승하도록 제어하기 위한 제어 정보를 획득할 수 있다(S950). 로봇(100)은 획득된 제어 정보에 기초하여 복수의 모터를 제어할 수 있다(S960).
구체적으로, 로봇(100)은 로봇(100)의 현재 위치에서 식별된 탑승 위치까지 로봇(100)을 이동시키기 위한 이동 경로를 식별하고, 그 이동 경로까지 로봇(100)을 이동시키기 위한 제어 정보를 획득할 수 있다. 또한, 로봇(100)은 로봇(100)이 탑승 위치에서 식별된 자세를 취하도록 제어하기 위한 제어 정보를 획득할 수 있다. 특히, 로봇(100)의 자세 변경을 위한 제어 정보는 로봇(100)의 전방이 향하는 방향을 변경하기 위한 정보 및 복수의 휠 중 적어도 하나의 높이를 조절하기 위한 정보 등을 포함할 수 있다. 로봇(100)은 상술한 바와 같은 제어 정보에 기초하여 복수의 모터를 제어함으로써, 로봇(100)이 식별된 탑승 위치에 식별된 자세로 탑승하도록 할 수 있다.
상술한 실시 예에 따른 로봇(100)의 제어 방법은 프로그램으로 구현되어 로봇(100)에 제공될 수 있다. 특히, 로봇(100)의 제어 방법을 포함하는 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
구체적으로, 로봇(100)의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서, 로봇(100)의 제어 방법은 로봇(100)의 크기에 대한 제1 정보를 획득하는 단계, 적어도 하나의 센서를 통해 에스컬레이터에 대한 이미지 데이터를 획득하는 단계, 이미지 데이터에 기초하여 에스컬레이터에 포함된 복수의 계단의 크기에 대한 제2 정보를 획득하는 단계, 제1 정보 및 제2 정보에 기초하여, 복수의 계단 중 로봇(100)의 탑승이 가능한 탑승 위치 및 탑승 위치에 로봇(100)이 탑승하기 위한 로봇(100)의 자세를 식별하는 단계, 탑승 위치 및 자세가 식별되면, 로봇(100)이 식별된 탑승 위치에 식별된 자세로 탑승하도록 제어하기 위한 제어 정보를 획득하는 단계 및 제어 정보에 기초하여 복수의 모터를 제어하는 단계를 포함할 수 있다.
이상에서 로봇(100)의 제어 방법, 그리고 로봇(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해 간략하게 설명하였으나, 이는 중복 설명을 생략하기 위한 것일 뿐이며, 로봇(100)에 대한 다양한 실시 예는 로봇(100)의 제어 방법, 그리고 로봇(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해서도 적용될 수 있음은 물론이다.
이상에서 상술한 다양한 실시 예에 따르면, 로봇(100)은 에스컬레이터에 대한 바람직한 탑승 위치와 로봇(100)의 자세를 식별하고, 그에 기초하여 로봇(100)이 에스컬레이터에 안정적으로 탑승하도록 제어할 수 있다.
특히, 로봇(100)은 전진 탑승이 불가능한 경우 몸체를 회전함으로써 에스컬레이터에 탑승할 수 있으며, 인접한 계단들 사이의 높이 차이 변화 속도에 맞추어 적응적으로 복수의 휠의 높이를 제어함으로써 에스컬레이터의 두 개 이상의 계단을 이용한 안정적인 탑승을 할 수도 있다. 그 결과 로봇(100)은 다른 경로 대신 에스컬레이터를 이용하는 경로를 이동 경로로 채택할 수 있게 되며, 이에 따라 로봇(100)의 주행 효율이 현저하게 향상될 수 있다.
이상에서 상술한 바와 같은 등에 관련된 기능은 메모리 및 프로세서를 통해 수행될 수 있다.
프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP 등과 같은 범용 프로세서, GPU. VPU 등과 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공 지능 전용 프로세서일 수 있다.
하나 또는 복수의 프로세서는, 비휘발성 메모리 및 휘발성 메모리에 저장된 기 정의된 동작 규칙 또는 인공 지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 기 정의된 동작 규칙 또는 인공 지능 모델은 학습을 통해 만들어진 것을 특징으로 한다.
여기서, 학습을 통해 만들어진다는 것은, 다수의 학습 데이터들에 학습 알고리즘을 적용함으로써, 원하는 특성의 기 정의된 동작 규칙 또는 인공 지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공 지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버/시스템을 통해 이루어질 수도 있다.
인공 지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 각 레이어는 복수의 가중치(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치의 연산을 통해 레이어의 연산을 수행한다. 신경망의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network), GAN(Generative Adversarial Networks) 및 심층 Q-네트워크 (Deep Q-Networks)이 있으며, 본 개시에서의 신경망은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
학습 알고리즘은, 다수의 학습 데이터들을 이용하여 소정의 대상 기기(예컨대, 로봇(100))을 훈련시켜 소정의 대상 기기 스스로 결정을 내리거나 예측을 할 수 있도록 하는 방법이다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으며, 본 개시에서의 학습 알고리즘은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
이상에서 상술한 바와 같은 본 개시의 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다.
다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 로봇(100))를 포함할 수 있다.
상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.

Claims (15)

  1. 로봇에 있어서,
    복수의 휠(wheel);
    상기 복수의 휠을 구동하기 위한 복수의 모터;
    적어도 하나의 센서;
    상기 로봇의 크기에 대한 제1 정보가 저장되는 메모리; 및
    상기 적어도 하나의 센서로부터 에스컬레이터에 대한 이미지 데이터를 획득하고,
    상기 이미지 데이터에 기초하여 상기 에스컬레이터에 포함된 복수의 계단의 크기에 대한 제2 정보를 획득하고,
    상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 복수의 계단 중 상기 로봇이 상기 에스컬레이터에 탑승이 가능한 탑승 위치 및 상기 탑승 위치에 상기 로봇이 탑승하도록 하기 위한 상기 로봇의 자세를 식별하며,
    상기 탑승 위치 및 상기 자세가 식별되면, 상기 로봇이 상기 탑승 위치에 상기 자세로 탑승하도록 제어하기 위한 제어 정보를 획득하고,
    상기 제어 정보에 기초하여 상기 복수의 모터를 제어하는 프로세서; 를 포함하는 로봇.
  2. 제1 항에 있어서,
    상기 제1 정보는 상기 로봇의 제1 너비에 대응되는 제1 길이에 대한 정보, 상기 로봇의 제2 너비에 대응되며 상기 제1 길이보다 짧은 제2 길이에 대한 정보 및 상기 복수의 휠의 높이 조절에 대한 정보를 포함하는 로봇.
  3. 제2 항에 있어서,
    상기 제2 정보는 상기 복수의 계단의 진행 방향의 비상승 요소에 수직이며 상기 제1 길이 및 상기 제2 길이 중 적어도 하나보다 긴 상기 복수의 계단 각각의 가로 길이에 대한 정보, 상기 진행 방향의 상기 비상승 요소에 평행이며 상기 가로 길이보다 짧은 상기 복수의 계단 각각의 세로 길이에 대한 정보 및 상기 복수의 계단의 높이에 대한 정보를 포함하고,
    상기 복수의 계단의 높이에 대한 정보는 상기 복수의 계단 중 인접한 계단들 사이의 높이 차이에 대한 정보 및 상기 높이 차이의 변화 속도에 대한 정보를 포함하는 로봇.
  4. 제3 항에 있어서,
    상기 프로세서는,
    상기 제1 길이 및 상기 제2 길이 중 적어도 하나가 상기 세로 길이보다 짧으면, 상기 복수의 계단 중 제1 계단 상의 제1 위치를 상기 탑승 위치로 식별하는 로봇.
  5. 제4 항에 있어서,
    상기 프로세서는,
    상기 제1 길이가 상기 세로 길이보다 짧으면, 상기 로봇이 상기 제1 길이에 대응되는 방향이 상기 세로 길이에 대응되는 방향과 평행이 되는 자세로 상기 제1 위치에 탑승하도록 상기 복수의 모터를 제어하며,
    상기 제1 길이가 상기 세로 길이보다 길고 상기 제2 길이가 상기 세로 길이보다 짧으면, 상기 제1 길이에 대응되는 방향이 상기 가로 길이에 대응되는 방향과 평행이 되는 자세로 상기 제1 위치에 상기 로봇이 탑승하도록 상기 복수의 모터를 제어하는 로봇.
  6. 제3 항에 있어서,
    상기 프로세서는,
    상기 제1 길이 및 상기 제2 길이가 상기 세로 길이보다 길면, 상기 복수의 계단 중 상기 제1 계단 및 상기 제1 계단에 인접한 제2 계단 사이에 중첩되는 제2 위치를 상기 탑승 위치로 식별하는 로봇.
  7. 제6 항에 있어서,
    상기 프로세서는,
    상기 제1 길이가 상기 세로 길이보다 길고 상기 제1 길이가 상기 세로 길이의 두배보다 짧으면, 상기 제1 길이에 대응되는 방향이 상기 세로 길이에 대응되는 방향과 평행이 되는 자세로 상기 로봇이 상기 제2 위치에 탑승하도록 상기 복수의 모터를 제어하며,
    상기 제1 계단 및 상기 제2 계단 사이의 높이 차이가 변화하는 동안, 상기 복수의 휠 사이의 높이 차이가 상기 제1 계단 및 상기 제2 계단 사이의 높이 차이에 대응되도록 상기 복수의 모터를 제어하는 로봇.
  8. 제6 항에 있어서,
    상기 프로세서는,
    상기 제1 길이가 상기 세로 길이의 두배보다 길고 상기 제2 길이가 상기 세로 길이보다 길고 상기 제2 길이가 상기 세로 길이의 두배보다 짧으면, 상기 제1 길이에 대응되는 방향이 상기 가로 길이에 대응되는 방향과 평행이 되는 자세로 상기 로봇이 상기 제2 위치에 탑승하도록 상기 복수의 모터를 제어하며,
    상기 제1 계단 및 상기 제2 계단 사이의 높이 차이가 변화하는 동안, 상기 복수의 휠 사이의 높이 차이가 상기 제1 계단 및 상기 제2 계단 사이의 높이 차이에 대응되도록 상기 복수의 모터를 제어하는 로봇.
  9. 제8 항에 있어서,
    상기 적어도 하나의 센서는 평형 센서를 포함하고,
    상기 프로세서는,
    상기 평형 센서를 통해 상기 로봇의 평형 여부를 나타내는 센싱 값을 획득하고,
    상기 센싱 값에 기초하여, 상기 복수의 휠 사이의 높이 차이가 상기 제1 계단 및 상기 제2 계단 사이의 높이 차이에 대응되도록 상기 복수의 모터를 제어하는 로봇.
  10. 제1 항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 센서를 통해 상기 에스컬레이터 주변의 오브젝트에 대한 정보를 획득하고,
    상기 제1 정보, 상기 제2 정보 및 상기 오브젝트에 대한 정보에 기초하여, 상기 탑승 위치 및 상기 로봇의 현재 위치에서부터 상기 탑승 위치까지의 이동 경로를 식별하는 로봇.
  11. 복수의 휠(wheel), 상기 복수의 휠을 구동하기 위한 복수의 모터 및 적어도 하나의 센서를 포함하는 로봇의 제어 방법에 있어서,
    상기 로봇의 크기에 대한 제1 정보를 획득하는 단계;
    상기 적어도 하나의 센서로부터 에스컬레이터에 대한 이미지 데이터를 획득하는 단계;
    상기 이미지 데이터에 기초하여 상기 에스컬레이터에 포함된 복수의 계단의 크기에 대한 제2 정보를 획득하는 단계;
    상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 복수의 계단 중 상기 로봇며 탑승이 가능한 탑승 위치 및 상기 탑승 위치에 상기 로봇이 탑승하도록 하기 위한 상기 로봇의 자세를 식별하는 단계;
    상기 탑승 위치 및 상기 자세가 식별되면, 상기 로봇이 상기 탑승 위치에 상기 자세로 탑승하도록 제어하기 위한 제어 정보를 획득하는 단계; 및
    상기 제어 정보에 기초하여 상기 복수의 모터를 제어하는 단계; 를 포함하는 로봇의 제어 방법.
  12. 제11 항에 있어서,
    상기 제1 정보는 상기 로봇의 제1 너비에 대응되는 제1 길이에 대한 정보, 상기 로봇의 제2 너비에 대응되며 상기 제1 길이보다 짧은 제2 길이에 대한 정보 및 상기 복수의 휠의 높이 조절에 대한 정보를 포함하는 로봇의 제어 방법.
  13. 제12 항에 있어서,
    상기 제2 정보는 상기 복수의 계단의 진행 방향의 비상승 요소에 수직이며 상기 제1 길이 및 상기 제2 길이 중 적어도 하나보다 긴 상기 복수의 계단 각각의 가로 길이에 대한 정보, 상기 진행 방향의 비상승 요소에 평행이며 상기 가로 길이보다 짧은 상기 복수의 계단 각각의 세로 길이에 대한 정보 및 상기 복수의 계단의 높이에 대한 정보를 포함하고,
    상기 복수의 계단의 높이에 대한 정보는 상기 복수의 계단 중 인접한 계단들 사이의 높이 차이에 대한 정보 및 상기 높이 차이의 변화 속도에 대한 정보를 포함하는 로봇의 제어 방법.
  14. 제13 항에 있어서,
    상기 탑승 위치 및 상기 로봇의 자세를 식별하는 단계는,
    상기 제1 길이 및 상기 제2 길이 중 적어도 하나가 상기 세로 길이보다 짧으면, 상기 복수의 계단 중 제1 계단 상의 제1 위치를 상기 탑승 위치로 식별하는 단계; 를 포함하는 로봇의 제어 방법.
  15. 제14 항에 있어서,
    상기 복수의 모터를 제어하는 단계는,
    상기 제1 길이가 상기 세로 길이보다 짧으면, 상기 로봇이 상기 제1 길이에 대응되는 방향이 상기 세로 길이에 대응되는 방향과 평행이 되는 자세로 상기 제1 위치에 탑승하도록 상기 복수의 모터를 제어하는 단계; 및
    상기 제1 길이가 상기 세로 길이보다 길고 상기 제2 길이가 상기 세로 길이보다 짧으면, 상기 제1 길이에 대응되는 방향이 상기 가로 길이에 대응되는 방향과 평행이 되는 자세로 상기 제1 위치에 상기 로봇이 탑승하도록 상기 복수의 모터를 제어하는 단계; 를 포함하는 로봇의 제어 방법.
PCT/KR2023/007758 2022-08-26 2023-06-07 로봇 및 로봇의 제어 방법 WO2024043461A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0107944 2022-08-25
KR1020220107944A KR20240029454A (ko) 2022-08-26 2022-08-26 로봇 및 로봇의 제어 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/400,817 Continuation US20240134391A1 (en) 2022-08-25 2023-12-29 Robot and controlling method of robot

Publications (1)

Publication Number Publication Date
WO2024043461A1 true WO2024043461A1 (ko) 2024-02-29

Family

ID=90013363

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/007758 WO2024043461A1 (ko) 2022-08-26 2023-06-07 로봇 및 로봇의 제어 방법

Country Status (2)

Country Link
KR (1) KR20240029454A (ko)
WO (1) WO2024043461A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110099202A (ko) * 2011-07-28 2011-09-07 이상범 계단을 이동할 수 있는 운송 시스템.
US9868210B1 (en) * 2015-12-30 2018-01-16 Google Inc. Methods and systems for planning a body position of a robotic device
KR20180108144A (ko) * 2017-03-24 2018-10-04 네이버랩스 주식회사 계단 등판을 위한 로봇 장치
KR20190086628A (ko) * 2019-06-28 2019-07-23 엘지전자 주식회사 모바일 로봇을 무빙워크에 진입시키는 방법 및 그 모바일 로봇
KR20220102343A (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
KR20110099202A (ko) * 2011-07-28 2011-09-07 이상범 계단을 이동할 수 있는 운송 시스템.
US9868210B1 (en) * 2015-12-30 2018-01-16 Google Inc. Methods and systems for planning a body position of a robotic device
KR20180108144A (ko) * 2017-03-24 2018-10-04 네이버랩스 주식회사 계단 등판을 위한 로봇 장치
KR20190086628A (ko) * 2019-06-28 2019-07-23 엘지전자 주식회사 모바일 로봇을 무빙워크에 진입시키는 방법 및 그 모바일 로봇
KR20220102343A (ko) * 2021-01-13 2022-07-20 삼성전자주식회사 로봇 및 그 제어 방법

Also Published As

Publication number Publication date
KR20240029454A (ko) 2024-03-05

Similar Documents

Publication Publication Date Title
WO2016015232A1 (en) Systems and methods for payload stabilization
WO2018093055A1 (en) Mobile robot system and mobile robot
WO2016106715A1 (en) Selective processing of sensor data
WO2016106746A1 (en) Vehicle altitude restrictions and control
WO2016065625A1 (en) Systems and methods for walking pets
WO2018070663A1 (ko) 공항용 로봇 및 그의 동작 방법
EP3177531A1 (en) Multi-zone battery exchange system
WO2019208950A1 (ko) 사용자에게 서비스를 제공하는 이동형 로봇 장치 및 방법
JP6961804B2 (ja) ロボット案内システム
WO2019235667A1 (ko) 실내 안내용 드론 및 그 제어 방법
WO2018101592A1 (ko) 무인 비행체 및 그 제어 방법
WO2020209394A1 (ko) 인공지능을 이용하여 주행면 변경에 적응적으로 카트로봇의 이동을 제어하는 방법 및 카트로봇
WO2018117514A1 (ko) 공항용 로봇 및 그의 동작 방법
WO2024043461A1 (ko) 로봇 및 로봇의 제어 방법
JP2019049937A (ja) ロボット管理装置及びロボット管理システム
WO2022154153A1 (ko) 로봇 및 그 제어 방법
WO2020153628A1 (ko) 로봇 및 그 제어 방법
WO2019240374A1 (ko) 대기열을 인식하는 이동식 로봇 및 이동식 로봇의 동작 방법
WO2021040179A1 (ko) 로봇 및 이의 제어 방법
WO2020171315A1 (ko) 무인기 착륙 시스템
JP6991525B1 (ja) ウェイポイント高さ座標設定方法及び管理サーバ、情報処理システム、プログラム
WO2022035054A1 (ko) 로봇 및 이의 제어 방법
JP7303522B2 (ja) 歩行制御装置
WO2024090792A1 (ko) 3d 모델을 생성하는 로봇 및 이의 제어 방법
KR102271248B1 (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: 23857500

Country of ref document: EP

Kind code of ref document: A1