System and method for autonomous robot motion planning using physical information
By generating time fields and path solutions using neural network models, the time-consuming problem of robot motion planning in high-dimensional space is solved, enabling fast and scalable path planning and improving the efficiency and accuracy of autonomous robot systems.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- PURDUE RES FOUND
- Filing Date
- 2024-05-17
- Publication Date
- 2026-04-17
AI Technical Summary
Existing robot motion planning methods require expert trajectories in high-dimensional spaces, which leads to time-consuming data generation and makes them difficult to apply to complex scenarios, failing to meet the needs of autonomous robot systems for fast and scalable path planning.
A neural network model is used for path planning. A time field is generated by a c-space encoder and a time field generator. The equation is solved by combining nonlinear symmetric operators and viscosity terms. The neural network is trained to predict velocity indicators and generate path solutions.
It enables fast and scalable path planning in high-dimensional space, reduces data generation time, improves the efficiency and accuracy of path planning in autonomous robot systems, and avoids collisions.
Smart Images

Figure CN121889245A_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims priority to U.S. Provisional Application Serial No. 63 / 503422, filed May 30, 2023, which is incorporated herein by reference in its entirety.
[0003] Government Support Statement
[0004] not applicable Technical Field
[0005] The following section discusses the technical design of robot motion planning. Background Technology
[0006] Motion planning (MP) is an integral part of autonomous robotic systems, designed to enable physical interaction with its surrounding environment. MP algorithms find a path from the robot's initial state to a target state while respecting all constraints, such as collision avoidance. The pursuit of fast, scalable MP methods stems from traditional approaches that demonstrate good performance in high-dimensional spaces. However, a major bottleneck for state-of-the-art MP methods is the need for expert trajectories derived from traditional MP methods, limiting their application to high-dimensional scenarios where large-scale data generation is time-consuming. With the increasing demands on autonomous robotic systems, research and development continue to advance robot motion planning techniques to meet the growing need for improved processing of path solutions in motion planning for autonomous robots. Summary of the Invention
[0007] The following is a simplified overview of one or more aspects of this disclosure in order to provide a basic understanding of such aspects. This overview is not a comprehensive summary of all intended features of this disclosure, nor is it intended to identify key or essential elements of all aspects of this disclosure, nor is it intended to describe the scope of any or all aspects of this disclosure. Its sole purpose is to present some concepts of one or more aspects of this disclosure in a simplified form as a prelude to the more detailed description that follows.
[0008] In one example, a method, system, and / or apparatus for motion planning of an autonomous robot is disclosed. The method, system, and / or apparatus using the method include: obtaining robot configuration training data, including a starting configuration and a target configuration, by an electronic processor; applying the starting configuration and target configuration to a neural network model by the electronic processor to obtain a time field; determining a predicted velocity indication by the electronic processor based on the starting configuration, target configuration, and time field; obtaining a baseline true velocity indication by the electronic processor; training the neural network model by the electronic processor based on a loss between the predicted velocity indication and the baseline true velocity indication; and loading a path solution onto the robot for movement of the robot within an environment.
[0009] These and other aspects of this disclosure will become more fully understood by viewing the accompanying drawings and the following detailed description. Other aspects, features, and embodiments of this disclosure will become apparent to those skilled in the art after viewing the following description of specific exemplary embodiments of this disclosure in conjunction with the accompanying drawings. While features of this disclosure may be discussed with respect to certain embodiments and drawings below, all embodiments of this disclosure may include one or more of the advantageous features discussed herein. In other words, while one or more embodiments may be discussed as having certain advantageous features, one or more such features may also be used according to the various embodiments of this disclosure discussed herein. Similarly, while exemplary embodiments may be discussed below as embodiments of an apparatus, system, or method, it should be understood that such exemplary embodiments may also be implemented in various apparatuses, systems, and methods. Attached Figure Description
[0010] Figure 1 This is a conceptual illustration of a block diagram of a system for motion planning of an autonomous robot according to some embodiments.
[0011] Figure 2 This is a flowchart illustrating an example process for motion planning training of an autonomous robot according to some embodiments.
[0012] Figure 3 The illustration shows an example neural network model for motion planning of an autonomous robot according to some embodiments.
[0013] Figure 4A An example architecture of a c-space encoder according to some embodiments is illustrated. Figure 4B An example architecture of a time field generator according to some embodiments is illustrated.
[0014] Figure 5 The illustration shows another example neural network model for motion planning of an autonomous robot according to some embodiments.
[0015] Figure 6A An example architecture of a c-space encoder according to some embodiments is illustrated. Figure 6B An example architecture of a workspace encoder according to some embodiments is illustrated. Figure 6C An example architecture of a time field generator according to some embodiments is illustrated.
[0016] Figure 7 The effect of viscosity coefficient on the accuracy of time field results is shown according to some embodiments.
[0017] Figure 8An example of progressive deceleration around an obstacle is shown, using parameters according to some embodiments, which results in continuous interpolation of the velocity and time fields in a given environment.
[0018] Figure 9 This is a flowchart illustrating an example process for motion planning training of an autonomous robot according to some embodiments.
[0019] Figure 10 An example of a robot moving based on a path solution according to some embodiments is shown.
[0020] Figure 11 Another example of a robot moving based on a path solution, according to some embodiments, is shown. Detailed Implementation
[0021] The specific embodiments described below with reference to the accompanying drawings are intended as descriptions of various configurations and are not intended to represent only configurations in which the subject matter described herein can be practiced. The specific details included are used to provide a thorough understanding of the various embodiments of this disclosure. However, it will be apparent to those skilled in the art that the various features, concepts, and embodiments described herein can be implemented and practiced without these specific details. In some cases, well-known structures and components are shown in block diagram form to avoid obscuring these concepts.
[0022] Example of an autonomous robot planning system
[0023] Figure 1 A block diagram of a system for motion planning of an autonomous robot according to some embodiments is shown. In some examples, computing device 110 may: obtain or receive robot configuration training / runtime data 102 from a user and / or system via a communication network 130, the robot configuration training / runtime data 102 including a start configuration and a target configuration, a configuration space, a workspace, obstacles in the configuration space, obstacles in the workspace, an obstacle-free configuration space, an obstacle-free workspace, and / or a baseline true velocity indication; generate a path solution 104 from the start configuration to the target configuration; and move the robot according to the path solution 104.
[0024] In a further example, computing device 110 may include a processor. In some embodiments, processor 112 may be any suitable hardware processor or combination of processors, such as a central processing unit (CPU), graphics processing unit (GPU), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), digital signal processor (DSP), microcontroller (MCU), etc.
[0025] In a further example, computing device 110 may further include memory 114. Memory 114 may include any suitable one or more storage devices that can be used to store suitable data (e.g., robot configuration training / runtime data 102, configuration space, workspace, obstacles in the configuration space, obstacles in the workspace, obstacle-free configuration space, obstacle-free workspace, and / or baseline true velocity indication, neural network model, etc.) and instructions that can be used, for example, by processor 112 to obtain robot configuration training data, which includes a start configuration and a target configuration; apply the start configuration and target configuration to the neural network model to obtain a time field; determine a predicted velocity indication based on the start configuration, target configuration, and time field; obtain a baseline true velocity indication; train the neural network model based on the loss between the predicted velocity indication and the baseline true velocity indication; obtain an obstacle-free configuration space; combine a first output of a first encoder and a second output of a second encoder using a nonlinear symmetric operator to produce a combined output; apply the start configuration and target configuration to the trained neural network model to obtain a time field; determine a path solution based on the predicted velocity indication, start configuration, and target configuration; and move the robot according to the path solution. Memory 114 may include any suitable volatile memory, non-volatile memory, storage device, or any suitable combination thereof. For example, memory 114 may include random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), one or more flash drives, one or more hard disks, one or more solid-state drives, one or more optical disk drives, etc. In some embodiments, processor 112 may perform the following combination Figure 2 or Figure 9 The process described is at least a part of 200 or 900.
[0026] In a further example, computing device 110 may further include communication system 118. Communication system 118 may include any suitable hardware, firmware, and / or software for transmitting information via communication network 140 and / or any other suitable communication network. For example, communication system 118 may include one or more transceivers, one or more communication chips and / or chipsets, etc. In a more specific example, communication system 118 may include hardware, firmware, and / or software that can be used to establish Wi-Fi connections, Bluetooth connections, cellular connections, Ethernet connections, etc.
[0027] In a further example, computing device 110 may receive or transmit information (e.g., robot configuration training / runtime data 102, configuration space, workspace, obstacles in the configuration space, obstructions in the workspace, obstacle-free configuration space, obstacle-free workspace and / or baseline true velocity indication, neural network model, path solution 104, etc.) and / or any other suitable system via communication network 130. In some examples, communication network 130 may be any suitable communication network or combination of communication networks. For example, communication network 130 may include a Wi-Fi network (which may include one or more wireless routers, one or more switches, etc.), a peer-to-peer network (e.g., a Bluetooth network), a cellular network (e.g., a 3G network, 4G network, 5G network, etc., conforming to any suitable standard such as CDMA, GSM, LTE, LTE-Advanced, NR, etc.), a wired network, etc. In some embodiments, communication network 130 may be a local area network, a wide area network, a public network (e.g., the Internet), a private or semi-private network (e.g., a corporate or university intranet), any other suitable type of network, or any suitable combination of networks. Figure 1 The communication links shown can be any suitable communication link or combination of communication links, such as wired links, fiber optic links, Wi-Fi links, Bluetooth links, cellular links, etc.
[0028] In a further example, computing device 110 may further include display 116 and / or one or more inputs 120. In some embodiments, display 116 may include any suitable display device for displaying any suitable result of a report, human activity indication 140, or path solution 104, such as a computer monitor, touchscreen, television, infotainment screen, etc. In a further embodiment, and / or inputs(s) 120 may include any suitable input device (e.g., keyboard, mouse, touchscreen, microphone, etc.).
[0029] Example of autonomous robot motion planning training process
[0030] Figure 2 This is a flowchart illustrating an example process 200 for motion planning training of an autonomous robot according to some aspects of this disclosure. As described below, certain implementations may omit some or all of the illustrated features / steps, may be implemented in different orders in some embodiments, and some illustrated features may not be required to implement all embodiments. In some examples, with... Figure 1 Related devices (e.g., computing device 110, processor 112, and memory 114, etc.) can be used to perform the example process 200. However, it should be understood that any suitable device or apparatus for performing the following operations or features can perform process 200.
[0031] At step 212, process 200 may obtain robot configuration training data. In some examples, the robot configuration training data may include a starting configuration and a target configuration. In some examples, the starting configuration and the target configuration may be a position (e.g., absolute position, relative position, or any other suitable position) or coordinates (e.g., absolute coordinates, relative coordinates, or any other suitable coordinates) in configuration space. In some examples, the configuration may be used by robot manipulators (e.g., joint angles), vehicles (e.g., position and steering angles), etc. In further examples, coordinates may include GPS-based coordinates, radar-based positions, etc. In some examples, the configuration space may be a mathematical representation of all possible configurations that the robot can obtain in its workspace. In some examples, the configuration space is a space derived from a physical space in which the robot has a finite size. In some examples, the configuration space may be obtained by shrinking the robot to a point while increasing the size of obstacles according to the size of the robot. In further examples, the configuration space may have a suitable size. For example, if a robot has a 6-DOF (degree-of-freedom) arm, then the configuration space will be a six-dimensional space that includes all possible joint angles that the arm can take.
[0032] In some examples, the training data may consist of start and target pairs randomly sampled in the robot's c-space. In some examples, the robot's c-space may be normalized to [-0.5, 0.5] in each dimension. The c-space sample range can then be defined as a hypercube, i.e., all dimensions have the same range scale. Furthermore, velocities can be computed using a velocity model for these configurations. In some examples, the workspace point cloud may include 20,000 points on the surface of workspace obstacles, converted into a 128×128×128 voxel mesh.
[0033] In some examples, process 200 may obtain an obstacle-free configuration space (c-space). In some examples, the obstacle-free configuration space may refer to a configuration space that does not include one or more obstacle configurations. In some examples, although c-space is an obstacle-free configuration space, the configuration space may include one or more obstacles that may be ignored or overcome by the robot. In further examples, the starting configuration and the target configuration are on the obstacle-free configuration space. In some examples, the starting configuration and the target configuration are configurations randomly sampled on the obstacle-free configuration space. In further examples, there may be multiple sets (training epochs) of starting configurations and target configurations for training a neural network model or machine learning model, as described in conjunction with step 220.
[0034] In some examples, configuration space and environment space can be represented as and ,in Representing their dimensions. Obstacles in the environment (represented as...) ) formed a definition A robust robot configuration space (c-space). Finally, the feasible space and c-space (i.e., the obstacle-free c-space) in the environment are represented as follows: and The goal of robot motion planning algorithms is to find the starting point for a given robot. Configuration and Objectives Configure connection trajectory .
[0035] At step 214, process 200 can apply the start configuration and target configuration to the neural network model to obtain the time field. In some examples, the motion planning problem can be viewed as solving partial differential equations (PDEs), specifically focusing on solving equations of function. In some examples, the physics governed by equations of function can be modeled using deep neural networks.
[0036] The functional equation (first-order nonlinear PDE) is as follows by configuring Predefined velocity model With From arrive Arrival time Relatedly, under speed constraints, it is possible to find the starting configuration ( ) and target configuration ( The shortest trajectory between () Equation 1.
[0037] Arrival time Function relative to The partial derivatives of . Therefore, finding the trajectory connecting a given start to the target requires solving the PDE based on a predefined velocity model and the arrival time function. The arrival time function can be decomposed as follows: Equation 2.
[0038] Neural network models are designed for a given (Start Configuration) and (Target Configuration) Generated The decomposed time field.
[0039] Figure 3An example neural network model 300 for autonomous robot motion is illustrated. In some examples, the neural network model 300 may include a c-space encoder 302 and a temporal field generator 304. In some examples, the c-space encoder 302 may be used for a start configuration and a target configuration. The temporal field generator 304 may generate a temporal field 306. In some examples, the c-space encoder 302 may include a first encoder and a second encoder. For example, the first encoder may receive a first robot configuration embedding for the start configuration, while the second encoder may receive a second robot configuration embedding for the target configuration. In some examples, each robot configuration embedding in the first and second robot configuration embeddings is computed using a stochastic Fourier transform technique.
[0040] For example, given the robot's start ( Configuration and target ( Configuration and random environment latent codes It can calculate random Fourier features. To obtain high-frequency robot configuration embedding, i.e. Equation 3.
[0041] In some examples, latent codes yes Vie ( The latent code (which is the hidden unit number) represents a given environment. While the latent code can be obtained in various ways, such as using an autoencoder to embed the environment point cloud, a fixed, unique random matrix can be assigned to each environment for representation. In a further example, the features can be further encoded using a C-space encoder. It is processed into a latent embedding, which is a ResNet-style multilayer perceptron.
[0042] Figure 4AAn example architecture of a c-space encoder 302 is illustrated. In some examples, each of the first and second encoders in the c-space encoder 302 may include a first component 402, a second component 404, and a first fully connected layer 406. For example, the first component 402 may include a second fully connected layer and a first exponential linear unit layer. In some examples, the first component may receive a start configuration for the first encoder and a target configuration for the second encoder. In further examples, the first component may produce a first component output. In further examples, the first component 402 may include two sets of second fully connected layers and a first exponential linear unit layer. In some examples, the second component 404 may include a residual neural network and a second exponential linear unit layer. In further examples, the second component may receive the first component output and produce a second component output. In some examples, the second component 404 may include four sets of residual neural networks and second exponential linear unit layers. In some examples, the first fully connected layer 406 may receive the second component output and produce a first robot configuration embedding or a second robot configuration embedding.
[0043] Refer again Figure 3 In some examples, process 200 may further use a nonlinear symmetric operator 308 to combine the first output of the first encoder with the second output of the second encoder to produce a combined output. In some examples, the combined output may include the maximum value in the first robot configuration embedding and the minimum value in the first robot configuration embedding and the second robot configuration embedding.
[0044] For example, in order to feature (That is, the first output of the first encoder) and features (That is, the second output of the second encoder) are combined, and the nonlinear symmetric operator is: 308. In some examples, the operator 308 concatenates the max (maximum value) and min (minimum value) of two given features, i.e. In a further example, Operator 308 can lead to improved performance in terms of prediction speed and time field.
[0045] In some examples, time field generator 304 can receive the combined output and produce time field 306. Figure 4BAn example architecture of a time field generator 304 is illustrated. In some examples, the time field generator 304 may include a first component 412, a second component 414, and a third component 416. In some examples, the first component 412 may include a first fully connected layer and a first exponential linear unit layer 416. In a further example, the first component 412 may receive the combined output and produce a first component output. In a further example, the second component 414 may include a residual neural network and a second exponential linear unit layer. The second component 414 may receive the first component output and produce a second component output. In a further example, the third component 416 may include a second fully connected layer, a third exponential linear unit layer, a third fully connected layer, and a sigmoid layer. In a further example, the third component 416 may receive the second component output and produce a time field.
[0046] For example, time field generator networks It can include ResNet-type multilayer perceptrons, which are used for encoding. And output the decomposed time field 306, that is, Equation 4.
[0047] Figure 5 The illustration shows another example neural network model 500 for autonomous robot motion. In some examples, neural network model 500 may include a c-space encoder configured to receive a start configuration and a target configuration. 502 and workspace encoder 504. In some examples, the input to the neural network model 500 may include a workspace point cloud, which can be transformed into a robot start in M-dimensional c-space. and target Configuration and voxel mesh X. In some examples, the forward kinematics function can be used to compute robot surface points associated with a given configuration. In some examples, the outputs of c-space encoder 502 and workspace encoder 504 can be combined to provide a time field generator 504. In further examples, the time field generator 504 can generate a time field 506. In some examples, for a given robot configuration... The workspace encoder 504 and the c-space encoder 502 can generate robot-centric workspace embeddings. and direct configuration embedding The workspace encoder 504 performs reasoning on the relative positions (including collisions) of obstacles and the robot for decision-making. The c-space encoder 502 allows for direct computation of time gradients for the input configuration required to solve the equations.
[0048] Figure 6A An example architecture of a c-space encoder 502 is illustrated. In some examples, the c-space encoder 502 may include a first component 602, a second component 604, and a first fully connected layer 606. In some examples, the first component 602 may include a second fully connected layer and a first exponential linear unit layer. In a further example, the first component 602 may receive a start configuration and a target configuration and produce a first component output. In some examples, the second component 604 may include a residual neural network and a second exponential linear unit layer. In a further example, the second component 604 may receive the first component output and produce a second component output. In some examples, the first fully connected layer 606 may receive the second component output and produce a first robot configuration embedding and a second robot configuration embedding. In some examples, the c-space encoder 502 is configured to produce a c-space encoder output. In a further example, the c-space encoder output may include: a first robot configuration embedding and a second robot configuration embedding.
[0049] For example, in order to calculate The direct latent embedding of the c-space encoder 502 can be represented as A ResNet-type feedforward neural network. Since the gradient at arrival time can be computed relative to the input configuration, it is directly encoded using MLP-based ResNet blocks. Gradient computation is allowed. In summary, this function... The robot can be configured As input, they are passed through ResNet blocks and the potential embeddings are output.
[0050] In some examples, the workspace encoder 504 includes a first component 612, a second component 614, and a third component 616. In some examples, the first component 612 may include a 3D convolutional layer and a residual neural network. In some examples, the first component 612 may receive an obstacle mesh and produce a first component output. In some examples, the second component 614 may include a trilinear interpolation layer. In further examples, the second component 614 may receive a start configuration, a target configuration, and the first component output. In further examples, the second component 614 may produce a second component output. In some examples, the third component 616 may include a first fully connected layer, a first exponential linear unit layer, and a second fully connected layer. In further examples, the third component 616 may receive the second component output and produce a first robot workspace embedding and a second robot workspace embedding. In some examples, the workspace encoder 504 may produce a workspace encoder output. In further examples, the workspace encoder output may include a first robot workspace embedding and a second robot workspace embedding.
[0051] For example, process 200 can obtain a robot-centric workspace embedding. First, sparse workspace obstacle point cloud. It can be sampled and transformed into a dimension of voxel grid The last dimension indicates the occupancy of each voxel. Then, A size of [size] can be obtained through 3D CNN layers. Output ,in This refers to the number of feature maps. In some examples, the input... and output They have the same first 3D dimension, which can be preserved through padding. Next, we can... and output The merging results in a workspace feature representation Become the size of In some examples, It is a multi-scale feature representation that includes both the input and output layers of a 3D CNN module. In order to be based on... and calculate It can be configured in a given way. Using forward kinematics (FK) on the robot surface Several samples were generated. In some examples, FK can allow the use of robot joint angles to calculate the positions of robot joints in the workspace. Therefore, given the positions of all joints and the robot's geometry—i.e., the length and width of the links—a representation of the robot's workspace as a point cloud is obtained. In some examples, robot surface points are in the workspace, as are obstacle point clouds. Therefore, using both robot surface point clouds and obstacle point clouds to obtain workspace encoding enables reasoning about the relative positions (including collisions) of obstacles and the robot itself for decision-making. For this purpose, it is possible to perform workspace encoding for each point... calculate The nearest mesh cell. A mesh cell can be a 3D cube with eight corners. Therefore, the feature size of each mesh cell is... Next, trilinear interpolation is used to further refine the feature vectors. Combine them to form a size of point The representation of a complete robot-centric workspace. Become the size of .
[0052] Refer again Figure 5In some examples, process 200 can combine the outputs of the c-space encoder and the workspace encoder (e.g., using a nonlinear symmetric operator 508). For example, given a robot configuration, the c-space encoder 502 and the workspace encoder 504 can provide a robot configuration embedding. and robot-centric workspace representation ,like Figure 5 As shown in the image.
[0053] In some examples, the combined output may include a first maximum value in the first robot configuration embedding and the second robot configuration embedding, a first minimum value in the first robot configuration embedding and the second robot configuration embedding, a second maximum value in the first robot workspace embedding and the second robot workspace embedding, and a second minimum value in the first robot workspace embedding and the second robot workspace embedding.
[0054] In some examples, to address the symmetry of the functional equation, we can introduce a representation as... The nonlinear symmetric operator 508 is used to feature , , and Combine them to form a prediction The input to the time field generator 504. In some examples, the nonlinear symmetric operators min and max can be chosen to combine the given feature vectors. However, since each of these operators loses some feature information, concatenating the outputs of multiple operators can lead to better performance. Therefore, in some examples, robot configuration feature vectors can be combined by concatenating min and max operations. Let two arbitrary vectors... and The concatenation is represented as So, nonlinear operators 508 can handle any feature vector and Combination Therefore, the configuration feature vectors are combined into .
[0055] refer to Figure 6CIn some examples, the time field generator 504 may include a first component 622, a second component 624, and a third component 626. In some examples, the first component 622 may include a first fully connected layer and a first exponential linear unit layer. In further examples, the first component 622 may receive the combined output and generate a first component output. In some examples, the second component 624 may include a residual neural network and a second exponential linear unit layer. In further examples, the second component 624 may receive the first component output and generate a second component output. In some examples, the third component 626 may include a second fully connected layer, a second exponential linear unit layer, a third fully connected layer, and a sigmoid layer. In further examples, the third component 626 may receive the second component output and generate a time field.
[0056] For example, the time field generation function of the time field generator 504 is a ResNet-type neural architecture that employs the robot's start configuration embedding and target configuration embedding (i.e., And output the decomposed time field. .
[0057] At step 216, process 200 may determine the predicted velocity indication based on the start configuration, the target configuration, and the time field. In some examples, to determine the predicted velocity indication, process 200 may determine the arrival time model based on the time field, the start configuration, and the target configuration. In a further example, to determine the predicted velocity indication, process 200 may further determine the predicted velocity indication based on the partial derivative of the arrival time model with respect to the target configuration.
[0058] Given the arrival time function in Equation 2, when At that time, the model time field Because the velocity is almost zero in a strong obstacle space, any arbitrary configuration within the obstacle space can make... ,Right now .therefore, And through the decomposition in Equation 2, The value of is in the range of 0 to 1. Therefore, the functional equation in Equation 1 is extended using the chain rule to the following equation: Equation 5 In some examples, the method uses a function-based physical model (i.e., Equation 5) to learn the output via backpropagation. And its partial derivative with respect to the input.
[0059] In some examples, it is further based on gradient indications (i.e., This is used to determine the predicted speed indication. In some examples, the exact solution to the functional equation has several problems that lead to neural network fitting issues. First, the solution is not differentiable at every point in space, meaning that the neural network cannot approximate the solution well, especially for sharp features in low-speed environments. Second, the gradient... The location of these non-smooth points is not unique, which will also lead to neural network fitting problems because training is based on gradients. Supervision.
[0060] To address these issues, we propose using a viscosity term, which provides a differentiable and unique approximation of the solution to the functional equation. The viscosity term originates from the vanishing viscosity method. It incorporates the Laplace operator... Add to the equation of the function, that is, Equation 6 in, It is the scaling factor. The system obtained in Equation 6 is a semilinear elliptic PDE with a smooth and unique solution. The extension of Equation 6 described in Equation 7 using the chain rule and T becomes: Equation 7 In some examples, equation 7 replaces of This can be used to simplify calculations while maintaining similar second-order derivative terms. In some examples, The value of affects the smoothness of the predicted time field. Figure 7 In, different values can be The field is compared with the baseline true field generated using the FMM method. Section 702 shows the velocity field in the range of 0 to 1. In some examples, it can be seen that... The value deviates significantly from the solution given by the expert. This expert is the FMM, which found a solution to the functional equation. The color bars represent the velocity field in the range of 0 to 1. In further examples, it can be seen that by changing... Compared to the true benchmark, the accuracy of the result will change. In fact, when the coefficients... At that time, the smooth and unique solution to equation 6 can approximate the exact solution to the functional equation of equation 1. In some examples, given Gradients can be calculated using automatic differentiation. and Laplace operator To determine and As described in Formula 7.
[0061] The above formula solves some problems related to functional equations. However, computing the Laplace operator can be computationally expensive because existing deep learning libraries determine... The Laplacian operator is extracted from the Hessian matrix and its trace. To reduce the computational load, two strategies can be adopted. First, the Laplacian operator can be extracted during training by setting... Use the viscosity term as a constant value, and it can be calculated during planning. and Second, the diagonal of the Hessian matrix can be directly computed using automatic differentiation following this strategy, resulting in a complexity similar to standard gradient forward propagation, which is faster than the full Hessian computation in standard deep learning libraries.
[0062] At step 218, process 200 can obtain a baseline true velocity indication. In some examples, the baseline true velocity indication can be determined based on parameters that depend on the training period. In some examples, in any robot configuration... Below, represented as The baseline true value speed indication can be defined as Equation 8 in, Indicates for a given configuration Robot surface obtained through positive kinematics, and Calculate the relationship between the robot surface p and obstacles in the workspace. The distance between them. and These are the minimum distance threshold and the maximum distance threshold, and It is a user-defined velocity constant. The clipping function uses a range... A distance function is defined. In some examples, if the distance between the robot and the obstacle exceeds [a certain value], [the function is defined]. Therefore, a constant velocity can be assumed.
[0063] In some examples, the baseline true velocity indication ( The velocity can be progressively reduced around obstacles to train a motion planner that utilizes physical information in complex environments. The training based on the progressively reduced baseline true velocity indication is further described in conjunction with step 220.
[0064] At step 220, process 200 can train a neural network model based on the loss between the predicted velocity indication and the baseline true velocity indication. In some examples, Different start and target configuration pairs can be randomly sampled in a given environment, and the baseline true velocity indication described in Equation 8 can be used. To calculate their velocity fields. The resulting dataset used to train the neural network model has the following form: In some examples, the loss function used to train a neural network model can be calculated as follows. For a given starting ( ) and goals ( ), neural network model output Next, the predictions Equation 5 can be used to calculate the corresponding velocity value. and Finally, the baseline true velocity value. Compared with the predicted speed value The training loss of the neural network model is defined as: Equation 9
[0065] The loss function can be isotropic to prevent inconsistent errors in prediction speed due to different training sample pairs. Furthermore, the square root can be used to smooth the gradient of the loss function. Neural network models can be trained end-to-end using an objective function (e.g., using an optimizer).
[0066] In some examples, weighted random sampling can be used during training to form batches for training our model at each epoch. The traditional way to form training batches is to randomly sample a small set of training data for each epoch. However, weighted random sampling with sample weights that are inversely proportional to the Euclidean distance between the start and target pairs leads to better performance than traditional random sampling. Scalar weights can be used to train neural network models end-to-end. As the training period increases, a workspace encoder is progressively introduced, i.e. In the first During the period, It was set to 0, and then in the period to It increases linearly to 1 and then remains at 1 for the rest of the periods. In a further example, it increases gradually. This stabilizes the training process and prevents it from converging to local minima. In some examples, a choice can be made for the Gibson scenario. =500、 =1000.
[0067] In some examples, training is based on a progressively decreasing baseline ground truth velocity indication. In others, optimizing physics-based loss functions is generally challenging because they depend on the gradients of the underlying neural network. In motion planners that utilize physics information, optimization becomes even more difficult due to low-velocity conditions near obstacles, often leading to incorrect local minima—that is, the neural model behaves as if low-velocity obstacles are not present in the environment, despite a small training loss. To avoid incorrect local minima, the following two properties of the equation can progressively guide the neural network training process and capture the low-velocity obstacle space to avoid collisions.
[0068] In some examples, in constant maximum speed scenarios ( In the equation (Equation 1), the solution is... This can be transformed into a given distance between the starting point and the target, which leads to a trivial solution. In a further example, the interpolation from a constant maximum speed to a low speed around the obstacle can be continuous, and the solutions to the equations of motion along these interpolations can also be continuous. Based on these observations, a gradual speed-changing strategy can be determined. Gradual speed changes can be implemented using parameters. The speed around the obstacle is gradually reduced from a constant maximum value to a low value, that is, Equation 10 in, This indicates the training period. Therefore, when At that time, the scene will have a constant maximum speed, and the solution to the functional equation will be trivial. Furthermore, when The scene will have low speeds around obstacles. This can make... This makes the minimum speed of the scene become greater than Lower. Figure 8 It shows that with The velocity and time fields progress gradually from 0 to 1, scaling linearly. It can be seen that the velocity and time fields change with... Linear change versus continuous change. Figure 8 In, using parameters Gradually decreasing the velocity around the obstacle results in continuous interpolation of the velocity and time fields in a given environment. Item 802 shows the velocity field varying from 0 to 1.
[0069] To train a motion planner that utilizes physical information, you can start The low value, and the neural network can fit trivial solutions with constant velocity. Next, by gradually increasing during the training period... The field can be interpolated asymptotically from a constant maximum speed to lower speeds. A neural network can easily fit a trivial solution. Then, the obstacle speed is asymptotically reduced. The network is guided to learn to interpolate lower velocity fields. Furthermore, the velocity field can be adjusted accordingly. It changes linearly, but produces more dramatic changes in the time field. Therefore, The rate of change can decrease as the training period increases.
[0070] In further examples, because the baseline velocity indicator gradually decreases during training, network parameters may change drastically and forget previous learning. Several methods exist to prevent such drastic changes, such as trust region optimization. However, these methods are generally computationally expensive. In some examples, an alternative approach is to calculate the loss rate at periods t and t-1. Constraints at threshold within, that is Whenever the dropout rate exceeds an imposed threshold, the training data can be shuffled so that the difficult samples leading to high dropout values are distributed across different training batches. This way, the average loss does not deviate from the previous loss value and remains within our threshold. In some examples, without such a strategy, neural networks utilizing physical information may fail to converge and recover the underlying temporal field.
[0071] In some examples, process 200 can use the L1 norm (Equation 9) to compute the isotropic loss function. The L1 norm is not smooth and presents a challenge in converging to the optimal solution. Therefore, a new isotropic objective function can be used, namely, Equation 11 The new loss is non-negative and has a minimum value of 0. However, the new loss is smooth, and when... When the value is small, it can easily reach the minimum value.
[0072]
[0073] Algorithm 1 provides an overview of the example training pipeline. The first line describes the inputs to the process, ranging from the robot configuration dataset. To the definition of neural architecture. With the... The training period is increased, and the predefined step size is increased. The value (row 3). Therefore, the baseline ground truth velocity model uses parameters in each training epoch. The changes are being made incrementally (line 4). Given the input and the baseline truth value. It can be done by using the dataset Batch processing is initiated to begin batch training. Dataset Includes a valid robot start ( Configuration and target ( Configuration. For batch For each start and target pair in the decomposition, the time... and associated speed and Equation 7 can be used for prediction (lines 8-9). Next, the loss can be calculated between the predicted rate and the baseline ground truth rate (line 10), and the resulting average batch loss can be summed to calculate the total dataset loss (line 12). To prevent neural parameter... Divergence, as long as This allows for the re-washing of samples between batches, where... It is a predefined threshold. Reshuffling can be performed to distribute difficult samples and prevent large gradient-based parameter updates in line 11.
[0074] Example of autonomous robot motion planning process
[0075] Figure 9 This is a flowchart illustrating an example process 900 for motion planning of an autonomous robot according to some aspects of this disclosure. As described below, a particular implementation may omit some or all of the illustrated features / steps, may be implemented in different orders in some embodiments, and may implement all embodiments without some illustrated features. In some examples, combined with Figure 1 A device (e.g., computing device 110, processor 112, and memory 114, etc.) may be used to perform the example process 900. However, it should be understood that any suitable device or component for performing the following operations or features may perform process 900.
[0076] At step 912, process 900 obtains the starting configuration and the target configuration. In some examples, the starting configuration and target configuration at step 912 are essentially similar to... Figure 2 The initial configuration and target configuration at step 212.
[0077] At step 914, process 900 applies the start configuration and target configuration to the trained neural network model to obtain the time field. In some examples, the trained neural network model is... Figure 2 The training is performed in steps 212-220.
[0078] At step 916, process 900 determines a predicted velocity indication based on the start configuration, target configuration, and time field. In some examples, the predicted velocity indication at step 916 is substantially similar to... Figure 2 The predicted velocity indication at step 216.
[0079] At step 918, process 900 determines a path solution based on the predicted velocity indication, the start configuration, and the target configuration. In some examples, the path solution can be determined bidirectionally by iteratively updating the start configuration and the target configuration.
[0080] For example, once the neural network model is trained, the trained neural network model can be used to parameterize equation 1, i.e. To calculate the time field and its partial derivatives and The norms of these partial derivatives are related to the velocity model, such as... and Because the velocity model governs the magnitude of the gradient, the gradient step size will be high at low velocities (especially near obstacles), leading to unsafe robot navigation. To mitigate such unsafe maneuvers, we will correlate the gradient with... Multiplication leads to and Because the velocity model is smaller near obstacles, therefore the term... The step size is dynamically reduced near obstacles. Furthermore, the model's symmetric behavior allows for bidirectional gradient step size execution from start to target and from target to start. Therefore, we use iterative gradient descent to compute the final path solution bidirectionally by updating the start and target configurations as follows: It is the step size hyperparameter.
[0081] Equation 12.
[0082] In a further example, once the neural network model has been trained, another execution pipeline can be used. First, as described in Equation 3, for a given start... ,Target and potential environment codes , It can be predicted. Next, the time of decomposition... Equations 2 and 5 are parameterized for use in calculating time. and velocity field , In some examples, for efficient computation, equation 5 is substituted for equation 6; that is, the Laplace operator is omitted. However, it should be understood that the Laplace operator can also be computed. Finally, the path solution is determined bidirectionally by iteratively updating the start and target configurations as follows. Equation 12 parameter It is a predefined step size. Furthermore, in each planning iteration, gradient updates are used to both the start configuration and the target configuration to move towards each other until... ,in .
[0083] At step 920, process 900 moves the robot according to the path solution. Figure 10 An example of robot movement based on path solutions determined by a trained neural network model is shown. The neural motion planning of a six-DOF robot manipulator utilizing physical information is illustrated in a real-world narrow passage environment. The images from left to right show the sequence of motion of the robot from its starting point to the desired target configuration. Case 1002 shows the manipulator traversing an obstacle on the top floor, and case 1004 shows the manipulator avoiding a cabinet door to reach a given target. Figure 11 This illustrates another example of a robot moving based on a path solution. Figure 11 In the middle, the manipulator moves from the middle (starting) shelf to the bottom (target) shelf, over two relatively thick obstacles.
[0084] Practical applications and example implementations
[0085] In some examples, mobile devices (such as robotic arms, automated vehicles, etc.) can be configured to perform the above and Figure 9 The processes and methods described herein. In one example, an autonomous robot can use the motion planning methods described above to perform repetitive tasks, such as cleaning, moving supplies within a warehouse, collecting and / or assembling parts for a manufacturing process, etc. In further examples, mobile devices can use the motion planning methods described above to perform tasks in various industries, such as construction safety, manufacturing and assembly, material handling, home, performance operations, etc. Specifically, depending on the initial and target configurations, the device may need to determine motion plans for various paths within a known environment.
[0086] In the foregoing description, implementations of this disclosure have been described with reference to specific examples of implementations thereof. It will be apparent that various modifications may be made thereto without departing from the broader spirit and scope of the implementations of this disclosure as set forth in the following claims. Therefore, the specification and drawings should be considered illustrative rather than restrictive.
Claims
1. A method for motion planning training of an autonomous robot, comprising: Robot configuration training data is obtained by an electronic processor, the robot configuration training data including initial configuration and target configuration; The electronic processor applies the initial configuration and the target configuration to the neural network model to obtain the time field; The electronic processor determines the predicted velocity indication based on the initial configuration, the target configuration, and the time field. The electronic processor obtains a reference true speed indication; The electronic processor trains the neural network model based on the loss between the predicted speed indication and the baseline true speed indication; as well as This allows the path solution to be loaded onto the robot for use in the robot's movement within the environment represented by the time field.
2. The method according to claim 1, further comprising: The electronic processor obtains an obstacle-free configuration space, which indicates a configuration space that excludes one or more obstacle configurations; The initial configuration and the target configuration are located in the barrier-free configuration space.
3. The method according to claim 1, wherein, The initial configuration and the target configuration are random sampling configurations in the barrier-free configuration space.
4. The method according to claim 1, wherein, The neural network model includes a c-space encoder and a temporal field generator. The c-space encoder is used for the start configuration and the target configuration. The temporal field generator is configured to generate the temporal field. The c-space encoder includes a first encoder and a second encoder. The first encoder is configured to receive a first robot configuration embedding for the start configuration, and the second encoder is configured to receive a second robot configuration embedding for the target configuration.
5. The method according to claim 4, wherein, Each robot configuration embedding in the first robot configuration embedding and the second robot configuration embedding is computed using a stochastic Fourier technique.
6. The method according to claim 4, wherein, Each of the first encoder and the second encoder includes a first component, a second component, and a first fully connected layer. The first component includes a second fully connected layer and a first exponential linear unit layer. The first component is configured to receive the start configuration for the first encoder and the target configuration for the second encoder, and to generate a first component output. The second component includes a residual neural network and a second exponential linear unit layer. The second component is configured to receive the output of the first component and generate the output of the second component. The first fully connected layer is configured to receive the output of the second component and generate either the first robot configuration embedding or the second robot configuration embedding.
7. The method according to claim 6, wherein, The first component comprises two sets: the second fully connected layer and the first exponential linear unit layer. The second component includes four sets of the residual neural network and the second exponential linear unit layer.
8. The method of claim 4, further comprising: The electronic processor uses a nonlinear symmetric operator to combine the first output of the first encoder and the second output of the second encoder to produce a combined output.
9. The method according to claim 8, wherein, The time field generator is configured to receive the combined output and generate the time field.
10. The method according to claim 8, wherein, The combined output includes the maximum value of the first robot configuration embedding and the second robot configuration embedding, and the minimum value of the first robot configuration embedding and the second robot configuration embedding.
11. The method according to claim 8, wherein, The time field generator includes a first component, a second component, and a third component. The first component includes a first fully connected layer and a first exponential linear unit layer. The first component is configured to receive the combined output and generate a first component output. The second component includes a residual neural network and a second exponential linear unit layer. The second component is configured to receive the output of the first component and generate the output of the second component. The third component includes a second fully connected layer, a third exponential linear unit layer, a third fully connected layer, and a sigmoid layer. The third component is configured to receive the output of the second component and generate the time field.
12. The method according to claim 4, wherein, The neural network model further includes a workspace encoder configured to receive the start configuration and the target configuration. The c-space encoder includes a first component, a second component, and a first fully connected layer. The first component includes a second fully connected layer and a first exponential linear unit layer. The first component is configured to receive the start configuration and the target configuration and generate a first component output. The second component includes a residual neural network and a second exponential linear unit layer. The second component is configured to receive the output of the first component and generate the output of the second component. The first fully connected layer is configured to receive the output of the second component and generate a first robot configuration embedding and a second robot configuration embedding.
13. The method according to claim 12, wherein, The workspace encoder includes a first component, a second component, and a third component. The first component includes a three-dimensional convolutional layer and a residual neural network, and is configured to receive an obstacle mesh and generate a first component output. The second component includes a trilinear interpolation layer, and is configured to receive the start configuration, the target configuration, and the output of the first component, and generate the output of the second component. The third component includes a first fully connected layer, a first exponential linear unit layer, and a second fully connected layer. The third component is configured to receive the output of the second component and generate a first robot workspace embedding and a second robot workspace embedding.
14. The method according to claim 13, wherein, The c-space encoder is configured to generate a c-space encoder output, the c-space encoder output including: a first robot configuration embedding and a second robot configuration embedding. The workspace encoder is configured to generate a workspace encoder output, the workspace encoder output including: a first robot workspace embedding and a second robot workspace embedding, and The method further includes combining the output of the c-space encoder and the output of the workspace encoder.
15. The method according to claim 14, wherein, The combined output includes a first maximum value in the first robot configuration embedding and the second robot configuration embedding, a first minimum value in the first robot configuration embedding and the second robot configuration embedding, a second maximum value in the first robot workspace embedding and the second robot workspace embedding, and a second minimum value in the first robot workspace embedding and the second robot workspace embedding.
16. The method of claim 14, wherein, The time field generator includes a first component, a second component, and a third component. The first component includes a first fully connected layer and a first exponential linear unit layer. The first component is configured to receive the combined output and generate a first component output. The second component includes a residual neural network and a second exponential linear unit layer. The second component is configured to receive the output of the first component and generate the output of the second component. The third component includes a second fully connected layer, a second exponential linear unit layer, a third fully connected layer, and a sigmoid layer. The third component is configured to receive the output of the second component and generate the time field.
17. The method according to claim 1, wherein, The determination of the predicted velocity indication includes: The arrival time model is determined based on the time field, the starting configuration, and the target configuration; and The predicted velocity indication is determined based on the partial derivative of the arrival time model with respect to the target configuration.
18. A system for motion planning of an autonomous robot, the system comprising: A robotic device having at least one drive mechanism for moving at least a portion of the robot; An electronic processor that communicates with the robotic device; A memory, which communicates with the processor and has instructions stored thereon, which, when executed, cause the processor to: The electronic processor obtains the initial configuration and the target configuration; The electronic processor applies the initial configuration and the target configuration to a trained neural network model to obtain a time field; The electronic processor determines the predicted velocity indication based on the initial configuration, the target configuration, and the time field. The electronic processor determines the path solution based on the predicted speed indication, the starting configuration, and the target configuration; as well as The electronic processor moves the robotic device according to the path solution.
19. The system according to claim 18, wherein, The trained neural network model includes a spatial encoder and a temporal field generator, the spatial encoder being used for the start configuration and the target configuration, and the temporal field generator being configured to generate the temporal field.
20. The system according to claim 18, wherein, The robotic device is a robotic arm that operates within an environment represented by the time field.