Controller, method, and non-temporary computer-readable storage medium for controlling robot motion
By treating obstacles as metal surfaces in electrostatics to generate equipotential curves, the method addresses the inefficiencies of existing motion planning, ensuring safe and efficient robot navigation by avoiding collisions.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-12-19
- Publication Date
- 2026-04-10
AI Technical Summary
Existing motion planning methods for robots are computationally expensive and may generate non-optimal or impractical paths that could lead to collisions with obstacles, necessitating a more efficient and safe method to navigate from a starting point to a target point within a bounded space.
The method represents obstacles and boundaries as metal surfaces in electrostatics, generating equipotential curves to determine a motion path that avoids obstacles by scaling the floor plan and applying opposite charges, and adjusts paths using gradient searches and local information to ensure safety.
This approach allows for the determination of feasible and safe motion paths that avoid obstacles, leveraging the advantages of equipotential curves to extend over long distances and eliminate local extrema, enabling efficient robot navigation.
Smart Images

Figure 0007843690000007 
Figure 0007843690000008 
Figure 0007843690000009
Abstract
Description
Technical Field
[0001] Technical Field The present disclosure generally relates to robot motion planning, and more particularly to systems and methods for controlling the motion of a robot from a starting point to a target point within a bounded space that includes one or more obstacles.
Background Art
[0002] Background To determine a motion path for controlling the motion of a robot, several control systems have been adopted by the robot. The motion of the robot can be controlled based on a motion path determined to execute a task. For example, one of the tasks of the robot is to cross from a starting point to a target point within a certain environment. A motion path connecting the starting point and the target point can be determined. However, the environment includes obstacles that the robot should not collide with. Therefore, if the motion path is determined without considering the obstacles, the determined motion path is likely to collide with the obstacles. For this reason, it is necessary to consider the obstacles present in the environment when determining the motion path in order to determine a safe motion path that avoids the obstacles and connects the starting point and the target point.
[0003] Many motion planning methods have been proposed, such as graph-based A* and D* methods, sampling-based methods like probabilistic roadmaps (PRM), extended space trees, rapidly exploring random trees (RRT), optimal variant RRT* and probabilistic roadmaps (PRM*), random RRT, and A-search guided trees (AGT). However, these methods involve local exploration and are both heuristic and probabilistic. Furthermore, sampling-based methods such as RRT are computationally expensive, and the motion paths they generate may not be optimal and / or practical.
[0004] Therefore, there is still a need for systems and methods to determine motion paths in order to control the motion of a robot without causing it to collide with obstacles. [Overview of the project]
[0005] overview The objective of some embodiments is to provide systems and methods for controlling the motion of a robot from a starting point to a target point within a bounded space. The bounded space may be, for example, an indoor space, a parking space, a road, etc. The bounded space includes one or more obstacles, such as walls, objects, vehicles, and other physical entities present within the bounded space. The bounded space is defined by a boundary. The objective of some embodiments is to control the motion of a robot from a starting point to a target point within a bounded space without colliding with obstacles. In particular, the objective of some embodiments is to determine a motion path for the robot so as to connect the starting point to the target point while avoiding obstacles.
[0006] Some embodiments are based on the recognition that obstacles and bounded space boundaries must be considered in order to determine motion paths. Some embodiments are based on the recognition that obstacles and boundaries can be represented using electrostatics. For example, obstacles and boundaries can be treated as metal surfaces in electrostatics. Each metal surface has a constant potential value. To this end, in some embodiments, a bounded virtual space corresponding to a bounded space is formed by scaling the floor plan of the bounded space including obstacles, treating the scaled obstacles as metal surfaces having constant potential values, and applying opposite charges to at least two opposing boundaries (e.g., boundaries) of the bounded virtual space.
[0007] Furthermore, the electrostatic properties of the bounded virtual space are resolved in order to generate multiple equipotential curves within the bounded virtual space. An equipotential curve is a curve with a constant potential value. Each given point in the bounded virtual space has a potential value. The positions of the starting point, the target point, and the surface of the scaled obstacle are identified in the bounded virtual space, and the potential value of the starting point, the potential value of the target point, and the potential value of the obstacle equipotential curve closest to the surface of the scaled obstacle are determined. Furthermore, an equipotential curve with a potential value different from the potential value of the obstacle equipotential curve is selected. Based on the selected equipotential curve, a motion path that avoids all obstacles can be determined.
[0008] For example, to determine a motion path based on a selected equipotential curve, a first path from a starting point to a first point on the selected equipotential curve and a second path from a target point to a second point on the selected equipotential curve are determined. Furthermore, a third path connecting the first and second points along the selected equipotential curve is determined. The motion path can be determined as a combination of the first path connecting the starting point to the first point, the second path connecting the target point to the second point, and the third path connecting the first and second points along the selected equipotential curve. Furthermore, based on the determined motion path, the robot's motion is controlled from the starting point to the target point while avoiding obstacles.
[0009] In one embodiment, the first and second paths are determined to reach and follow the potential value of a selected equipotential curve. To determine the first and / or second paths (or to reach the potential value of the selected equipotential curve), one or a combination of downstream and upstream searches based on the gradient of the potential value may be performed until the potential value of the selected equipotential curve is reached. For example, the first and second paths are extended segment by segment toward the potential value of the selected equipotential curve, perpendicular to the current equipotential curve, until the first and second paths reach the selected equipotential curve or until the next equipotential curve is an obstacle equipotential curve. However, the next equipotential curve may correspond to an obstacle equipotential curve. In such cases, the first or second path is extended to follow the current equipotential curve in predetermined steps until the next equipotential curve is no longer an obstacle equipotential curve.
[0010] Some embodiments are based on the recognition that the motion paths determined based on the first, second, and third paths may not be feasible. For example, the determined motion paths may get too close to one or more obstacles. As a result, the robot's motion may be more prone to collisions with obstacles if controlled based on the determined motion paths. To mitigate such problems, the determined motion paths may be modified. In one embodiment, the motion paths are modified based on local information to generate modified motion paths. Local information may include the location and dimensions of obstacles.
[0011] Some embodiments are based on the recognition that determining motion paths using equipotential curves is advantageous. For example, the potential field of equipotential curves does not have local extrema and saddle points, thereby eliminating local traps. In addition, the potential field extends over long distances, so distant obstacles affect local potential values, and thus affect the equipotential curves as well. In other words, equipotential curves allow the use of overall information about all obstacles and the aforementioned boundaries to determine motion paths.
[0012] Furthermore, some embodiments are based on the understanding that multiple motion paths can be determined, and a motion path for the robot's motion can be selected from these multiple motion paths. For example, two equipotential curves having different potential values from the equipotential curve of an obstacle are selected, and two corresponding motion paths, such as a first motion path and a second motion path, are determined. Both the first and second motion paths connect a starting point to a target point while avoiding obstacles. Furthermore, one of the first and second motion paths is selected according to optimization criteria. The optimization criteria may include the smoothness of the motion path, the proximity of the motion path to obstacles (i.e., safety), and the length of the motion path.
[0013] Additionally or alternatively, in some embodiments, post-processing techniques are applied to the first and second motion paths to enhance their smoothness. For example, cubic interpolation is applied to the first and second motion paths to generate smoother first and second motion paths, respectively.
[0014] Accordingly, one embodiment discloses a controller for controlling the motion of a robot from a starting point to a target point in a bounded space having a floor plan including one or more obstacles. The controller comprises at least one processor and a memory storing instructions. When the instructions are executed by the at least one processor, the controller causes the controller to scale the floor plan of the bounded space including one or more obstacles, to dissolve the electrostatics of the bounded virtual space formed by applying opposite charges to at least two opposing boundaries of the bounded virtual space while treating the scaled obstacles as metal surfaces having a constant potential value, the electrostatics generating a plurality of equipotential curves in the bounded virtual space, further causing the controller to identify the positions of the starting point, the target point, and the surface of the scaled obstacles in the bounded virtual space, to determine the potential value of the starting point, the potential value of the target point, and the potential value of the obstacle equipotential curve closest to the surface of the scaled obstacles, to select an equipotential curve having a potential value different from the potential value of the obstacle equipotential curve, and to move from the starting point to a first point on the selected equipotential curve. A first path and a second path from the target point to a second point on the selected equipotential curve are determined, and the first and second paths are determined such that each segment of the first and second paths follows the current equipotential curve, or, if the next equipotential curve is different from the obstacle equipotential curve, switches between the current equipotential curve and the next equipotential curve in a direction perpendicular to the current equipotential curve toward the potential value of the selected equipotential curve. Furthermore, a motion path is determined as a combination of a first path connecting the starting point and the first point, a second path connecting the target point and the second point, and a third path connecting the first point and the second point along the selected equipotential curve, and the motion of the robot is controlled based on the determined motion path.
[0015] Accordingly, another embodiment discloses a method for controlling the motion of a robot from a starting point to a target point in a bounded space having a floor plan including one or more obstacles. The method includes scaling the floor plan of the bounded space including one or more obstacles, and dissolving the electrostatics of the bounded virtual space formed by applying opposite charges to at least two opposing boundaries of the bounded virtual space while treating the scaled obstacles as metal surfaces having constant potential values, the electrostatics generating a plurality of equipotential curves in the bounded virtual space, the method further includes identifying the locations of a starting point, a target point, and the surface of the scaled obstacles in the bounded virtual space, determining the potential value of the starting point, the potential value of the target point, and the potential value of the obstacle equipotential curve closest to the surface of the scaled obstacles, selecting an equipotential curve having a potential value different from the potential value of the obstacle equipotential curve, a first path from the starting point to a first point on the selected equipotential curve, and from the target point to the selected The method includes the steps of determining a first path to a second point on a selected equipotential curve, wherein each segment of the first and second paths is determined to follow the current equipotential curve, or to switch between the current equipotential curve and the next equipotential curve in a direction perpendicular to the current equipotential curve toward the potential value of the selected equipotential curve if the next equipotential curve is different from the obstacle equipotential curve, and the method further includes determining a motion path as a combination of a first path connecting the starting point and the first point, a second path connecting the target point and the second point, and a third path connecting the first point and the second point along the selected equipotential curve, and controlling the motion of the robot based on the determined motion path.
[0016] Therefore, yet another embodiment discloses a non-temporary computer-readable storage medium that embodies a program executable by a processor to perform a method for controlling the motion of a robot from a starting point to a target point in a bounded space having a floor plan including one or more obstacles. The method includes the steps of scaling a floor plan of a bounded space containing one or more obstacles, and solving the electrostatic discharge of a bounded virtual space formed by applying opposite charges to at least two opposing boundaries of the bounded virtual space while treating the scaled obstacles as metal surfaces having a constant potential value, the electrostatic discharge generating a plurality of equipotential curves within the bounded virtual space, the method further includes the steps of identifying the locations of a starting point, a target point, and the surface of the scaled obstacle in the bounded virtual space, determining the potential value of the starting point, the potential value of the target point, and the potential value of the obstacle equipotential curve closest to the surface of the scaled obstacle, selecting an equipotential curve having a potential value different from the potential value of the obstacle equipotential curve, a first path from the starting point to a first point on the selected equipotential curve, and from the target point to the selection The method includes the steps of determining a first path and a second path to a second point on an equipotential curve, wherein each segment of the first and second paths is determined to follow the current equipotential curve, or to switch between the current equipotential curve and the next equipotential curve in a direction perpendicular to the current equipotential curve toward the potential value of the selected equipotential curve if the next equipotential curve is different from the obstacle equipotential curve, and the method further includes determining a motion path as a combination of a first path connecting the starting point and the first point, a second path connecting the target point and the second point, and a third path connecting the first point and the second point along the selected equipotential curve, and controlling the motion of the robot based on the determined motion path.
[0017] Brief explanation of the drawing The embodiments of the present disclosure will be further described with reference to the accompanying drawings. The drawings shown are not necessarily to scale, and generally, emphasis is placed on explaining the principles of the embodiments of the present disclosure.
Brief Description of the Drawings
[0018] [Figure 1A] It is a schematic diagram showing a bounded space with a floor plan according to an embodiment of the present disclosure. [Figure 1B] It is a diagram showing a controller for controlling the motion of a robot from a starting point to a target point according to an embodiment of the present disclosure. [Figure 1C] It is a diagram showing an exemplary equipotential curve according to an embodiment of the present disclosure. [Figure 1D] It is a diagram showing a schematic for determining a motion path based on a selected equipotential curve according to some embodiments of the present disclosure. [Figure 1E] It is a diagram showing an extension of a first path according to an embodiment of the present disclosure. [Figure 1F] It is a diagram showing an extension of a first path when the next point is inside an obstacle according to an embodiment of the present disclosure. [Figure 1G]
Number
[0019] Detailed explanation The following explanation is provided to ensure a complete understanding. do Numerous specific details are described in the purpose section. However, it will be apparent to those skilled in the art that this disclosure can be carried out without these specific details. In other examples, the apparatus and methods are shown only in block diagram form to avoid obscuring the disclosure.
[0020] As used herein and in the claims, the words “for example,” “as an example,” and “such as,” as well as “equip,” “have,” “include,” and any other verb forms thereof, when used with an enumeration of one or more components or other items, should be interpreted as open-ended. This means that the enumeration should not be considered to exclude any additional components or items. The word “based on” means that it is based on at least partially. Furthermore, it should be understood that the terms and technical terms used herein are for illustrative purposes only and should not be considered limiting. Any headings used herein are for convenience only and have no legal or limiting effect.
[0021] Figure 1A shows a schematic diagram of a bounded space 100 having a floor plan according to one embodiment of the present disclosure. The bounded space 100 may be, for example, an indoor space, a parking space, a road, etc. The floor plan of the bounded space 100 shows one or more obstacles 101a, 101b, and 101c present in the bounded space 100. Obstacles 101a, 101b, and 101c are, Yes The bounded space 100 may contain walls, objects, vehicles, and other physical entities. The bounded space 100 is defined by boundaries 107a and 107b. In some embodiments, the objective is to control the motion of a robot from a starting point 103 to a target point 105 within the bounded space 100 without colliding with obstacles 101a, 101b, and 101c. In particular, in some embodiments, the objective is to determine a motion path for the robot that connects the starting point 103 to the target point 105 while avoiding obstacles 101a, 101b, and 101c.
[0022] To achieve this objective, some embodiments provide a controller for controlling the motion of a robot from a starting point 103 to a target point 105. Such a controller is described below with reference to Figure 1B.
[0023] Figure 1B shows a controller 109 for controlling the motion of a robot from a starting point 103 to a target point 105, according to one embodiment of the present disclosure. The controller 109 includes a processor 111 and memory 113. The processor 111 may be a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. The memory 113 may include random access memory (RAM), read-only memory (ROM), flash memory, or any other suitable memory system. In addition, in some embodiments, the memory 113 may be implemented using a hard drive, an optical drive, a thumb drive, an array of drives, or any combination thereof.
[0024] Several embodiments are based on the understanding that obstacles 101a, 101b, and 101c, as well as boundaries 107a and 107b, can be represented using electrostatics. For example, obstacles 101a, 101b, and 101c, as well as boundaries 107a and 107b, can be treated as metal surfaces in electrostatics. Each metal surface has a constant potential value. To this end, the processor 111 is configured to determine a bounded virtual space corresponding to a bounded space 100. In one embodiment, the bounded virtual space is formed by scaling the floor plan of the bounded space 100, including obstacles 101a, 101b, and 101c, and applying opposite charges to at least two opposing boundaries of the bounded virtual space (e.g., boundaries 107a and 107b) while treating the scaled obstacles as metal surfaces having a constant potential value.
[0025] Furthermore, the processor 111 resolves the electrostatic discharge in the bounded virtual space and generates multiple equipotential curves within the bounded virtual space. The generated equipotential curves are shown in Figure 1C.
[0026] Figure 1C shows an exemplary equipotential curve 115 according to one embodiment of the present disclosure. An equipotential curve is a curve in which the potential value is constant. Each given point in a bounded virtual space has a potential value. The processor 111 identifies the positions of the starting point 103, the target point 105, and the surfaces of the scaled obstacles 101a, 101b, and 101c in the bounded virtual space, and determines the potential value of the starting point 103, the potential value of the target point 105, and the potential value of the obstacle equipotential curve closest to the surface of the scaled obstacle. Furthermore, the processor 111 selects an equipotential curve that has a potential value different from the potential value of the obstacle equipotential curve. For example, the processor 111 selects an equipotential curve 117 that has a potential value different from the potential value of the obstacle equipotential curve 115. Based on the selected equipotential curve, a motion path can be determined as described below with reference to Figure 1D.
[0027] Figure 1D shows a schematic of determining a motion path based on a selected equipotential curve according to some embodiments of the present disclosure. The processor 111 determines a first path 119 from a starting point 103 to a first point 121 on the selected equipotential curve, and a second path 123 from a target point 105 to a second point 125 on the selected equipotential curve. The processor 111 further determines a third path 127 connecting the first point 121 and the second point 125 along the selected equipotential curve. Furthermore, the processor 111 determines the motion path as a combination of the first path 119 connecting the starting point 103 and the first point 121, the second path 123 connecting the target point 105 and the second point 125, and the third path 127 connecting the first point 121 and the second point 125 along the selected equipotential curve. The processor 111 controls the robot's motion from the starting point 103 to the target point 105, while avoiding obstacles 101a, 101b, and 101c, based on the determined motion path.
[0028] In one embodiment, the first path 119 and the second path 123 each include a segment. The first path 119 and / or the second path 123 are determined to reach the potential value of a selected equipotential curve and to follow the selected equipotential curve. To determine the first path 119 and / or the second path 123 (or to reach the potential value of a selected equipotential curve), one or a combination of downstream and upstream searches based on the gradient of the potential value may be performed until the potential value of the selected equipotential curve is reached. For example, the processor 111 extends the first path 119 and the second path 123 segment by segment toward the potential value of the selected equipotential curve in a direction perpendicular to the current equipotential curve until the first path 119 and the second path 123 reach the selected equipotential curve or until the next equipotential curve is an obstacle equipotential curve.
[0029] Figure 1E shows an extension of the first path 119 according to one embodiment of the present disclosure. The processor 111 moves the segment of the first path 119 to point z on the current equipotential curve 131. i From point 129, the next point z on the next equipotential curve 135 i+1 Up to 133, the path is extended / generated in a direction 137 perpendicular to the current equipotential curve 131 toward the potential value of the selected equipotential curve. Direction 137 is referred to as the gradient direction. Such extension of the first path 119 is carried out until the selected equipotential curve is reached. Similarly, the processor 111 extends the second path 123 until the selected equipotential curve is reached.
[0030] However, in some cases, the following equipotential curve 135 corresponds to the obstacle equipotential curve, or the following point z i+1 Point 133 is inside the obstacle. In this case, the segment of the first path 119 is extended to follow the current equipotential curve 131 at predetermined steps until the next equipotential curve is no longer the obstacle equipotential curve. If the next equipotential curve is the obstacle equipotential curve, or if point z i+1 The extension of the segment of the first path 119 when 133 is inside the obstacle will be explained below with reference to Figure 1F.
[0031]
number
[0032]
number
[0033]
number
[0034] In a similar manner (as shown in Figures 1E to 1G), the second path 123 is also extended segment by segment to reach the selected equipotential curve. Additionally or alternatively, the processor 111 similarly determines the shortest first path and the shortest second path among segments that follow the equipotential curve or segments perpendicular to the equipotential curve, as shown in Figures 1E to 1G.
[0035] Some embodiments are based on the recognition that the motion paths determined based on the first path 119, the second path 123, and the third path 127 may not be feasible. For example, the determined motion paths may be close to one or more of the obstacles 101a, 101b, and 101c. As a result, the robot's motion may be prone to collisions with obstacles 101a, 101b, and 101c if controlled based on the determined motion paths. To mitigate such problems, the determined motion paths may be modified.
[0036] Figure 2 shows a modified motion path according to one embodiment of the present disclosure. Motion path 205 connects a starting point 201 to a target point 203, avoiding obstacles 207a, 207b, 207c, and 207d. However, motion path 205 is close to obstacle 207c. To improve the safety of motion path 205, motion path 205 is modified based on local information to generate a modified motion path 209. Local information may include the location and dimensions of obstacles 207a, 207b, 207c, and 207d, as well as boundaries 211a and 211b.
[0037] Some embodiments are based on the recognition that it is advantageous to determine motion paths using equipotential curves. For example, the potential field does not have local extrema and saddle points, thereby eliminating local traps when constructing motion paths. See the procedure described in Figures 1E to 1G. In addition, the potential field extends over long distances, so distant obstacles affect local potential values, and thus affect the equipotential curves as well. In other words, equipotential curves allow the use of overall information about all obstacles and the aforementioned boundaries to determine motion paths.
[0038] Some embodiments are based on the understanding that multiple motion paths can be determined, and a motion path for the robot's motion can be selected from these multiple motion paths.
[0039] Figure 3 shows a schematic diagram of multiple motion paths according to one embodiment of the present disclosure. The processor 111 selects multiple equipotential curves having potential values different from the potential values of the obstacle equipotential curves. Furthermore, the processor 111 determines a motion path for each of the selected multiple equipotential curves, resulting in multiple motion paths. Furthermore, the processor 111 selects one motion path from the multiple motion paths according to optimization criteria. For example, the processor 111 selects two equipotential curves having potential values different from the potential values of the obstacle equipotential curves and determines two corresponding motion paths, for example, a first motion path 305 and a second motion path 307. Both the first motion path 305 and the second motion path 307 lead from a starting point 301 to a target point 303, avoiding obstacles 309a, 309b, 309c, and 309d. The processor 111 selects one of the first motion path 305 and the second motion path 307 according to optimization criteria. The optimization criteria may include the smoothness of the motion path, the proximity of the motion path to obstacles 309a, 309b, 309c, and 309d (i.e., safety), and the length of the motion path. For example, if the optimization criterion is safety, the processor 111 selects the second motion path 307 because it is further away from obstacles 309a, 309b, and 309d than the first motion path 305.
[0040] Additionally or alternatively, in some embodiments, post-processing techniques are applied to the first motion path 305 and the second motion path 307 to enhance their smoothness. For example, the processor 111 applies cubic interpolation to the first motion path 305 and the second motion path 307 to generate a first smooth motion path 311 and a second smooth motion path 313, respectively.
[0041] Furthermore, in some embodiments, in order to determine the motion path, the processor 111 selects an equipotential curve having a potential value different from the potential value of the obstacle equipotential curve and which is closest to the average potential value between boundary 315a and boundary 315b. For example, the processor 111 selects an equipotential curve having a potential value closest to -0.5, which is the average potential value between boundary 315a and boundary 315b. Such an intermediate equipotential curve may be advantageous because it is structurally far from boundaries 315a and 315b, giving boundaries 315a and 315b the best safety margin.
[0042] Furthermore, the robot's motion is controlled based on the motion path. In one embodiment, the robot may be a holonomic robot in which the controllable degrees of freedom are equal to the total degrees of freedom. The controller 109 causes the holonomic robot's motion to follow the motion path. In another embodiment, the robot may be a non-holonomic robot. The controller 109 generates a kinematically feasible path for the non-holonomic robot based on the motion path and causes the non-holonomic robot's motion to follow the kinematically feasible path.
[0043] In one embodiment, the non-holonomic robot is a vehicle, the bounded space 100 is a parking space, and the target point 105 is associated with a target parking spot. In such an embodiment, the controller 109 generates a kinematically feasible path for the vehicle to park it at the target parking spot within the parking space. Figure 4A illustrates an exemplary scenario of parking a vehicle using the controller 109. and Figure 4 B Refer to the explanation below.
[0044] Figure 4A shows a schematic diagram of a vehicle 401 communicatively coupled to a controller 109 according to one embodiment of the present disclosure. The vehicle 401 may be any type of wheeled vehicle, such as a passenger car, bus, or rover. The vehicle 401 may also be an autonomous or semi-autonomous vehicle. In one embodiment, the steering system 405 is controlled by a tracker 403. Additionally or alternatively, the steering system 405 may be controlled by the driver of the vehicle 401.
[0045] In some embodiments, the vehicle 401 may include an engine 411 controllable by a tracker 403 or by other components of the vehicle 401. In some embodiments, the vehicle 401 may include an electric motor instead of an engine 411, which may also be controllable by the tracker 403 or by other components of the vehicle 401. The vehicle 401 may also include one or more sensors 407 for sensing the surrounding environment. Examples of sensors 407 include rangefinders such as radar. In some embodiments, the vehicle 401 includes one or more sensors 409 for sensing its current motion parameters and internal state. Examples of one or more sensors 409 include a global positioning system (GPS), accelerometer, inertial measurement unit, gyroscope, axial rotation sensor, torque sensor, deflection sensor, pressure sensor, and flow sensor. The sensors provide information to the tracker 403. The vehicle 401 may also include a transceiver 413 that enables the tracker 403 to communicate with a controller 109 via a wired or wireless communication channel. For example, the tracker 403 receives kinematically feasible paths from the controller 109 via the transceiver 413.
[0046] Figure 4B shows the parking of a vehicle 401 in a parking space 415 according to one embodiment of the present disclosure. The parking space 415 includes parking spots such as spot 417 for parking the vehicle. The parking space 415 is bounded by boundaries 419a and 419b. The parking space 415 further includes one or more obstacles such as vehicles 421, 423, 425, and 427, which the vehicle 401 should not collide with. The vehicle 401 is at a starting point 429 and must be parked in the target parking spot 431 without colliding with vehicles 421, 423, 425, and 427, as well as boundaries 419a and 419b. According to some embodiments, a controller 109 determines a motion path for controlling the motion of the vehicle 401 from the starting point 429 to the target parking spot 431. Furthermore, the controller 109 generates a kinematically feasible path 433 based on the motion path. In one embodiment, to generate a kinematically feasible path 433, the controller 109 executes a spatial sampling method guided by the motion path generated by the selected equipotential curves, such as a Rapidly-exploring Random Tree (RRT) algorithm or a probabilistic roadmap (PRM). In other words, the sampling points are biased toward the selected equipotential curves. Furthermore, the controller 109 causes the motion of the vehicle 401 to follow a kinematically feasible path in order to park the vehicle 401 at the target parking spot 431.
[0047] In particular, in one embodiment, a kinematically feasible path 433 is sent to a tracker 403 of the vehicle 401. The tracker 403 is, for example, a Model Predictive Control (MPC) based controller configured to track the path of the vehicle 401. The tracker 403 generates control inputs based on the kinematically feasible path 433 and tracks the kinematically feasible path 433. The control inputs include control commands that specify, for example, values for one or a combination of the steering angle of the vehicle 401's wheels, the rotational speed of the wheels, and the acceleration of the vehicle 401. The control inputs navigate the vehicle 401 along the kinematically feasible path 433 to safely park the vehicle 401 in a target parking spot 431.
[0048] In addition, in some embodiments, the bounded space 100 may be an indoor space, and the controller 109 can control the motion of the robot from a starting point to a target point within the indoor space.
[0049] Figure 5 shows an example of the application of a controller 109 for controlling the motion of a robot in an indoor space 500, according to one embodiment of the present disclosure. The indoor space 500 may be the interior space of a room in a building, the interior space of a warehouse, etc. The indoor space 500 is defined by a boundary 501 and includes obstacles 503a, 503b, 503c, 503d, and 503e. According to some embodiments, the controller 109 generates a motion path 509 connecting a starting point 505 and a target point 507 within the indoor space 500. Furthermore, the controller 109 controls the motion of the robot based on the motion path 509 without causing collisions with obstacles 503a, 503b, 503c, 503d, and 503e.
[0050] In addition, in some embodiments, the controller 109 determines multiple motion paths 511 and 513 in addition to the motion path 509. The controller 109 further selects a motion path from the multiple motion paths 509, 511, and 513 according to optimization criteria. Furthermore, the controller 109 controls the robot's motion based on the selected motion path.
[0051] Some embodiments provide solvers for solving electrostatics in a virtual bounded space to generate equipotential curves. In one embodiment, the solver is an electrostatic potential solver based on minimizing an energy function with respect to the surface charge density λ(s).
[0052] Figure 6 is a block diagram showing an electrostatic potential solver according to one embodiment of the present disclosure. For example, the processor 111 is configured to implement the electrostatic potential solver to determine the surface charge density λ(s). In block 601, the processor 111 assigns an energy function to be minimized. For example, the energy function to be minimized is given as follows:
[0053]
number
[0054] In block 603, the processor 111 determines the surface charge density λ(s) and electrostatic potential by minimizing the energy function using a convex optimization algorithm. Because the energy function is convex, the optimization is stable and there are no traps to local minimums. In block 605, the processor 111 performs electrostatic electric Evaluate the rank.
[0055]
number
[0056] The provided electrostatic potential solver is one of several two-dimensional potential solvers, and any solver, such as finite element analysis, can be used. In one embodiment, if a new obstacle is detected during online (i.e., real-time) control of the robot's motion, the processor 111 solves the electrostatic online during the control of the robot's motion to determine a new equipotential curve. Based on the new equipotential curve, the processor 111 determines a new motion path to avoid the new obstacle. Furthermore, the robot's motion is controlled based on this new motion path.
[0057] Figure 7 shows a block diagram of a method 700 for controlling the motion of a robot from a starting point (e.g., starting point 103) to a target point (e.g., target point 105) in a bounded space (e.g., bounded space 100) having a floor plan including one or more obstacles, according to embodiments of the present disclosure. In block 701, the method 700 includes the step of discharging the electrostatics of a bounded virtual space to generate a plurality of equipotential curves within the bounded virtual space. According to one embodiment, the bounded virtual space is formed by scaling the floor plan of a bounded space including one or more obstacles and applying opposite charges to at least two opposing boundaries of the bounded virtual space while treating the scaled obstacles as metallic surfaces having constant potential values.
[0058] In block 703, method 700 includes the step of identifying the positions of a starting point, a target point, and the surface of a scaled obstacle in a bounded virtual space, and determining the potential value of the starting point, the potential value of the target point, and the potential value of the obstacle equipotential curve closest to the surface of the scaled obstacle. In block 705, method 700 further includes the step of selecting an equipotential curve having a potential value different from the potential value of the obstacle equipotential curve.
[0059] In block 707, method 700 includes the step of determining a first path (e.g., a first path 119) from a starting point to a first point on the selected equipotential curve and a second path (e.g., a second path 123) from a target point to a second point on the selected equipotential curve. The first and second paths are determined such that each segment of the first and second paths follows the current equipotential curve, or, if the next equipotential curve is different from the obstacle equipotential curve, switches between the current equipotential curve and the next equipotential curve in a direction perpendicular to the current equipotential curve toward the potential value of the selected equipotential curve.
[0060] In block 709, method 700 includes the step of determining a motion path as a combination of a first path connecting a starting point and a first point, a second path connecting a target point and a second point, and a third path connecting the first point and the second point along a selected equipotential curve. In block 711, method 700 includes the step of controlling the motion of a robot based on the determined motion path.
[0061] Figure 8 is a schematic diagram showing a computing device 800 for implementing the method and system / controller of this disclosure. The computing device 800 includes a power supply 801, a processor 803, memory 805, and a storage device 807, all of which are connected to a bus 809. Furthermore, the bus 809 includes a high-speed interface 811, a low-speed interface 813, a high-speed expansion port 815, and a low-speed expansion Port 817 can be connected. In addition, bus 809 has a low-speed connectionPort 819 is connected. Furthermore, input interface 821 can be connected to external receiver 823 and output interface 825 via bus 809. Receiver 827 can be connected to external transmitters 829 and 831 via bus 809. External memory 833, external sensor 835, machine 837, and environment 839 can also be connected to bus 809. Additionally, one or more external input / output devices 841 can be connected to bus 809. Network interface controller (NIC) 843 can be adapted to connect to network 845 via bus 809. In this case, data or other data can be rendered on third-party display devices, third-party imaging devices, and / or third-party printing devices located outside the computing device 800, among other things.
[0062] Memory 805 can store instructions executable by computing device 800 and any data available by the methods and systems of this disclosure. Memory 805 may include random access memory (RAM), read-only memory (ROM), flash memory, or any other suitable memory system. Memory 805 may be a volatile memory unit and / or a non-volatile memory unit. Memory 805 may also be another form of computer-readable medium, such as a magnetic disk or an optical disk.
[0063] The storage device 807 may be adapted to store supplemental data and / or software modules used by the computer device 800. The storage device 807 may include a hard drive, optical drive, thumb drive, array of drives, or any combination thereof. Furthermore, the storage device 807 may include an array of devices including computer-readable media such as floppy disk devices, hard disk devices, optical disk devices, or tape devices, flash memory or other similar solid-state memory devices, or devices in a storage area network or other configuration. Instructions may be stored on an information carrier. When such instructions are executed by one or more processing devices (e.g., processor 803), they perform one or more methods, such as those described above.
[0064] The computing device 800 may optionally be linked via bus 809 to a display interface or user interface (HMI) 847 adapted to connect the computing device 800 to a display device 849 and a keyboard 851. The display device 849 may include, among other things, a computer monitor, a camera, a television, a projector, or a mobile device. In some implementations, the computer device 800 may include a printer interface for connecting to a printing device. In this case, the printing device may include, among other things, a liquid inkjet printer, a solid ink printer, a large-format commercial printer, a thermal printer, a UV printer, or a dye-sublimation printer.
[0065] The high-speed interface 811 manages bandwidth-intensive operations for the computing device 800, and the low-speed interface 813 manages low-bandwidth-intensive operations. This assignment of functions is merely an example. In some implementations, the high-speed interface 811 manages memory 805 and the user interface (HMI) 84. 7The computing device 800 can be coupled (for example, via a graphics processor or accelerator) to a keyboard 851 and a display 849, and to a high-speed expansion port 815 that can accept various expansion cards via a bus 809. In one implementation, the low-speed interface 813 is coupled to a storage device 807 and the low-speed expansion port 817 via a bus 809. The low-speed expansion port 817, which may include various communication ports (for example, USB, Bluetooth®, Ethernet®, Wireless Ethernet®), can be coupled to one or more I / O devices 841. The computing device 800 can be connected to a server 853 and a rack server 855. The computing device 800 can be implemented in several different forms. For example, the computing device 800 may be implemented as part of a rack server 855.
[0066] The following description provides only exemplary embodiments and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the following description of exemplary embodiments will provide a practicable description for realizing one or more exemplary embodiments for those skilled in the art. Various modifications may be made with respect to the function and arrangement of the elements without departing from the spirit and scope of the subject matter disclosed as described in the appended claims.
[0067] The following description provides specific details to enable a full understanding of the embodiments. However, those skilled in the art will understand that embodiments can be carried out without these specific details. For example, systems, processes, and other elements in the disclosed subject matter may be shown as components in the form of block diagrams to avoid obscuring the embodiments with unnecessary details. In other cases, well-known processes, structures, and techniques may be shown without unnecessary details to avoid obscuring the embodiments. Furthermore, similar reference numbers and names in different drawings refer to similar elements.
[0068] Furthermore, individual embodiments may be described as processes shown as flowcharts, flow diagrams, data flow diagrams, structural diagrams, or block diagrams. While flowcharts may describe operations as sequential processes, many operations may be performed in parallel or simultaneously. In addition, the order of operations may be rearranged. A process may terminate when its operations are complete, but it may include additional steps not shown or included in the diagram. Moreover, not all operations in any particular process described may be performed in all embodiments. A process may correspond to a method, function, procedure, subroutine, subprogram, etc. If a process corresponds to a function, the termination of the function may correspond to returning the function to a calling function or main function.
[0069] Furthermore, embodiments of the disclosed subject matter can be implemented at least partially manually or automatically. Manual or automatic implementations can be performed, or at least assisted, by using a machine, hardware, software, firmware, middleware, microcode, a hardware description language, or any combination thereof. If implemented in software, firmware, middleware, or microcode, program code or code segments for performing the required tasks can be stored in a machine-readable medium. A processor can perform the required tasks.
[0070] The various methods or processes outlined herein may be encoded as software executable on one or more processors employing one of various operating systems or platforms. In addition, such software may be written using one of several preferred programming languages and / or programming or scripting tools, and may be compiled as executable machine language code or intermediate code that runs on a framework or virtual machine. Typically, the functions of program modules may be combined or distributed as desired in various embodiments.
[0071] Embodiments of the present disclosure may be embodied as the examples provided above. The operations performed as part of the operations may be ordered in any suitable manner. Thus, while the exemplary embodiments are shown as a sequence of operations, embodiments may be constructed in which the operations are performed in a different order than illustrated, and which may include performing several operations simultaneously.
[0072] While this disclosure has been described with reference to certain preferred embodiments, it should be understood that a variety of other adaptations and modifications may be realized within the spirit and scope of this disclosure. Accordingly, the aspects of the appended claims are intended to encompass all such modifications and modifications so as to fall within the true spirit and scope of this disclosure.
Claims
1. A controller for controlling the motion of a robot from a starting point to a target point in a bounded space having a floor plan including one or more obstacles, wherein the controller includes at least one processor and a memory storing instructions, and when an instruction is executed by the at least one processor, the controller receives The floor plan of the bounded space including one or more obstacles is scaled, and the electrostatic charge of the bounded virtual space is determined by applying opposite charges to at least two opposing boundaries of the bounded virtual space while treating the scaled obstacles as metal surfaces having a constant potential value, and the electrostatic charge generates a plurality of equipotential curves within the bounded virtual space, and further, The positions of the starting point, the target point, and the surface of the scaled obstacle are identified in the bounded virtual space, and the potential value of the starting point, the potential value of the target point, and the potential value of the obstacle equipotential curve closest to the surface of the scaled obstacle are determined. Select an equipotential curve having a potential value different from the potential value of the aforementioned equipotential curve of the obstacle. A first path from the starting point to a first point on the selected equipotential curve and a second path from the target point to a second point on the selected equipotential curve are determined, and the first and second paths are determined such that each segment of the first and second paths follows the current equipotential curve, or, if the next equipotential curve is different from the obstacle equipotential curve, switches between the current equipotential curve and the next equipotential curve in a direction perpendicular to the current equipotential curve toward the potential value of the selected equipotential curve, and further, The motion path is determined as a combination of a first path connecting the starting point and the first point, a second path connecting the target point and the second point, and a third path connecting the first point and the second point along the selected equipotential curve. A controller that controls the motion of the robot based on the determined motion path.
2. The controller according to claim 1, further configured to extend the first path in a direction perpendicular to the current equipotential curve toward the potential value of the selected equipotential curve until the first path reaches the selected equipotential curve or until the next equipotential curve is the obstacle equipotential curve.
3. The controller according to claim 2, further configured to extend the second path in a direction perpendicular to the current equipotential curve toward the potential value of the selected equipotential curve until the second path reaches the selected equipotential curve or until the next equipotential curve is the obstacle equipotential curve.
4. The controller according to claim 2, wherein if the next equipotential curve is the obstacle equipotential curve, the processor is further configured to extend the first path or the second path in predetermined steps to follow the current equipotential curve until the next equipotential curve is no longer the obstacle equipotential curve.
5. A method for controlling the motion of a robot from a starting point to a target point in a bounded space having a floor plan that includes one or more obstacles, The method includes the steps of scaling the floor plan of the bounded space including one or more obstacles, and determining the electrostatic charge of the bounded virtual space formed by applying opposite charges to at least two opposing boundaries of the bounded virtual space while treating the scaled obstacles as metal surfaces having a constant potential value, wherein the electrostatic charge generates a plurality of equipotential curves within the bounded virtual space, and the method further includes, A step of identifying the positions of the starting point, the target point, and the surface of the scaled obstacle in the bounded virtual space, and determining the potential value of the starting point, the potential value of the target point, and the potential value of the obstacle equipotential curve closest to the surface of the scaled obstacle, The steps include selecting an equipotential curve having a potential value different from the potential value of the aforementioned obstacle equipotential curve, The method includes the step of determining a first path from the starting point to a first point on the selected equipotential curve and a second path from the target point to a second point on the selected equipotential curve, wherein the first and second paths are determined such that each segment of the first and second paths follows the current equipotential curve, or, if the next equipotential curve is different from the obstacle equipotential curve, switches between the current equipotential curve and the next equipotential curve in a direction perpendicular to the current equipotential curve toward the potential value of the selected equipotential curve, and the method further includes, A step of determining a motion path as a combination of a first path connecting the starting point and the first point, a second path connecting the target point and the second point, and a third path connecting the first point and the second point along the selected equipotential curve, A method comprising the step of controlling the motion of the robot based on the determined motion path.
6. The method according to claim 5, further comprising the step of extending the first and second paths in a direction perpendicular to the current equipotential curve toward the potential value of the selected equipotential curve until the first and second paths reach the selected equipotential curve, or until the next equipotential curve becomes the obstacle equipotential curve.
7. The method according to claim 6, wherein if the next equipotential curve is the obstacle equipotential curve, the method further includes the step of extending the first path or the second path in predetermined steps to follow the current equipotential curve until the next equipotential curve is no longer the obstacle equipotential curve.
8. A non-temporary computer-readable storage medium embodying a processor-executable program for performing a method for controlling the motion of a robot from a starting point to a target point in a bounded space having a floor plan including one or more obstacles, wherein the method is: The method includes the steps of scaling the floor plan of the bounded space including one or more obstacles, and determining the electrostatic charge of the bounded virtual space formed by applying opposite charges to at least two opposing boundaries of the bounded virtual space while treating the scaled obstacles as metal surfaces having a constant potential value, wherein the electrostatic charge generates a plurality of equipotential curves within the bounded virtual space, and the method further includes, A step of identifying the positions of the starting point, the target point, and the surface of the scaled obstacle in the bounded virtual space, and determining the potential value of the starting point, the potential value of the target point, and the potential value of the obstacle equipotential curve closest to the surface of the scaled obstacle, The steps include selecting an equipotential curve having a potential value different from the potential value of the aforementioned obstacle equipotential curve, The method includes the step of determining a first path from the starting point to a first point on the selected equipotential curve and a second path from the target point to a second point on the selected equipotential curve, wherein the first and second paths are determined such that each segment of the first and second paths follows the current equipotential curve, or, if the next equipotential curve is different from the obstacle equipotential curve, switches between the current equipotential curve and the next equipotential curve in a direction perpendicular to the current equipotential curve toward the potential value of the selected equipotential curve, and the method further includes, A step of determining a motion path as a combination of a first path connecting the starting point and the first point, a second path connecting the target point and the second point, and a third path connecting the first point and the second point along the selected equipotential curve, A non-temporary computer-readable storage medium, comprising the steps of controlling the motion of the robot based on the determined motion path.
9. The non-temporary computer-readable storage medium according to claim 8, further comprising the step of extending the first and second paths in a direction perpendicular to the current equipotential curve toward the potential value of the selected equipotential curve until the first and second paths reach the selected equipotential curve, or until the next equipotential curve becomes the obstacle equipotential curve.
10. If the next equipotential curve is the obstacle equipotential curve, the method further includes extending the first or second path in predetermined steps to follow the current equipotential curve until the next equipotential curve is no longer the obstacle equipotential curve, according to claim 8, a non-temporary computer-readable storage medium.
Citation Information
Patent Citations
Control device, control method and control program
JP2021035714A
Route planning method, route planning unit, and autonomous mobile device
WO2010026710A1