Mobile device for generating feedback force corresponding to state or surrounding environment of the mobile device and control method thereof
Patent Information
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- NAVER CORP
- Filing Date
- 2024-09-10
- Publication Date
- 2026-08-03
Smart Images

Figure 112024099469513-PAT00003_ABST
Abstract
Description
Technology Field
[0001] The following description relates to a moving body that generates a feedback force based on a state (or surrounding environment) determined based on sensing data, and a method for controlling the same. Background Technology
[0002] Mobile devices, including robots, are used to provide various services in indoor and outdoor spaces. These robots include autonomous robots configured to navigate autonomously within a space to perform specific tasks or provide services.
[0003] The robot is configured to allow for manual control by a user as needed, for example, for maintenance or specific purposes. Such a manually controllable robot is configured to travel within a space while moving in the direction indicated by an external force or interaction from the user. For instance, a manually controllable robot is controlled to move in the direction desired by the user in response to interactions such as a user's touch or external forces applied by the user.
[0004] In the case of a robot capable of manual control as described above, it is controlled to drive in the direction intended by the user; however, there are instances where the robot collides with an obstacle due to the user's inattention, or enters an area where entry is not permitted or impossible. Therefore, there is a need for technology that enhances safety in manual control of the robot and enables optimal control of the robot by reflecting the changing state of the robot or the surrounding environment.
[0005] Korean Registered Patent No. 10-1231771 discloses a method for dynamically reconfiguring a robot software component by downloading from an external server or a software component provided inside the robot to enable the robot to autonomously perform appropriate actions and responses suitable for external or internal environmental changes and situational conditions that are changed by movement or internal failure.
[0006] The information described above is for illustrative purposes only and may include content that does not constitute part of the prior art and may not include what the prior art would present to a person skilled in the art. The problem to be solved
[0007] A method for controlling a moving body can be provided, wherein while the moving body travels through space, the state of the moving body is determined based on sensing data, a feedback force to be generated by a driving unit is determined based on the determined state, and the driving unit of the moving body is controlled to generate the determined feedback force.
[0008] A method for controlling a moving object can be provided, wherein the state of the moving object is determined as one of a plurality of states based on the distance between the moving object and an obstacle or a predetermined danger area, and a feedback force to be generated by the driving object in a different manner according to the determined state of the moving object is determined, and the driving object is controlled to generate the corresponding feedback force. means of solving the problem
[0009] In one aspect, a control method for controlling a moving body traveling in space, performed by a moving body or a control system controlling said moving body, is provided, wherein the moving body is controlled to travel in the space based on an external force applied to said moving body or an interaction between said moving body and a user, and while said moving body travels in the space, the method comprises: determining the state of said moving body based on sensing data obtained from a sensor of said moving body; determining a feedback force to be generated by a driving unit of said moving body based on the determined state of said moving body; and controlling the driving unit of said moving body to generate the determined feedback force.
[0010] The step of determining the state of the moving body is to determine the state of the moving body as a first state in which the moving body is located in a first area which is a free area where the moving body can freely drive in the direction indicated by the external force or the interaction, and the step of determining the feedback force is to determine the feedback force as 0, and the moving body can be controlled to drive in the direction indicated by the external force or the interaction within the first area without resistance caused by the feedback force.
[0011] The step of determining the state of the moving body is to determine the state of the moving body as a second state in which the moving body is located in a second area, which is a drag area where a first reverse force with respect to the moving body's direction of movement is applied to the moving body, and the step of determining the feedback force is to determine the first reverse force calculated based on the speed of the moving body in the direction of movement as the feedback force, and the moving body can be controlled to drive while receiving resistance from the feedback force within the second area.
[0012] The first reverse force can be calculated as a value proportional to the square of the velocity of the moving body in the direction of movement.
[0013] The step of determining the state of the moving body is to determine the state of the moving body as a third state in which the moving body is located in a third region, which is a repulsive region where a second reverse force with respect to the moving body's direction of movement is applied to the moving body, and the step of determining the feedback force is to determine the second reverse force calculated based on the moving distance of the moving body within the third region as the feedback force, and the moving body may be controlled to move out of the third region according to the resistance caused by the feedback force.
[0014] The above second reverse force can be calculated as a value proportional to the distance traveled within the above third region.
[0015] The step of determining the state of the moving body may determine the state of the moving body as one of a plurality of states based on the distance between the moving body and an obstacle or a predetermined danger area, and the step of determining the feedback force may determine the feedback force in a different way depending on the state to which the moving body corresponds among the plurality of states.
[0016] The plurality of states above may include a first state in which the moving body is located in a first region, which is a free region where the moving body can freely move in the direction indicated by the external force or the interaction; a second state in which the moving body is located in a second region, which is a drag region where a first reverse force with respect to the direction of movement of the moving body is applied to the moving body; and a third state in which the moving body is located in a third region, which is a repulsive region where a second reverse force with respect to the direction of movement of the moving body is applied to the moving body.
[0017] The step of determining the state of the moving body may determine the state of the moving body as the first state if the distance falls within a first range, determine the state of the moving body as the second state if the distance falls within a second range less than the first range, and determine the state of the moving body as the third state if the distance falls within a third range less than the second range.
[0018] The step of controlling the driving unit may include: inputting a signal for applying the feedback force determined to the driving unit; and controlling the driving unit so that the wheel torque determined based on the input signal is output through the wheel of the driving unit.
[0019] The step of determining the state of the moving body as a fourth state in which the moving body is located on an incline and determining the feedback force involves determining a reverse force that offsets at least a portion of the gravitational force applied to the moving body on the incline as the feedback force, and by outputting the feedback force by the driving unit, the moving body can be controlled to stop on the incline in the absence of the external force or the interaction.
[0020] The step of determining the feedback force includes determining a current value to be applied to the driving unit to generate the feedback force based on the current value applied to the driving unit, the tilt of the moving body determined based on the sensing data, and the mass of the moving body, and as the determined current value is applied to the driving unit, a wheel torque corresponding to the feedback force is output through the wheel of the driving unit, thereby allowing the moving body to stop on the ramp in the absence of the external force or the interaction.
[0021] When the external force or the interaction is input to the above-mentioned moving body, the moving body can be controlled to move at a constant speed on the ramp.
[0022] The above-mentioned moving body can be controlled to travel in the space by applying a signal determined based on an external force applied to the moving body or an interaction between the moving body and a user to the driving unit, thereby causing the wheel of the driving unit to output a wheel torque corresponding to the signal.
[0023] In another aspect, a computer system comprising a control system for controlling a moving body within a space is provided, wherein the moving body is controlled to travel in the space based on an external force applied to the moving body or an interaction between the moving body and a user, and comprises at least one processor implemented to execute computer-readable commands, wherein the at least one processor determines the state of the moving body based on sensing data obtained from a sensor of the moving body while the moving body travels in the space, determines a feedback force to be generated by a driving unit of the moving body based on the determined state of the moving body, and controls a driving unit of the moving body to generate the determined feedback force.
[0024] In another aspect, a robot that travels within a space comprises: a control unit including at least one processor; a sensor that acquires sensing data regarding an surrounding environment; and a drive unit that operates to drive the robot according to control by the robot control system or the control unit based on the sensing data, wherein the control unit controls the drive unit so that the robot travels within the space based on an external force applied to the robot or an interaction between the robot and a user, wherein while the robot travels within the space, the control unit determines the state of the robot based on the sensing data, determines a feedback force to be generated by the drive unit based on the determined state, and controls the drive unit to generate the determined feedback force. Effects of the invention
[0025] Stability can be increased when manually controlling the robot's movement by controlling the drive unit to generate a stronger feedback force as the moving body approaches an obstacle or a predetermined danger area, based on the distance between the moving body and an obstacle or a predetermined danger area.
[0026] Depending on the area where the moving body is located, the state of the moving body is determined as one of a plurality of states, and by determining the feedback force to be generated by the driving unit in a different way according to the determined state of the moving body, the moving body can be controlled under optimal conditions depending on the state of the moving body or the environment in which the moving body is located.
[0027] By identifying the state in which a moving body is positioned on a ramp, the moving body can be controlled so that it does not slide on the ramp when there is no external force or interaction, and travels on the ramp at a constant speed when there is an external force or interaction. Brief explanation of the drawing
[0028] FIG. 1 illustrates a method for controlling a moving body by determining a feedback force to be generated by a driving unit according to the state of the moving body, according to one embodiment. FIG. 2a shows a robot comprising an autonomous driving module, a service module, and a driving platform as a mobile body according to one embodiment. FIG. 2b is a block diagram showing a mobile body and its control system according to one embodiment. FIGS. 3 and FIGS. 4 are block diagrams illustrating a control system for controlling a moving body according to one embodiment. FIG. 5 is a flowchart illustrating a method of controlling a moving body by determining the state of the moving body according to one example and determining the feedback force to be generated by a driving unit according to the determined state. FIG. 6 is a flowchart illustrating a method of controlling a moving body by determining the feedback force generated by a driving unit while the moving body is positioned on an incline, according to one example. FIG. 7 illustrates a method for determining a plurality of regions where a moving body may be located and corresponding states of the moving body, according to one example. FIG. 8 is a flowchart illustrating a method for determining a feedback force to be generated by a driving unit based on sensing data according to one example, and outputting a wheel torque corresponding to the determined feedback force through a wheel. FIG. 9 illustrates a method for a user to manually control a robot when the robot is positioned on an incline, according to one example. FIG. 10 illustrates the relationship between a force in the direction of gravity applied to a robot (or moving body) and a force in the opposite direction generated by a driving unit when the robot is positioned on an incline, according to one example. Specific details for implementing the invention
[0029] Hereinafter, embodiments will be described in detail with reference to the attached drawings.
[0031] FIG. 1 illustrates a method for controlling a moving body by determining a feedback force to be generated by a driving unit according to the state of the moving body, according to one embodiment.
[0032] The illustrated mobile body (100) may be configured to travel within a space. The mobile body (100) may be a robot configured to provide services in an indoor or outdoor space, such as a building, for example. Meanwhile, the mobile body (100) may be any type of means of transportation or mobile body that travels (or, autonomously travels) within an indoor or outdoor space, such as a vehicle or a trolley. As illustrated, such a mobile body (100) may be configured to move within the space under control by a (robot) control system (120).
[0033] The moving body (100) can autonomously drive through space according to control by the control system (120), but can also be configured to drive through space by manual control by a user as needed. The moving body (100) capable of manual control is configured to drive through space while moving in the direction indicated by the external force or interaction from the user. For example, the moving body (100) capable of manual control can be controlled to move in the direction desired by the user according to an interaction such as a user's touch on an interface area such as a handle or screen, or an external force applied by the user (force by which the user pushes or pulls the moving body (100)). At this time, manual control of the moving body (100) can be performed while the driving force for the moving body (100) is released. This manual control mode of the moving body (100) may be a mode that controls the movement of the moving body (100) based on force (or torque).
[0034] Additionally, the interaction or external force may be used as an auxiliary means to generate a driving force for the movement of the moving body (100). For example, the interaction or external force may serve as a signal to trigger a driving force for the movement of the moving body (100). Accordingly, the user can move the moving body (100) in a desired direction with only an interaction, such as applying a small force or simply holding a handle.
[0035] As such, the moving body (100) of the embodiment may be a robot, vehicle, trolley, etc., configured so that a user can manually control its movement. Additionally, as described above, the moving body (100) may be configured to autonomously navigate through space, but to allow a user to manually control its movement only when necessary (e.g., when movement to a specific location of the moving body (100) is required).
[0036] The space in which the mobile body (100) moves (or travels) may be a place where the mobile body (100) provides services, for example, an indoor and / or outdoor space included in a building. The building may include a space where multiple personnel (hereinafter referred to as users) work or reside, for example, and may include multiple partitioned spaces. The space may represent a part of the building (a specific floor or a partial space within that floor).
[0037] If the mobile body (100) is a service robot, the mobile body (100) may be configured to provide services on at least one floor of the space. Although only one mobile body (100) is shown in FIG. 1, there may be multiple mobile bodies (100) deployed and operating within the space. Within the space, each of the mobile bodies (100) may move to provide services to an appropriate location or appropriate user within the space.
[0038] The services provided by the mobile body (100) may include, for example, at least one of a delivery service, a delivery service for beverages (such as coffee) ordered, a cleaning service, and other information / content provision services.
[0039] The mobile body (100) may be configured to provide services to a specific user at a specific location in space through movement by autonomous driving or movement by manual control, and the movement by (each) autonomous driving and provision of services of the mobile body (100) may be controlled by a control system (120).
[0040] The moving body (100) can be controlled to move within a space by operating a driving unit including a wheel (20) using a driving force generated according to an applied control signal, for example, according to a driving force generated according to an applied control signal, and can be controlled to move in an appropriate direction according to the provision of a service or a set path. The moving body (100) can be moved according to the rotational drive of at least one wheel (20) as illustrated, and the direction of movement can also be changed (e.g., as the axis of the wheel (20) rotates). The illustrated wheel (20) may be a driving wheel of the moving body (100) and / or a direction changing wheel arranged for changing direction. That is to say, (20) can be configured to move the moving body (100) within a space or change the direction of movement of the moving body (100) according to a driving force generated by a control signal applied to the moving body (100). As illustrated, two wheels (20) may be provided on both sides of the moving body (100), or a total of four wheels may be provided, one at each corner of the moving body (100) configured in a square shape.
[0041] The vehicle (100) may come into contact with an obstacle or danger area (50) while driving. The obstacle (50) may be a wall or other structure existing within the space, and the danger area (50) may be an area where the vehicle (100) cannot enter (such as a cliff) or an area where the vehicle (100) is prohibited or restricted from entering. The vehicle (100) may identify the obstacle or danger area (50) through a sensor while moving via autonomous driving or manual control.
[0042] Below, with reference to the example illustrated in FIG. 1, a method of controlling a mobile body (100) to travel through space based on an external force applied to the mobile body (100) or an interaction between the mobile body (100) and a user, that is, a method of controlling the mobile body (100) when the mobile body (100) approaches an obstacle or a danger area (50), is described.
[0043] In an embodiment, the moving body (100) may be controlled to travel through space based on an external force or interaction from a user, for example, the moving body (100) may be controlled to move at a speed v in the direction indicated by the input external force or interaction. At this time, the state of the moving body (100) may be determined based on sensing data obtained from the sensor of the moving body (100). For example, based on the sensing data, the state of the moving body (100) may be determined to be within a certain distance of an obstacle or danger area (50), and a feedback force to be generated by the driving unit of the moving body (100) may be determined according to the determined state of the moving body (100). The feedback force may be a force in the opposite direction to the direction in which the moving body (100) is moving (i.e., the direction of speed v). The driving unit of the moving body (100) may be controlled to generate such a determined feedback force, and thus, the moving body (100) may be decelerated. Meanwhile, if this feedback force is sufficiently strong, the moving body (100) can be flung out in the opposite direction to the direction of velocity v.
[0044] In this way, in the embodiment, when it is determined that the moving body (100) is in an abnormal situation, such as approaching an obstacle or a danger area (50), manual control of the moving body (100) may be limited by the feedback force output by the driving unit.
[0045] Therefore, it is possible to prevent the mobile body (100) from colliding with an obstacle (50) or the mobile body (100) from entering a dangerous area (50) where entry is not permitted or impossible due to the carelessness of the user manually controlling the mobile body (100).
[0046] Meanwhile, the operation of determining the state of the moving body (100) based on sensing data from the sensor of the moving body (100) and determining the feedback force to be generated by the driving unit can be performed by the moving body (100) itself. Alternatively, at least part of the operation may be performed by the control system (120).
[0048] Below, the mobile body (100) of the embodiment is described in more detail with reference to FIGS. 2a and 2b. The mobile body (100) may be a service robot for providing services within a space as described above, an autonomous robot for other purposes, or a part of such a robot (i.e., a module constituting a part of the robot). That is, the mobile body (100) may be implemented to be capable of autonomous driving, but also capable of manual control according to the user's needs.
[0049] FIG. 2a shows a robot comprising an autonomous driving module, a service module, and a driving platform as a mobile body according to one embodiment. FIG. 2b is a block diagram showing a mobile body and its control system according to one embodiment.
[0050] As illustrated in FIG. 2a, the moving body (100) is a physical device and may include a control unit (104), a driving unit (108), a sensor unit (106), and a communication unit (102).
[0051] The control unit (104) may be a physical processor embedded in the vehicle (100) and, although not separately illustrated, may include a path planning processing module, a mapping processing module, a driving control module, a localization processing module, a data processing module, and a service processing module as components to support autonomous driving of the vehicle (100). In this case, the path planning processing module, the mapping processing module, and the localization processing module may be optionally included in the control unit (104) according to the embodiment to enable indoor autonomous driving of the vehicle (100) even when communication with the control system (120) is not established. At least a portion of the control unit (104) may be included in the autonomous driving module (12) provided on the top of the vehicle (100) as illustrated in FIG. 2a.
[0052] The communication unit (102) may be configured for the mobile body (100) to communicate with another device (another robot / robot or control system (120), etc.). That is to say, the communication unit (102) may be a hardware module such as an antenna, data bus, network interface card, network interface chip, and networking interface port of the mobile body (100), or a software module such as a network device driver or a networking program, which transmits / receives data and / or information to / from another device.
[0053] The drive unit (108) is a configuration that controls the movement of the moving body (100) and enables movement, and may include equipment for performing this. The drive unit (108) may be a device that drives the moving body (100) for autonomous driving of the moving body (100) based on sensing information from the sensor unit (106). The drive unit (108) may include at least one motor, motor driver, and other mechanical parts as an electronic and / or mechanical device that operates for driving the moving body (100). For example, the moving body (100) may drive through space by operating the wheel (20) by the motor. Additionally, the drive unit (108) may include a battery for operating the moving body (100). The drive unit (108) may be a configuration included in the driving platform (16) provided at the bottom of the moving body (100) as a configuration for driving the moving body (100).
[0054] The sensor unit (106) may be configured to collect sensing data required for autonomous driving and service provision of the mobile body (100). The sensor unit (106) may include at least one sensor (20). The sensor unit (106) may be included in the aforementioned autonomous driving module (12) and may be configured to include a computing module corresponding to at least a part of the aforementioned control unit (104).
[0055] The sensor unit (106) may not include expensive sensing equipment and may only include sensors such as low-cost ultrasonic sensors and / or low-cost cameras. The sensor unit (106) may include sensors for identifying other robots or people in front and / or behind, obstacles or danger areas (50) in the surroundings (such as the floor in the space). For example, the sensor unit (106) may include at least one of a vision sensor (such as an optical sensor for vision recognition) and a distance sensor, such as a depth camera, an infrared camera or sensor, an RGB camera, etc., as sensors. Through these sensors, other robots, people, and other features in the surroundings can be recognized. These sensors may be appropriately selected to have high resolution and a rich amount of information about the surrounding environment.
[0056] The mobile body (100) can operate a drive unit (108) and a robot arm, etc., for service provision by receiving a command received through the robot control system (120) via the communication unit (102) or via the communication unit (102) and a data processing module of the service processing module of the aforementioned control unit (104). The service processing module can transmit a drive command for the service to be provided to the drive control module, and the drive control module can control the configuration including the drive unit (108) and the robot arm of the mobile body (100) according to the drive command so that the service can be provided. Additionally, although not illustrated, the mobile body (100) may further include a speaker and / or a display, etc., for outputting information / content necessary for the provision of the service.
[0057] Meanwhile, the mobile body (100) may be distinct from a mapping robot (i.e., a mapping robot) used to generate an indoor map within a space. Since the mobile body (100) does not include expensive sensing equipment, it can perform indoor autonomous driving using the output values of sensors such as low-cost ultrasonic sensors and / or low-cost cameras. Meanwhile, if the mobile body (100) has previously performed indoor autonomous driving through communication with the control system (120), it may be possible to perform more accurate indoor autonomous driving while using low-cost sensors by further utilizing mapping data, etc., included in the path data (e.g., data about the path) previously received from the control system (120). However, depending on the embodiment, the mobile body (100) may also serve as the mapping robot.
[0058] As described above, if the moving body (100) only provides sensing information for controlling the moving body (100) to the control system (120) and the algorithm for controlling the moving body (100) is executed in the control system (120), the moving body (100) may correspond to a brainless robot.
[0059] Additionally, as illustrated in FIG. 2a, the vehicle (100) may provide a space between the autonomous driving module (12) and the driving platform (16) for loading a payload or cargo required for service provision. The configuration of the vehicle (100) including such a space may be named a service module (14). The service module (14) may further include not only a space (storage space) for loading the payload, but also a mechanism of the vehicle (100) for loading the payload onto the vehicle (100) (e.g., other hardware having specific functions such as a robot arm not illustrated).
[0060] Meanwhile, although not illustrated, the movable body (100) of the embodiment may further include an interface unit for receiving external force or interaction from a user for manual control. This interface unit may be configured in a form such as a handle provided on the top of the movable body (100). As a pushing force is applied as an external force through this handle, the movable body (100) may be manually controlled. Alternatively, this interface unit may include a force sensing sensor, and the external force detected through the force sensing sensor (e.g., a load cell sensor) may be used to trigger manual control of the movable body (100) (e.g., generating additional driving force). Alternatively / additionally, the interface unit may include a touch sensor, and the interaction detected through the touch sensor may be used to trigger manual control of the movable body (100) (e.g., generating additional driving force).
[0061] As previously explained, manual control of the moving body (100) can be performed when the moving body (100) is in a stopped state, that is, when the driving force is released. The moving body (100) may further include an interface for releasing this driving force (e.g., an emergency stop button, a driving force release button, etc.).
[0062] Each of the moving bodies (100) may have different sizes and shapes depending on the type of machine or the service provided, and is not limited to the shape shown in the drawing.
[0063] The configuration and operation of the control system (120) controlling the moving body (100) will be described in more detail with reference to FIG. 3 and FIG. 4, which will be described later.
[0065] FIGS. 3 and FIGS. 4 are block diagrams illustrating a control system for controlling a moving body according to one embodiment.
[0066] The control system (120) may be a device for controlling the operation of the components of the aforementioned mobile body (100) for movement (i.e., autonomous driving) within the space of the aforementioned mobile body (100) and for providing services within the space. For example, the control system (120) may transmit a control signal for controlling the aforementioned drive unit (108) to the control unit (104).
[0067] The control system (120) can control the movement of each of the plurality of mobile bodies (100) and the provision of services for each of the mobile bodies (100). The control system (120) can set a path to a destination for the mobile body (100) to provide services through communication with the mobile body (100), and can transmit information regarding such a path to the mobile body (100). The mobile body (100) can drive autonomously according to the received information regarding the path.
[0068] The control system (120) may include at least one computing device. The control system (120) may be a robot control system or part thereof for controlling a mobile body (100) which is a robot.
[0069] The control system (120) may be a device that sets a path for driving the mobile body (100) and controls the movement of the mobile body (100) as described above. The control system (120) may include at least one computing device and may be implemented as a server located within or outside the space.
[0070] As illustrated, the control system (120) may include a memory (330), a processor (320), a communication unit (310), and an input / output interface (340).
[0071] The memory (330) is a computer-readable recording medium and may include a non-perishable mass storage device such as RAM (random access memory), ROM (read only memory), and a disk drive. Here, the ROM and the non-perishable mass storage device may be included as separate permanent storage devices separated from the memory (330). Additionally, an operating system and at least one program code may be stored in the memory (330). These software components may be loaded from a computer-readable recording medium separate from the memory (330). This separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, disk, tape, DVD / CD-ROM drive, or memory card. In another embodiment, the software components may be loaded into the memory (330) through a communication unit (310) rather than a computer-readable recording medium.
[0072] The processor (320) may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input / output operations. Instructions may be provided to the processor (320) by memory (330) or a communication unit (310). For example, the processor (320) may be configured to execute instructions received according to program code loaded in memory (330). Such a processor (320) may include configurations (410 to 440) such as those shown in FIG. 4. The processor (320) may, for example, generate a control signal (command) for controlling the aforementioned drive unit (108) (wheel (20) and / or bumper (30)) and command the control unit (104) of the moving body (100) to control the drive (108).
[0073] Each of the components (410 to 440) of the processor (320) may be a software and / or hardware module as part of the processor (320) and may represent a function (function block) implemented by the processor. The components (410 to 440) of the processor (320) will be described later with reference to FIG. 4.
[0074] The communication unit (310) may be a configuration for the control system (120) to communicate with another device (such as a mobile body (100) or another server). That is to say, the communication unit (310) may be a hardware module such as an antenna, data bus, network interface card, network interface chip, and networking interface port of the control system (120) that transmits / receives data and / or information to / from another device, or a software module such as a network device driver or a networking program.
[0075] The input / output interface (340) may be a means for interfacing with an input device such as a keyboard or mouse and an output device such as a display or speaker.
[0076] Additionally, in other embodiments, the control system (120) may include more components than the illustrated components.
[0077] With reference to FIG. 4, the components (410 to 440) of the processor (320) will be described in more detail. As illustrated, the processor (320) may include a map generation module (410), a localization processing module (420), a path planning processing module (430), and a service operation module (440). The components included in the processor (320) may be representations of different functions performed by at least one processor included in the processor (320) according to control instructions according to the code of an operating system or the code of at least one computer program.
[0078] The map generation module (410) may be a component for a mapping robot (not shown) that autonomously drives within a space to generate an indoor map of a target facility (e.g., using sensing information generated about the interior of the space).
[0079] At this time, the localization processing module (420) can determine the location of the mobile body (100) inside the target facility using the sensing information received from the mobile body (100) through the network and the indoor map of the target facility generated through the map generation module (410).
[0080] The path planning processing module (430) can generate a control signal to control the indoor autonomous driving of the vehicle (100) using the sensing information received from the vehicle (100) described above and the generated indoor map. For example, the path planning processing module (430) can generate a path (i.e., path data) of the vehicle (100). The generated path data can be set for the vehicle (100) for driving the vehicle (100) along the path. The control system (120) can transmit information regarding the generated path to the vehicle (100) via a network. For example, the information regarding the path may include information indicating the current location of the vehicle (100), information for mapping the current location to the indoor map, and path planning information. The information regarding the path may include information regarding the destination of the space where the vehicle (100) must drive to a predetermined location within the space or to provide services to a predetermined user. The path planning processing module (430) can set a path for the mobile body (100). The control system (120) can control the movement of the mobile body (100) so that the mobile body (100) moves according to this set path (i.e., along the set path).
[0081] The service operation module (440) may include a function for controlling the services provided by the mobile body (100) within the space. For example, the control system (120) or the service provider operating the space may provide an Integrated Development Environment (IDE) for the services provided by the control system (120) (e.g., cloud services) to the user or creator of the mobile body (100). At this time, the user or creator of the mobile body (100) may create software to control the services provided by the mobile body (100) within the space through the IDE and register it with the control system (120). In this case, the service operation module (440) may control the services provided by the mobile body (100) using the software registered in association with the mobile body (100). As a specific example, assuming that a mobile body (100) provides a service of delivering a payload requested by a user to the user's location, the control system (120) can transmit related commands to the mobile body (100) so that the mobile body (100) not only controls the indoor autonomous driving of the mobile body (100) to move to the user's location, but also controls a robot arm, etc., when it arrives at the destination location to deliver an object to the user and output a user response voice, thereby enabling the mobile body (100) to provide a series of services.
[0082] The control system (120) may be a server as a computer system for controlling the mobile body (100). The control system (120) may be a cloud server as a server located outside a space or building. Alternatively, depending on the embodiment, the control system (120) may be located inside a space or building.
[0083] The description of the technical features described above with reference to FIGS. 1 and FIGS. 2 can be applied as is to FIGS. 3 and FIGS. 4, so redundant descriptions are omitted.
[0085] In the detailed description to be provided below, the operation performed by the components of the control system (120) or the moving body (100) (e.g., control unit (104), processor (320), etc.) may be described as an operation performed by the control system (120) or the moving body (100) for convenience of explanation.
[0086] Additionally, with reference to FIGS. 5 to 10, the operations or steps for determining the state of the moving body (100), determining the feedback force, and controlling the driving unit (108) according to the determined feedback force, which will be described later, can be performed by the moving body (100), and according to the embodiment, at least some of these may be performed by the moving body (100) according to a control signal from the control system (120). Below, the embodiment is described with a focus on the operations or steps being performed by the moving body (100), and redundant descriptions of the embodiment involving the control system (120) may be omitted.
[0088] FIG. 5 is a flowchart illustrating a method of controlling a moving body by determining the state of the moving body according to one example and determining the feedback force to be generated by a driving unit according to the determined state.
[0089] Below, a control method of a moving body (100) in which each step is performed by a moving body (100) or a control system (120) is described in more detail.
[0090] The moving body (100) can be controlled to travel through space based on an applied external force or interaction between the moving body (100) and a user in a manual control mode, and the steps to be described below can be performed while the moving body (100) travels through space in this manual control mode.
[0091] As previously explained, in manual control mode, the moving body (100) may be controlled to drive by the driving unit (108) operating only by the applied external force. Alternatively, in this manual control mode, the moving body (100) may be controlled to drive in space by applying a control signal determined based on the external force or interaction to the driving unit, thereby causing the wheel (20) of the driving unit (108) to output a wheel torque corresponding to the control signal (i.e., the wheel (20) outputs the wheel torque generated by the motor). In other words, the external force or interaction may be an auxiliary signal or trigger signal for generating additional driving force.
[0092] In step (510), the moving body (100) or the control system (120) can determine the state of the moving body (100) based on sensing data obtained from the sensors of the moving body (100). The sensors may be included in the aforementioned sensor unit (102). These sensors may include a distance sensor that detects distance, a range sensor that detects an area within a certain range, or a ToF sensor. Additionally, the sensors may include an IMU (Inertial Measurement Unit). The IMU may include an accelerometer, a gyroscope, etc. Additionally, depending on the type of the moving body (100), these sensors may include at least one camera, or / or additionally include a LiDAR. The moving body (100) or the control system (120) can recognize an obstacle or danger area (50) based on the sensing data from these sensors, and can determine the state of the moving body (100) based on the distance to the recognized obstacle or danger area (50). For example, as in step (512), the moving body (100) or the control system (120) may determine the state of the moving body (100) to one of a plurality of states based on the distance between the obstacle or danger area (50). The method of determining the state of the moving body (100) to one of a plurality of states is described in more detail below with reference to FIG. 7.
[0093] In step (520), the moving body (100) or the control system (120) may determine the feedback force to be generated by the driving unit (108) of the moving body (100) based on the state of the moving body (100) determined in step (510). The feedback force may be a force that resists the movement of the moving body (100) as a force in the opposite direction to the current direction of movement of the moving body (100). That is to say, the feedback force may be a force acting in the opposite direction to the direction of the movement speed v of the moving body (100). The value determined by the moving body (100) or the control system (120) in step (520) may be the value of a control signal corresponding to the magnitude of the feedback force that the driving unit (108) must output according to the determined state of the moving body (100). Such a control signal may be, for example, an electric current. In other words, the moving body (100) or the control system (120) can determine the value of a current corresponding to the value of the feedback force that the driving unit (108) must output according to the determined state of the moving body (100). The feedback force may be, for example, wheel torque, and in step (520), a control signal (current value) required for the motor or wheel (20) containing the driving unit (108) to generate the corresponding wheel torque may be determined. Meanwhile, the state of the moving body (100) may be determined as any one of a plurality of states, and as in step (522), the moving body (100) or the control system (120) may determine the feedback force in a different way according to the state corresponding to the moving body among the plurality of states.
[0094] In step (530), the moving body (100) or the control system (120) can control the drive unit (108) of the moving body (100) to generate a feedback force determined in step (520). That is to say, the motor and / or wheel (20) of the drive unit (108) can be controlled according to a control signal corresponding to the feedback force determined in step (520).
[0095] Specifically, in step (532), the moving body (100) can input a signal (such as a current value, which is a control signal) to the driving unit (108) to apply a determined feedback force. For example, a current value for driving the motor to generate a feedback force can be input to the motor. In step (534), the moving body (100) can control the driving unit (108) so that a determined wheel torque is output through the wheel (20) of the driving unit based on the control signal input to the driving unit (108). As a result, the driving unit (108) of the moving body (100) can generate a wheel torque corresponding to the feedback force determined in step (520). Accordingly, the driving unit (108) can generate a force (wheel torque) in the opposite direction to the current moving speed v, and thus, the moving body (100) can be decelerated. Depending on the determined state of the moving body (100), the feedback force generated by the driving unit (108) can be sufficiently strong, and at this time, the moving body (100) can be ejected in a direction opposite to the direction of speed v.
[0096] Below, with reference to the example illustrated in FIG. 7, a method for determining the state of a moving body (100) to be one of a plurality of states is explained in more detail.
[0097] FIG. 7 illustrates a method for determining a plurality of regions where a moving body may be located and corresponding states of the moving body, according to one example.
[0098] As described above, based on the distance between the moving body (100) and the obstacle and danger area (50) identified by the sensing data, the state of the moving body (100) can be determined as one of a plurality of states, and the feedback force can be determined in a different way depending on the state to which the moving body (100) corresponds among the plurality of states.
[0099] The plurality of states above may include, for example, a first state in which the moving body (100) is located in a first region (710), which is a free region where the moving body (100) can freely move in the direction indicated by the external force or interaction (i.e., the direction of velocity v); a second state in which the moving body (100) is located in a second region (720), which is a drag region where a first reverse force is applied to the moving body (100) in the direction of movement (or the direction indicated by the external force or interaction); and a third state in which the moving body is located in a third region (730), which is a repulsive region where a second reverse force is applied to the moving body (100) in the direction of movement (or the direction indicated by the external force or interaction). Depending on the embodiment, the plurality of states may be implemented to include more or fewer states than this. The feedback force to be generated by the driving unit (108) in each of the first to third states can be determined in the manner described above.
[0100] First, the moving body (100) or the control system (120) can determine the state of the moving body (100) as a first state in which the moving body (100) is located in a first area (710) which is a free area. For example, the moving body (100) or the control system (120) can determine the state of the moving body (100) as a first state if the distance between the moving body (100) and the obstacle or danger area (50), determined based on sensing data, falls within a predetermined first range. The first range may, for example, be a range in which the distance between the moving body (100) and the obstacle or danger area (50) is 1m or more.
[0101] In the first state, the feedback force can be determined to be zero. That is, 'free' can mean the absence of a feedback force. Therefore, within the first region (710), the moving body (100) can be controlled to travel in the direction indicated by the external force or the interaction without resistance from the feedback force. That is, the moving body (100) can be controlled to move by the external force, or by an additional driving force triggered by the external force or interaction. For example, the moving body (100) can be controlled to travel through the first region (710) at a constant speed v.
[0102] Alternatively, the moving body (100) or the control system (120) may determine the state of the moving body (100) as a second state in which the moving body (100) is located in a second area (720), which is a drag area. For example, the moving body (100) or the control system (120) may determine the state of the moving body (100) as a second state if the distance between the moving body (100) and the obstacle or danger area (50), determined based on sensing data, falls within a second range less than the first range mentioned above. The second range may, for example, be a range in which the distance between the moving body (100) and the obstacle or danger area (50) is 50 cm or more and less than 1 m.
[0103] In the second state, the first reverse force, which is the feedback force, can be calculated based on the velocity v in the direction of movement of the moving body (100). For example, the first reverse force, which is the feedback force in the second state, can be calculated as a value proportional to the square of the velocity v in the direction of movement. The first reverse force in the second state can be calculated by the following mathematical formula 1.
[0104] [Mathematical Formula 1]
[0105]
[0106] F can be a first reverse force as a feedback force. Equation 1 can be a drag force equation. k can be a drag coefficient and can be a constant (e.g., a dimensionless constant). p can represent the density of the fluid. A can be a reference area and can be a value representing the area of the object projected onto a plane perpendicular to the direction of motion of the object. The moving body (100) can be controlled to drive while receiving resistance from the feedback force, which is the first reverse force, while located within the second region (720), and thus can be decelerated according to the first reverse force.
[0107] Alternatively, the moving body (100) or the control system (120) may determine the state of the moving body (100) as a third state in which the moving body (100) is located in a third area (7 / 30), which is a repulsion area. For example, the moving body (100) or the control system (120) may determine the state of the moving body (100) as a third state if the distance between the moving body (100) and the obstacle or danger area (50), determined based on sensing data, falls within a third range less than the aforementioned second range. For example, the third range may be a range in which the distance between the moving body (100) and the obstacle or danger area (50) is less than 50 cm.
[0108] In the third state, the second reverse force, which is the feedback force, can be calculated based on the distance traveled within the third region (730) of the moving body (100). That is to say, the force during a constant (short) unit time can be calculated based on the distance traveled within the third region (730) of the moving body (100). For example, the second reverse force, which is the feedback force in the third state, can be calculated as a value proportional to the distance traveled. The second reverse force in the third state can be calculated by the following Equation 2.
[0109] [Mathematical Formula 2]
[0110]
[0111] F can be a second reverse force as a feedback force. k can be an elastic modulus (e.g., a spring constant). The moving body (100) can be controlled to move out of the third area (730), that is, to bounce out of the third area (730), according to the resistance caused by the second reverse force, which is the feedback force. In other words, even if a user attempts to push the moving body (100) strongly to collide with or enter an obstacle or danger area (50), the moving body (100) may instead move in the opposite direction to the force applied by the user due to the feedback force. Thus, the moving body (100) can be strongly protected from colliding with an obstacle or unintended entry into a danger area.
[0112] The aforementioned mathematical formulas 1 and 2 are exemplary, and the feedback force calculated according to various physical laws may be applied to the examples.
[0113] Meanwhile, the distance between the moving body (100) identified by the sensing data and the obstacle or danger area (50) may be the distance (x) from the actual sensor to the obstacle or danger area (50) plus an offset value (offset) that takes into account the placement position of the sensor on the moving body (100) (x+offset). For example, if the sensor is not protruding to the outside of the moving body (100), this 'offset value + distance from the sensor to the obstacle or danger area (50)' may be used as a criterion for determining the state of the moving body (100). Thus, the criterion may represent the distance from the outermost position of the moving body (100) to the obstacle or danger area (50).
[0114] The description of the technical features described above with reference to FIGS. 1 to 4 can be applied as is to FIGS. 5 and 7, so redundant descriptions are omitted.
[0116] FIG. 6 is a flowchart illustrating a method of controlling a moving body by determining the feedback force generated by a driving unit while the moving body is positioned on an incline, according to one example.
[0117] Below, a method for controlling a moving body (100) when it is determined that the moving body (100) is located on an incline is described.
[0118] Each of the steps (610 to 630) to be described later may correspond to each of the steps (510 to 530) described above with reference to FIG. 5.
[0119] In step (610), the moving body (100) or the control system (120) can determine the state of the moving body (100) as a fourth state in which the moving body (100) is located on an incline based on sensing data from a sensor. The moving body (100) or the control system (120) can identify the tilt of the moving body (100) based on attitude information obtained from the sensor's IMU. For example, the moving body (100) or the control system (120) can track the component of the direction of gravity among the attitude information obtained from the IMU and identify the tilt of the moving body (100) based thereon. The tilt (angle of incline) of the incline can be identified from the tilt of the moving body (100).
[0120] In step (620), the moving body (100) or the control system (120) may determine a counterforce that counteracts at least a portion of the gravitational force applied to the moving body (100) on the ramp as a feedback force. This feedback force may be a counterforce that counteracts the gravitational force being applied to the moving body (100) sliding on the ramp. As in step (622), the moving body (100) or the control system (120) may determine a control signal to be applied to the drive unit (108) as a signal corresponding to the determined counterforce. This control signal may be a current value corresponding to the determined feedback force. This control signal may be a signal applied to the motor of the drive unit (108) connected to the wheel (20).
[0121] For example, the moving body (100) or the control system (120) may determine, based on the current value currently applied to the driving unit (108) (or motor), the tilt of the moving body (100) determined based on acquired sensing data, and the mass of the moving body (100), a reverse force that offsets at least a portion of the gravitational force applied to the moving body (100) as a feedback force, and may determine the current value to be applied to the driving unit (108) (or motor) to generate this determined feedback force. In determining this feedback force, additional kinematic data (kinetic data) of the moving body (100) may be further used. This kinetic data may be acquired from the sensing data or calculated from the sensing data.
[0122] In step (630), the moving body (100) or the control system (120) can control the driving unit (108) to output a determined feedback force. That is to say, the driving unit (108) can be controlled according to a signal (control signal) determined in step (622).
[0123] For example, as in step (632), the moving body (100) can be controlled to stop on the ramp in the absence of external force or interaction from the user by outputting a determined feedback force by the driving unit (108).
[0124] Additionally, as in step (634), when an external force or interaction is input while the moving body (100) is stationary on the ramp, the moving body (100) can be controlled to move at a constant speed on the ramp. That is, the moving body (100) can be controlled to go up the ramp at a constant speed or go down at a constant speed depending on the external force or interaction.
[0125] The determined feedback force may be wheel torque, and such wheel torque may be generated by a motor of the drive unit (108) and output through the wheel (20) of the drive unit (108). For example, as the current value determined in step (622) is applied to the drive unit (108) (e.g., motor), a wheel torque corresponding to the determined feedback force (i.e., the current value) is generated by the motor and output through the wheel (20), so that the moving body (100) can stop on the ramp in the absence of external force or the interaction.
[0126] Thus, the gravity applied to the moving body (100) on the slope can be compensated, and the user manually controlling the moving body (100) can easily move the moving body (100) even on the slope. In other words, when controlling the moving body (100) in manual mode, the user can control the moving body (100) on the slope just as they would on flat ground (e.g., the aforementioned free area).
[0127] Below, a method for controlling a moving body on an incline is conceptually explained with reference to FIGS. 9 and FIGS. 10.
[0128] In this regard, FIG. 9 illustrates a method for a user to manually control a robot when the robot is positioned on an incline according to one example. FIG. 10 illustrates the relationship between a force in the direction of gravity applied to the robot (or moving body) and a force in the opposite direction generated by a driving unit when the robot is positioned on an incline according to one example.
[0129] In the example illustrated in FIG. 9, a robot-like moving body (100) may be positioned on a ramp (900). The ramp (900) may be an uphill ramp or a downhill ramp. The moving body (100) may be configured to include at least one omni-wheel (910) and a driving wheel (920) as a driving unit (108). Here, the omni-wheel (910) is a wheel for changing the direction of the moving body (100), and the driving wheel (920) may be a wheel driven for the actual movement of the moving body (100). The moving body (100) may include a sensor (930) on the upper side as illustrated. Meanwhile, the moving body (100) may further include a handle-shaped interface unit (940) on the upper side. External force or interaction from a user may be input through the interface unit (940).
[0130] In the absence of external force or interaction, the moving body (100) can be stopped on the ramp (900) without sliding. A force (g) in the direction of gravity may be applied to the moving body (100) on the ramp (900), and accordingly, a force (F1) corresponding to the sin value of the force in the direction of gravity (g) may be applied to the moving body (100) as a force that causes the moving body (100) to slide on the ramp (900). In the embodiment, a force (F2) which is a reverse force that counteracts the force (F1) as the aforementioned feedback force may be determined. By controlling the drive wheel (920) to output the force (F2), the moving body (100) can compensate for the force (g) in the direction of gravity and can be maintained in a stopped state on the ramp (900). When an external force or interaction is input from a user through the interface unit (940) while the moving body (940) is in a stationary state, the driving unit (108) can generate additional driving force to control the moving body (940) to move along the incline (900) at a constant speed (v). Meanwhile, the additional driving force can be determined according to the magnitude of the external force applied to the load cell sensor provided in the interface unit (940).
[0131] In this way, in the embodiment, the user can conveniently control the moving body (100) even on an incline (900) while minimizing the influence of gravity in manual control mode.
[0132] The description of the technical features described above with reference to FIGS. 1 to 5 and FIG. 7 can be applied as is to FIGS. 6, 9 and 10, so redundant descriptions are omitted.
[0134] FIG. 8 is a flowchart illustrating a method for determining a feedback force to be generated by a driving unit based on sensing data according to one example, and outputting a wheel torque corresponding to the determined feedback force through a wheel.
[0135] The method of controlling the moving body (100) described through the illustrated steps (810 to 870) may correspond to the method of controlling the moving body (100) described above with reference to FIG. 5 and FIG. 5.
[0136] The moving body (100) or the control system (120) can acquire first sensing data (range / distance data) regarding the surrounding environment in step (810), and in step (820), acquire second sensing data (attitude information from the IMU, current value applied to the driving unit (108), etc.) which is internal data of the moving body (100).
[0137] In step (830), the moving body (100) or the control system (120) can compare the range or distance indicated by the first sensing data with a threshold value indicating each state of the moving body (100). Accordingly, the state of the moving body (100) can be determined.
[0138] In step (840), the moving body (100) or the control system (120) can calculate the feedback force that the driving unit (108) must generate using the second sensing data according to the state of the moving body (100). The moving body (100) or the control system (120) can generate a control signal corresponding to the calculated feedback force.
[0139] In step (850), the moving body (100) or the control system (120) can apply a generated control signal to the driving unit (108) to control the driving unit (108) to generate a feedback force. That is, the determined feedback force can be added to the force generated by the driving unit (108). As a result, in the aforementioned drag area (second state), the moving body (100) can be controlled so that a force proportional to the square of the moving body's speed is applied in the reverse direction to restrict its movement, and in the aforementioned repulsion area (third state), a force proportional to the distance traveled is applied in the reverse direction to cause it to bounce out within the corresponding repulsion area.
[0140] Specifically, as in steps (860 and 870), when a control signal is applied to the drive unit (108), the drive unit (108) can convert the control signal into a wheel torque corresponding to a feedback force (e.g., via a motor) and output the wheel torque through the wheel (20).
[0141] Thus, the moving body (100) can be effectively controlled to avoid obstacles or danger areas (50), or to restrict entry into danger areas (50).
[0142] The description of the technical features described above with reference to FIGS. 1 to 7, FIG. 9, and FIG. 10 can be applied as is to FIG. 8, so redundant descriptions are omitted.
[0144] The system or device described above may be implemented as a hardware component, a software component, or a combination of a hardware component and a software component. For example, the device and component described in the embodiments may be implemented using one or more general-purpose or special-purpose computers, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing unit may execute an operating system (OS) and one or more software applications executed on said operating system. Additionally, the processing unit may access, store, manipulate, process, and generate data in response to the execution of the software. For ease of understanding, the processing unit may be described as being used as a single unit, but those skilled in the art will understand that the processing unit may include multiple processing elements and / or multiple types of processing elements. For example, the processing unit may include multiple processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are also possible.
[0145] Software may include computer programs, code, instructions, or a combination of one or more of these, and may configure a processing unit to operate as desired or instruct the processing unit independently or collectively. Software and / or data may be permanently or temporarily embodied in any type of machine, component, physical device, virtual equipment, computer storage medium, or device so as to be interpreted by the processing unit or to provide instructions or data to the processing unit. Software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.
[0146] The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., either alone or in combination. The program instructions recorded on the medium may be those specifically designed and configured for the embodiment, or they may be those known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes; optical recording media such as CD-ROMs and DVDs; magneto-optical media such as floptical disks; and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, and flash memory. Examples of program instructions include machine code, such as that generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.
[0147] Although the embodiments have been described above with reference to limited examples and drawings, those skilled in the art can make various modifications and variations from the description above. For example, suitable results can be achieved even if the described techniques are performed in a different order than described, and / or the components of the described system, structure, device, circuit, etc. are combined or assembled in a form different from described, or replaced or substituted by other components or equivalents.
[0148] Therefore, other implementations, other embodiments, and equivalents to the claims also fall within the scope of the claims set forth below.
Claims
Claim 1 A control method for controlling a moving body traveling in space, performed by a moving body or a control system controlling said moving body, wherein the moving body is controlled to travel in said space based on an external force applied to said moving body or an interaction between said moving body and a user, and while said moving body travels in said space, the method comprises: a step of determining the state of said moving body based on sensing data acquired from a sensor of said moving body; a step of determining a feedback force to be generated by a driving unit of said moving body based on the determined state of said moving body; and a step of controlling a driving unit of said moving body to generate the determined feedback force, wherein the step of determining the state of said moving body comprises a first state in which said moving body is located in a first area which is a free area in which said moving body can travel freely in the direction indicated by said external force or said interaction, based on the distance between said moving body and an obstacle or a predetermined danger area, wherein said first area is an area in which the distance between said moving body and the obstacle or said danger area is a predetermined first range. A second state in which the moving body is located in a second area, which is a drag area where a first reverse force with respect to the moving body's direction of movement is applied to the moving body - the second area is an area that is a second range where the distance between the moving body and the obstacle or the danger area is less than the first range -;A method for controlling a moving body, comprising: determining the state of the moving body as one of a plurality of states including a third state in which the moving body is located in a third region, which is a repulsive region where a second reverse force with respect to the direction of movement of the moving body is applied to the moving body—the third region being a region where the distance between the moving body and the obstacle or the danger region is less than the second range; and the step of determining the feedback force is to determine the feedback force in a different manner according to the state to which the moving body corresponds among the plurality of states, wherein if the state of the moving body is the second state, the first reverse force calculated based on a first physical law is determined as the feedback force, and if the state of the moving body is the third state, the second reverse force calculated based on a second physical law different from the first physical law is determined as the feedback force. Claim 2 A method for controlling a moving body according to claim 1, wherein the step of determining the state of the moving body determines the state of the moving body to the first state, and the step of determining the feedback force determines the feedback force to zero, and the moving body is controlled to travel in the direction indicated by the external force or the interaction without resistance by the feedback force within the first region. Claim 3 A method for controlling a moving body according to claim 1, wherein if the state of the moving body is the second state, the first reverse force corresponding to the drag force calculated based on the first physical law is determined as the feedback force, and if the state of the moving body is the third state, the second reverse force corresponding to the elastic force calculated based on the second physical law is determined as the feedback force. Claim 4 A method for controlling a moving body according to claim 1, wherein if the state of the moving body is the second state, the first reverse force proportional to the square of the speed of the moving body in the direction of movement is determined as the feedback force, and if the state of the moving body is the third state, the second reverse force proportional to the distance traveled by the moving body within the third region and a predetermined elastic modulus is determined as the feedback force, wherein in the second state, the moving body is controlled to drive while receiving resistance from the first reverse force within the second region, and in the third state, the moving body is controlled to be flung out of the third region upon entering the third region according to the resistance from the second reverse force. Claim 5 delete Claim 6 delete Claim 7 delete Claim 8 delete Claim 9 delete Claim 10 A method for controlling a moving body according to claim 1, wherein the step of controlling the driving unit comprises: a step of inputting a signal for applying the feedback force determined to the driving unit; and a step of controlling the driving unit such that a wheel torque determined based on the input signal is output through the wheel of the driving unit. Claim 11 A method for controlling a moving body according to claim 1, wherein the state of the moving body is determined as a fourth state in which the moving body is located on an incline, and the step of determining the feedback force is to determine a reverse force that offsets at least a portion of the gravitational force applied to the moving body on the incline as the feedback force, and wherein the moving body is controlled to stop on the incline in the absence of the external force or the interaction by outputting the feedback force by the driving unit. Claim 12 A method for controlling a moving body according to claim 11, wherein the step of determining the feedback force comprises determining a current value to be applied to the driving unit to generate the feedback force based on a current value applied to the driving unit, a tilt of the moving body determined based on the sensing data, and the mass of the moving body, and wherein, as the determined current value is applied to the driving unit, a wheel torque corresponding to the feedback force is output through the wheel of the driving unit, thereby causing the moving body to stop on the ramp in the absence of the external force or the interaction. Claim 13 A method for controlling a moving body according to claim 11, wherein when the external force or the interaction is input to the moving body, the moving body is controlled to move at a constant speed on the ramp. Claim 14 A method for controlling a moving body according to claim 1, wherein the moving body is controlled to travel in the space by applying a signal determined based on an external force applied to the moving body or an interaction between the moving body and a user to the driving unit, thereby causing the wheel of the driving unit to output a wheel torque corresponding to the signal. Claim 15 A computer program stored on a computer-readable recording medium to execute the method for controlling a moving object of claim 1 on a computer. Claim 16 A computer system comprising a control system for controlling a moving body within a space, wherein the moving body is controlled to travel in the space based on an external force applied to the moving body or an interaction between the moving body and a user, and comprises at least one processor implemented to execute a computer-readable command, wherein the at least one processor determines the state of the moving body based on sensing data acquired from a sensor of the moving body while the moving body travels in the space, determines a feedback force to be generated by a driving unit of the moving body based on the determined state of the moving body, and controls the driving unit of the moving body to generate the determined feedback force, wherein the at least one processor, in determining the state of the moving body, has a first state in which the moving body is located in a first area which is a free area in which the moving body can travel freely in the direction indicated by the external force or the interaction, based on the distance between the moving body and an obstacle or a predetermined danger area - wherein the first area is an area in which the distance between the moving body and the obstacle or the danger area is a predetermined first range -; A second state in which the moving body is located in a second area, which is a drag area where a first reverse force with respect to the moving body's direction of movement is applied to the moving body - the second area is an area that is a second range where the distance between the moving body and the obstacle or the danger area is less than the first range -;A computer system that determines the state of a moving body as one of a plurality of states, wherein the moving body is located in a third region, which is a repulsive region where a second reverse force with respect to the direction of movement of the moving body is applied to the moving body—the third region being a region where the distance between the moving body and the obstacle or the danger region is less than the second range—and the at least one processor determines the feedback force in a different manner according to the state to which the moving body corresponds among the plurality of states, wherein if the state of the moving body is the second state, the first reverse force calculated based on the first physical law is determined as the feedback force, and if the state of the moving body is the third state, the second reverse force calculated based on a second physical law different from the first physical law is determined as the feedback force. Claim 17 A robot that travels within a space comprises: a control unit including at least one processor; a sensor that acquires sensing data regarding the surrounding environment; and a drive unit that operates for the driving of the robot according to control based on the sensing data by a robot control system or the control unit, wherein the control unit controls the drive unit so that the robot travels within the space based on an external force applied to the robot or an interaction between the robot and a user, wherein while the robot travels within the space, the control unit determines the state of the robot based on the sensing data, determines a feedback force to be generated by the drive unit based on the determined state, and controls the drive unit to generate the determined feedback force, wherein in determining the state of the robot, the control unit determines a first state in which the robot is located in a first free area in which the robot can travel freely in the direction indicated by the external force or the interaction, based on the distance between the robot and an obstacle or a predetermined danger area, wherein the first area is an area in which the distance between the robot and the obstacle or the danger area is a predetermined first range. A second state in which the robot is located in a second area, which is a drag area where a first reverse force with respect to the robot's direction of movement is applied to the robot - the second area is an area that is a second range where the distance between the robot and the obstacle or the danger area is less than the first range -;A robot, wherein the state of the robot is determined as one of a plurality of states including a third state in which the robot is located in a third region, which is a repulsive region where a second reverse force is applied to the robot's direction of movement—the third region is a region in which the distance between the robot and the obstacle or the danger region is less than the second range—and the control unit, in determining the feedback force, determines the feedback force in a different manner according to the state to which the robot corresponds among the plurality of states, wherein if the state of the robot is the second state, the first reverse force calculated based on the first physical law is determined as the feedback force, and if the state of the robot is the third state, the second reverse force calculated based on a second physical law different from the first physical law is determined as the feedback force.