Driving robot using plurality of driving modules and driving method thereof

The driving robot addresses the challenge of non-contacting wheels by using a processor to control the rotational direction and speed of wheels in multiple driving modules, ensuring accurate direction and speed control even when some wheels are not in contact with the floor.

WO2025121670A1PCT designated stage expired Publication Date: 2025-06-12SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2024/016799
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-07
Filing Date
2024-10-30
Publication Date
2025-06-12

AI Technical Summary

Technical Problem

Driving robots equipped with multiple driving modules face challenges in maintaining accurate control and movement when some wheels are not in contact with the floor, leading to issues with direction and speed control.

Method used

The driving robot includes a main body with multiple rotatably connected driving modules, each equipped with sensors, wheels, and motors. A processor determines the rotational direction of each module based on the desired driving direction, identifies non-contacting modules, and controls their wheels to rotate at different speeds to ensure proper alignment and movement.

Benefits of technology

This solution allows the driving robot to accurately identify and adjust for non-contacting wheels, ensuring precise control over direction and speed, even on uneven surfaces, thereby enhancing the robot's ability to navigate effectively.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2024016799_12062025_PF_FP_ABST
    Figure KR2024016799_12062025_PF_FP_ABST
Patent Text Reader

Abstract

A driving robot is disclosed. The present driving robot comprises: a main body; a plurality of driving modules rotatably connected to a lower side of the main body; and at least one processor, wherein each of the plurality of driving modules comprises: a sensor; a plurality of wheels; and a motor for rotating the plurality of wheels, and the at least one processor may: rotate each of the plurality of driving modules on the basis of the rotational direction of each of the plurality of driving modules, which is determined on the basis of a direction in which the main body needs to drive; on the basis of a sensing value of the sensor, identify at least one driving module, which is not in contact with the floor surface, from among the plurality of driving modules; and control a motor provided in the identified at least one driving module to rotate, at different rotational speeds, the plurality of wheels provided in the identified at least one driving module.
Need to check novelty before this filing date? Find Prior Art

Description

Driving robot using multiple driving modules and driving method thereof

[0001] The present disclosure relates to a driving robot using a plurality of driving modules and a driving method thereof.

[0002] Advances in robotics technology have led to the development and widespread adoption of various mobile robots, including robot vacuum cleaners, mobile projectors, and serving robots. Mobile robots can navigate using a driving module. Specifically, the driving module contains multiple wheels, enabling the robot to perform various actions, such as moving forward, backward, stopping, and turning, by controlling the wheels to rotate at the same or different speeds.

[0003] As described above, the driving module determines the driving direction and speed of the driving robot by controlling the rotational speed of multiple wheels. Therefore, if the multiple wheels provided in the driving module are not in contact with the floor, the rotational speed of the wheels cannot be controlled. Consequently, the driving robot may not be able to drive in the desired direction or at the desired speed.

[0004] According to one aspect of the present disclosure, a driving robot includes a main body, a plurality of driving modules rotatably connected to a lower side of the main body, and at least one processor, wherein each of the plurality of driving modules includes a sensor, a plurality of wheels, and a motor for rotating the plurality of wheels, and the at least one processor rotates each of the plurality of driving modules based on a rotational direction of each of the plurality of driving modules determined based on a direction in which the main body should drive, identifies at least one driving module that does not contact a floor surface among the plurality of driving modules based on a sensing value of the sensor, and controls a motor provided in the at least one identified driving module to rotate the plurality of wheels provided in the at least one identified driving module at different rotational speeds.

[0005] According to one aspect of the present disclosure, a driving method of a driving robot including a plurality of driving modules may include a step of rotating each of the plurality of driving modules so that the plurality of driving modules rotate in a rotational direction of each of the plurality of driving modules determined based on a direction in which a main body of the driving robot should drive, a step of identifying at least one driving module that does not contact a floor surface among the plurality of driving modules, and a step of rotating a plurality of wheels provided on the identified at least one driving module at different rotational speeds.

[0006] According to one aspect of the present disclosure, a computer-readable recording medium including a program for executing a driving method of a driving robot including a plurality of driving modules may include a step of rotating each of the plurality of driving modules so that the plurality of driving modules rotate in a rotational direction of each of the plurality of driving modules determined based on a direction in which a main body of the driving robot should drive, a step of identifying at least one driving module that is not in contact with a floor surface among the plurality of driving modules, and a step of rotating a plurality of wheels provided on the identified at least one driving module at different rotational speeds.

[0007] FIG. 1 is a drawing for explaining a driving robot according to one embodiment of the present disclosure.

[0008] FIG. 2 is a block diagram illustrating the configuration of a driving robot according to an embodiment of the present disclosure.

[0009] FIG. 3 is a block diagram illustrating the configuration of a driving module according to one embodiment of the present disclosure.

[0010] FIG. 4 is a drawing for explaining the configuration of a driving module according to one embodiment of the present disclosure.

[0011] FIG. 5 is a drawing for explaining a method for identifying a driving module that does not contact the floor surface of a driving robot according to an embodiment of the present disclosure.

[0012] FIG. 6 is a drawing for explaining a method for controlling multiple wheels of a driving robot according to an embodiment of the present disclosure.

[0013] FIG. 7 is a drawing for explaining a method for identifying a driving module that does not contact the floor surface of a driving robot according to one embodiment of the present disclosure.

[0014] FIG. 8 is a drawing for explaining a curved path driving method of a driving robot according to an embodiment of the present disclosure.

[0015] FIG. 9 is a flowchart for explaining a driving method of a driving robot according to an embodiment of the present disclosure.

[0016] FIG. 10 is a flowchart illustrating a method for identifying the location of a driving robot according to an embodiment of the present disclosure.

[0017] The present embodiments may be modified and have various embodiments. Specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope to specific embodiments, but should be understood to encompass various modifications, equivalents, and / or alternatives of the embodiments of the present disclosure. In connection with the description of the drawings, similar reference numerals may be used for similar components.

[0018] In describing the present disclosure, if it is determined that a specific description of a related known function or configuration may unnecessarily obscure the gist of the present disclosure, a detailed description thereof will be omitted.

[0019] Additionally, the following embodiments may be modified in various other forms, and the scope of the technical concepts of the present disclosure is not limited to the following embodiments. Rather, these embodiments are provided to further faithfully and completely convey the technical concepts of the present disclosure to those skilled in the art.

[0020] The terminology used in this disclosure is for the purpose of describing specific embodiments only and is not intended to limit the scope of the rights. Singular expressions include plural expressions unless the context clearly dictates otherwise.

[0021] In this disclosure, expressions such as “has,” “can have,” “includes,” or “may include” indicate the presence of a corresponding feature (e.g., a component such as a number, function, operation, or part), and do not exclude the presence of additional features.

[0022] In this disclosure, expressions such as “A or B,” “at least one of A and / or B,” or “one or more of A or / and B” can include all possible combinations of the listed items. For example, “A or B,” “at least one of A and B,” or “at least one of A or B” can all refer to (1) including at least one A, (2) including at least one B, or (3) including both at least one A and at least one B.

[0023] The expressions “first,” “second,” “first,” or “second,” etc., used in this disclosure can describe various components, regardless of order and / or importance, and are only used to distinguish one component from another, but do not limit the components.

[0024] When it is said that a component (e.g., a first component) is “(operatively or communicatively) coupled with / to” or “connected to” another component (e.g., a second component), it should be understood that said component may be directly coupled to said other component, or may be coupled via another component (e.g., a third component).

[0025] On the other hand, when it is said that a component (e.g., a first component) is "directly connected" or "directly connected" to another component (e.g., a second component), it can be understood that no other component (e.g., a third component) exists between said component and said other component.

[0026] The expression "configured to" as used in the present disclosure may be used interchangeably with, for example, "suitable for," "having the capacity to," "designed to," "adapted to," "made to," or "capable of." The term "configured to" may not necessarily mean only "specifically designed to" in terms of hardware.

[0027] Instead, in some contexts, the phrase "a device configured to" may mean that the device, in conjunction with other devices or components, is "capable of" performing A, B, and C. For example, the phrase "a processor configured (or set) to perform A, B, and C" may refer to a dedicated processor (e.g., an embedded processor) for performing those operations, or a general-purpose processor (e.g., a CPU or application processor) that can perform those operations by executing one or more software programs stored in a memory device.

[0028] In the embodiments, a 'module' or 'part' performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Furthermore, a plurality of 'modules' or 'parts' may be integrated into at least one module and implemented as at least one processor, except for a 'module' or 'part' that needs to be implemented as a specific hardware.

[0029] Meanwhile, the various elements and areas in the drawings are schematically drawn. Therefore, the technical concept of the present invention is not limited by the relative sizes or spacing depicted in the attached drawings.

[0030] Hereinafter, with reference to the attached drawings, embodiments according to the present disclosure will be described in detail so that a person having ordinary knowledge in the technical field to which the present disclosure pertains can easily implement the present disclosure.

[0031] FIG. 1 is a drawing for explaining a driving robot according to one embodiment of the present disclosure.

[0032] A mobile robot can be a device that can drive without being directly controlled by a human. According to FIG. 1, a mobile robot (100) can load and move an object (200) that needs to be transported in a manufacturing plant. The mobile robot (100) may also be referred to as an autonomous mobile robot (AMR), an automated guided vehicle (AGV), an unmanned ground vehicle (UGV), etc., but is described as a mobile robot (100) in the present disclosure. The mobile robot (100) can be implemented as various types of robots that drive through a space and perform necessary tasks, such as a cleaning robot, a serving robot, a mobile projector, a guide robot, a delivery robot, etc.

[0033] According to the present disclosure, a driving robot (100) may include a plurality of driving modules on its lower side. The driving module may be a configuration capable of supporting the main body of the driving robot (100) on a floor surface while moving the main body. The driving module may be referred to by various terms such as a wheel module, a movement module, a driving unit, or a driving part, but is described as a driving module in the present disclosure.

[0034] A driving module may include at least one means of transportation. The means of transportation may be implemented as wheels, continuous tracks, or crawler tracks. The embodiments of the present disclosure describe a case where a driving module is implemented as including multiple wheels, particularly two wheels. However, the number and type of wheels are not limited thereto and may vary.

[0035] A plurality of driving modules may be coupled to the main body of the driving robot (100) in a rotatable manner to support the main body. For example, a rotatable hinge may be arranged between each driving module and the main body of the driving robot (100). Specifically, a protruding member in the shape of a cylinder that protrudes so as to be coupled to the main body (110) and has an upper diameter larger than a lower diameter may be provided on the upper side of each driving module, and a space in which the upper side of the protruding member can be accommodated and a hole that is smaller than the upper diameter of the protruding member and larger than the lower diameter of the protruding member may be formed on the lower surface of the main body (110). The portion where the hole and the protruding member are connected may function as a hinge. That is, the protruding member is mounted in the space through the hole and may be rotatable within the space. A lubricating member, a bearing, or the like may be additionally arranged between the hole and the protruding member to reduce friction. Accordingly, each driving module can rotate in any direction relative to the main body.

[0036] The driving robot (100) can independently control the rotational speed of a plurality of wheels included in each driving module to adjust the rotational direction and speed of each driving module. The rotational direction may refer to the direction in which the wheels of the driving modules are facing. For example, if all driving modules are rotated 45 degrees to the right, the rotational direction of all driving modules becomes 45 degrees to the right. The driving robot (100) can adjust the alignment direction by independently controlling a plurality of wheels included in each of the plurality of driving modules. The driving robot (100) can move in the alignment direction by rotating the plurality of wheels equally when the direction in which the plurality of wheels are facing is aligned in one direction. In this case, the direction in which the main body is facing can be maintained. In other words, the driving robot (100) can move in any direction even without rotating the main body itself.

[0037] The driving robot (100) according to the present disclosure can set a driving path to perform a given task. In one embodiment, when the driving robot (100) must transport a loaded object (200) to a destination, the shortest path to the destination can be set as its own driving path. In order to set the driving path, the driving robot (100) must accurately recognize its own location and the location of the destination. At this time, the driving robot (100) can estimate its own current location using initial location information and odometry information. Here, "initial location information" may refer to the location coordinate value (e.g., (10,3)) of the driving robot (100) when the driving robot (100) starts driving.

[0038] Odometry information may refer to movement information of a mobile robot (100). Odometry information may include various information such as the movement distance of the mobile robot (100), the movement direction of the mobile robot (100), and the rotational speed of multiple wheels provided in the mobile robot (100). Odometry information may be replaced by various terms such as robot movement information, movement data, and movement tracking information.

[0039] That is, if the driving robot (100) knows the driving start position (X0), it can obtain odometry information including information on the moving distance and moving direction of the driving robot (100) each time the driving robot (100) moves, and can obtain information on how much change has occurred from the driving start position (X0). The driving robot (100) can estimate the current position (X1) of the driving robot (100) by adding the position change amount to the driving start position (X0). The odometry information can be obtained based on information such as the rotation direction of each driving module and the number of rotations of the wheels. The method for obtaining the odometry information will be described in detail again in the following section.

[0040] At this time, the driving robot can obtain odometry information of the driving robot body based on the odometry information of each of the multiple driving modules installed on the lower side of the driving robot. Therefore, if the odometry information of even one of the multiple driving modules does not contain accurate information about the actual distance and direction traveled by the driving module, the driving robot cannot accurately obtain odometry information of the driving robot body.

[0041] For example, suppose that all of the wheels included in one of the plurality of driving modules are not in contact with the floor. If the wheel is not in contact with the floor and power is transmitted to the wheel by the motor and the wheel rotates, the rotation of the wheel is detected by a sensor such as an encoder, but because it is not in contact with the floor, it cannot affect the movement of the driving module that includes the wheel. Therefore, even if the odometry information of the driving module that includes the wheel is acquired, the odometry information cannot but be inaccurate because the driving module does not actually move due to the rotation of the wheel.

[0042] As described above, if inaccurate odometry information is obtained, the driving robot cannot accurately estimate the position of the main body, and as a result, the driving robot cannot perform its functions properly, such as by colliding with obstacles existing in the driving space or setting an incorrect driving path.

[0043] The driving robot (100) according to the present disclosure identifies a driving module that does not contact the floor surface, and generates odometry information of the driving robot (100) based only on odometry information of other driving modules, excluding odometry information obtained from the driving module that does not contact the floor surface. Accordingly, accurate location information of the driving robot (100) can be obtained.

[0044] In addition, the driving robot (100) according to the present disclosure can rotate a plurality of wheels included in a driving module that does not contact the floor at different rotation speeds. Specifically, there may be cases where the floor on which the driving robot (100) drives is uneven, and the plurality of wheels provided in the driving module change from a state of contacting the floor to a state of non-contacting or from a state of non-contacting to a state of contacting. In this case, the driving robot (100) can rotate some of the wheels among the plurality of wheels at a faster rotation speed than the wheels of the other driving modules at the moment when the driving module contacts the floor, and rotate the remaining wheels among the plurality of wheels at a slower rotation speed than the wheels of the other driving modules. Accordingly, the driving module that was not in contact with the floor can quickly rotate to a target rotation angle at the moment when it contacts the floor, which will be described in more detail below.

[0045] FIG. 2 is a block diagram illustrating the configuration of a driving robot according to an embodiment of the present disclosure.

[0046] According to FIG. 2, the driving robot (100) may include a plurality of driving modules (120), a memory (130), and a processor (140). Each component may be mounted on the main body (110) illustrated in FIG. 1.

[0047] The main body (110) can form the exterior of the driving robot (100). For example, if the driving robot (100) is implemented as an autonomous mobile robot (AMR) used in a manufacturing plant, the main body (110) can be configured with a loading unit capable of loading an object, a lifting unit capable of moving the loading unit loaded with the object up and down, etc.

[0048] In another example, when the driving robot (100) is implemented as a cleaning robot, the main body (110) may be configured with a suction unit that sucks up dust, a wet cleaning unit that performs wet cleaning, etc.

[0049] In another example, the driving robot (100) may be implemented as a mobile projector. In this case, a projector unit for projecting an image may be placed on the main body (110).

[0050] The above-described configurations are only examples, and the main body (110) may have various appearances and include various configurations depending on the purpose of the driving robot (100).

[0051] In the embodiment described below, “movement of the main body (110)” means “driving of the driving robot (100)”, and “direction in which the main body (110) should drive” may mean “direction in which the driving robot (100) should drive.”

[0052] A plurality of driving modules (120) may be connected to the lower side of the main body (110) and may move the main body (110). In addition, each of the plurality of driving modules (120) may include a sensor, a plurality of wheels, and a motor for rotating the plurality of wheels. The driving module (120) may also be referred to as a differential module.

[0053] A plurality of driving modules (120) are driven according to a control signal of a processor (140). For example, the processor (140) may drive a motor to rotate a plurality of wheels included in each of the plurality of driving modules (120) to move the main body (110) along a preset driving path. The configuration and operation of the plurality of driving modules (120) will be described in detail in the description of FIGS. 3 and 4 below.

[0054] The memory (130) can store position information and odometry information of the driving robot (100). In addition, the memory (130) can store at least one instruction regarding the driving robot (100), an O / S (Operating System) or other software modules for driving the driving robot (100), applications, data, etc. In addition, the memory (130) can include a volatile memory such as a frame buffer, a semiconductor memory such as a flash memory, or a magnetic storage medium such as a hard disk.

[0055] The processor (140) can control the operation of the driving robot (100) by executing various software modules stored in the memory (130). Meanwhile, in the present disclosure, the term memory (130) may be used to mean a memory (130), a ROM (not shown), a RAM (not shown) in the processor (140), or a memory card (not shown) (e.g., a micro SD card, a memory stick) mounted on the driving robot (100).

[0056] The processor (140) is connected to the main body (110), multiple driving modules (120), and memory (130) to control the overall operation and function of the driving robot (100).

[0057] The processor (140) may include one or more of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an APU (Accelerated Processing Unit), a MIC (Many Integrated Core), a DSP (Digital Signal Processor), an NPU (Neural Processing Unit), a hardware accelerator, or a machine learning accelerator. The one or more processors (140) may control one or any combination of other components of the driving robot (100) and may perform operations or data processing related to communication. The one or more processors (140) may execute one or more programs or instructions stored in the memory (130). For example, the one or more processors (140) may perform a method according to an embodiment of the present disclosure by executing one or more instructions stored in the memory (130).

[0058] Meanwhile, when a method according to an embodiment of the present disclosure includes multiple operations, the multiple operations may be performed by one processor or multiple processors. For example, when a first operation, a second operation, and a third operation are performed by a method according to an embodiment, the first operation, the second operation, and the third operation may all be performed by the first processor, or the first operation and the second operation may be performed by the first processor (e.g., a general-purpose processor) and the third operation may be performed by the second processor (e.g., an artificial intelligence-specific processor).

[0059] One or more processors (140) may be implemented as a single core processor including one core, or may be implemented as one or more multicore processors including multiple cores (e.g., homogeneous multicores or heterogeneous multicores). When one or more processors (140) are implemented as a multicore processor, each of the multiple cores included in the multicore processor may include an internal processor memory, such as a cache memory or an on-chip memory, and a common cache shared by the multiple cores may be included in the multicore processor. In addition, each of the multiple cores (or some of the multiple cores) included in the multicore processor may independently read and execute a program instruction for implementing a method according to an embodiment of the present disclosure, or all (or some) of the multiple cores may be linked to read and execute a program instruction for implementing a method according to an embodiment of the present disclosure.

[0060] When a method according to an embodiment of the present disclosure includes a plurality of operations, the plurality of operations may be performed by one core among the plurality of cores included in a multi-core processor, or may be performed by the plurality of cores. For example, when a first operation, a second operation, and a third operation are performed by a method according to an embodiment, the first operation, the second operation, and the third operation may all be performed by a first core included in the multi-core processor, or the first operation and the second operation may be performed by a first core included in the multi-core processor, and the third operation may be performed by a second core included in the multi-core processor.

[0061] In embodiments of the present disclosure, the processor (140) may mean a system on a chip (SoC) in which one or more processors and other electronic components are integrated, a single-core processor, a multi-core processor, or a core included in a single-core processor or a multi-core processor, wherein the core may be implemented as a CPU, a GPU, an APU, a MIC, a DSP, an NPU, a hardware accelerator, or a machine learning accelerator, but embodiments of the present disclosure are not limited thereto.

[0062] The processor (140) can determine the rotation direction of each of the plurality of driving modules (120) based on the direction and path characteristics in which the main body (110) should drive. Here, "determining the rotation direction of each of the plurality of driving modules (120) based on the direction and path characteristics in which the main body (110) should drive" can include determining the rotation direction of each of the plurality of driving modules (120) based on the direction in which the main body (110) should drive (i.e., forward, backward, 30 degrees to the right, 45 degrees to the left, etc.) or path characteristics (e.g., straight movement, curved movement).

[0063] The processor (140) can rotate each of the plurality of driving modules (120) according to the determined rotation direction. When the wheels of each driving module rotate while each of the plurality of driving modules (120) is rotated according to the determined rotation direction, the main body (110) travels in the direction in which it should travel (i.e., the driving direction). If the wheels of the plurality of driving modules (120) rotate while at least one driving module faces a direction different from the determined rotation direction, the driving path or normal position may be deviated from.

[0064] When the main body (110) moves in a straight line, the processor (140) can rotate the wheels of multiple driving modules (120) simultaneously while aligning them in the same direction (e.g., forward, 20 degrees to the right, 90 degrees to the right, etc.). Depending on the rotational movement of the wheels, the main body (110) can drive in the aligned direction.

[0065] When the main body (110) moves along a curve, the wheels can be rotated simultaneously while the directions of the plurality of driving modules (120) are each rotated in different directions based on the direction in which the main body (110) should travel (for example, the front driving module rotates 45 degrees to the right, and the rear driving module rotates 10 degrees to the right). Depending on the rotational movement of the wheels, the main body (110) can travel along a curved path.

[0066] For example, when the front of the main body (110) is facing the first direction and the vehicle needs to drive straight, that is, drive in the first direction, the processor (140) may control the plurality of driving modules (120) so that the plurality of wheels included in each of the plurality of driving modules (120) can rotate while all of the wheels of the plurality of driving modules (120) are aligned to face the first direction. Accordingly, the main body (110) moves in the first direction. Here, "the driving modules are aligned in the forward direction" may mean that the front of the driving modules faces the same direction as the front of the main body.

[0067] As another example, when the front of the main body (110) faces the first direction and drives along a curved path in a second direction (e.g., to the right) different from the first direction, the processor (140) can determine the rotation direction of each of the plurality of driving modules (120) based on the curved path that the main body (110) should drive. Specifically, if one driving module is respectively provided on the front right, front left, rear right, and rear left sides at the lower side of the main body (110), in order to drive along a curved path that rotates in the right direction, the processor (140) can determine the rotation direction of each of the plurality of driving modules (120) such that the driving module provided at the front rotates to the right with respect to the front, and the driving module provided at the rear rotates to the left with respect to the front. Here, “the driving module rotates to the right / left with respect to the front” can mean that the front part of the driving module rotates clockwise / counterclockwise, and the rotation direction of the driving module will be defined in the description of FIG. 4 described below.

[0068] In addition, the processor (140) can identify at least one driving module that is not in contact with the floor surface among the plurality of driving modules (120) based on the sensing values ​​of the sensors included in each of the plurality of driving modules (120), and can control the motor to rotate the plurality of wheels provided in the identified at least one driving module at different rotation speeds.

[0069] Here, the term "driving module not in contact with the floor" may refer to a state in which a plurality of wheels included in the driving module are not in contact with the floor. For convenience of explanation, in the following description, "driving module including at least one wheel not in contact with the floor" will be referred to as "driving module not in contact with the floor."

[0070] The detailed configuration of the driving module, such as the sensors of the plurality of driving modules (120) and the plurality of wheels, will be described in detail in the description of FIGS. 3 and 4 described below.

[0071] FIG. 3 is a block diagram for explaining the configuration of a driving module according to an embodiment of the present disclosure, and FIG. 4 is a drawing for explaining the configuration of a driving module according to an embodiment of the present disclosure.

[0072] According to FIGS. 3 and 4, one driving module (120-1) may include a sensor (121), a plurality of wheels (122), and a plurality of motors (123) that rotate each of the plurality of wheels.

[0073] The sensor (121) can sense the movement distance and movement direction of the driving module (120-1).

[0074] In order to sense the direction of movement of the driving module (120-1), the sensor (121) may include an absolute encoder (121a). As illustrated in FIG. 4, the absolute encoder (121a) may be provided on the upper portion of the driving module (120-1). The processor (140) may accurately identify the rotation angle of the driving module (120-1) based on the sensing value of the absolute encoder (121a). Specifically, the absolute encoder (121a) may output data on how much the rotating disk has rotated by scanning an optically binary-encoded position code on the rotating disk, and the processor (140) may identify the direction in which the driving module (120-1) has rotated based on the data output from the absolute encoder (121a).

[0075] In Fig. 4, the absolute encoder (121a) is shown as being provided on the upper part of the driving module (120-1), but this is only one embodiment and is not limited thereto. It goes without saying that the absolute encoder (121a) may be provided at various locations where it can sense the rotation angle of the driving module (120-1).

[0076] In addition, in order to sense the movement distance of the driving module (120-1), the sensor (121) may include an incremental encoder (121b). As illustrated in FIG. 4, the incremental encoder (121b) may be provided on the wheel (122) of the driving module (120-1). The processor (140) can accurately identify the number of rotations of the wheel (122) through the incremental encoder (121b). Specifically, the incremental encoder (121b) can optically count the number of slots arranged at regular intervals on the circumference of the rotating disk when the rotating disk rotates and output the counted number of times, and the processor (140) can accurately identify the number of rotations of the wheel (122) based on the value output from the incremental encoder (121b). The processor (140) can calculate the distance traveled by the driving module (120-1) based on the number of rotations of the identified wheel (122).

[0077] Although the above description only exemplifies the case where the sensor (121) includes an absolute encoder (121a) and an incremental encoder (121b), the sensor (121) may include various sensors capable of detecting the movement distance and movement direction of the driving module (120-1). For example, the sensor (121) may include a magnetic encoder, and may detect the number of rotations and the rotation direction of the wheel (122) through the magnetic encoder.

[0078] In addition, the sensor (121) may include various types of sensors such as a contact sensor, an ultrasonic sensor, and an infrared sensor, and through these, it is possible to determine whether the wheel (122) is in contact with the floor surface. For example, when the sensor (121) includes a contact sensor, the processor (140) can detect contact between the wheel (122) and the ground through the contact sensor, and when contact between the wheel (122) and the ground is not detected, the driving module including the wheel can be identified as a driving module not in contact with the floor surface.

[0079] The plurality of wheels (122) may include a first wheel (122a) provided on the left side of the driving module (120-1) and a second wheel (122b) provided on the right side, as illustrated in FIG. 4. The first wheel (122a) and the second wheel (122b) may be connected to each other by a central axis passing through the driving module (120-1). Through this connection, even if only one of the first wheel (122a) and the second wheel (122b) comes into contact with the floor, the remaining wheels may also come into contact with the floor due to the connection by the axis passing through the driving module (120-1).

[0080] The plurality of wheels (122) can rotate clockwise and counterclockwise by receiving power from the motor (123) and can rotate at various speeds.

[0081] Although FIGS. 3 and 4 illustrate that one wheel is provided on each of the left and right sides of the driving module (120-1), this is merely an example, and it is of course possible for two or more wheels to be provided on each of the left and right sides of one driving module (120-1).

[0082] The plurality of motors (123) may be provided in the form of in-wheel motors inside the plurality of wheels (122), as illustrated in FIG. 4. That is, the first motor (123a) may be provided inside the first wheel (122a), and the second motor (123b) may be provided inside the second wheel (122b). Since the first motor (123a) and the second motor (123b) are provided inside the first wheel (122a) and the second wheel (122b), respectively, the plurality of motors (123) may rotate the plurality of wheels (122) at different rotation speeds. That is, the plurality of motors (123) may be implemented in the form of in-wheel motors inside the plurality of wheels (122) of the driving module (120-1), thereby individually providing power to each wheel.

[0083] For example, the processor (140) can control the first motor (123a) to provide a torque of 30 Nm to the first wheel (122a) and the second motor (123b) to provide a torque of 50 Nm to the second wheel (122b), thereby controlling the second wheel (122b) to rotate faster than the first wheel (122a).

[0084] In the above description, it has been exemplified that multiple motors (123) can be implemented in the form of in-wheel motors, but this is only one example and the motors may be implemented through various motors that provide different power to each of one or more wheels through one axis.

[0085] In the present disclosure, the direction in which the front part (124) of the driving module (120-1) faces refers to the reference axis (310) that defines the rotational direction of the driving module (120-1). Accordingly, if the first wheel (122a) provided on the left side of the driving module (120-1) rotates at a faster rotational speed than the second wheel (122b) provided on the right side so that the front part (124) of the driving module (120-1) faces the right side, it is defined that the driving module (120-1) has rotated clockwise (330) or to the right. Conversely, if the second wheel (122b) provided on the right side of the driving module (120-1) rotates at a faster rotation speed than the first wheel (122a) provided on the left side so that the front part (124) of the driving module (120-1) faces the left side, it is defined that the driving module (120-1) rotates counterclockwise (320) or to the left.

[0086] The processor (140) can perform various operations, such as identifying a driving module that is not in contact with the floor or rotating the driving module, by controlling the detailed configurations of the driving module (120-1) as described above. This will be described in detail in the description of the drawings described below.

[0087] FIG. 5 is a drawing for explaining a method for identifying a driving module that does not contact the floor surface of a driving robot according to an embodiment of the present disclosure.

[0088] According to FIG. 5, the processor (140) can identify a driving module (120-1) that does not contact the floor surface among a plurality of driving modules (120-1, 120-2, 120-3, 120-4).

[0089] The processor (140) can identify whether the driving module (120-1) is in contact with the floor based on the sensing value of the sensor (121). Specifically, the processor (140) detects the direction in which the driving module (120-1) is rotated based on the output value of the absolute encoder (121a), and identifies whether the direction of rotation of the driving module (120-1) matches the direction of rotation determined based on the direction in which the main body (110) should drive, thereby identifying whether the driving module (120-1) is not in contact with the floor.

[0090] In order for the processor (140) to rotate the driving module (120-1) in a rotational direction determined based on the direction in which the main body (110) should drive, each of the plurality of wheels (122) must be rotated at a different rotational speed to rotate the direction facing the front part (124). For example, if the direction facing the front part (124) of the driving module (120-1) is to be rotated to the left by θ, the processor (140) can rotate the wheel (122b) provided on the right side of the driving module (120-1) at a high speed and rotate the wheel (122a) provided on the left side at a relatively slow speed.

[0091] The rotation of the driving module (120-1) due to the difference in the rotation speed of the wheels as described above is a control method that is only possible when all of the plurality of wheels (122) are in contact with the floor surface. Therefore, even if the processor (140) controls the rotation speeds of the plurality of wheels (122) provided in the driving module (120-1) at different speeds, if the driving module (120-1) does not rotate in a rotation direction determined based on the direction in which the main body (110) should drive, the processor (140) can identify the driving module (120-1) as a driving module that does not contact the floor surface.

[0092] According to FIG. 5, in order for the main body (110) to drive along the driving path, each of the plurality of driving modules (120) must rotate in a rotational direction determined based on the direction in which the main body (110) must drive. As illustrated in FIG. 5, the plurality of driving modules (120) must all be rotated counterclockwise (or left) by θ so that the main body (110) can drive along the straight driving path. At this time, since the second, third, and fourth driving modules (120-2, 120-3, and 120-4) are all rotated counterclockwise by θ under the control of the processor (140), the processor (140) can identify that the second, third, and fourth driving modules (120-2, 120-3, and 120-4) are in contact with the floor. On the other hand, the processor (140) can identify the first driving module (120-1) as a driving module that does not contact the floor surface because the first driving module (120-1) has not rotated by θ in the counterclockwise direction.

[0093] Additionally, the processor (140) can also identify whether the driving module (120-1) is a driving module that does not contact the floor surface based on the load current of the plurality of motors (123). This will be described in detail in the description of FIG. 7.

[0094] In the above description, only the method of identifying whether the driving module (120-1) is not in contact with the floor surface based on the rotation direction of the driving module (120-1) detected by the processor (140) through the output value of the absolute encoder (121a) has been described, but this is only one example, and it is also possible to identify whether the driving module is not in contact with the floor surface through various sensors that can check whether it is in contact with the floor surface, such as a contact sensor, an ultrasonic sensor, and an infrared sensor.

[0095] In addition, when a driving module (120-1) that is not in contact with the floor surface is identified, the processor (140) can identify the position of the main body (110) excluding the odometry information obtained through the sensor (121) included in the identified driving module (120-1).

[0096] In the present disclosure, when all of the plurality of driving modules (120) are in contact with the floor surface, the odometry information of the main body (110) acquired by the processor (140) is defined as first odometry information, and when at least one driving module is not in contact with the floor surface, the odometry information of the main body (110) acquired by the processor (140) is defined as second odometry information.

[0097] When all of the plurality of driving modules (120) are in contact with the floor surface, the rotational movement of all wheels provided in the plurality of driving modules (120) affects the movement of the main body (110). Therefore, the processor (140) obtains first odometry information based on the odometry information of the plurality of driving modules (120). Specifically, the processor (140) obtains odometry information of each of the plurality of driving modules (120) including information about the direction in which each of the plurality of driving modules (120-1, 120-2, 120-3, 120-4) moved and the distance moved, and may obtain first odometry information based on the obtained odometry information and an arbitrary mathematical formula.

[0098] For example, the processor (140) can obtain first odometry information using the following mathematical formula.

[0099]

[0100] In mathematical expression 1, the matrix that exists on the left side is composed may mean the amount of change in position of the main body (110), may mean the amount of change in the direction of movement of the main body (110). In addition, the variable existing on the right side of mathematical expression 1 may mean the angles at which the first, second, third and fourth driving modules are rotated, respectively, may refer to the speed at which the first, second, third and fourth driving modules move, respectively.

[0101] Therefore, the processor (140) calculates the rotation angle of each of the plurality of driving modules in mathematical expression 1. ) and the movement speed of each of the multiple driving modules ( ) to input the position change amount of the main body (110) ) and the amount of change in the direction of movement of the main body (110) ( ) can be obtained.

[0102] Mathematical expression 1 may be a formula predefined by the designer or user of the driving robot (100) considering the positional relationship between the main body (110) and the plurality of driving modules (120). Mathematical expression 1 is merely an example, and the processor (140) may also obtain the first odometry information based on various other mathematical expressions.

[0103] On the other hand, when there is a driving module (120-1) that does not contact the floor surface, the rotational movement of the plurality of wheels (122) provided in the driving module (120-1) that does not contact the floor surface cannot affect the movement of the main body (110). Therefore, since the information such as the rotational direction of the driving module (120-1) and the rotational number of the plurality of wheels (122) obtained through the absolute encoder (121a) and the incremental encoder (121b) of the driving module (120-1) that does not contact the floor surface is information that is not related to the movement of the main body (110) at all, the processor (140) can obtain the second odometry information based on the odometry information of the second, third, and fourth driving modules (120-2, 120-3, 120-4) excluding the driving module (120-1) that does not contact the floor surface and an arbitrary mathematical formula.

[0104] For example, the processor (140) can obtain second odometry information using the following mathematical formula.

[0105]

[0106] In mathematical expression 2, as in mathematical expression 1, the matrix existing on the left side is composed may mean the amount of change in position of the main body (110), may mean the amount of change in the direction of movement of the main body (110). However, in mathematical expression 2, the variable existing on the right side may mean the angles at which the second, third and fourth driving modules are rotated, respectively, may refer to the speed at which the second, third, and fourth driving modules move, respectively. That is, compared to mathematical expression 1, mathematical expression 2 does not include the rotation angle value and movement speed value of the first driving module.

[0107] Therefore, the processor (140) calculates the rotation angle of each of the remaining driving modules except for the first driving module that is not in contact with the floor surface in mathematical expression 2. ) and movement speed ( ) to input the position change amount of the main body (110) ) and the amount of change in the direction of movement of the main body (110) ( ) can be obtained.

[0108] Mathematical expression 2 may be a formula predefined by the designer or user of the driving robot (100) considering the positional relationship between the main body (110) and the plurality of driving modules (120). Mathematical expression 2 is merely an example, and the processor (140) may also obtain second odometry information based on various other mathematical expressions.

[0109] In addition, the processor (140) can store the first odometry information and the second odometry information in the memory (130), and identify the position of the main body (110) based on the odometry information stored in the memory (130). Specifically, the memory (130) can store information on the initial position (X0) of the main body (110), and the processor (140) can identify the new position (X1) of the main body (110) by reflecting the odometry information, which includes information on the distance and direction in which the main body (110) has moved, to the initial position (X0) of the main body (110) stored in the memory (130).

[0110] In addition, when a driving module (120-1) that is not in contact with the floor surface is identified, the processor (140) can control the motor so that multiple wheels of the identified driving module (120-1) rotate at different rotation speeds, which will be described in detail in the description of FIG. 6.

[0111] FIG. 6 is a drawing for explaining a method for controlling multiple wheels of a driving robot according to an embodiment of the present disclosure.

[0112] According to FIG. 6, the processor (140) can control the rotation speeds of the plurality of wheels (122) provided in the driving module (120-1) that does not contact the floor surface differently.

[0113] Returning to FIG. 5, the processor (140) may identify the driving module (120-1) that is not rotated counterclockwise by θ as a driving module that does not contact the floor surface, and may want to quickly rotate the driving module (120-1) counterclockwise by θ for driving the main body (110).

[0114] For example, assume that the floor surface on which the driving robot (100) drives is uneven. If the height of the floor surface suddenly decreases and then increases, some of the driving modules (120-1) among the plurality of driving modules (120) may momentarily come out of contact with the floor surface and then come into contact with the floor surface again. At the moment of no contact with the floor surface, the processor (140) cannot control the rotation direction of the driving module (120-1), and therefore, as illustrated in FIG. 5, the driving module (120-1) may not rotate in the rotation direction determined instantaneously. The processor (140) may control the plurality of wheels provided in the driving module (120-1) to rotate at different rotation speeds so that the driving module (120-1) can quickly rotate in the rotation direction determined.

[0115] At this time, the processor (140) can rotate, among the plurality of wheels (123) provided in the driving module (120-1) that do not contact the floor surface, the wheel arranged on the opposite side based on the rotation direction determined for the driving module (120-1) at a faster speed than the rotation speed of the wheels provided in the remaining driving modules (120-2, 120-3, 120-4), and the processor (140) can rotate, among the plurality of wheels provided in the driving module (120-1), the wheel arranged on the side of the rotation direction determined for the driving module (120-1) at a slower speed than the rotation speed of the wheels provided in the remaining driving modules (120-2, 120-3, 120-4).

[0116] Specifically, as shown in FIG. 5, when the main body (110) wants to drive on a straight path in the left direction, all driving modules (120-1, 120-2, 120-3, 120-4) must be aligned in a direction rotated θ to the left, but the driving module (120-1) that is not in contact with the floor may not be rotated θ to the left. In order to rotate the driving module (120-1) to the left by θ, the processor (140) rotates the wheel (122b) arranged on the opposite side (right) of the determined rotation direction (left) at a speed (V) faster than the rotation speed of the remaining wheels. R1 ) can be controlled to rotate and the wheel (122a) placed on the determined rotation direction side (left) has a rotation speed (V) slower than the rotation speed of the remaining wheels. L1 ) can be controlled to rotate.

[0117] Rotation speed (V) of the wheel (122b) placed on the opposite side of the determined rotation direction R1 ) is positioned on the side of the rotation direction in which the rotation speed (V) of the wheel (122a) is determined. L1 ) is larger than (V R1 >> V L1 ), when the driving module (120-1) comes into contact with the floor surface again, the driving module (120-1) can quickly rotate to the left due to the difference in rotational speed of the wheels.

[0118] When the processor (140) identifies that the driving module (120-1) that does not contact the floor surface has rotated again in the rotational direction determined by the above-described control operation, the processor (140) can control the plurality of motors (123) so that the plurality of wheels (122) provided in the driving module (120-1) rotate at the same rotational speed.

[0119] Specifically, the processor (140) can identify whether the driving module (120-1) has rotated to the left by θ based on the sensing value of the sensor (121) including the absolute encoder (121a). If the processor (140) identifies that the driving module (120-1) has not rotated to the left by θ, it can cause each of the plurality of wheels (122) to rotate at a different rotation speed.

[0120] On the other hand, if the processor (140) identifies that the driving module (120-1) has rotated to the left by θ, it rotates multiple wheels (122) at the same rotation speed (V R2 = V L2 ) to control the plurality of motors to rotate at the same rotation speed (V). Each wheel provided on the right and left sides among the plurality of wheels (122) can be controlled to prevent the driving module (120-1) from rotating any further. R2 = V L2 ) rotates, there is no difference in rotation speed, so the driving module (120-1) does not rotate. Therefore, after the driving module (120-1) rotates in the determined rotation direction, the plurality of motors (123) can be controlled so that the plurality of wheels (122) rotate at the same speed.

[0121] In the above description, it is described only that the alignment of the driving module can be identified by a sensor (121) including an absolute encoder (121a), but this is only one example, and it is of course possible to identify the alignment of the driving module by using various sensors capable of detecting the direction of movement of the driving module, such as an incremental encoder (121b) and a Hall sensor.

[0122] For example, if a small magnet is attached to the wheel of the driving module, the Hall sensor can detect a change in the magnetic field whenever the wheel rotates, and the processor (140) can also determine in which direction the driving module is moving through the pattern of the change in the magnetic field detected by the Hall sensor.

[0123] FIG. 7 is a drawing for explaining a method for identifying a driving module that does not contact the floor surface of a driving robot according to one embodiment of the present disclosure.

[0124] According to FIG. 7, the load current of the motor provided in each of the plurality of driving modules (120) may vary depending on the state of the floor surface, and the load current (410) of the motor when the driving module is in contact with the floor surface may be much greater than the load current (420) of the motor when the driving module is not in contact with the floor surface.

[0125] Here, the load current of the motor may refer to the current consumed by the motor to drive the wheel provided in the driving module (120-1), and may affect the rotation speed of the wheel. For example, to rotate the wheel at 10 (rad / sec), a motor load current of 80 (mA) may be consumed, and to rotate the wheel at a faster rate of 30 (rad / sec), a motor load current of 240 (mA) may be consumed.

[0126] At this time, the load current value of the motor may vary depending on the size of the physical resistance applied to the wheel. For example, even in the same situation where the motor tries to control the rotation speed of the wheel to 10 (rad / sec), if the wheel is on a smooth floor, a load current of 80 (mA) may be consumed, whereas if the wheel is on a sticky floor, the resistance of the floor may be strong, resulting in a load current of 200 (mA). If the wheel is not in contact with the floor, there is no resistance between the wheel and the floor, and only air resistance exists, so the load current of the motor may become very low. At this time, the processor (140) may measure the load current of the motor by measuring the current or voltage flowing to the motor side using an ammeter, a voltmeter, etc.

[0127] When the processor (140) identifies that the load current of the motor equipped in at least one of the plurality of driving modules (120) is smaller than the load current of the motors equipped in the remaining driving modules by a predetermined amount or more, the processor (140) can identify the driving module in which the load current of the motor is smaller than the predetermined amount or more as a driving module that does not contact the floor surface.

[0128] For example, assuming that the preset current value is 100 (mA). If the load current of the motors equipped in the second, third, and fourth driving modules (120-2, 120-3, 120-4) is 150 (mA), while the load current of the motor equipped in the first driving module (120-1) is 30 (mA), the load current value of the motor equipped in the first driving module (120-1) is 100 (mA) or more less than the load current of the motors equipped in the remaining driving modules (120-2, 120-3, 120-4), and therefore, the processor (140) can identify the first driving module (120-1) as a driving module that does not contact the floor.

[0129] Additionally, when the processor (140) identifies that the load current of the motor has decreased below a predetermined value, the processor may identify the driving module having the motor whose load current has decreased below the predetermined value as a driving module that does not contact the floor surface.

[0130] For example, if the preset value is 30 (mA), the processor (140) can identify a motor whose load current value has decreased to less than 30 (mA) without comparing it with the load current of the motors equipped in other driving modules, and can identify the driving module equipped with the motor as a driving module that does not contact the floor.

[0131] The above-described 'pre-set size' and 'pre-set value' can be designated as various values ​​depending on the settings of the developer of the driving robot (100), and of course, can also vary depending on the weight of the load loaded on the driving robot (100).

[0132] As described above, the processor (140) can identify a driving module that does not contact the floor based on the load current value of the motor, and for the driving module that does not contact the floor, the rotation speed of each of the plurality of wheels can be controlled differently as described in FIGS. 5 and 6 to rotate the main body (110) in a rotation direction determined based on the direction in which it should travel.

[0133] FIG. 8 is a drawing for explaining a curved path driving method of a driving robot according to an embodiment of the present disclosure.

[0134] According to FIG. 8, when the main body (110) must drive along a curved path (600), the processor (140) can determine the rotational direction of each of the plurality of driving modules (120) based on the direction of the main body (110) and the characteristics of the curved path. Based on the determined rotational direction, the processor (140) can control the plurality of driving modules (120) to move in different directions and at different speeds.

[0135] Returning to FIG. 5, when the main body (110) travels along a straight path without rotation of the main body (110), the processor (140) can control the plurality of driving modules (120) to all move in the same direction and speed.

[0136] Accordingly, if the driving path of the main body (110) is a straight path as illustrated in FIG. 5, all of the plurality of driving modules must be aligned in the same direction. Therefore, when the processor (140) identifies a driving module (120-1) that is not in contact with the floor, the processor (140) can control the motor to rotate each of the plurality of wheels provided in the driving module (120-1) at a different rotation speed until the driving module (120-1) that is not in contact with the floor is aligned in the same direction as the alignment of the remaining driving modules.

[0137] Additionally, when the processor (140) identifies that the driving module (120-1) that is not in contact with the floor surface is aligned with other driving modules, the processor (140) can control the motor to rotate the plurality of wheels provided in the driving module (120-1) at the same rotation speed as the rotation speed of the wheels provided in the other driving modules.

[0138] Since the rotation speed control of the wheel described above operates in the same manner as described in FIGS. 3 to 6, its description will be omitted.

[0139] On the other hand, since the driving path of the main body (110) is a curved path (600) as shown in FIG. 8, if the main body (110) must also rotate along the driving path, the processor (140) can set different target directions and target velocities for each of the plurality of driving modules (120) so that the main body (110) can drive normally along the curved path (600).

[0140] Here, the target direction may refer to a rotation direction in which each of the plurality of driving modules (120) must rotate in order for the main body (110) to normally drive along the curved driving path (600), and the target speed may refer to a rotation speed in which the plurality of wheels provided in each of the plurality of driving modules (120) must rotate in order for the main body (110) to normally drive along the curved driving path (600). The target direction and the target speed may be set based on the relationship between the position of the rotation center (500) of the curved path (600) and the position of each driving module. Here, the rotation center may refer to the central point around which the curve rotates. That is, when the curved path is viewed as an arc of a circle, the point that becomes the center of the circle can be defined as the rotation center (500).

[0141] For example, since the first driving module (120-1) is positioned relatively close to the center of rotation (500), while the second driving module (120-2) is positioned relatively far from the center of rotation (500), while the main body (110) drives along the curved path (600), the first driving module (120-1) must move a short distance, while the second driving module (120-2) must move a longer distance. Accordingly, the processor (140) can set the target speed of the second driving module (120-2) to be faster than the target speed of the first driving module (120-1). In addition, the processor (140) can set the target direction so that the first driving module (120-1) rotates at a larger angle (θ1) to the left based on the fact that the first driving module (120-1) is positioned relatively close to the center of rotation (500), and the second driving module (120-2) rotates at a smaller angle (θ2) to the left based on the fact that the second driving module (120-2) is positioned relatively far from the center of rotation (500).

[0142] In one embodiment, when the path along which the main body is to drive is a curved path, if a driving module (120-1) that is not in contact with the floor is identified, the processor (140) may control the motor so that the plurality of wheels provided in the driving module (120-1) rotate at different rotation speeds until the driving module (120-1) that is not in contact with the floor is aligned in the target direction. In addition, if the processor (140) identifies that the driving module (120-1) is aligned in the target direction, the processor (140) may control the motor so that the plurality of wheels provided in the driving module (120-1) all rotate at the same target speed.

[0143] FIG. 9 is a flowchart for explaining a driving method of a driving robot according to an embodiment of the present disclosure.

[0144] According to FIG. 9, the driving robot can rotate each of the plurality of driving modules at a rotation angle determined for each of the plurality of driving modules based on the direction in which the main body of the driving robot should drive (S910).

[0145] For example, if the direction and path that the main body should drive is a straight path in the left direction, the plurality of driving modules can be aligned to rotate to the left by an arbitrary angle. According to another embodiment, if the direction and path that the main body should drive is a curved path in the left direction, the rotation angles of each of the plurality of driving modules can be set differently based on the relationship between the position of each of the plurality of driving modules and the position of the center of rotation of the curved path, and each of the plurality of driving modules can be rotated according to each rotation angle.

[0146] Next, the driving robot can identify at least one driving module that is not in contact with the floor surface (S920).

[0147] For example, if the driving robot identifies that the load current of the motor included in at least one of the plurality of driving modules is smaller than the load current of the motors of the remaining driving modules by a preset amount or more, the driving module including the identified motor can be identified as a driving module that does not contact the floor surface.

[0148] According to another embodiment, the driving robot may identify a driving module among the plurality of driving modules that is not aligned with a rotation angle determined based on a direction in which the main body should drive, based on an output value of an absolute encoder included in each of the plurality of driving modules, and may identify the identified driving module as a driving module that does not contact the floor surface.

[0149] Next, the driving robot can rotate multiple wheels provided on at least one driving module identified as a driving module that does not contact the floor surface at different rotation speeds (S930).

[0150] For example, among the plurality of wheels provided in at least one driving module identified as a driving module that does not contact the floor surface, the driving robot can rotate a wheel positioned on the opposite side based on the determined rotation direction at a faster speed than the rotation speed of the wheels provided in the remaining driving modules, and among the plurality of wheels, the wheel positioned on the same side as the determined rotation direction can rotate at a slower speed than the rotation speed of the wheels provided in the remaining driving modules.

[0151] Next, when the driving robot identifies that the driving module that was identified as a driving module that does not contact the floor surface has been rotated again at a determined rotation angle, the driving robot can rotate multiple wheels provided in the driving module at the same rotation speed (S940).

[0152] FIG. 10 is a flowchart illustrating a method for identifying the location of a driving robot according to an embodiment of the present disclosure.

[0153] According to FIG. 10, the driving robot can obtain the first odometry information of the main body while the main body of the driving robot is driving according to the driving of a plurality of driving modules (S1010).

[0154] Here, the first odometry information may refer to the odometry information of the main body acquired by the driving robot when all of the plurality of driving modules are in contact with the floor surface.

[0155] Next, the driving robot can obtain second odometry information of the main body based on information obtained from the remaining driving modules except for the driving module that does not contact the floor surface (S1020).

[0156] Here, the second odometry information may mean odometry information of the main body acquired by the driving robot when at least one driving module among a plurality of driving modules is not in contact with the floor surface.

[0157] Next, the driving robot can identify the position of the main body based on the first and second odometry information (S1030).

[0158] For example, a driving robot can store information about the initial position (X0) of the main body, and the driving robot can identify a new position (X1) of the main body by reflecting first and second odometry information including information about the distance and direction in which the main body has moved to the stored initial position (X0) of the main body.

[0159] The various methods described in FIGS. 9 and 10 can be performed by a driving robot having the configuration shown in FIG. 2 or FIG. 3, but are not necessarily limited thereto, and can also be performed by a driving robot having various configurations.

[0160] In the above, it has been described that the driving module can drive the main body by independently controlling the plurality of wheels including the plurality of wheels. However, the driving robot may also be implemented in a form in which the driving module includes only one wheel. In this case, a rotatable hinge may be provided at the connection portion between the driving module and the main body, and the driving module may be rotated not based on the difference in rotational speeds of the plurality of wheels provided in the driving module as described above, but through the hinge that can directly rotate the driving module.

[0161] While various embodiments have been described individually or in combination above, each embodiment is not necessarily implemented independently. That is, the various embodiments described above may be implemented together in whole or in part with at least one other embodiment in a single product.

[0162] Meanwhile, the methods according to the various embodiments of the present disclosure described above may be implemented in the form of applications that can be installed on existing driving robots.

[0163] Additionally, the methods according to the various embodiments of the present disclosure described above can be implemented only with a software upgrade or a hardware upgrade for an existing driving robot.

[0164] Additionally, the various embodiments of the present disclosure described above may be performed through an embedded server provided in a driving robot, or at least one external server.

[0165] Meanwhile, according to a temporary example of the present disclosure, the various embodiments described above can be implemented as software including instructions stored in a machine-readable storage medium that can be read by a machine (e.g., a computer). The device is a device that can call instructions stored in the storage medium and operate according to the called instructions, and may include an electronic device according to the disclosed embodiments. When an instruction is executed by a processor, the processor can perform a function corresponding to the instruction directly or under the control of the processor by using other components. The instruction may include code generated or executed by a compiler or interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' means that the storage medium does not contain a signal and is tangible, but does not distinguish between whether data is stored semi-permanently or temporarily in the storage medium.

[0166] Furthermore, according to one embodiment of the present disclosure, the method according to the various embodiments described above may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. 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 online through an application store (e.g., Play Store™). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.

[0167] In addition, each of the components (e.g., modules or programs) according to the various embodiments described above may be composed of a single or multiple entities, and some of the corresponding sub-components described above may be omitted, or 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, which may perform the same or similar functions as those performed by each of the corresponding components prior to integration. Operations performed by modules, programs or other components according to various embodiments 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.

[0168] Although the preferred embodiments of the present disclosure have been illustrated and described above, the present disclosure is not limited to the specific embodiments described above, and various modifications may be made by a person having ordinary skill in the art to which the present disclosure pertains without departing from the gist of the present disclosure as claimed in the claims, and such modifications should not be understood individually from the technical idea or prospect of the present disclosure.

Claims

1. In driving robots, entity; A plurality of driving modules rotatably connected to the lower side of the above main body; and comprising at least one processor; Each of the plurality of driving modules includes a sensor, a plurality of wheels, and a motor for rotating the plurality of wheels, At least one processor of the above, Each of the plurality of driving modules is rotated based on the rotation direction of each of the plurality of driving modules, which is determined based on the direction in which the main body should drive. Based on the sensing value of the above sensor, at least one driving module that is not in contact with the floor surface is identified among the plurality of driving modules, A driving robot that controls a motor provided in at least one of the identified driving modules to rotate a plurality of wheels provided in at least one of the identified driving modules at different rotation speeds.

2. In paragraph 1, At least one processor of the above, A driving robot that controls the motor provided in the at least one driving module so that the plurality of wheels provided in the at least one driving module rotate at the same rotation speed when the at least one driving module is rotated in a rotational direction determined based on the direction in which the main body should drive.

3. In paragraph 1, At least one processor of the above, If at least one of the plurality of driving modules is identified as not being in contact with the floor surface, Among the plurality of wheels provided in the at least one driving module, a wheel positioned on the opposite side based on the rotation direction determined for the at least one driving module rotates at a speed faster than the rotation speed of the wheels provided in the remaining driving modules. A driving robot that controls the motor provided in the at least one driving module so that among the plurality of wheels of the at least one driving module, a wheel arranged on the rotational direction side rotates at a speed slower than the rotation speed of the wheels provided in the remaining driving modules.

4. In paragraph 1, memory; including more, At least one processor of the above, In a state where the main body is driving according to the driving of the plurality of driving modules, first odometry information of the main body is acquired based on the sensing value of the sensor included in each of the plurality of driving modules and stored in the memory. If at least one of the plurality of driving modules does not contact the floor surface, the second odometry information of the main body is acquired and stored in the memory based on the sensing value of the sensor included in the remaining driving modules excluding the at least one driving module. A driving robot that identifies the position of the main body based on the first and second odometry information.

5. In paragraph 1, At least one processor of the above, A driving robot that identifies a driving module including the identified motor as a driving module that does not contact the floor surface when it is identified that the load current of the motor included in at least one driving module among the plurality of driving modules is smaller than the load current of the motors of the remaining driving modules by a preset amount or more.

6. In paragraph 1, The above sensor includes an absolute encoder that senses the rotation direction of the driving module, At least one processor of the above, A driving robot that identifies a driving module among the plurality of driving modules that does not rotate in a rotational direction determined based on a direction in which the main body should drive based on the output value of the absolute value encoder, and identifies the identified driving module as a driving module that does not contact the floor surface.

7. In paragraph 1, At least one processor of the above, If the driving path of the above body is identified as a straight path, A driving robot that controls the motor provided in the at least one driving module to rotate the plurality of wheels provided in the at least one driving module at different rotation speeds until the at least one driving module is aligned with the remaining driving modules, and controls the motor provided in the at least one driving module to rotate the plurality of wheels provided in the at least one driving module at the same rotation speed as the plurality of wheels provided in the remaining driving modules when the at least one driving module is identified as being aligned with the remaining driving modules based on the sensing value of the sensor.

8. In paragraph 1, At least one processor of the above, If the driving path of the above body is identified as a curved path, Controlling the motor provided in the at least one driving module to rotate the plurality of wheels provided in the at least one driving module at different rotational speeds until the at least one driving module rotates in the determined rotational direction; If the at least one driving module is identified as being aligned in the determined rotation direction based on the sensing value of the sensor, the motor provided in the at least one driving module is controlled to adjust the rotation speed of the plurality of wheels included in the at least one driving module to the same target speed, A driving robot in which the determined rotation direction is determined based on the relationship between the position of the rotation center of the curved path and the position of the at least one driving module.

9. A driving method of a driving robot including a plurality of driving modules, A step of rotating each of the plurality of driving modules so that the plurality of driving modules rotate in a rotational direction of each of the plurality of driving modules determined based on the direction in which the main body of the driving robot should drive; A step of identifying at least one driving module among the plurality of driving modules that does not contact the floor surface; and A driving method of a driving robot, comprising: a step of rotating a plurality of wheels provided in at least one driving module identified above at different rotation speeds.

10. In paragraph 9, A driving method of a driving robot, further comprising: a step of rotating the plurality of wheels provided on the at least one driving module at the same rotation speed when the at least one driving module is rotated in a rotational direction determined based on the direction in which the main body should drive; 11. In paragraph 9, The step of rotating a plurality of wheels provided in at least one of the identified driving modules at different rotational speeds is: A step of rotating a wheel positioned on the opposite side of the rotation direction determined for at least one driving module among the plurality of wheels provided in at least one driving module at a speed faster than the rotation speed of the wheels provided in the remaining driving modules; and A driving method of a driving robot, comprising: a step of rotating a wheel arranged on the rotational direction side among a plurality of wheels of at least one module at a speed slower than the rotation speed of wheels provided in the remaining driving modules; 12. In paragraph 9, A step of acquiring first odometry information of the main body while the main body is driving according to the driving of the plurality of driving modules; A step of obtaining second odometry information of the main body based on information obtained from the remaining driving modules excluding the at least one driving module when at least one of the plurality of driving modules is not in contact with the floor surface; and A driving method of a driving robot, further comprising: a step of identifying a position of the main body based on the first and second odometry information; 13. In paragraph 9, The step of identifying at least one driving module that is not in contact with the floor surface among the plurality of driving modules is: A driving method of a driving robot, comprising: a step of identifying a driving module including the identified motor as a driving module that does not contact the floor surface, when it is identified that the load current of the motor included in at least one driving module among the plurality of driving modules is smaller than the load current of the motors of the remaining driving modules by a preset amount or more.

14. In paragraph 9, The step of identifying at least one driving module that is not in contact with the floor surface among the plurality of driving modules is: A driving method of a driving robot, comprising: a step of identifying a driving module among the plurality of driving modules that does not rotate in a rotational direction determined based on a direction in which the main body should drive, based on an output value of an absolute encoder included in each of the plurality of driving modules; identifying the identified driving module as a driving module that does not contact the floor surface.

15. A non-transitory computer-readable recording medium storing computer commands that cause a driving robot to perform an operation when executed by a processor of a driving robot including a plurality of driving modules, wherein the operation is: A step of rotating each of the plurality of driving modules so that the plurality of driving modules rotate in a rotational direction of each of the plurality of driving modules determined based on the direction in which the main body of the driving robot should drive; A step of identifying at least one driving module among the plurality of driving modules that does not contact the floor surface; and A computer-readable recording medium comprising: a step of rotating a plurality of wheels provided in at least one identified driving module at different rotational speeds;

Citation Information

Patent Citations

  • Moving body and it contact sensing method

    JP2003291087A

  • Robot cleaner and method for controlling travel the same

    KR1020100136885A

  • Mobile Robot and Controlling Method Of the Same

    KR1020180127709A

  • Automatic traffic enforcement system using laser signal

    KR102058179B1

  • Modular dual swivel wheel and platform including the same

    KR102597420B1