Method and apparatus for controlling driving trajectory of mobile robot
The method and apparatus for controlling the driving trajectory of mobile robots by calculating wheel-specific parameters allow for real-time adjustments, ensuring smooth and efficient movement along complex paths.
Patent Information
- Application Number
- PCT/IB2025/000032
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-12-30
- Filing Date
- 2025-01-27
- Publication Date
- 2025-08-07
AI Technical Summary
Existing mobile robot control systems struggle to accurately and efficiently adjust the steering angle and driving speed of wheels in real-time to follow complex driving paths, leading to discontinuous movement and inefficiencies.
A method and apparatus that calculates the steering angle and driving speed for each wheel of a mobile robot based on target driving parameters, allowing for real-time adjustment and continuous movement along a predetermined path.
Enables smooth, continuous movement of the mobile robot along the driving path by independently controlling the steering angle and driving speed of each wheel, enhancing operational efficiency and responsiveness.
Smart Images

Figure IB2025000032_07082025_PF_FP_ABST
Abstract
Description
Method and Apparatus for Controlling Driving Trajectory of Mobile RobotCROSS-REFERENCE TO RELATED APPLICATIONS (Not Applicable)FEDERALLY SPONSORED RESEARCH AND DEVELOPMENT (Not Applicable)REFERENCE TO A "SEQUENCE LISTING", A TABLE, OR A COMPUTER PROGRAMLISTING APPENDIX SUBMITTED ON A COMPACT DISC AND ANINCORPORATION-BY-REFERENCE OF THE MATERIAL ON THE COMPACT DISC(Not Applicable)BACKGROUND OF THE INVENTION
[0001] A mobile robot is a robot that can move and may use wheels, legs, or tracks for movement. Mobile robots can perform automated tasks or services and can be controlled remotely for use in various environments.
[0002] Generally, mobile robots can be categorized by drive type into differential drive (DD) mobile robots and steering drive (SD) mobile robots.
[0003] Meanwhile, various algorithms have been developed to control the driving of mobile robots, but the algorithm, which can control the drive of mobile robots in a way to respond in real-time to any given driving path and to follow the given path with continuous movement, is required.
[0004] The above-mentioned background art includes technical information possessed or acquired by the inventor in the process of deriving the present invention and is not necessarily considered prior art disclosed to the general public before the filing of this invention.OBJECT AND SUMMARY OF THE INVENTION
[0005] Some embodiments of the present disclosure aim to provide a method and apparatus for controlling the driving trajectory of a mobile robot. The problem that the present invention seeks to solve is not limited to the problem mentioned above, and other problems and advantages of the invention not mentioned may be understood through the following description and will become clearer through the embodiments of the present invention. Additionally, it will be understood that the problems and advantages of the present invention can be realized by the means and combinations presented in the claims.
[0006] At least one specification heading is required. Please delete this heading section if it is not applicable to your application. For more information regarding the headings of the specification, please see MPEP 608.01 (a). As a technical means for achieving the above-mentioned technical problem, a first aspect of the present disclosure provides a method for controlling the driving trajectory of a mobile robot, comprising: a step of acquiring a predetermined driving path of the mobile robot and target driving parameters of the mobile robot calculated based on the driving path; a step of calculating a steering angle and driving speed for the wheels of the mobile robot based on the target driving parameters; and a step of controlling the driving of the mobile robot by driving the wheels based on the steering angle and driving speed.
[0007] A second aspect of the present disclosure provides an apparatus for controlling the driving trajectory of a mobile robot, comprising: at least one memory; and at least one processor configured to obtain a predetermined driving path of the mobile robot and target driving parameters of the mobile robot calculated based on the driving path, calculate a steering angle and driving speed for the wheels of the mobile robot based on the target driving parameters, and control the driving of the mobile robot by driving the wheels based on the steering angle and driving speed.
[0008] A third aspect of the present disclosure provides a computer-readable recording medium on which a program for executing the method according to the first aspect on a computer is recorded.
[0009] Additionally, various methods, systems, and computer-readable recording media for achieving the present invention can be further provided.
[0010] Aspects, features, and advantages other than those described above will become apparent from the following drawings, claims and detailed description of the invention.TECHNICAL FIELD
[0011] The present disclosure relates to a method and apparatus for controlling the driving trajectory of a mobile robot.BRIEF DESCRIPTION OF DRAWINGS
[0012] FIG. 1 is a diagram illustrating an example of a mobile robot control system structure according to an embodiment.
[0013] FIG. 2 is a configuration diagram illustrating an example of an internal configuration of a mobile robot control system according to an embodiment.
[0014] FIG. 3 is a flowchart illustrating an example of a method for controlling the driving trajectory of a mobile robot according to an embodiment.
[0015] FIG. 4 is a flowchart illustrating an example of a method for calculating the steering angle and driving speed for the wheels according to an embodiment.
[0016] FIG. 5 is a diagram illustrating a method for calculating the rotation center point according to an embodiment.
[0017] FIG. 6 is a diagram illustrating a method for calculating the steering angle for the wheels according to an embodiment.
[0018] FIG. 7 is a diagram illustrating a method for calculating the driving speed for the wheels according to an embodiment.
[0019] FIGS. 8a to 8c are diagrams illustrating examples of mobile robot driving.
[0020] FIG. 9 is a configuration diagram illustrating an example of an internal configuration of a mobile robot driving trajectory control device according to an embodiment.DETAILED DESCRIPTION OF THE INVENTION
[0021] The advantages and features of the present invention and the methods to achieve them will become clear through the embodiments described in detail with the attached drawings. However, the present invention is not limited to the examples provided below and can be implemented in various different forms, and it should be understood to include all modifications, equivalents and substitutes that fall within the idea and technical scope of the present invention. The embodiments presented below are provided to make the disclosure of the invention complete and to fully inform those skilled in the art of the scope of the invention. In describing the present invention, specific details of known techniques may be omitted when it is judged that their detailed description could obscure the essence of the invention.
[0022] The terminology used in the present application is used solely for the purpose of describing particular embodiments and is not intended to limit the invention. Unless the context clearly indicates otherwise, singular expressions are intended to include plural expressions. Terms such as "comprises" and "has" indicate the presence of stated features, numbers, steps, operations, components, parts, or combinations thereof, and do not preclude the possibility of one or more additional features, numbers, steps, operations, components, parts, or combinations thereof.
[0023] Some embodiments of the present disclosure may be represented by functional block configurations and various processing steps. Some or all of these functional blocks may be implemented with various amounts of hardware and / or software configurations that execute specific functions. For example, the functional blocks of the present disclosure may be implemented by one or more microprocessors or by circuit configurations for designated functions. Also, for example, the functional blocks of the present disclosure may be implemented in various programming or scripting languages. The functional blocks may be implemented as algorithms executed on one or more processors. Additionally, the present disclosure may adopt prior art for electronic environment settings, signal processing, and / or data processing. Terms such as "mechanism," "element," "means," and "configuration" may be broadly used and are not limited to mechanical or physical configurations.
[0024] Also, the connecting lines or connecting members shown between the components in the drawings are mere illustrative of functional connections and / or physical or circuit connections. In an actual device, connections between components may be represented by various alternative or additional functional, physical, or circuit connections.
[0025] Detailed descriptions of the embodiments will be provided below with reference to the accompanying drawings. However, the embodiments may be implemented in various different forms and are not limited to the examples described here.
[0026] FIG. 1 is a drawing illustrating an example of a mobile robot control system structure according to one embodiment, and FIG. 2 is a configuration diagram illustrating an example of the internal configuration of a mobile robot control system according to one embodiment.
[0027] Referring to FIG. 1 , a mobile robot control system (1 ) according to one embodiment may include a mobile robot (10), a network (20), a server (30), and terminal devices (40, 50). The network (20) serves as a medium providing a communication link between the mobile robot (10) and the server (30) or terminal devices (40, 50). The network (20) may include various types of connections, for example, wired, wireless communication links, or optical fiber cables.
[0028] The mobile robot (10) is a movable robot that can move using wheels, legs, tracks, and so on. The mobile robot (10) can perform automated tasks or services or be remotely controlled for use in various environments.
[0029] Generally, mobile robots can be classified by their driving method as differential drive (DD) type or steering drive (SD) type mobile robots. In this disclosure, the mobile robot (10) refers to a steering drive (SD) type mobile robot. That is, in this disclosure, the mobile robot (10) can adjust the steering angle of the wheels to change the direction of travel.
[0030] Furthermore, in this disclosure, the mobile robot (10) refers to a two- wheel-based mobile robot with two wheels. One wheel may be installed at the front of the mobile robot (10), and the other wheel may be installed at the rear of the mobile robot (10). More specifically, the mobile robot (10) in this disclosure may refer to a 2SD type mobile robot, where the steering angle of each of the two wheels can be adjusted. In other words, the mobile robot (10) can be implemented as a motorcycle-shaped robot with one wheel at the front and one at the rear of the body, and each wheel can have its steering angle and driving speed adjusted. Since the steering angle of each wheel of the mobile robot (10) can be adjusted, the mobile robot (10) can perform both parallel and rotational movements.
[0031] According to one embodiment, the mobile robot (10) may refer to an Automated Guided Vehicle (AGV) or an Autonomous Mobile Robot (AMR) capable of autonomous movement without external control. In this case, the mobile robot (10) may include components such as a sensor module, control module, mapping and localization module, and communication module for autonomous driving.
[0032] Referring to FIG. 2, the mobile robot (200) may include a driving path generation unit (210), a driving trajectory generation unit (220), and a driving actuation unit (340) in relation to this application.
[0033] The driving path generation unit (210) can determine the driving path of the mobile robot (200). For example, the driving path generation unit (210) can recognize the surrounding environment to determine the driving path. Specifically, the driving path generation unit (210) can recognize the environmentaround the mobile robot (200) by collecting information obtained through cameras, radars, LiDARs, ultrasonic sensors, etc.
[0034] Additionally, the driving path generation unit (210) can generate a map of the space where the mobile robot (200) is located. For example, the driving path generation unit (210) can perform mapping based on environmental information collected via various sensors, and algorithms such as Simultaneous Localization and Mapping (SLAM) can be used during this process.
[0035] Furthermore, the driving path generation unit (210) can acquire the current position of the mobile robot (200) using GPS sensors and the like, and determine the driving path of the mobile robot (200) by considering its current position, starting point, and destination.
[0036] According to one embodiment, the driving path generation unit (210) can calculate the target driving parameters of the mobile robot (200) based on the determined driving path. Specifically, the driving path generation unit (210) can calculate the target driving parameters of the mobile robot (200) based on the difference between the determined driving path and the current posture of the mobile robot (200).
[0037] For example, the driving path generation unit (210) can calculate the target driving parameters based on the difference between the driving path and the current position and orientation of the mobile robot (200). Here, the target driving parameters may include the speed in the horizontal direction (x-axis), the speed in the vertical direction (y-axis), and the rotational speed that the mobile robot (200) aims to achieve.
[0038] For instance, the driving path generation unit (210) can calculate the speed in the horizontal and vertical directions based on the difference between the determined driving path and the current position of the mobile robot (200). In addition, the driving path generation unit (210) can calculate the rotational speed of the mobile robot (200) based on the difference between the determined driving path and the orientation of the mobile robot (200).
[0039] The driving trajectory generation unit (220) can obtain the determined driving path and target driving parameters from the driving path generation unit (210) and generate the driving trajectory of the mobile robot (200). More specifically, the driving trajectory generation unit (220) can calculate the driving parameters that determine the driving trajectory based on the target driving parameters. For example, the driving trajectory generation unit (220) can generate the driving trajectory of the mobile robot (200) by calculating the steering angles and driving speeds for the wheels.
[0040] The driving actuation unit (230) can drive the mobile robot (200) based on the driving parameters calculated by the driving trajectory generation unit (220). For example, the driving actuation unit (230) can control the driving of the mobile robot (200) by driving the wheels based on the steering angles and driving speeds calculated by the driving trajectory generation unit (220).
[0041] While the driving path generation unit (210), the driving trajectory generation unit (220), and the driving actuation unit (230) are shown as independent components in FIG. 2, this is not limiting. For example, the actions performed by the driving path generation unit (210) and the driving trajectory generation unit (220) may be performed by a single module, and the driving path generation unit (210), the driving trajectory generation unit (220), and the driving actuation unit (230) may be implemented in one device (e.g., a driving device) included in the mobile robot (200).
[0042] Meanwhile, in this disclosure, a detailed description of the components (for example, the aforementioned sensor module, etc.) that are implemented to assist the autonomous driving of the mobile robot (10), in addition to the driving path generation unit (210), the driving trajectory generation unit (220), and the driving actuation unit (230), will be omitted.
[0043] In another embodiment, the mobile robot (10) may move via remote control. For example, the mobile robot (10) can transmit data collected by sensor modules to a server (30) or terminal devices (40, 50) through a network (20). The server (30) or terminal devices (40, 50) can then generate control signals to control the driving of the mobile robot (10) based on this data and transmit these signals to the mobile robot (10) through the network (20). Furthermore, the mobile robot (10) and the server (30) or terminal devices (40, 50) can exchange driving data collected by the mobile robot (10), local maps around the mobile robot (10), and control signals for controlling the operation of the mobile robot (10) via the network (20).
[0044] For example, some of the actions performed by the driving path generation unit (210) of the aforementioned mobile robot (200) or the actions performed by the driving trajectory generation unit (220) may be carried out by the server (30) or terminal devices (40, 50).
[0045] The server (30) can be implemented as a computer device or multiple computer devices that provide commands, codes, or services to the mobile robot (10) through the network (20). In one embodiment, the server (30) may transmit control signals for controlling the driving of the mobile robot (10) or store various data collected by the mobile robot (10) through the network (20). Alternatively, the server (30) may include memory and a processor and be a computing device with its own computational capability. In this embodiment, the server (30) may calculate driving parameters or driving parameters to generate the driving path or driving trajectory for the mobile robot (10).
[0046] Terminal devices (40, 50) may be computing devices that include a memory, processor, and a device (e.g., keyboard, mouse, touchpad, etc.) for receiving user input. In one embodiment, terminal devices (40) may further include a display device. For example, terminal devices (40, 50) can generate control signals for controlling the driving of the mobile robot (10) based on user input and transmit these signals to the mobile robot (10) through the network (20). In this process, terminal devices (40, 50) may calculate driving parametersor driving parameters for controlling the mobile robot's driving. Additionally, terminal devices (40) may display the driving path, driving trajectory, etc., of the mobile robot (10) on a display device. Terminal devices (40, 50) may include laptop PCs, desktop PCs, tablets, smartphones, etc., but are not limited to these.
[0047] Meanwhile, the process of generating a driving trajectory for the mobile robot (10) refers to the process of calculating how the mobile robot (10) will actually move by comparing the pre-determined driving path of the mobile robot (10) with its current position.
[0048] In this process, the movement direction or in-place rotation of the mobile robot (10) corresponding to a given driving path can be pre-set, and the driving trajectory of the mobile robot (10) can be generated based on the pre-configured operations of the mobile robot (10). However, the aforementioned method may require more pre-set operations of the mobile robot (10) as the driving path becomes more complex, and there might be inconveniences in real-time control of the mobile robot (10) on curved driving paths.
[0049] To address the above inconveniences, the present disclosure will describe a method and apparatus for calculating a driving trajectory in real time based on the current posture of the mobile robot (10) with reference to Figures 3 to 9.
[0050] Figure 3 is a flowchart illustrating an example of a driving trajectory control method for a mobile robot according to an embodiment.
[0051] Referring to Figure 3, the driving trajectory control method for the mobile robot may include operations performed by the driving trajectory control device (hereinafter referred to as "device") in steps 310 through 350. However, in addition to steps 310 through 350, some of the operations described as being performed by the driving path generation unit (210), the driving trajectory generation unit (220), and the driving actuation unit (230) with reference to Figures 1 and 2 may also be included in the driving trajectory control method for the mobile robot.
[0052] First, in step 310, the device may acquire the pre-determined driving path of the mobile robot and the target driving parameters of the mobile robot calculated based on the driving path.
[0053] The driving path of the mobile robot refers to a route determined considering the position of the mobile robot (at the time the driving path is determined), the starting point, the destination, etc. For example, information collected through various sensors included in the mobile robot and a local map can be used to determine the driving path of the mobile robot.
[0054] The target driving parameters of the mobile robot refer to parameters related to driving that need to be adjusted at the current position of the mobile robot to drive along the pre-determined driving path.
[0055] For example, the target driving parameters may include the target velocity of the mobile robot in the horizontal axis direction (x-axis direction), the vertical axis direction (y-axis direction), and the rotational velocity.
[0056] According to an embodiment, the target driving parameters may be calculated based on the pre-determined driving path of the mobile robot and its current posture. Here, the current posture of the mobile robot may include its current position and the orientation of its body. For instance, the target velocity of the mobile robot in the horizontal axis and vertical axis directions can be calculated based on the difference between the pre-determined driving path and the current position of the mobile robot. In another example, the target rotational velocity of the mobile robot can be calculated based on the difference between the pre-determined driving path and the orientation of the body of the mobile robot.
[0057] Next, in step 330, the device may calculate the steering angle and driving speed of the wheels constituting the mobile robot based on the target driving parameters.
[0058] Regarding step 330, details will be described with reference to Figures 4 through 7.
[0059] Figure 4 is a flowchart illustrating an example of a method for calculating the steering angle and driving speed of a wheel according to an embodiment. Figure 5 is a diagram illustrating a method for calculating the center of rotation during rotation according to an embodiment, and Figure 6 is a diagram illustrating a method for calculating the steering angle for a wheel according to an embodiment. Figure 7 is a diagram illustrating a method for calculating the driving speed for a wheel according to an embodiment.
[0060] Referring to Figure 4, in step 410, the device may calculate the coordinates of the center of rotation for the rotation of the mobile robot based on the target driving parameters.
[0061] For example, the device can calculate the coordinates of the horizontal axis (x-axis) direction of the rotation center point (520) based on the target velocity of the mobile robot (510) in the vertical axis direction and the rotational velocity. Additionally, the device can calculate the coordinates of the vertical axis (y-axis) direction of the rotation center point (520) based on the target velocity of the mobile robot (510) in the horizontal axis direction and the rotational velocity.
[0062] In summary, the device can calculate the coordinates of the rotation center point (520) for the rotation of the mobile robot (510) using the mathematical formula (1 ) below.
[0063] [Mathematical Formula 11
[0065] Here, Vxrepresents the velocity of the mobile robot in the horizontal axis direction, Vyrepresents the velocity in the vertical axis direction, and 0 represents the target rotational velocity of the mobile robot.
[0066] Next, in step 430, the device may calculate the steering angle for each wheel constituting the mobile robot based on the coordinates of the rotation center point.
[0067] For example, the device can calculate a first unit vector in the direction of the rotation center point (620) relative to the center point of the wheel and calculate a second unit vector in the direction of the center point (630) of the mobile robot (610). Based on this, the device can calculate the angle between the first unit vector and the second unit vector.
[0068] For example, the device can calculate the first unit vector and the second unit vector related to the front wheel (641 ) based on the following Mathematical Expressions 2 and 3, and calculate the steering angle (651 ) related to the front wheel based on Mathematical Expression 4.
[0069] [Mathematical Formula 2]
[0073] [Mathematical Formula 4]
[0075] Similarly to the above, the device can calculate the first unit vector (4r=and the second unit vector (related to the rear wheel (642), and calculate the steering angle (652) related to the rear wheel (642) based on Mathematical Expression 5.
[0076] [Mathematical Formula 51
[0078] Subsequently, in step 450, the device can calculate the driving speed for the wheel based on the distance between the center of rotation and the center of the wheel, as well as the rotational speed of the mobile robot.
[0079] For example, the device can calculate the driving speed (wf) for the front wheel (731 ) based on the distance (721 ) between the center of rotation and the center of the front wheel (731 ), and the rotational speed of the mobile robot, using Mathematical Expression 6.
[0080] [Mathematical Formula 61
[0081] wf= 0 X J(xr- xwf) + (yr- ywf)
[0082] In addition, the device can calculate the driving speed (wr) for the rear wheel (732) based on the distance (722) between the center of rotation and the center of the rear wheel (732), as well as the rotational speed of the mobile robot, using Mathematical Expression 7.
[0083] [Mathematical Formula 7]
[0085] Meanwhile, in the driving trajectory control method according to an embodiment of this disclosure, it is possible to calculate the steering angle and driving speed for the wheels constituting the mobile robot based on the target driving parameters. At this time, the steering angle and driving speed for each wheel of the mobile robot can be calculated independently.
[0086] In other words, as in one embodiment of this disclosure, in the case of a two-wheel-based mobile robot configured to include a front wheel and a rear wheel, the device can individually calculate the steering angle and driving speed for each wheel constituting the mobile robot.
[0087] According to the above-described embodiment of this disclosure, since the steering angle and driving speed for each wheel constituting the mobile robot are not interdependent, the target driving path can be traversed with continuous movement calculated in real-time.
[0088] Meanwhile, referring back to FIG. 3, at step 350, the device can control the driving of the mobile robot by driving the wheels based on the steering angle and driving speed calculated in step 330.
[0089] In relation to step 350, examples of methods for controlling the driving of the mobile robot will be described with reference to FIGS. 8a to 8c.
[0090] FIGS. 8a to 8c are diagrams for explaining examples of the driving of the mobile robot.
[0091] FIGS. 8a and 8b correspond to examples of the driving of the mobile robot when the steering angle of the wheels included in the mobile robot is controlled dependently or when the movement of the mobile robot corresponding to a given driving path is preset.
[0092] For example, referring to FIG. 8a, to travel along a driving path where the mobile robot (801 ) must go straight and then make a right turn, after reaching the turning point, it performs an operation to adjust the steering angles of the front and rear wheels, after which it can travel in the right-turn direction. That is, the mobile robot (801 ) performs the operations of adjusting the steering angles upon reaching the turning point and traveling in the right-turn direction discontinuously. Additionally, while traveling along the driving path, the device controlling the mobile robot's driving controls the movement and rotation of the mobile robot (or the body of the mobile robot) separately.
[0093] Similarly, referring to FIG. 8b, to travel along a driving path where the mobile robot (802) must go straight and then make a right turn, after reaching the turning point, it performs an operation to adjust the steering angles of the front and rear wheels and rotate in place, after which it can travel in the right-turn direction. That is, the mobile robot (801 ) performs the operations of rotating the body of the robot in the right-turn direction upon reaching the turning point and traveling in the right-turn direction discontinuously. Additionally, while traveling along the driving path, the device controlling the mobile robot's driving controlsthe movement and rotation of the mobile robot (or the body of the mobile robot) separately.
[0094] In contrast, FIG. 8c corresponds to an example of the driving of the mobile robot when the driving trajectory of the mobile robot is calculated in real-time, and the steering angles of the wheels included in the mobile robot are also calculated in real-time according to an embodiment of this disclosure.
[0095] For example, referring to FIG. 8c, the device controlling the driving of the mobile robot (803) can calculate the steering angle and driving speed for the wheels of the mobile robot (803) in real-time based on the driving path and the current posture of the mobile robot. Based on this, it can control the driving of the wheels to control the driving of the mobile robot (803). At this time, since the steering angle and driving speed for each wheel included in the mobile robot (803) are calculated individually, the driving of the mobile robot (803) can be controlled with continuous movement, regardless of the given driving path. Furthermore, for the same reason, the device can simultaneously control the movement and rotation of the mobile robot (803) (or the body of the mobile robot).
[0096] In particular, as shown in Figure 8c, the mobile robot (803) may not need to perform a separate operation to adjust the steering angle or rotate the body of the robot upon reaching a turning point to travel along a given driving path. Instead, it can move seamlessly while simultaneously adjusting the steering angle and driving speed of each wheel in real-time, thereby traveling continuously along the driving path. This continuous operation reduces downtime and improves the efficiency of the mobile robot's driving process.
[0097] As described above, according to the embodiment of the present disclosure, since the mobile robot can calculate and control the steering angle and driving speed of each wheel independently in real-time, it is possible to realize a smoother, more continuous movement along the driving path. Furthermore, the movement and rotation of the mobile robot (or its body) can be controlled simultaneously, which enhances the overall operational efficiency and reduces unnecessary motion or time delays.
[0098] Referring again to Figure 3, in step 360, the device can determine whether the mobile robot has reached the target point.
[0099] If the mobile robot has not yet reached the target point, the device may return to step 310 and repeat the process of receiving the target driving parameters and calculating the driving trajectory in real-time until the target point is reached.
[0100] If the mobile robot has reached the target point, the driving trajectory control process according to the embodiment of the present disclosure is completed.
[0101] As described in detail above, the driving trajectory control method according to the present disclosure calculates and controls the driving trajectory of a mobile robot in real-time based on the target driving parameters and thecurrent position and posture of the robot. This enables smooth and continuous movement along the driving path while improving the efficiency and responsiveness of the mobile robot's operation.
[0102] Figure 9 is a block diagram illustrating an example of the internal configuration of a device for controlling the driving trajectory of a mobile robot according to one embodiment.
[0103] The device (900) may be a device included in the mobile robot (10) of Figure 1 or the mobile robot (200) of Figure 2, correspond to the device in Figure 3, or be a driving control device included in the mobile robot (803) of Figure 8c.
[0104] For example, the device (900) may include components included in the mobile robot (10) of Figure 1 or the mobile robot (200) of Figure 2. That is, the operations performed by the components included in the mobile robot (10) of Figure 1 or the mobile robot (200) of Figure 2 may be performed by the device (900).
[0105] Referring to Figure 9, the device (900) may include a processor (910), memory (920), input / output interface (930), and communication module (940). For the convenience of explanation, only the components related to the present invention are illustrated in Figure 9. Accordingly, in addition to the components illustrated in Figure 9, other general-purpose components may also be included in the device (900). Moreover, the processor (910), memory (920), input / output interface (930), and communication module (940) illustrated in Figure 9 may be implemented as independent devices, which would be obvious to those skilled in the art related to the present invention.
[0106] The processor (910) can process commands of a computer program by performing basic arithmetic, logic, and input / output operations. Here, the commands may be provided from the memory (920) or an external device. Additionally, the processor (910) may generally control the operations of other components included in the device (900).
[0107] For example, the processor (910) may acquire predetermined driving parameters of the mobile robot calculated based on the predetermined driving path of the mobile robot.
[0108] In more detail, the processor (910) may acquire the target driving parameters of the mobile robot calculated based on the difference between the predetermined driving path of the mobile robot and the current posture of the mobile robot. Here, the current posture of the mobile robot may include the current position of the mobile robot and the direction of the body of the mobile robot.
[0109] Additionally, in one embodiment, the target driving parameters may include the target velocity in the horizontal axis direction, the target velocity in the vertical axis direction, and the target rotational speed of the mobile robot.
[0110] Meanwhile, in one embodiment, the processor (910) may determine the driving path of the mobile robot. For example, the processor (910) may recognize the surrounding environment to determine the driving path. For instance, theprocessor (910) may collect information acquired through sensors such as cameras, radar, lidar (Light Detection and Ranging), and ultrasonic sensors to recognize the environment surrounding the mobile robot (200).
[0111] Additionally, the processor (910) may generate a map of the space where the mobile robot is located. For example, the processor (910) may perform mapping based on environmental information collected through various sensors, and during this process, algorithms such as SLAM (Simultaneous Localization and Mapping) may be used.
[0112] Furthermore, the processor (910) may obtain the current position of the mobile robot through GPS sensors, and determine the driving path of the mobile robot considering the current position of the mobile robot, the starting point, and the destination.
[0113] In another embodiment, the processor (910) may calculate the target driving parameters of the mobile robot based on the determined driving path. In more detail, the processor (910) may calculate the target driving parameters of the mobile robot based on the difference between the determined driving path and the current posture of the mobile robot. For example, the processor (910) may calculate the target driving parameters based on the difference between the determined driving path, the current position of the mobile robot, and the direction of the body of the mobile robot. For instance, the processor (910) may calculate the target velocity in the horizontal axis direction and the target velocity in the vertical axis direction of the mobile robot based on the difference between the determined driving path and the current position of the mobile robot. Additionally, the processor (910) may calculate the target rotational speed of the mobile robot based on the difference between the determined driving path and the direction of the body of the mobile robot.
[0114] Meanwhile, the processor (910) can calculate the steering angle and driving speed for the wheels constituting the mobile robot based on the target driving parameters.
[0115] For example, the processor (910) can calculate the coordinates of the rotational center point for the rotation of the mobile robot based on the target driving parameters, and can calculate the steering angle for the wheels based on the coordinates of the rotational center point, the coordinates of the center point of the mobile robot, and the coordinates of the center point of the wheels. Additionally, it can calculate the driving speed for the wheels based on the distance between the rotational center point and the center point of the wheels and the rotational speed of the mobile robot.
[0116] At this time, the processor (910) can individually calculate the steering angle and driving speed for each wheel constituting the mobile robot.
[0117] Meanwhile, the processor (910) can control the driving of the mobile robot by driving the wheels based on the steering angle and driving speed.
[0118] For example, the processor (910) can simultaneously control the movement and rotation of the mobile robot.
[0119] The processor (910) may be implemented as an array of multiple logic gates, or as a combination of a general-purpose microprocessor and a memory storing programs executable by the microprocessor.
[0120] For example, the processor (910) may include a general-purpose processor, central processing unit (CPU), microprocessor, digital signal processor (DSP), controller, microcontroller, or state machine.
[0121] In some environments, the processor (910) may also include an application-specific integrated circuit (ASIC), programmable logic device (PLD), or field-programmable gate array (FPGA).
[0122] For instance, the processor (910) may refer to a combination of processing devices such as a combination of a DSP and a microprocessor, a combination of multiple microprocessors, a combination of one or more microprocessors coupled with a DSP core, or any other such configurations.
[0123]
[0106] The memory (920) may include any non-transitory computer- readable recording medium.
[0124] As an example, the memory (920) may include permanent mass storage devices such as random-access memory (RAM), read-only memory (ROM), disk drives, solid-state drives (SSD), or flash memory.
[0125] In another example, permanent mass storage devices such as ROM, SSD, flash memory, or disk drives may be separate permanent storage devices distinct from the memory.
[0126] Additionally, the memory (920) may store an operating system (OS) and at least one program code (e.g., code for enabling the processor (910) to perform the operations described with reference to FIGS. 1 to 8).
[0127] These software components may be loaded from a separate computer- readable recording medium other than the memory (920).
[0128] Such a separate computer-readable recording medium may be directly connected to the device (900) and may include computer-readable recording media such as floppy drives, disks, tapes, DVD / CD-ROM drives, memory cards, etc. Alternatively, the software components may be loaded into the memory (920) via the communication module (940) rather than a computer-readable recording medium.
[0129] For instance, at least one program may be loaded into the memory (920) based on computer programs provided via files distributed by developers or file distribution systems for installing application installation files through the communication module (940) (e.g., computer programs for enabling the processor (910) to perform the operations described with reference to FIGS. 1 to 8)-
[0130] The input / output interface (930) may serve as means for interfacing with input or output devices (e.g., keyboard, mouse, etc.) connected to or included in the device (900).
[0131] In FIG. 9, the input / output interface (930) is illustrated as an element separate from the processor (910), but it is not limited to this and may be configured to be included within the processor (910).
[0132] The communication module (940) may provide a configuration or function for the device (900) to communicate with external devices via a network.
[0133] For example, control signals, commands, data, etc., provided under the control of the processor (910) may be transmitted to external devices through the communication module (940) and a network.
[0134] Unless explicitly specified otherwise or contrary to the description, the steps constituting the method according to the present invention may be performed in an appropriate order.
[0135] The present invention is not necessarily limited by the described order of steps. The use of examples or illustrative terms (e.g., etc.) in the present invention is merely for detailed explanation and is not intended to limit the scope of the present invention unless specified in the claims. Moreover, those skilled in the art will understand that various modifications, combinations, and changes may be made in accordance with design conditions and factors within the scope of the appended claims or their equivalents.
[0136] Accordingly, the spirit of the present invention should not be limited to the embodiments described above, and all ranges equivalent to or modified from the appended claims fall within the scope of the spirit of the present invention.
Claims
Claims1 . A method for controlling the driving trajectory of a mobile robot, comprising: obtaining a predetermined driving path of the mobile robot and a target driving parameter of the mobile robot calculated based on the driving path; calculating a steering angle and driving speed for wheels constituting the mobile robot based on the target driving parameter; and driving the wheels based on the steering angle and driving speed to control the driving of the mobile robot.
2. The method of claim 1 , wherein the step of calculating includes: calculating the coordinates of a rotational center point for the rotation of the mobile robot based on the target driving parameter; calculating the steering angle for the wheels based on the coordinates of the rotational center point, the coordinates of the mobile robot's center point, and the coordinates of the wheels' center point; and calculating the driving speed of the wheels based on the distance between the rotational center point and the center point of the wheels, and the rotational speed of the mobile robot.
3. The method of claim 1 , wherein the mobile robot is a two-wheel-based mobile robot comprising two wheels, and the steering angle for each of the two wheels is adjustable.
4. The method of claim 1 , wherein the target driving parameter includes a horizontal axis velocity, a vertical axis velocity, and a rotational velocity targeted by the mobile robot.
5. The method of claim 1 , wherein the obtaining step includes: obtaining the target driving parameter calculated based on the difference between the predetermined driving path and the current posture of the mobile robot, wherein the current posture of the mobile robot includes the current position and the direction of the body of the mobile robot.
6. The method of claim 1 , wherein the calculating step includes: calculating the steering angle and the driving speed for each wheel constituting the mobile robot individually.
7. The method of claim 1 , wherein the controlling step includes: simultaneously controlling the movement and rotation of the mobile robot.
8. A computer-readable recording medium on which a program for executing the method of claim 1 in a computer is recorded.
9. A apparatus for controlling the driving trajectory of a mobile robot, comprising: at least one memory; and at least one processor; wherein the processor: obtains a predetermined driving path of the mobile robot and a target driving parameter of the mobile robot calculated based on the driving path, calculates a steering angle and a driving speed for wheels constituting the mobile robot based on the target driving parameter, and drives the wheels based on the steering angle and driving speed to control the driving of the mobile robot.
10. The apparatus of claim 9, wherein the processor: calculates the coordinates of a rotational center point for the rotation of the mobile robot based on the target driving parameter, calculates the steering angle for the wheels based on the coordinates of the rotational center point, the coordinates of the mobile robot's center point, and the coordinates of the wheels' center point, and calculates the driving speed of the wheels based on the distance between the rotational center point and the center point of the wheels, and the rotational speed of the mobile robot.1 1 .The apparatus of claim 9, wherein the mobile robot is a two-wheel-based mobile robot including two wheels, and the mobile robot is configured such that the steering angle of each of the two wheels is adjustable.
12. The apparatus of claim 9, wherein the target driving parameters include the velocity of the mobile robot in the horizontal axis direction, the velocity in the vertical axis direction, and the rotational velocity.
13. The apparatus of claim 9, wherein the processor is configured to: acquire the target driving parameters calculated based on the difference between the driving path and the current pose of the mobile robot, wherein the current pose of the mobile robot includes the current position of the mobile robot and the orientation of the body of the mobile robot.
14. The apparatus of claim 9, wherein the processor is configured to: individually calculate the steering angle and the driving speed for each of the wheels constituting the mobile robot.
15. The apparatus of claim 9, wherein the processor is configured to: simultaneously control the movement and rotation of the mobile robot.
Citation Information
Patent Citations
A method, apparatus and medium for generating circular arc paths in a dual-steering wheel AGV
CN109375624B
Trajectory tracking control method of AGV system
CN110262517B
A Parameter Correction Method for a Wheeled Mobile Robot
CN111610523B
Driving operation method of unmanned vehicle(AGV)
KR102432148B1
Tilting-type lighting fixtures
KR102462581B1