Collision-Avoiding Object Manipulation Using Complementarity Constraints
By using complementarity conditions to formulate obstacle avoidance constraints, the challenges of non-smooth dynamics in robotic systems are addressed, enabling efficient and accurate collision-free trajectory planning.
Patent Information
- Application Number
- JP2024513569
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-05-28
- Filing Date
- 2022-02-25
- Publication Date
- 2025-01-10
- Estimated Expiration
- 2042-02-25
AI Technical Summary
Existing trajectory planning algorithms for robotic systems in cluttered environments face challenges due to non-smooth and non-convex constraints, leading to non-differentiable optimization problems that are difficult to solve and may result in collisions.
Formulating obstacle avoidance constraints using complementarity conditions to convert non-smooth dynamics into differentiable optimization problems, allowing the use of nonlinear programming algorithms.
This approach enables efficient, collision-free trajectory optimization with reduced resource consumption, improving processing speed and accuracy in robotic applications.
Smart Images

Figure 0007612101000026 
Figure 0007612101000027 
Figure 0007612101000028
Abstract
Description
[Technical field]
[0001] The present disclosure relates to systems and methods for control and optimization of objects to perform desired tasks along trajectories, and more particularly, to systems and methods for object manipulation with collision avoidance using complementarity constraints. [Background technology]
[0002] In many practical applications, machines and objects operate in environments that are often cluttered with obstacles and therefore prone to collisions. Such environments are considered as constrained environments. The obstacles can be other objects, machines, living organisms, etc. Depending on the operating conditions, systems operating in such constrained environments may contain stationary and / or dynamic obstacles. Such systems can be considered as dynamical systems and can be described using nonlinear Differential Algebraic Equations (DAEs). In such systems, the trajectories that objects will traverse need to be optimized to fit different operating scenarios. An example of such a system is a system for robotic manipulation.
[0003] A robotic system can be configured to control a robotic device that includes a robotic arm (also called a manipulator). For example, a robotic system can include a controller that receives input signals and generates control signals, and the robotic arm can provide feedback signals to the controller. One example of such a system is an industrial assembly task where robotic manipulators are used to assemble products while avoiding collisions with other robots and their working environment.
[0004] Planning optimal trajectories for manipulators, which involves minimizing the time to perform a desired task while avoiding obstacles, is generally a difficult optimization problem. Any trajectory optimization algorithm must minimize the time required to perform a task while satisfying the constraints of the manipulator dynamics and the constraints resulting from collision avoidance. The requirement to avoid obstacles leads to a set of non-smooth and non-convex constraints, and optimizing a continuous-time dynamic system against a set of non-smooth constraints is a difficult problem to solve. The non-smooth and non-convex constraints resulting from obstacle avoidance need to be enforced during trajectory generation and optimization. Also, because the optimization problem is non-convex, it can be seen that multiple local minima exist, but optimization algorithms are not guaranteed to find a minimum. As a result, there is no guarantee that the solution returned by such an algorithm will actually avoid obstacles. One example of such an obstacle avoidance constraint is the distance between two objects for which collision avoidance is desired. To optimize the obstacle avoidance problem, it is desirable for the distance between the objects to always be non-zero. Some conventional methods formulate trajectory planning with obstacle avoidance as an optimization problem as well. For example, the method described in US Pat. No. 7,248,952 formulates trajectory planning as a mixed integer linear programming problem with distance constraints between objects formulated as an optimization problem. Summary of the Invention [Problem to be solved by the invention]
[0005] A drawback of such a formulation is that the distance constraints are at best once differentiable, or not at all. For example, conventional trajectory planning algorithms use nonlinear programming algorithms that assume that the constraints are at least once continuously differentiable. This leads to situations where the optimization problem for computing control becomes non-differentiable. Therefore, a judicious formulation of the obstacle avoidance constraints is needed in order for the formulation to be amenable to nonlinear programming algorithms.
[0006] It is therefore necessary to optimize the trajectory of an object while avoiding at least one obstacle, the optimization being subject to a smoothness constraint. [Means for solving the problem]
[0007] Some embodiments are directed to providing systems and methods for controlling the motion of an object performing a task that changes the state of the object from a start state to an end state while avoiding the object colliding with an obstacle. The change in the state of the object from the start state to the end state may involve a trajectory through a series of states. Additionally or alternatively, an objective of some embodiments is to optimize the performance of the task as a whole by optimizing the trajectory of the state of the object performing the task. Examples of such controlled objects include robotic manipulators, autonomous vehicles, drones, etc.
[0008] Some embodiments are based on the recognition that a trajectory optimization algorithm needs to satisfy some constraints of the system. These constraints may arise due to the dynamics model of the system, the states and control ranges of the system, or due to obstacle avoidance constraints. DAEs are sufficient to represent smooth dynamics systems. Unfortunately, the dynamics for some systems are not always smooth and therefore cannot be represented entirely by DAEs. However, some embodiments are based on the recognition that some non-smooth dynamics can be represented by using complementarity conditions on certain state variables. Some examples of systems where complementarity conditions are used to represent non-smooth dynamics are systems with frictional interactions, which are represented as complementarity conditions. Some embodiments are based on the recognition that formulating non-smooth dynamics using complementarity conditions allows for the creation of optimization problems that can be solved with non-linear programming algorithms.
[0009] Some example embodiments are based on the formulation of obstacle avoidance constraints as a convex optimization problem. Some example embodiments are based on the understanding that obstacle avoidance must be formulated as a constraint in the optimization with sufficient smoothness. Such a formulation ensures that any feasible trajectory avoids obstacles, and that the smoothness of the constraints allows for the employment of nonlinear programming algorithms. Furthermore, any local minimum of the optimization formulation satisfies obstacle avoidance, thereby avoiding the need to obtain a minimum.
[0010] Some embodiments are based on the understanding that in such a formulation of the control problem, the control to perform the task can be considered as a primary control problem, and collision avoidance is a subordinate control problem. This primary control problem is an optimization problem. However, the collision avoidance problem is also an optimization problem, because to check for collisions between two points of different objects of various shapes, it is necessary to find the closest point between these objects, and the search for the closest point is a problem of optimizing, i.e., minimizing, the distance between all the various points of the two objects. Therefore, optimal object control to avoid collisions involves solving nested optimization problems, i.e., the optimization of the reference trajectory and the optimization required for collision avoidance.
[0011] Solving nested optimization is a difficult problem in itself, but even more so in the context of collision avoidance applications. The reason is that the optimization required for collision avoidance is an ill-posed problem. After all, multiple pairs of points of different objects may have the same distance. Although it is desirable to avoid collisions for all pairs of points that have the minimum distance, this ambiguity makes the collision avoidance optimization non-differentiable, which may prevent the nested optimization from achieving the main control objective.
[0012] Therefore, an objective of some embodiments is to address the computational problem of nested optimization of optimal control applications with collision avoidance. Some embodiments are based on the realization that since the collision avoidance optimization is subordinate to the master control problem, its solution can be replaced by a test on the solution of the master control problem. The property of this test is such that if this test is satisfied, the solution of the master control optimization is collision-free for all distinct pairs of points of the distinct objects. In addition, in the context of controlling the optimization of the changes in the state of the controlled object by various differentiable techniques, such a test must depend in a differentiable manner on the state of the object. It was further recognized that such a test can be defined with the help of complementarity constraints.
[0013] Some embodiments are based on the realization that if the distance between points of an object is expressed as a distance function of the difference between all its points, the minimum distance between the objects corresponds to a stationary point of this function. As used herein, a stationary point of a differentiable function of one variable, such as distance, is a point on the graph of the function whose derivative is non-negative along the feasible directions of motion. Every first-order stationary point of such a distance function is a minimizer, and the ambiguity of distance functions suggests that such functions may have multiple stationary points. In any case, following such a formulation, the optimal minimization problem can be replaced by the solution of the first-order stationary condition of such a distance function. Advantageously, such a solution can be found in a differentiable manner, ensuring the applicability of various nonlinear programming algorithms.
[0014] Some embodiments are based on another realization that the shapes of the objects under control and the shapes of obstacles that may cause collisions can be represented as convex hulls, such that each point in these objects is a vector of non-negative weights of the corresponding hull vertices. Advantageously, such a representation allows the weights of these vectors to be separated from the state of the objects. In particular, the positions of the objects represented by the convex hull depend on the state, but the weights that define the different points in the hull are themselves independent of the state. Such a representation makes the formulation of the distances between the object points and the obstacle points a convex problem that requires the weights to be on a simplex. A simplex is a convex set whose elements, the weights, are non-negative and sum to one. The convexity of the minimum distance optimization allows it to be reformulated using a first-order stationary condition subject to a complementarity constraint.
[0015] In this way, some embodiments transform the nested optimization problem into a single optimization problem constrained to a solution of a first order stationary condition that models the minimum distance between the convex hull of the object and the convex hull of the obstacle using a complementarity constraint. Expressing the constraint on the minimum distance as a solution of the first order stationary condition makes such a representation differentiable.
[0016] Converting the nested optimization problem into a single optimization problem requires fewer iterations and therefore consumes less resources compared to what would have been consumed by the nested problem. As such, some example embodiments lead to a faster optimization process, and some beneficial aspects realized for this process include significant improvements in overall resource consumption, CPU time, and clock cycles when executing the process. Such technical benefits are further amplified and translated into more practical benefits when the optimization problem is realized as part of resource-scarce applications such as autonomous driving, robots, drones, etc.
[0017] Furthermore, some example embodiments result in trajectories that are more optimized in terms of accuracy because the transformations underlying this problem do not need to make many assumptions or approximations due to the smoothness introduced in the constraints. The reason is that expressing the constraints as complementarity conditions allows the use of tailored relaxations that allow for robust solving using traditional optimization algorithms and thus result in higher quality solutions.
[0018] Some embodiments are based on the understanding that control optimization to avoid collisions can be useful in many control applications, such as robots performing assembly, parking or control of self-driving cars, autonomous motion of drones, etc. In particular, some embodiments are based on the realization that formulating the collision avoidance problem with complementarity constraints can be particularly beneficial in robotic applications. Most robotic applications are characterized by the presence of constrained environments while dealing with difficult underlying phenomena such as one-sided contact, frictional contact, impacts, and deformations that give rise to contact-rich multibody interactions. These contact-rich multibody friction interaction systems are generally described by non-smooth dynamics that can be represented using complementarity conditions. Thus, if collision avoidance is also formulated by complementarity constraints, such a formulation allows for a unified treatment of contact and collision avoidance.
[0019] Some beneficial aspects, among many others realized, are that embodiments of the present disclosure can generate continuous-time collision-free dynamic trajectories for rigid bodies without explicitly requiring a collision checking / avoidance module or providing a feasible initial solution.
[0020] Some features of the embodiments of the present disclosure described herein can be used in the automotive industry, the aerospace industry, nonlinear control systems, and process engineering. Some features of the embodiments of the present disclosure can also be used in material handling robots with multiple end effectors suitable for application in semiconductor wafer processing systems. For example, the above operation can be used to lift / place a wafer or substrate from an offset station. A sequence of lifting operation by one end effector followed by a placing operation by another end effector can be used to quickly exchange a wafer / substrate at an offset station (rapid exchange operation). The robot drive unit can include one or more vertical lift mechanisms for controlling the vertical height of the robot arm, which can be used to access stations at different heights, compensate for the vertical distance between the end effectors of the robot arm, and facilitate the lift / place operation of materials. It is contemplated that the robotic device can utilize a motor-driven ball screw or any other suitable actuation mechanism, including but not limited to a lead screw, a linear motor, a linkage mechanism, a scissor mechanism, a hydraulic actuator, a pneumatic actuator, and combinations thereof. It should be noted that in the case of two or more robotic arms, the configuration may include an upper arm and a lower arm, where the location of one arm is either in the same plane as the other arm or in a different plane.
[0021] Accordingly, one embodiment discloses a controller for controlling the motion of an object performing a task of changing a state of the object from a start state to an end state while avoiding the object colliding with an obstacle, the controller comprising at least one processor and a memory having instructions stored thereon, which when executed by the at least one processor cause the controller to: obtain data indicative of the dynamics of the object and the geometry of the object and the obstacle, wherein the geometry of the object includes a convex shape that surrounds the actual shape of the object, and wherein the geometry of the obstacle includes a convex shape that surrounds the actual shape of the obstacle, further; solving an optimization problem of the dynamics of the object generating an optimal trajectory for performing the task under constraints to a solution of a first order stationary condition that models a minimum distance between the convex shape of the object and the convex shape of the obstacle using a complementarity constraint; and controlling the motion of the object according to the optimal trajectory.
[0022] Another embodiment discloses a method for controlling the motion of an object performing a task of changing a state of the object from a start state to an end state while avoiding the object colliding with an obstacle, the method using a processor coupled with stored instructions implementing the method, the instructions, when executed by the processor, performing method steps, the method steps including obtaining data indicative of object and obstacle dynamics and object and obstacle geometry, the object geometry including a convex shape that encircles the actual shape of the object, the obstacle geometry including a convex shape that encircles the actual shape of the obstacle, solving an optimization problem of the object dynamics that generates an optimal trajectory for performing the task under constraints to a solution of a first order stationary condition that uses complementarity constraints to model a minimum distance between the object's convex shape and the obstacle's convex shape, and controlling the motion of the object in accordance with the optimal trajectory.
[0023] Yet another embodiment discloses a non-transitory computer readable storage medium having implemented thereon a program executable by a processor for executing a method for controlling the motion of an object performing a task of changing a state of the object from a start state to an end state while avoiding collision of the object with an obstacle, the method including obtaining data indicative of object and obstacle dynamics and object and obstacle geometry, the object geometry including a convex shape that encircles the actual shape of the object, the obstacle geometry including a convex shape that encircles the actual shape of the obstacle, solving an optimization problem of the object dynamics that generates an optimal trajectory for performing the task under constraints to a solution of a first order stationary condition that models a minimum distance between the convex shape of the object and the convex shape of the obstacle using a complementarity constraint, and controlling the motion of the object according to the optimal trajectory.
[0024] The presently disclosed embodiments will be further described with reference to the accompanying drawings, in which: The drawings shown are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the presently disclosed embodiments. [Brief description of the drawings]
[0025] [Figure 1A] FIG. 1 illustrates an overview of a trajectory optimization problem, according to some embodiments. [Figure 1B] FIG. 1 is a schematic diagram illustrating an example for planning a trajectory in a plane using the principles of some embodiments. [Figure 2A] FIG. 1 illustrates a block diagram of a method for controlling the motion of an object to perform a task of changing the state of the object from a start state to an end state while avoiding the object colliding with an obstacle, according to some embodiments. [Figure 2B] FIG. 2 illustrates a sequential workflow of an optimization solver for solving an optimization according to one embodiment. [Figure 3A] FIG. 2 shows a schematic diagram of the principle for imposing a complementarity constraint on the minimum distance between an object and an obstacle, according to some embodiments. [Figure 3B]3B shows a schematic diagram of a principle for performing control of an object using the principle of FIG. 3A, according to some embodiments. [Figure 3C] 3B shows a schematic diagram of a principle for performing control of an object using the principle of FIG. 3A, according to some embodiments. [Figure 4] FIG. 1 illustrates one example of parameterizing objects and obstacles using polytopes. [Figure 5A] FIG. 2 illustrates an example of parameterizing any point of an object in terms of vertices of a polytope, according to some embodiments. [Figure 5B] FIG. 2 illustrates an example of parameterizing any point of an object in terms of vertices of a polytope, according to some embodiments. [Figure 5C] FIG. 2 illustrates an example of parameterizing any point of an object in terms of vertices of a polytope, according to some embodiments. [Figure 5D] FIG. 2 illustrates an example of parameterizing any point of an object in terms of vertices of a polytope, according to some embodiments. [Figure 6] FIG. 1 illustrates converting a nested optimization problem into a convex / quadratic program and identifying first-order optima subject to complementarity constraints. [Figure 7A] FIG. 1 illustrates a schematic diagram of an example robotic manipulation scenario, according to some embodiments. [Figure 7B] 1A-1C illustrate example scenarios in which a slider-pusher system functions in the presence of obstacles, according to some embodiments. [Figure 7C] 1 illustrates a schematic diagram of a collision avoidance problem formulation according to some embodiments. [Figure 7D] FIG. 1 illustrates an example method for controlling an object using a robot, according to some example embodiments. [Figure 8A] FIG. 1 is a flow diagram illustrating some steps used to implement some methods associated with a robotic device, according to some embodiments of the present disclosure. [Figure 8B]FIG. 1 illustrates a holonomic cart including a robotic manipulator operating in accordance with some embodiments. [Figure 9] FIG. 1 is a block diagram illustrating some components of a data processing system that may be used to implement some methods, according to some embodiments of the present disclosure. [Figure 10] FIG. 2 is a flow diagram of some modules used to implement a trajectory controller associated with a robotic device, according to some embodiments. [Figure 11] FIG. 1 is a block diagram illustrating some components that may be used to implement some methods, according to some embodiments of the present disclosure. [Figure 12] FIG. 1 illustrates an example of a control system using a robotic arm according to some embodiments. [Figure 13] FIG. 1 shows a schematic diagram of a system according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0026] Example embodiments described herein are directed to systems and methods for the control and optimization of objects configured to move in collision-prone trajectories. The automation of several tasks related to everyday objects has increased many-fold over time, and today's automated systems are so pervasive in daily life that they almost coexist with humans everywhere. Often, certain automated systems operate in highly chaotic environments where performing tasks is highly constrained by the understanding of the surrounding environment. In particular, such environments often include a large number of obstacles, and tasks need to be performed in the presence of obstacles while avoiding contact with the obstacles. Thus, the objective of performing a task is translated into performing the task without colliding with the obstacles while simultaneously achieving the desired task objective. Furthermore, scenarios arise where the generation of an optimal trajectory for performing the desired task is required to navigate through the obstacles while ensuring collision avoidance. Examples of these tasks include robotic manipulation tasks (automated assembly, robotic kitting, etc.), automated parking of vehicles, automated surveillance and delivery by unmanned aerial vehicles, etc.
[0027] In the context of robotic manipulation tasks, one or more robots perform manipulation tasks in such cluttered environments. A robotic system may include a robot arm including an end effector or gripper used for applications including grasping, picking up, or moving objects. As an example, a robotic device may be used to complete a task or a series of tasks. Such a task may include moving an object such that the robotic system can direct the robot arm to pick up an object based on given knowledge of where the object is located in the environment. Generally, the control inputs to the manipulator arm are the motor torques that the robot must apply to each of the joints to move from an initial pose to a desired pose.
[0028] Manipulation problems are those in which a robot must plan and control a desired sequence of contacts with the external environment to achieve a desired configuration of the manipulated object. Planning these tasks requires contact-driven trajectory optimization while avoiding obstacles in the environment. Some example embodiments disclose a new method for computing trajectories that obey contact mechanics and avoid collisions. In particular, some example embodiments use complementarity constraints to model both contact and obstacle avoidance. This allows planning robotic manipulation tasks in a unified framework. A similar approach with minor modifications can be applied to other application areas such as automated parking, autonomous flight of UAVs, etc.
[0029] Some example embodiments can more efficiently handle collision avoidance between controlled objects and obstacles, and between obstacles or controlled objects, by eliminating the shortcomings of conventional approaches and reducing the amount of assumptions made in the calculation of the optimal trajectory. Some example embodiments are based on the recognition that full-dimensional obstacles and controlled objects can be modeled as any convex body, such as an ellipsoid or a polytope. In addition, some example embodiments are based on approaches that are smooth and can be handled using general purpose nonlinear programming (NLP) algorithms.
[0030] The example embodiments disclosed herein relate to the problem of planning object control tasks in the presence of contacts and obstacles. Modeling frictional contacts between multiple objects leads to non-smooth dynamics due to friction and stiffness of the contacting objects. These non-smooth phenomena can be mathematically represented using complementarity constraints. Control of objects with frictional interactions in the presence of obstacles is difficult. The collision avoidance problem is modeled using complementarity constraints. Some of the beneficial aspects of the example embodiments include that the formulation of the collision avoidance problem is differentiable, allowing the use of NLP solvers, and the process is the same for collision avoidance between objects and stationary obstacles and between objects and objects. The term objects, when used in the plural, may also mean stationary obstacles. In the following, these and some other aspects are described in more detail, especially with reference to the drawings.
[0031] FIG. 1A illustrates an overview of a trajectory optimization problem, according to some embodiments. An object 10 is controlled, for example, by a robotic manipulator 20. The object control has to be planned such that a trajectory 30 of the object 10 avoids contact / collision with one or more obstacles 40 that may also be present in the environment of the object 10. The trajectory of the object 10 is determined by several states (C i ,C1,C2,C f), each of which specifies a particular position, orientation, and configuration of the object 10. In this regard, a trajectory 30 of the object 10 may define a path followed by the object 10 as it transitions between two or more states. The trajectory 30 may also correspond to a set of controls that a controller, such as a controller associated with the robotic manipulator 20, executes on the object 10. The one or more obstacles 40 may be other objects in the environment of the object 10, such as objects, living things, or spaces through which the object 10 may be restricted. To optimize a trajectory such as the trajectory 30, the controller generates a sequence of states and inputs that optimizes a desired objective function while considering all the constraints of the system. The requirement to avoid obstacles results in a set of non-convex constraints, and optimizing a continuous-time dynamic system against a set of non-convex constraints results in a difficult problem to solve. The non-convex constraints resulting from obstacle avoidance need to be enforced during trajectory optimization.
[0032] Motion planning of a manipulator configured to move an object is a repetitive element in many robotic processes. For example, some motion planning runs are for a manipulator to reach a goal state from a starting state by decomposing the complete problem into two steps: kinematic planning and trajectory tracking. However, splitting the problem into two steps limits the quality of the solution that can be obtained, in terms of optimality. In particular, when this problem is solved simultaneously, the optimization algorithm is forced to find a solution that minimizes the effort while considering all the constraints active on the robotic system. Among many beneficial aspects, the minimal effort results in a significant reduction in processing requirements, thus making the entire process less resource consuming. The process can then be executed on low-cost, low-resource processors, thereby enhancing the applicability of the process in areas such as autonomous driving, autonomous parking, drones, etc., where on-board resource availability is always scarce.
[0033] Some example embodiments are based on the realization that trajectory optimization is a procedure that generates a sequence of states and inputs that optimizes a desired objective function while considering all the constraints of the system. One experiment included a trajectory planning approach for trajectory optimization in which the trajectory planning was configured to use decomposition of the problem into a kinematic plan followed by a dynamic plan. The kinematic plan was set to place a path in the configuration space of the robot while checking for possible collisions with obstacles present in the environment. However, some tests during the experiment often resulted in infeasible trajectories, or trajectories that were suboptimal and later recognized as infeasible for the dynamics. What was obtained or learned was that the kinematic planning module did not consider the dynamics and as a result the planning module was not aware of the dynamics and control saturation limits of the system. This resulted in trajectories that saturated the control limits of the system or resulted in dynamic non-smoothness that proved undesirable (i.e. the robot often experienced very high accelerations during movement). Thus, one realization of the present disclosure is that it is highly desirable to automatically generate collision-free optimal trajectories for a robotic system by incorporating geometric constraints and state and input constraints. This realization is further enforced as a constraint during optimization, thus enabling trajectory optimization without the need for collision checking between the robot and obstacles.
[0034] Some example embodiments are based on the recognition that most trajectory optimization problems in the presence of state and control constraints can be solved using nonlinear optimization techniques. However, the geometric constraints imposed due to the movement of the manipulator arm in the presence of obstacles in the environment result in non-convex and non-differentiable constraints, since in general the minimum function is mathematically non-differentiable. To avoid collisions with obstacles, the optimization algorithm needs to ensure that the minimum distance of each of the links from all obstacles is always positive during the link's motion.
[0035] Accordingly, some embodiments determine the motion trajectory by solving an optimization problem using a generalized nonlinear programming (NLP) 110 defined by a nonlinear objective function 120 to be minimized subject to nonlinear constraints 130, where the decision variables are within a specified interval or set 140. The optimal decision variables are obtained within the specified range 140 by minimizing the objective function 120 subject to the nonlinear constraints 130. An objective of some embodiments is to provide a differential solution for the NLP 110.
[0036] FIG. 1B is a schematic diagram showing an example for planning a trajectory in a plane using the principles of some embodiments. For example, it is possible to solve the optimization problem by assuming that the motion of the object in one direction (e.g., y direction) is fixed and the motion in the other orthogonal direction (e.g., x direction) needs to be optimized. Such assumptions lead to an iterative process that consumes more time and resources and is not suitable for mission-critical applications. For example, as shown in the example of FIG. 1B, the x motion of the position 106 must satisfy the obstacle avoidance constraint, so the motion of the position in the x direction is limited to a short horizontal segment 121 that passes through the position 106 and is bounded between two obstacles 104 and 105.
[0037]
number
[0038] However, example embodiments disclosed herein instead utilize a minimum distance constraint that considers the object's movement along both axes simultaneously. Such a distance constraint introduces a non-differentiable constraint into the trajectory optimization problem. In some scenarios, the minimum distance constraint may be at most once differentiable even if the minimizer is unique. However, the uniqueness of the minimizer cannot be guaranteed when the object is modeled as a polytope. For example, as shown in FIG. 1B, the distance between two obstacles 104 and 105 (shown as double arrows) is not unique when considering the obstacles' exact geometric shapes instead of considering them as mass points. For similar reasons, if the trajectory 103 of the object to be manipulated passes between the two obstacles 104 and 105, the distance between the object and any of the obstacles 104, 105 is not necessarily unique.
[0039] Thus, the usefulness of the NLP solver 110 for solving trajectory problems defined using minimum distance constraints is problematic due to the non-differentiable nature of these constraints and the fact that the uniqueness of the minimizers for these constraints is not guaranteed. Some example embodiments transform the non-differentiable constraint-based problem into a differentiable, complementarity-criterion-based optimization problem with a unique minimizer.
[0040] Some embodiments are based on the realization that if the distance between points of an object is expressed as a distance function of the difference between all its points, the minimum distance between the objects corresponds to a stationary point of this function. As used herein, a stationary point of a differentiable function of one variable, such as distance, is a point on the graph of the function whose derivative is non-negative along the feasible directions of motion. Every first-order stationary point of such a distance function is a minimizer, and the ambiguity of distance functions suggests that such functions may have multiple stationary points. In any case, following such a formulation, the optimal minimization problem can be replaced by the solution of the first-order stationary condition of such a distance function. Advantageously, such a solution can be found in a differentiable manner, ensuring the applicability of various nonlinear programming algorithms.
[0041] Some embodiments are based on another realization that the shapes of the objects under control and the shapes of obstacles that may cause collisions can be represented as convex hulls, such that each point in these objects is a vector of non-negative weights of the corresponding hull vertices. Advantageously, such a representation allows the weights of these vectors to be separated from the state of the objects. In particular, the positions of the objects represented by the convex hull depend on the state, but the weights that define the different points in the hull are themselves independent of the state. Such a representation makes the formulation of the distances between the object points and the obstacle points a convex problem that requires the weights to be on a simplex. A simplex is a convex set whose elements, the weights, are non-negative and sum to one. The convexity of the minimum distance optimization allows it to be reformulated using a first-order stationary condition subject to a complementarity constraint.
[0042] In this way, some embodiments transform the NLP nested optimization problem 110 into a single optimization problem 115 that is constrained to a solution of a first order stationary condition that models the minimum distance between the convex hull of the object and the convex hull of the obstacle using a complementarity constraint. Expressing the constraint on the minimum distance as a solution of a first order stationary condition makes such a representation differentiable, but may require that the solution of the optimization problem 115 be formulated as a Mathematical Program with Complementarity Constraints (MPCC).
[0043] In other words, NLP with complementarity constraint is MPCC. Complementarity constraint is a mathematical relationship between functions g(x) ≥ 0, h(x) ≥ 0 that maps to a set of scalars that require either g(x) = 0 or h(x) = 0. This is compactly expressed as g(x) ≥ 0 ⊥ h(x) ≥ 0. If functions g(x), h(x) are equal-dimensional vector functions, then the notation g(x) ≥ 0 ⊥ h(x) ≥ 0 expresses the function g(x) ≥ 0 ⊥ h(x) ≥ 0 as the function that maps the i-th component g i (x) ≥ 0 ⊥ h i It is understood that this holds true for each (x) ≧ 0.
[0044] 2A illustrates a block diagram of a method 200 for controlling the motion of an object to perform a task of changing a state of the object from a start state to an end state while avoiding the object colliding with an obstacle, according to some embodiments. The method is performed by a controller using a processor coupled with stored instructions that implement the method, the instructions performing the steps of the method when executed by the processor.
[0045] The method includes a step 201 of acquiring data indicative of the dynamics and geometry of the object and obstacles. The data 201 can be received via wired or wireless communication available in the art. For example, the dynamics of the object may include a set of equations describing the change in state of the object in response to the application of one or more forces of the actuators of the object. These dynamics make it possible to plan the motion of the object actuated by actuators such as motors or manipulators of a robotic arm.
[0046] In various embodiments, an obstacle can be stationary or moving. The dynamics of a stationary obstacle describes the fixed pose of the obstacle. The dynamics of a stationary obstacle describes the obstacle's trajectory, which defines the state of the obstacle as a function of time. In this way, the dynamics of the obstacle can be taken into account by the optimization solver when planning the optimal trajectory of the object.
[0047] The geometry of the objects and obstacles represents the convex hull of the objects and obstacles. The convex hull can be taken as part of the geometry or calculated based on the geometry. In some embodiments, the geometry includes three-dimensional (3D) information. An example of a convex hull shape includes a polytope. Having a representation of the geometry of the objects and obstacles as a convex hull allows for defining points within the convex hull as a weighted combination of the vertices of the object's convex hull and the vertices of the obstacle's convex hull. Such a representation allows for the imposition of complementarity constraints on the weights on the vertices of the object's and obstacle's convex hull, thereby achieving minimum distance in a manner that is decoupled from the state of the objects and obstacles.
[0048] The method then solves an optimization problem of the object's dynamics that generates an optimal trajectory for performing the task subject to a solution of a first-order stationary condition that uses complementarity constraints to model the minimum distance between the convex hull of the object and the convex hull of the obstacle (202). In some implementations, the weights governed by the complementarity constraints are independent of the object's state and the obstacle's state, so that the optimization problem models the minimum distance by varying the positions of the vertices of the object's and obstacle's convex hulls according to their corresponding states.
[0049] In different embodiments, the solution of the optimization problem optimizes one or more of a minimum time problem, an object manipulation problem, or an objective function that defines the mathematical structure of the objective function. In these embodiments, the NLP solver 110 is converted to the MPCC 115 due to complementarity constraints to avoid nested optimization problems.
[0050] The method then controls 203 the motion of the object according to the optimal trajectory. For example, to control the motion of the object, the controller is configured to generate control commands that instruct actuators to move the object to follow the optimal trajectory. Additionally, the controller can be further configured to cause the actuators to generate optimal trajectory forces.
[0051] Converting the nested optimization problem into a single optimization problem requires fewer iterations and therefore consumes less resources compared to what would have been consumed by the nested problem. As such, some example embodiments lead to a faster optimization process, and some beneficial aspects realized for this process include significant improvements in overall resource consumption, CPU time, and clock cycles when executing the process. Such technical benefits are further amplified and translated into more practical benefits when the optimization problem is realized as part of resource-scarce applications such as autonomous driving, robots, drones, etc.
[0052] FIG. 2B illustrates a sequential workflow of an optimization solver for solving 202 the optimization, according to one embodiment. In this embodiment, the controller 50 uses an NLP solver, such as NLP solver 210, to solve the trajectory optimization problem, even when the objects and obstacles are modeled as polytopes. The controller 50 may be part of a machine that performs tasks on or uses the objects. For example, the controller 50 may reside on a robot that performs robotic operations on the objects. Alternatively, the controller 50 may reside on a vehicle that performs automated parking, or on a UAV that performs automated surveillance, delivery, etc. In each of such example applications, the controller 50 performs control on the objects, e.g., in some cases, this control may be contact-based manipulation, as in the case of a robotic manipulator, or non-contact-based control of the object's motion, as in the case of a vehicle. Thus, the control of the object may be viewed as being directed toward the performance of a desired task. Each such task may be associated with one or more objective functions.
[0053] The NLP solver 210 may be resident in a memory associated with the controller 50 or may be invoked on-demand by the controller 50. In this regard, FIG. 2 illustrates the sequential workflow of the NLP solver of the controller 50.
[0054] The NLP solver 210 takes as input (among other things) a dynamics description 220 of the object, complementarity variables 230, collision variables 240, and a desired task or objective function definition 250. The dynamics description 220 may define a set of equations that describe how the object moves when subjected to one or more forces. That is, the dynamics description may define the dynamic behavior of the object. The controller 50 may receive the dynamics description from a user via an interface. Alternatively, the controller 50 may obtain the dynamics description from a database that stores such information.
[0055] The objective function 250 defines the end user's goal associated with the task. For example, the objective function may define a minimum time problem associated with the task, a destination of the object, or possibly additionally the structure of the objective function (quadratic or nonlinear). The output provided by the nonlinear optimization planning solver is an optimal trajectory, i.e., a sequence of object states, and control inputs, which may include forces or torques 260 to be exerted or applied to the object being manipulated. This allows the controller 50 to control the object (in this case the object's motion) using the generated optimal trajectory force 260 values while avoiding collisions with obstacles 104, 105.
[0056] 3A shows a schematic diagram of the principle for imposing a complementarity constraint on the minimum distance between an object and an obstacle, according to some embodiments. Some embodiments are based on the recognition that the geometric shape 330 that defines the actual shape of the object and / or obstacle may or may not be convex. If the shape is convex, the resulting optimization problem may not be convex, and non-convex optimization is difficult to solve.
[0057] To that end, some embodiments define complementarity constraints 350 that enclose 340 the actual shapes of the objects and obstacles with convex shapes and achieve a minimum distance to those convex shapes, but not necessarily the actual shapes of the objects and obstacles. Thus, the resulting optimization problem solved by some embodiments, subject to the complementarity constraints, is convex.
[0058] Figures 3B and 3C show schematic diagrams of principles for performing control of an object using the principles of Figure 3A, according to some embodiments. For example, in the embodiment of Figure 3B, the convex shapes of the object and obstacles are each convex hulls defined by a set of inequalities defining points in the object's convex hull and a set of inequalities defining points in the obstacle's convex hull, and complementarity constraints are imposed on the sets of inequalities of the object and obstacle to achieve a minimum distance between the object and obstacle.
[0059]
number
[0060]
number
[0061] Optimal solution q* for (6) ij,i and q* ij,j are the points in objects i;j, respectively, that give the shortest distance between the objects. The optimization problem in (6) is a convex problem. Every first-order stationary point in (6) is a minimizer.
[0062]
number
[0063]
number
[0064]
number
[0065] 3C shows a schematic diagram of the principle for controlling objects employed by controller 50 according to another embodiment. In this embodiment, the convex shapes of objects and obstacles are each polytopes defined by a set of vertices, points in the object polytope are defined as weighted combinations of the vertices of the object polytope, points in the obstacle polytope are defined as weighted combinations of the vertices of the obstacle polytope, and complementarity constraints are imposed on the weights of the vertices of the object and obstacle polytopes to achieve a minimum distance between the object and the obstacle. This is advantageous since finding a convex polytope for any object is a computationally efficient task.
[0066] At 302, the controller 50 models the object extent of each object in the space of interest using an enclosing polytope. In this regard, the controller 50 may use any suitable imaging and related image processing techniques to define the polytope as a bounding polytope. That is, the controller 50 is communicatively coupled to one or more suitable devices (such as imaging devices) that provide such a realization of the enclosing polytope for each entity in the space of interest. Each entity in the space of interest may be modeled using a separate enclosing polytope.
[0067] FIG. 4 shows one example of parameterizing objects and obstacles using polytopes. Every point inside an object or obstacle can be expressed in terms of the vertices of the polytope that encloses the object or obstacle. For the purposes of this description, objects and obstacles can be treated similarly, and therefore the description of objects will be equally applicable to obstacles. Consider a rectangular object with a first dimension along the x-axis of 2l and a second dimension along the y-axis of 2w, centered at coordinates (x c ,y c In such a case, the vertices of the object have coordinates (x c +l,y c +w),(x c -l,y c +w),(x c -l,y c -w), and (x c +l,y c -w). Thus, points inside the object can be expressed in terms of the vertices of the enclosing polytope, and the object can be modeled as a continuum rather than being approximated as point masses.
[0068]
number
[0069] l nvi ∈R nvi is a vector of all ones, and α∈R nviis a non-negative vector that generates the convex hull of the vertices. The dependence of the vertices' coordinates on the object's position and orientation is modeled by the functional dependence of Vi on x(t), y(t). Note that the vertex coordinates of stationary obstacles are independent of x(t), y(t). There is a distinction here between the treatment of objects and stationary obstacles.
[0070]
number
[0071]
number
[0072]
number
[0073]
number
[0074]
number
[0075]
number
[0076]
number
[0077] In this way, every point in the polytope can be parameterized as a convex combination of the vertices of the polytope that encloses the object.
[0078]
number
[0079]
number
[0080] The above formulation is at most once differentiable if the minimizer in (1) is unique. However, uniqueness cannot be guaranteed when the object is modeled as a polytope as above. As a result, the formulation in (2) cannot be directly fed to an NLP solver.
[0081]
number
[0082] In the formula, α ij;i and α ij;j is a variable that indicates the convex combination of vertices of the polytope that defines the boundaries of objects i and j. ij;i and α* ij;j At point V i (x(t),y(t))α* ij;i and V j (x(t),y(t))α* ij;j are the points in objects i;j, respectively, that give the shortest distance between the objects. The optimization problem in (3) is a convex problem. Every first-order stationary point of (3) is a minimizer.
[0083]
number
[0084]
number
[0085]
number
[0086] At 310, the controller utilizes the constraints defined in (4a)-(4e) and adds these constraints to the "optimization problem for determining control" to obtain a differentiable formulation. The smooth problem can be fed to an NLP solver stored in a memory associated with the controller 50, and thus the values of the trajectory forces required to manipulate the object can be determined. In this way, the example embodiment provides an advantage in terms of processing speed by reducing the complexity of the problem. The time required to calculate the force values is significantly reduced by the smoothing of the collision avoidance problem. The reduction in computation time has far-reaching effects on the entire process for controlling an object. Thus, the example embodiment provides a significant improvement in automated devices such as robotic manipulators.
[0087] 6 illustrates converting a nested optimization problem into a convex / quadratic program and identifying a first-order optimum subject to complementarity constraints. In this example, the distance 630 between objects 610 and 620 is converted 660 from the inner optimum 640 into a complementarity constraint 650. In this way, a nested optimization problem is avoided.
[0088] Converting the nested optimization problem into a single optimization problem requires fewer iterations and therefore consumes less resources compared to what would have been consumed by the nested problem. As such, some example embodiments lead to a faster optimization process, and some beneficial aspects realized for this process include significant improvements in overall resource consumption, CPU time, and clock cycles when executing the process. Such technical benefits are further amplified and translated into more practical benefits when the optimization problem is realized as part of resource-scarce applications such as autonomous driving, robots, drones, etc.
[0089] Furthermore, some example embodiments result in trajectories that are more optimized in terms of accuracy because the transformations underlying this problem do not need to make many assumptions or approximations due to the smoothness introduced in the constraints. The reason is that expressing the constraints as complementarity conditions allows the use of tailored relaxations that allow for robust solving using traditional optimization algorithms and thus result in higher quality solutions.
[0090] Some embodiments are based on the realization that control optimization to avoid collisions can be useful in many control applications, such as robots performing assembly, parking or control of self-driving cars, autonomous motion of drones, etc. In particular, some embodiments are based on the realization that formulating the collision avoidance problem with complementarity constraints can be particularly beneficial in robotic applications. Most robotic applications are characterized by the presence of constrained environments while dealing with difficult underlying phenomena such as one-sided contact, frictional contact, impacts, and deformations that give rise to contact-rich multibody interactions. These contact-rich multibody frictional interaction systems are generally described by non-smooth dynamics that can be represented using complementarity conditions. Thus, if collision avoidance is also formulated by complementarity constraints, such a formulation allows for a unified treatment of contact and collision avoidance.
[0091]
number
[0092] The complementarity variables 230 may define parameters that help to describe the dynamics of the object that may arise due to phenomena such as contact or any other discontinuity. The relationships between these variables are the complementarity constraints. These complementarity constraints must be provided to the controller by the user using a programmed interface. The collision variables 240 are the vertices of obstacles that may be present in the object's environment. These are provided to the user via some sensors, such as cameras or lidar, that are able to map the object's environment.
[0093] FIG. 7B illustrates a slide according to some embodiments. Dap Sshi Chassis The schematic shows an example scenario in which the pusher stem functions in the presence of obstacles 760b and 770b. 720b 7 shows a possible optimal trajectory 740b that includes a sequence of states 730b. Apart from the trajectory 740b, the optimizer may also optimize the slider 710b We also find the optimal sequence of control force and pusher velocity on the surface of the
[0094] 7C shows a schematic diagram of a collision avoidance problem formulation, according to some embodiments. The objective of the collision avoidance problem is to generate an optimal collision-free trajectory 710c. The formulation presented in this disclosure considers a polytopic representation 770c of the object 750c and the obstacle 740c. The minimum distance function 730c can be formulated as a quadratic program using the polytopic representation of the obstacles and object. A reformulation 720c using a first-order stationary condition results in a complementarity condition, which can then be robustly solved by the optimization problem described in this disclosure.
[0095] 7D illustrates an example method for controlling an object using a robot, according to some example embodiments. At 702d, the method includes receiving data including values of a robot state, a pose of the object to be manipulated, a location of an obstacle in the environment, and a target pose of the object to be manipulated. Some of these data, e.g., the pose of the object to be manipulated, the location of the obstacle, may be obtained as three-dimensional information of the object and its surroundings. The target pose of the object may be provided, e.g., by a user, or may be predefined in a database, together with an objective function.
[0096] At 704d, the method includes modeling the obstacles as polytopes using knowledge of the obstacles' shapes and vertices. Using the data received at 702d, the obstacles can be modeled according to the exemplary scheme described with reference to Figures 5A-5D. Accordingly, a matrix of states for all points within each polytope can be defined.
[0097] At 706d, the method includes receiving a dynamics model of the interaction of the manipulated object with its environment in the presence of obstacles, and other parameters such as friction. As mentioned above, the description of the dynamics of the manipulated object may be provided by a user or may be retrieved from a database by the robotic manipulator.
[0098] At 708d, the collision avoidance constraints may be taken as linear complementarity constraints. For example, equations (1) and (2) may be determined as the collision avoidance constraints. At 710d, the description of the contact-based system may be taken using linear complementarity constraints. That is, the minimization problem may be re-posed as formulation (3) that takes into account the parameterization of the vertices of the polytope.
[0099] At 712d, the method includes accepting a specification of the desired behavior of the system using an appropriate objective function and corresponding state and control constraints of the robot and the object to be manipulated. The objective function may define a minimum time problem associated with the task, a destination of the object, or possibly additionally the structure of the objective function (quadratic or nonlinear).
[0100] At 714d, the method includes solving an optimization problem for collision avoidance using the proposed mathematical programming method (see FIG. 3) to obtain the robot state and control sequences. The non-smooth optimization problem is transformed using a first-order stationary condition and then solved according to equation (5) to obtain values for the robot state and control sequences.
[0101] At 716d, the method includes implementing the obtained control commands to a robotic system (robot manipulator) to manipulate the object without colliding with any obstacles.
[0102] FIG. 8A is a flow diagram illustrating some steps used to implement some methods associated with a robotic device, according to some embodiments of the present disclosure.
[0103]
number
[0104] FIG. 8B illustrates an exemplary holonomic cart including a robotic manipulator operating according to some embodiments. In some embodiments, a robot 802 having a movable cart 832 has a robotic arm 822 with links 823, 825 and a gripper 827 mounted on the cart 832. The gripper 827 can grasp objects in the environment. The cart 832 can include one or more wheels 811, 812, which can be holonomic wheels that operate in two degrees of freedom. In yet other embodiments, a wrapped front conveyor belt 813 can be included on the holonomic cart 832. In some examples, the wrapped front conveyor belt 813 can eliminate the need for the robot 802 to rotate its gripper 827 left or right when unloading or loading boxes from a truck container or pallet (not shown). The mechanical system may include components including a robotic arm 822, a gripper 827, a conveyor belt 813, a (movable or holonomic) cart 832, and one or more wheels 811, 812. The sensing system may have one or more sensors attached to the robotic arm 822, such as 2D sensors and / or 3D depth sensors (not shown) that sense information about the environment as the robotic arm 822 moves. Additionally, lights 837 may be positioned in front of, to the side of, behind, below, or anywhere on the cart 832 or gripper 827.
[0105] FIG. 9 is a block diagram illustrating some components of a data processing system that may be used to implement some methods according to some embodiments of the present disclosure.
[0106] For example, data processing system 900 may include a hardware processor 971 in communication with a sensor 972 or multiple sensors that collect data including data of an environment 973. The sensor data may include data related to robots, vehicles, machines, etc., and similar types of data, or data associated with trajectory optimization techniques for dynamic systems with non-linear constraints. Additionally, the sensor 972 may convert video or camera input into signal data. The hardware processor 971 may operate in conjunction with a computer storage memory, i.e., a memory 979 such that the memory 979 includes stored data, including algorithms, instructions, and other data that may be implemented by the hardware processor 971. 979 For example, what is stored in the memory may include a multi-link dynamic model, a nonlinear program, and an objective function.
[0107] Continuing with reference to FIG. 9, sensor data may be stored in memory 979, which may be obtained from at least one sensor in the environment via a wired or wireless connection, and the sensor data is stored in memory via a transceiver configured to output data and receive data, so that after each time interval, the sensor data is updated by the at least one sensor. Also stored in memory may include vehicle and machine motion and dynamics data, which may include robot arm information, which may include a model of the robot arm that allows for simulation of the motion of the robot arm, along with motion control inputs, such as torques applied from motors via robot drives to move each joint of the robot arm. Software 997, such as multi-link dynamic models, nonlinear programming, or objective functions, may be stored in memory 979. The stored data may include data for robots, vehicles, machines, etc., or similar types, or data related to trajectory optimization techniques for dynamic systems with nonlinear constraints.
[0108] Optionally, the hardware processor 971 is 983Optionally, the hardware processor 971 may be connected to a network 977, which communicates with a computer device 984, a mobile phone device 985, and a storage device 986. Optionally, the hardware processor 971 may also be connected via the network 977 to a network-enabled server (not shown) which is connected to a client device (not shown). The hardware processor 971 may optionally be connected to an external memory device 991, a transmitter 992, and a controller 994. 996 may be connected to the hardware processor 971 via an expansion bus interface 995. Some types of output received by the transceiver 996 may relate to the intent of a user who is interested in receiving a response to a request (received by the transceiver 996) for a calculated trajectory along a route (resulting from the methods of the present disclosure) that can be displayed on one or more display devices of the user, such as a monitor or screen, and / or input to other computer-related devices for further analysis, etc.
[0109] 9, it is contemplated that hardware processor 971 may include two or more hardware processors, and that the processor may be either internal or external, depending on the requirements of a particular application. Of course, other components may be incorporated.
[0110] The network 977 may include, by way of non-limiting example, one or more local area networks (LANs) and / or wide area networks (WANs). The networking environment may be similar to an enterprise-wide computer network, an intranet, and the Internet. For all of the above components, it is contemplated that there may be any number of client devices, storage components, and data sources used within the system of the present disclosure. Each may include a single device or multiple devices working together in a distributed environment. Additionally, the data source 983 may include data resources for training the network. For example, in an embodiment, the training data may be stored in the storage device 986. The training data may also include signals of other environments. The data source 983 may also include data resources for training the network. The data provided by the data source 983 may include other data, such as other sensor-related data corresponding to the environment, the robotic arm, and the like.
[0111] Continuing to refer to FIG. 9, some of the data in the data sources 983 may be provided by one or more feedback loops. Other examples of data sources may include a variety of sources including, by way of example and not limitation, streaming video, web queries, mobile device camera or other information, webcam feeds, smart glasses and smartwatch feeds, customer care systems, security camera feeds, web documents, catalogs, user feeds, SMS logs, instant messaging logs, spoken word transcripts, gaming system user interactions, such as voice commands or data (e.g., the data may include types of data such as robots, vehicles, environments, etc., or data associated with trajectory optimization techniques for nonlinear constrained dynamic systems). The particular data source 983 used may be determined based on the application, including whether the data is a particular class of data (e.g., data related to thresholds, performance, safety, etc. associated with robots, vehicles, environments, etc., or data associated with trajectory optimization techniques for nonlinear constrained dynamic systems) or is general purpose (non-class specific) in nature.
[0112] The third party devices 984, 985 may comprise any type of computing device, including a computer device 984 or a mobile device 985. It is intended that the user devices be embodied as mobile devices such as personal digital assistants (PDAs), smartphones, smart watches, smart glasses (or other wearable smart devices), augmented reality headsets, virtual reality headsets. Additionally, the user devices may be tablets, remote controls, laptops, entertainment systems, vehicle computer systems, embedded system controllers, appliances, home computer systems, security systems, consumer electronic devices, or other similar electronic devices. In one embodiment, the client device is capable of receiving input data, such as audio and information usable by the methods and systems of the present disclosure. For example, the third party device may be data, i.e., data related to a robot, vehicle, environment, or the like, or data of a similar type, or data associated with trajectory optimization techniques for dynamic systems with nonlinear constraints, a microphone or line-in for receiving audio information, a camera for receiving video or image information, or a communication component (e.g., Wi-Fi capability) for receiving such information from another source, such as the Internet or a data source.
[0113] 9, storage 986 may store information, including data, computer instructions (e.g., software program instructions, routines, or services), and / or models used in embodiments of the technology described herein. For example, storage 986 may store data from one or more data sources 983, one or more deep neural network models, information for generating and training the deep neural network models, and computer usable information output by one or more deep neural network models.
[0114]
number
[0115]
number
[0116] 11 is a block diagram illustrating some components that may be used to implement some methods according to some embodiments of the present disclosure. According to an embodiment of the present disclosure, the robotic device 1150 comprises a mechanical system 1160, sensors 1170, a control system 1180, a network 1193, and a power source 1195. The mechanical system 1160 comprises a robotic arm 1161, a gripper 1163, and a base for the gripper 1165. The sensors may comprise an environmental sensor 1171, a position sensor 1173, and a speed sensor 1174. The control system comprises a data processing system 1181.
[0117] FIG. 12 illustrates an example of a control system using a robotic arm, according to some embodiments. The control system is described below as an example applied to a robotic system 1200, but it should be noted that the control system and computer-implemented method are not limited to robotic systems. The robotic arm 1202 is controlled using a robotic control system 1200 that receives commands or tasks that may be provided externally to the system 1260. An example of a command or task may be to touch or grasp an object 1211 using a gripper 1212 of the robotic arm 1202. The robotic control system 1260 sends control signals 1270 to the manipulator. The control signals 1270 may be torques applied to each of the joints 1214, 1216, 1218 of the robotic arm, and opening and closing of the gripper 1212. The state of the robotic system 1215 is derived using sensors. These sensors may include encoders at the joints of the robot 1214, 1216, 1218, a camera 1210 that can observe the robot's environment, and a tactile sensor that can be attached to the fingers of the gripper 1212. The state measurements from the sensor 1215 are sent to a data input / output unit 1220 that stores the data received from the sensor. The robot control system 1260 is said to execute a policy for accomplishing some task or command. The program 1240 takes input from the data input / output unit 420 and determines updates to the control policy using a controller update system 450. The controller update system 450 then sends the updated policy 430 to the robot control system 460. The policy 430 and the robot control system 460 can also control the amount of opening and closing of the gripper fingers 330 and 340. The amount of closing or the strength of the grip can be determined by the control policy 430. In a preferred embodiment, the grip strength is determined from the signal of the tactile sensor 360, which is part of the state measurements from the sensor 415.
[0118] In a preferred embodiment, the camera 1210 is an RGBD camera that can provide both RGB color images and depth images. The internal information from the RGBD camera can be used to convert the depth to a 3D point cloud. In another embodiment, the camera can be a stereo camera consisting of two color cameras that can calculate the depth and the 3D point cloud. In yet another embodiment, the camera can be a single RGB camera and the 3D point cloud can be directly estimated using machine learning. In another embodiment, there can be multiple cameras 1210. Finally, in another embodiment, the camera 1210 can be mounted at a point on the robot arm 1202 or the gripper 1212.
[0119] 13 shows a schematic diagram of a system according to one embodiment. The system includes a vehicle 1301 including a processor 1302 configured to perform automated parking 1350. The vehicle also includes at least one sensor, such as a LIDAR 1310 and / or a camera 1320. The LIDAR sensor 1310 is a first sensor with low resolution and the camera 1320 is a second sensor with high resolution. The sensors 1310 and / or 1320 are operatively connected to the processor 1302 and are configured to receive information indicative of the geometry of at least a portion of the parking space. 1315 and 1325 Using this information, the processor 1302 generates a map of the parking space. 1330 To that end, the processor 1302 uses the map 1330 to perform automated parking 1350.
[0120] The above-described embodiments of the present disclosure may be implemented in any of numerous ways. For example, the embodiments may be implemented using hardware, software, or a combination thereof. When implemented in software, the software code may be executed on any suitable processor or on a collection of processors, which may be located in one computer or distributed across multiple computers. Such a processor may be implemented as an integrated circuit, with one or more processors in an integrated circuit component. However, the processor may be implemented using circuits in any suitable format.
[0121] Also, the various methods or processes outlined herein may be coded as software executable on one or more processors employing any one of a variety of operating systems or platforms. In addition, such software may be written using any of a number of suitable programming languages and / or programming or scripting tools, and compiled into executable machine language code or intermediate code that runs on a framework or virtual machine. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments. Furthermore, in the claims, ordinal terms such as "first" and "second" modifying a claim element do not in themselves imply a priority, precedence, or order of a claim element over another element, or a chronological order of performing the operations of a method, but are merely used as a label to distinguish a claim element having a particular name from another element having the same name (when no ordinal term is used) to distinguish the elements of the claim.
[0122] Also, the embodiments of the present disclosure may be implemented as a method, an example of which is provided. The order of operations performed as part of the method may be determined in any suitable manner. Thus, the embodiments may be configured to perform operations in a different order than illustrated, which may include performing some operations simultaneously, although they are shown as a series of operations in the illustrated embodiments. Furthermore, the use of ordinal terms such as first, second, etc. in the claims to modify elements of the claims does not, in itself, imply that the elements of one claim have priority, precedence, or order over elements of another claim, or the chronological order in which the operations of the method are performed. However, it is merely used as a label to distinguish an element of one claim having a certain name from another element having the same name (but to use ordinal terms) to distinguish the elements of the claims.
[0123] Although the disclosure has been described with reference to certain preferred embodiments, it should be understood that various other adaptations and modifications are possible within the spirit and scope of the disclosure. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention.
Claims
1. 1. A controller for controlling motion of an object performing a task of changing a state of the object from a start state to an end state while avoiding collision of the object with an obstacle, the controller comprising at least one processor and a memory having instructions stored thereon, the instructions, when executed by the at least one processor, causing the controller to: obtaining data indicative of the dynamics of the object and the obstacle and the geometry of the object and the obstacle, the object geometry including a convex shape that encircles the actual shape of the object, the obstacle geometry including a convex shape that encircles the actual shape of the obstacle, each of the object convex shape and the obstacle convex shape is a polytope defined by a set of vertices, a point in the object polytope is defined as a weighted combination of the vertices of the object polytope, and a point in the obstacle polytope is defined as a weighted combination of the vertices of the obstacle polytope, and solving an optimization problem of the dynamics of the object to generate an optimal trajectory for performing the task under a first order stationary condition using complementarity constraints to model a minimum distance between the convex shape of the object and the convex shape of the obstacle, the complementarity constraints being imposed on the weights of the vertices of the object polytope and the weights of the vertices of the obstacle polytope to achieve the minimum distance between the object and the obstacle; and and controlling the motion of the object in accordance with the optimal trajectory.
2. 2. The controller of claim 1, wherein the data corresponding to the dynamics of the object includes a set of equations describing changes in state of the object in response to application of one or more forces of an actuator of the object, the data corresponding to the dynamics of the obstacle includes a trajectory of the obstacle defining the state of the obstacle as a function of time, weights governed by the complementarity constraints are independent of the state of the object and the state of the obstacle, and the optimization problem models the minimum distance by varying positions of vertices of the polytope of the object and the obstacle according to their corresponding states.
3. 2. The controller of claim 1, wherein the controller is configured to solve the optimization problem as a mathematical program with complementarity constraints (MPCC), and a solution of the optimization problem optimizes an objective function that defines one or more of a minimum time problem, an object manipulation problem, or a mathematical structure of an objective function.
4. 2. The controller of claim 1, wherein the controller is further configured to receive constraints on collision avoidance at the minimum distance, the constraints on collision avoidance including one or a combination of a path constraint of the object and a distance constraint of the object and the obstacle.
5. The controller of claim 1 , wherein to control the motion of the object, the controller is further configured to generate control commands that instruct at least one actuator to move the object to follow the optimal trajectory.
6. The controller of claim 5 , wherein the controller is further configured to cause the actuator to generate an optimal trajectory force.
7. The controller of claim 1, wherein the complementarity constraints include constraints corresponding to multibody interactions of the objects.
8. 2. The controller of claim 1, wherein controlling the motion of the object to accomplish an automated assembly task is performed by controlling a desired contact state of the object to an environment using the complementarity constraints expressed as complementarity conditions, and undesired collisions of the object with the environment are avoided by modeling a minimum distance function expressed as the complementarity conditions.
9. The minimum distance between the convex hull of the object and the convex hull of the obstacle is [0010] where Oi(t) corresponds to a polytope that models a convex shape of the object at time t and Oj(t) corresponds to a polytope that models a convex shape of the obstacle at time t.
10. 1. A method for controlling the movement of an object performing a task of changing a state of the object from a start state to an end state while avoiding collision of the object with an obstacle, the method comprising: using a processor coupled to stored instructions implementing the method, the instructions, when executed by the processor, performing steps of the method, the steps comprising: obtaining data indicative of the dynamics of the object and the obstacle and the geometry of the object and the obstacle, the geometry of the object including a convex shape that circumscribes an actual shape of the object, the geometry of the obstacle including a convex shape that circumscribes an actual shape of the obstacle, each of the convex shapes of the object and the convex shapes of the obstacle being a convex hull defined by a set of inequalities that define points in a convex hull of the object and a set of inequalities that define points in a convex hull of the obstacle, and further comprising the steps of: solving an optimization problem of the dynamics of the object to generate an optimal trajectory for performing the task under a first order stationary condition using complementarity constraints to model a minimum distance between a convex shape of the object and a convex shape of the obstacle, the complementarity constraints being imposed on a set of inequalities of the object and a set of inequalities of the obstacle to achieve the minimum distance between the object and the obstacle, and further comprising the steps of the method: controlling the motion of said object according to said optimal trajectory.
11. 11. The method of claim 10, wherein the data corresponding to the dynamics of the object comprises a set of equations describing the change in state of the object in response to application of one or more forces of actuators of the object, and the data corresponding to the dynamics of the obstacle comprises a trajectory of the obstacle defining the state of the obstacle as a function of time, weights governed by the complementarity constraints are independent of the state of the object and the state of the obstacle, and the optimization problem models the minimum distance by varying positions of vertices of polytopes of the object and the obstacle according to their corresponding states.
12. The method of claim 10 , wherein the complementarity constraints include constraints corresponding to multibody interactions of the objects.
13. 1. A non-transitory computer readable storage medium having implemented thereon a program executable by a processor for performing a method for controlling the motion of an object, the method performing a task of changing a state of the object from a start state to an end state while avoiding collision of the object with an obstacle, the method comprising: The method includes the steps of: acquiring data indicative of the dynamics of the object and the obstacle and the geometry of the object and the obstacle, the object geometry including a convex shape that encircles the actual shape of the object, the obstacle geometry including a convex shape that encircles the actual shape of the obstacle, each of the object convex shape and the obstacle convex shape is a polytope defined by a set of vertices, a point in the object polytope is defined as a weighted combination of the vertices of the object polytope, and a point in the obstacle polytope is defined as a weighted combination of the vertices of the obstacle polytope, and further comprising: solving an optimization problem of the dynamics of the object to generate an optimal trajectory for performing the task under a first order stationary condition using complementarity constraints to model a minimum distance between a convex shape of the object and a convex shape of the obstacle, the complementarity constraints being imposed on weights of vertices of the object polytope and weights of vertices of the obstacle polytope to achieve the minimum distance between the object and the obstacle, the method further comprising: controlling the motion of the object according to the optimal trajectory.
Citation Information
Patent Citations
Interference determination method, interference determination system, and computer program
JP2019025621A
Robot Interaction With Human Co-Workers
US20200086487A1