Method for controlling a robotic device
The Riemannian manifold approach addresses the limitations of ProMP by effectively learning and reproducing quaternion trajectories, enhancing robotic control with improved accuracy and adaptability.
Patent Information
- Application Number
- JP2022080087
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-05-17
- Filing Date
- 2022-05-16
- Publication Date
- 2026-01-29
- Estimated Expiration
- 2042-05-16
AI Technical Summary
Existing robotic control methods, such as Probabilistic Movement Primitives (ProMP), struggle to effectively learn and reproduce quaternion trajectories due to their Euclidean space formulation, which is inadequate for representing oriented motion.
A Riemannian manifold approach is employed to encode and adapt stochastic motion primitives, using geodesic regression and Gaussian distributions to represent quaternion trajectories, allowing for more accurate learning and reproduction of skills.
This method provides a more explainable and adaptable approach to robotic control, enabling accurate learning and reproduction of oriented motion primitives, reducing the likelihood of encoding inaccurate data and allowing for trajectory modulation and blending.
Smart Images

Figure 0007808295000101 
Figure 0007808295000102 
Figure 0007808295000103
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a method for controlling a robotic device.
[0002] In many applications, it is desirable for robots to operate autonomously, sometimes in dynamic and unstructured environments. To do this, robots need to learn how to move and interact in their surroundings. To do so, robots may rely on a library of skills that can be used to perform simple actions or complex tasks as a combination of multiple skills. A technique for learning behavioral skills is known as learning from demonstrations (LfD), via human example. This requires an expert (typically a human) to demonstrate one or more times a specific behavior to be imitated by the robot.
[0003] A. Paraschos et al., in their publication "Using probabilistic movement primitives in robotics," in Autonomous Robots, 42:529-551, 2018, describe a probabilistic framework for learning and synthesizing robot movement skills: Probabilistic Movement Primitives (ProMP). ProMP represents trajectory distributions based on compact basis function representations. Its probabilistic formulation enables the exploitation of distributed information in motion modulation, parallel motion actuation, and control.
[0004] While ProMP has been used to learn cartesian motion, its formulation cannot handle oriented motion in the form of quaternion trajectories. However, quaternions have favorable properties for robot control, such as the fact that they offer near-minimal representation and strong stability in closed-loop orientation control. Therefore, an approach that enables robot control learning from demonstrations containing quaternion trajectories is desirable.
[0005] Disclosure of the Invention According to various embodiments, a method for controlling a robotic device is provided, the method including providing demonstrations for a robotic skill, where each demonstration demonstrates a trajectory including a sequence of robot configurations, where each robot configuration is described by an element of a predetermined configuration space having the structure of a Riemannian manifold. The method further includes, for each demonstrated trajectory, determining a representation of the trajectory as a weight vector of predetermined primitive motions of the robotic device by searching for a weight vector that minimizes a distance measure between the demonstrated trajectory and a combination of primitive motions according to the weight vector, where the combination is mapped to the manifold. The method further includes determining a probability distribution of the weight vector by fitting a probability distribution to the weight vector determined for the demonstrated trajectory, and controlling the robotic device by executing the primitive motions according to the determined probability distribution of the weight vector.
[0006] According to various embodiments, the above-described method provides robot control using a Riemannian manifold approach to encoding, reproducing, and adapting stochastic motion primitives (using multivariate geodesic regression, as described in detail below). In particular, according to various embodiments, the space of quaternion trajectories is considered a Riemannian manifold. This approach is less likely to encode inaccurate data or reproduce distorted trajectories compared to geometry-unaware approaches (such as classical ProMP), allowing the robot to learn and reproduce skills. Because it does not rely on rough approximations, the model is also more explainable. Furthermore, this approach also offers additional adaptation capabilities, such as modulating trajectory distributions and blending motion primitives.
[0007] According to various embodiments, the demonstrated trajectories are represented as weight vectors that are geodesic regressions, meaning that a geodesic curve can be seen to be fitted to each demonstrated trajectory.
[0008] Various examples are given below.
[0009] Example 1 is a method for controlling a robotic device as described above.
[0010] Example 2 is a method according to example 1, where the probability distribution of the weight vector is determined by fitting a Gaussian distribution to the weight vector determined for the demonstrated trajectory.
[0011] The use of Gaussian distributions for training and recall provides reliable control of control scenarios not seen in the demonstration.
[0012] Example 3 is the method according to example 1 or 2, wherein each demonstrated trajectory includes a robot configuration for each time point in a predetermined sequence of time points, and each combination of primitive motions according to a weight vector specifies a robot configuration for each time point in the predetermined sequence of time points; For each demonstrated trajectory, a weight vector is determined by determining a weight vector for a combination of the basic movement according to the weight vector and the demonstrated trajectory from a set of possible weight vectors; The combination is mapped onto the manifold and is the smallest among the set of possible weight vectors, The distance between a combination of elementary motions mapped onto a manifold and a demonstrated trajectory is given by a sum over the time points of the sequence of time points, including a term for each time point that contains the value or power of the value of the manifold metric between the element of the manifold given by the combination of elementary motions at the time point when mapped onto the manifold and the demonstrated trajectory.
[0013] This provides an efficient way to represent the demonstrated trajectories by weight vectors by fitting the weight vectors to the demonstrated trajectories. Combinations may be mapped onto the manifold by selecting a point on the manifold and mapping the combination onto the manifold by an exponential function of the tangent space of the manifold at the selected point.
[0014] Example 4 is a method according to any one of Examples 1 to 3, the method including: searching for a point and a weight vector on a manifold such that, for one of the demonstrated trajectories, a distance measure between a combination of basic movements according to a weight vector and the demonstrated trajectory is minimized, where the combination is mapped from a tangent space at a point onto the manifold, and where, for each demonstrated trajectory, the mapping of each combination onto the manifold is performed by mapping the combination from the tangent space at a selected point.
[0015] In other words, the tangent space (i.e., the points on the manifold that take up the tangent space) is determined for one demonstrated trajectory by performing an optimization over the weights and points. This tangent space is then used to map any combinations required during the combination or search onto the manifold for all demonstrated trajectories. In other words, the same tangent space, and therefore the same exponential mapping, is used for all demonstrated trajectories. This provides an effective technique for overcoming the problem that using different tangent spaces for different trajectories leads to very diverse tangent weight vectors.
[0016] Example 5 is the method according to any one of Examples 1 to 4, wherein the trajectory is an orientation trajectory, each demonstration further demonstrates a position trajectory, and each robot configuration includes a pose described by a vector in three-dimensional space and an orientation described by an element of a predetermined configuration space.
[0017] Thus, skills may be learned by demonstrating sequences of robot poses, e.g., end-effector positions and orientations, where a model for orientation is learned using a Riemannian manifold-based approach.
[0018] Example 6 is a method according to any one of Examples 1 to 5, the method including the steps of providing demonstrations of more robot skills; for each skill, determining a representation of a trajectory, a weight vector, and a probability distribution of the weight vector; for each skill, controlling a robotic device by determining (for each time point) a Riemannian-Gus distribution of the manifold points from the probability distribution of the weight vector; determining a product distribution of the Riemannian-Gus distributions of the skills; and controlling the robotic device by sampling (for each time point) from the determined product probability distribution.
[0019] This allows for skill blending for skills learned from demonstrations on Riemannian manifolds.
[0020] Example 7 is a robotic device controller configured to perform the method according to any one of claims 1 to 6.
[0021] Example 8 is a computer program comprising instructions that, when executed by a processor, cause the processor to perform the method according to any one of Examples 1 to 6.
[0022] Example 9 is a computer-readable medium having stored thereon instructions that, when executed by a processor, cause the processor to perform a method according to any one of Examples 1 to 6.
[0023] In the drawings, like reference numbers generally refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon generally illustrating the principles of the invention. In the following specification, various aspects are described with reference to the following drawings: [Brief explanation of the drawings]
[0024] [Figure 1] FIG. 1 is a diagram illustrating a robot. [Figure 2] 1 illustrates a spherical manifold S2 whose points can represent each possible orientation of, for example, a robot's end effector. [Figure 3] FIG. 1 illustrates multivariate general linear regression on a spherical manifold S2 according to one embodiment. [Figure 4] FIG. 10 is a diagram illustrating an example in which the embodiment is applied to characters on a spherical surface for the purpose of explanation. [Figure 5] FIG. 10 illustrates the blending process according to one embodiment for characters on a sphere for illustrative purposes. [Figure 6] 1 is a flowchart illustrating a method for controlling a robotic device.
[0025] The following detailed description refers to the accompanying drawings, which illustrate, by way of example, specific details and embodiments of the present disclosure in which the present invention may be practiced. Furthermore, other embodiments may be used and structural, logical, and electrical changes may be made without departing from the scope of protection of the present invention. Various embodiments of the present disclosure are not necessarily mutually exclusive, as some embodiments of the present disclosure can be combined with one or more other embodiments of the present disclosure to form new embodiments.
[0026] Various examples are described in more detail below.
[0027] FIG. 1 shows a robot 100 .
[0028] The robot 100 includes a robotic arm 101, e.g., an industrial robotic arm, for manipulating or assembling workpieces (or one or more other objects). The robotic arm 101 includes manipulators 102, 103, and 104 and a base (or support) 105 on which the manipulators 102, 103, and 104 are supported. The term "manipulator" refers to the movable members of the robotic arm 101, whose manipulation enables physical interaction with the environment, e.g., to perform a task. For control, the robot 100 includes a (robot) controller 106 configured to implement the interaction with the environment according to a control program. The final member 104 of the manipulators 102, 103, and 104 (furthest from the support 105), also referred to as the end effector 104, may include one or more tools, e.g., a welding torch, a gripping tool, a painting device, etc.
[0029] Other manipulators 102, 103 (near a support base 105) can form a positioning device, for example together with an end effector 104, with a robotic arm 101 at its end with the end effector 104. The robotic arm 101 is a mechanical arm (possibly with a tool at its end) that can provide functions similar to those of a human arm.
[0030] The robotic arm 101 may include joint elements 107, 108, and 109 that interconnect the manipulators 102, 103, and 104 with each other and with a support base 105. The joint elements 107, 108, and 109 may include one or more joints, each of which may provide rotatable (i.e., rotational) and / or translational (i.e., displacement) motion for the manipulators relative to each other. Movement of the manipulators 102, 103, and 104 may be initiated using actuators controlled by a controller 106.
[0031] The term "actuator" may be understood as a component adapted to affect a mechanism or process in response to being actuated. The actuator may execute commands (so-called actuations) output by the controller 106 as mechanical movements. An actuator, for example an electromechanical converter, may be configured to convert electrical energy into mechanical energy in response to being actuated.
[0032] The term "controller" may be understood as any type of logic-implemented item, which may include, for example, circuitry and / or a processor capable of executing software, firmware, or a combination thereof stored on a recording medium, and capable of outputting instructions to, for example, an actuator in this example. The controller may be configured, for example, by program code (e.g., software) to control the operation of a system, in this example, a robot.
[0033] In this example, the controller 106 includes one or more processors 110 and a memory 111 that stores code and data based on which the processor 110 controls the robotic arm 101. According to various embodiments, the controller 106 controls the robotic arm 101 based on a machine learning model 112 stored in the memory 111.
[0034] According to various embodiments, a Riemannian manifold approach is used to learn oriented motion primitives using ProMP, i.e., an extension of classical ProMP is provided, denoted as "oriented ProMP" using a Riemannian manifold formulation.
[0035] The original (i.e., classical) Probabilistic Motion Primitives (ProMP) approach processes robot skills in Euclidean space, making it impossible to learn and reproduce quaternion trajectories (representing the robot's orientation).
[0036] The Riemannian formulation of ProMP described below allows for learning and recall of quaternion data. Furthermore, the general treatment given here allows for use on general Riemannian manifolds.
[0037] In the following, an implementation of ProMP for processing robot skills in Euclidean space is presented.
[0038] In what follows, the following notation is used: [Table 1]
[0039] Generally, for a single movement execution, a given trajectory
number
[0040] ProMP assumes that each demonstration is characterized by a different value of the weight vector w, resulting in a distribution P(w;θ) = N(w | μw, Σw). A complete trajectory can then be modeled as a composition of basis functions at each t, with weights w drawn from P(w;θ). Thus, the state P(y t ;θ) can be calculated as follows:
number
[0041] When learning from demonstrations, the example trajectories often vary in time length. ProMP overcomes this problem by introducing a phase variable to separate the data from the time instance. This allows for time modulation. In this case, the demonstrations range from z0=0 to z T = 1, and the orbit demonstrated is
number
number
[0042] Generally speaking, the learning process of ProMP mainly consists of estimating the weight distribution P(w;θ). To do so, we use a weight vector w representing the i-th demonstration as shown in Equation (1). i is estimated by maximum likelihood estimation, which is expressed as follows: w i =(Ψ T Ψ+λI) -1 Ψ T Y i (3) leads to a linear ridge regression solution of the form
number
number
number
number
[0043] By computing the product of the trajectory distributions, different motion primitives can be blended into a single motion. Specifically, the influence on the final motion is determined by the blending weight α t,sA set P of S different ProMPs that varies according to s (y t )=N(y t │μ t,s ,Σ t,s ), the blended trajectory at each time step t has the following distribution:
number
number
number
[0044] Task parameters can, for example, adapt robot motion to a target object in order to accomplish a task. Such information is often obtained during demonstrations and can be integrated into the ProMP formulation. Formally, ProMP is a set of parameters that are based on external state
number
number
number
[0045] As mentioned above, quaternions have properties that make them suitable for robotic control. However, because quaternions (as used in robotic control) satisfy unit norm constraints, they do not form vector spaces, and therefore the use of traditional Euclidean space methods for processing and analyzing quaternion-valued variables (with unit norm) is insufficient.
[0046] According to various embodiments, Riemannian geometry is leveraged to formulate ProMP on quaternion space.
[0047] A Riemannian manifold M is a space in which each point is locally in Euclidean space.
number
[0048] Figure 2 shows a spherical manifold S whose points can represent each possible orientation of, for example, a robot end effector. 2 The figure shows:
[0049] Two points x and y are shown on a sphere that may be used by the controller 106 to represent two different orientations of the robot end effector 104.
[0050] The shortest distance between two points in ambient space is a straight line 201, but the shortest path on the manifold is a geodesic line 202.
[0051] To use the Euclidean tangent space,
number
[0052] Exponential map
number
number
number
[0053] Another useful operation on manifolds is the translation, which moves an element between tangent spaces so that the dot product between two elements in the tangent spaces remains constant.
number
[0054] For example, in Figure 2,
number
number
number
number
number
number
[0055] In the following, we consider the Riemannian distribution of a random variable p∈M as follows:
number
[0056] Below is a spherical manifold S m are formulas for the Riemann distance, exponential map, logarithmic map, and translation operations for [Table 2]
[0057] According to various embodiments, geodesic regression, which generalizes linear regression to the Riemannian manifold setting, is used (e.g., controller 106). This geodesic regression model is defined as follows:
number
number
number
[0058] Here, the points {y1,…,y T}∈M and
number
number
number
number
number
[0059] However, equation (9) cannot be analytically solved like equation (3). A solution can be obtained by steepest descent, which requires computing the derivatives of the Riemann distance function and the exponential map, the latter separated into derivatives with respect to the initial point p and the initial velocity u. These gradients can be computed in terms of the Jacobi field (i.e., the solution of a quadratic equation under the Riemann curvature tensor subject to specific initial conditions).
[0060] The above geodesic model is based on the scalar independent variable
number
number
[0061] The MLGM is a geodesic basis U = [u1…u n ]. Then, the equation in question (9) becomes:
number
number
[0062] In what follows, we will consider the case where the demonstration data corresponds to a quaternion orbital, i.e., M≡S 3 We now explain how MLGM can be used in this case.
[0063] If the human demonstration is characterized by orthogonal movement patterns (via kinesthetic instruction or teleoperation), it is necessary to have a learning model 112 that encompasses both translational and rotational movements of the robot end effector. This is because the robot end effector is able to move in a given demonstration trajectory.
number
number
number
[0064] First
number
number
number
[0065] This equivalence proved useful when establishing the similarity between the classical formulation of ProMP and our proposed approach for orientation trajectories. Similar to equation (1), the point y of τ t ∈M can be expressed as a geodesic basis function model as follows: P(y t │w)=N M (y t│Exp p (Ψ t w),Σ y ) (12) where p is a fixed base point on M,
number
number
[0066] Every demonstration is characterized by a different weight vector w, so again we have the distribution P(w;θ) = N(w | μ w ,Σ w ) can be obtained. Therefore, y t The marginal distribution of can be calculated as follows: P(y;θ)=∫N M (y│Exp p (Ψw),Σ y )N(w│μ w ,Σ w )dw (13) Here, the marginal distributions depend on two probability distributions on different manifolds (for simplicity, we omit the time index here and below). However, the mean μ y is a single fixed point p∈M and μ w ∈T p These two observations depend on the tangent space T as follows:p It is utilized to solve the bound (13) on M.
number
number
number
number
[0067] As mentioned above, the learning process of ProMP boils down to estimating the weight distribution P(w;θ). To do so, for each demonstration i, the controller 106 uses MGLM to estimate the weight vector
number
number
number
number
number
[0068] Figure 3 shows the spherical manifold S used to train the weights of the oriented ProMP. 2 The above shows the multivariate general linear regression. Given a trajectory y, the tangent space T p The origin p of M and the tangent weight vector w n and are estimated via equation (15).
[0069] To solve equation (15), p and each w n E(p,w n ) are calculated. As explained above, these gradients depend on so-called adjoint operators, roughly speaking, for each error term
number
number
number
number
[0070] Then, the error function E(p,w n ) corresponds to the approximate gradient:
number
number
[0071] An example of a learning algorithm for the robot control model 112 with oriented ProMP that the controller 106 can execute after a set of N demonstrations has been provided (e.g., provided by a user by manually moving the robot arm 101) is as follows: [Table 3]
[0072] As with classical ProMP, the controller 106 calculates the associated covariance
number
number
number
number
number
number
[0073] The resulting new weight distribution gives us the new marginal distribution P(y;θ * ) may now be obtained via equation (14).
[0074] Regarding blending, classical ProMP blends a set of motion primitives by using a product of Gaussian distributions. When blending primitives in M, it is necessary to consider that each trajectory distribution is parameterized by a set of weight vectors on a different tangent space TpM. Therefore, it is necessary to reformulate the weighted product of Gaussian distributions. To do so, according to various embodiments, a formulation of a Gaussian product on a Riemannian manifold is used, where the log-likelihood of the product is iteratively maximized using a gradient-based approach.
[0075] Formally, the log-likelihood of a product of Riemann-Gausian distributions is given by (excluding the constant term):
number
number
number
number
number
number
number
number
number
number
number
[0076] As explained above, in classical ProMP, the weight distribution P(w;θ) = N(w | μ w ,Σ w ) to the external task parameter
number
number
number
number
number
[0077] Task parameters
number
number
number
number
[0078] To better illustrate how model learning, trajectory recovery, waypoint fitting, and skill blending work in Oriented ProMP, a dataset of handwritten characters was used. The original trajectory is
number
[0079] Figure 4 shows the demonstration data, the marginal distributions P(y;θ) calculated via equation (13), and the waypoint fits obtained from equations (18) and (19), corresponding to models trained on the letters G and S. The means of the marginal distributions follow the demonstration pattern, and the corresponding covariance profiles are 2 It captures the variability of the demonstrations in the trajectories of letters G and S. The trajectories of letters G and S show very elaborate "movement" patterns that may be even more complex than those observed in a realistic robotic setting, and their complexity is worth noting. For waypoint fitting, the covariance
number
[0080] As shown in Figure 4, Oriented ProMP can smoothly fit both the trajectory and the associated covariance profile while accurately passing through a given waypoint.
[0081] Figure 5 shows the blending process of oriented ProMP for {G,I} and {S,J}.
[0082] The goal was to generate trajectories that start by following the profile of the first character in the set, and then smoothly switch to the trajectory distribution of the second character midway. Figure 5 shows the resulting blended trajectories for the two cases mentioned above, where Oriented ProMP smoothly blends the two given trajectory distributions by following the blending procedure for Oriented ProMP introduced above. The blending behavior is governed by the weight α associated with each skill s. s Note that this strongly depends on the temporal occurrence of ∈[0,1]. In this set of experiments,
number
number
number
[0083] Experiments have shown that this is equally true in a robotic setup for a reorientation skill, which corresponds to, for example, picking up a previously grasped object, rotating the end effector 104, and placing the object back in its original location, but with a different orientation. This robotic skill features large position and orientation changes and is therefore well suited to showcasing the functionality of the Orientation ProMP.
[0084] To train robotic skills such as reorientation skills, each demonstration includes, e.g., a full-pose robot end-effector trajectory.
number
number
number
number
[0085] In summary, according to various embodiments, a method is provided as shown in FIG.
[0086] FIG. 6 shows a flow chart 600 illustrating a method for controlling a robotic device.
[0087] In step 601, demonstrations are provided for a robot skill, where each demonstration demonstrates a trajectory including a sequence of robot configurations, where each robot configuration is described by an element of a predetermined configuration space having the structure of a Riemannian manifold.
[0088] In step 602, for each demonstrated trajectory, a representation of the trajectory as a weight vector of predetermined primitive motions of the robotic device is determined by searching for a weight vector that minimizes a distance measure between the combination of primitive motions according to the weight vector and the demonstrated trajectory, where the combination is mapped to a manifold.
[0089] In step 603, a probability distribution for the weight vector is determined by fitting a probability distribution to the weight vector determined for the demonstrated trajectory.
[0090] In step 604, the robotic device is controlled by performing primitive movements according to the determined probability distribution of the weight vector.
[0091] This can involve sampling from a probability distribution of weight vectors (according to Equation (1)) and performing primitive movements according to the sampled vector. It is also possible to derive a probability distribution of trajectories (according to Equation (14)), one of which can be sampled for control, which may be used for more advanced control such as blending trajectories as described above.
[0092] The method of FIG. 6 may be performed by one or more computers including one or more data processing units. The term "data processing unit" may be understood as any type of item that enables processing of data or signals. For example, data or signals may be processed according to at least one (i.e., one or more) specific functions performed by the data processing unit. The data processing unit may include or be formed from an analog circuit, a digital circuit, a composite signal circuit, a logic circuit, a microprocessor, a microcontroller, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a programmable gate array (FPGA) integrated circuit, or any combination thereof. Any other manner of implementing the respective functions may be understood as a data processing unit or a logic circuit. It will be understood that one or more of the method steps detailed herein may be performed (e.g., implemented) by a data processing unit through one or more specific functions performed by the data processing unit.
[0093] Various embodiments can receive and use image data from various visual sensors (cameras), such as video, radar, LiDAR, ultrasound, thermal imaging, sonar, etc., to obtain data for the demonstration.
[0094] 6 can be used to compute control signals for controlling a physical system, such as a computer-controlled machine, for example, a robot, a vehicle, a home appliance, a power tool, a manufacturing machine, a personal assistant, or an access control system. According to various embodiments, a policy for controlling the physical system may be learned, and the physical system may then be operated accordingly.
[0095] According to one embodiment, the method is computer-implemented.
[0096] Although specific embodiments have been shown and described herein, it will be apparent to those skilled in the art that these specific embodiments shown and described may be replaced with various alternative and / or equivalent implementations without departing from the scope of protection of the present invention. This application is intended to cover any adaptations or variations of the specific embodiments discussed herein. Therefore, it is intended that the present invention be limited only by the claims of this application and their equivalents.
Claims
1. 1. A method for controlling a robotic device, the method comprising: providing demonstrations for a robotic skill, each demonstration demonstrating a trajectory including a sequence of robot configurations, each robot configuration being described by an element of a predetermined configuration space having the structure of a Riemannian manifold; determining, for each demonstrated trajectory, a representation of the trajectory as a weight vector of predetermined primitive movements of the robotic device by searching for a weight vector that minimizes a distance measure between the demonstrated trajectory and a combination of primitive movements according to the weight vector, the combination being mapped onto the manifold; determining a probability distribution for a weight vector by fitting a probability distribution to the weight vector determined for the demonstrated trajectory; and controlling the robotic device by executing primitive movements according to the determined probability distribution of the weight vector.
2. The method of claim 1 , wherein the probability distribution of the weight vector is determined by fitting a Gaussian distribution to the weight vector determined for the demonstrated trajectory.
3. 3. The method of claim 1, wherein each of the demonstrated trajectories includes a robot configuration for each time point in a predetermined sequence of time points, and each combination of primitive movements according to a weight vector specifies a robot configuration for each time point in the predetermined sequence of time points, and for each of the demonstrated trajectories, the weight vector is determined by determining a weight vector for the demonstrated trajectory and a combination of primitive movements according to the weight vector from a set of possible weight vectors, the combination being mapped to a manifold that is smallest among the set of possible weight vectors, and a distance between the demonstrated trajectory and the combination of primitive movements mapped to the manifold is given by a sum over the time points in the sequence of time points, including a term for each time point that includes a value or a power of a value of a metric of the manifold between the demonstrated trajectory and an element of the manifold given by the combination of primitive movements at the time point when mapped to the manifold.
4. 3. The method of claim 1, further comprising: searching for a point and a weight vector of a manifold such that, for one of the demonstrated trajectories, a distance measure between a combination of primitive movements according to the weight vector and the demonstrated trajectory is minimized, the combination being mapped onto the manifold from a tangent space at a point; and, for each of the demonstrated trajectories, mapping each combination onto the manifold is performed by mapping the combination from a tangent space at a selected point.
5. 3. The method of claim 1, wherein the trajectories are orientation trajectories, and wherein each of the demonstrations further demonstrates a position trajectory, and wherein each of the robot configurations includes a pose described by a vector in three-dimensional space and an orientation described by elements of a predetermined configuration space.
6. 3. The method of claim 1, further comprising the steps of: providing a demonstration of more robot skills; determining, for each skill, a representation of a trajectory, a weight vector, and a probability distribution of the weight vectors; controlling the robotic device by determining, for each skill, a Riemannian-Gauss distribution of manifold points from the probability distribution of the weight vectors; determining a product distribution of the Riemannian-Gauss distributions of the skills; and controlling the robotic device by sampling from the determined product probability distribution.
7. A robotic device controller configured to perform the method of claim 1 or 2.
8. A computer program comprising instructions which, when executed by a processor, cause the processor to carry out a method according to claim 1 or 2.
9. A computer readable medium having stored thereon instructions which, when executed by a processor, cause the processor to perform the method of claim 1 or 2.
Citation Information
Patent Citations
Trajectory searching device
JP2009066692A
Method for controlling a robot and robot controller
US20210122037A1