Inkjet deposition (or inkjet printing) refers to multiple technologies to deposit liquids on a substrate. Depositing of various liquid materials has been reported for many applications. Conductive ink has been used to print low-cost antennas on a paper substrate. Organic semiconductors have been printed to create transistors and displays. Inkjet deposition has been used to deposit nerve regeneration conduits, biomaterials and tissues. Solutions of carbon nanotubes have been inkjet printed. A mobile robot equipped with laser scanner and inkjet printer head has been used to autonomously navigate a building and mark structures.
While such applications for inkjet deposition are useful, there is a lack of knowledge regarding how to regulate the placement of a liquid material (e.g., ink) on a substrate (e.g., paper, human tissue, vehicle bodies, etc.) based on changes to drop volume. Current methods for placement regulation rely on different techniques such as position and velocity control, feed-forward control, and meniscus control, each of which is associated with drawbacks.
Furthermore, there are a number of applications that require precise motion planning along a desired trajectory on or over a curved surface, including mobile robots and UAVs conducting coverage path planning, agricultural field automation, vacuum cleaning robots, lawn mowers, etc. There is a particular interest in printing or jetting materials onto curved surfaces, with application in painting robots, printing antennas and printing biological materials. Defining or mapping a specific trajectory to curved surfaces is challenging, and this challenge is increased when the trajectory must pass over specific points and/or remain bounded in a desired region.
In a first aspect, systems and methods for dynamically controlling the line width of a printer is provided. To achieve this, embodiments may include some or all of the following three components. First, a dynamic model of line width as a function of parameters such as changing duty cycle, nozzle velocity, and the contact angle arising from chemical and physical properties of the liquid (e.g., ink) and surface (e.g., paper) is created. The model may take as an input a current or voltage duty cycle and may output the estimated line width. The model may then be used to obtain control-affine dynamics.
However, as may be appreciated, many of the parameters needed for the model (e.g., terms in the dynamic equation) may be unknown or difficult to measure. As a second component, a nonlinear estimator is used to determine the cumulative uncertainties of the parameters as a single parameter. This single parameter may then be used by the model to estimate line width based on the duty cycle.
The third component is the use of a nonlinear control law to regulate drop diameter. The combination of the three components is a closed-loop regulation of printed line width that operates without any knowledge of the interactions between liquid and surface. This combination of components is robust with respect to parameter error, which guarantees ultimate convergence of error to a known maximum value. In some embodiments, the upper bound for the error may depend on control gain and a difference between real and estimated parameter values. Stability of the estimator and control law may be established through Lyapunov Analysis.
In another aspect, systems and methods for printing a 2D pattern or image on a 3D surface are provided. Part of this approach is the use of constrained optimization to find a surface parametrization that preservers the shape of a desired curve or trajectory from 2D onto a 3D surface. Surface parametrization can be considered as a mapping from a surface to a parametric domain in lower dimensions. Surfaces that are homomorphic to a disk have a parameter space in the 2D plane. This concept lets us map a curve or trajectory defined in 2D to a geometric shape in 3D space. This mapping can result in distortion in the shape and size of the curve. As we want the pattern on the surface to be similar to the original 2D pattern, isometric (length preserving) and conformal (angle preservative) mappings are desirable to minimize distortion.
In an embodiment, a method for controlling a printer is provided. The method includes: receiving a set of parameters associated with a printer by a computing device, wherein the printer is depositing ink on a substrate to generate a line; measuring a width of the line by the computing device; receiving a duty cycle associated with the printer by the computing device; using the received duty cycle, the set of parameters, and a model, estimating one or more unknown parameters of the set of parameters by the computing device; receiving a desired width of the line by the computing device; and if the desired width is not the same as the measured width: adjusting the duty cycle associated with the printer based on the set of parameters and the model so that the measured width is closer to the desired width by the computing device.
In an embodiment, a method for printing a 2D pattern on a 3D surface is provided. The method includes receiving a 2D pattern by a computing device; receiving a point cloud of a 3D surface by the computing device, wherein the point cloud comprises a plurality of points; selecting a subset of the points of the point cloud by the computing device; and generating a mapping of the 2D pattern to the subset of points by the computing device.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
The components in the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding parts throughout the several views.
As described herein, a small amount of liquid in the air having recently left a jetting nozzle of a printer is referred to as a drop, while the liquid in contact with a surface is referred to as a spot. A spot deposited on a solid substrate will flatten and spread. The degree to which a drop of liquid spreads on a solid surface is referred to as wetting. Wetting is a complex phenomenon dependent on the chemical properties of the liquid, solid surface and surrounding air, physical properties of the solid such as surface roughness, temperature, and possible contamination such as dirt, oil, etc. Drop volume has the strongest influence on spot size, followed by fluid viscosity and surface interactions. Drop velocity and impact dynamics are generally negligible for small drops if the impact is normal to the surface. Note while the disclosed systems and methods are described with respect to depositing or printing ink on surfaces, it is for illustrative purposes only. The disclosed systems and methods can be used to print, write, or deposit materials such as liquids or gels on a variety of surfaces.
A second factor influencing line width is drop-to-drop spacing. Constant velocity of the nozzle of the printer mitigates changes in line width due to spacing. Single spot diameter determined by wetting defines the minimum line width, and reduction in spacing between drops/spots increases the line width.
Wetting is typically studied in terms of contact angles (
The diameter of a spot on the surface, as viewed from above, can be described as a function of the spot volume V and contact angle. Depending on θ, the diameter d is
Given accurate knowledge of the material properties, it is possible to estimate θ off-line and determine the correct volume for a drop to give a desired diameter. While research has gone into control to correctly generate the desired volume, if there is error in the estimate of θ, the diameter will be incorrect. Given a desired spot diameter dd, the error in spot diameter is defined as e(t)=d(t)−dd(t). Consider the case of θ<90°, and assume θ is constant. The change of spot diameter is a function of the drop volume:
Collecting the constant terms as
the relationship between {dot over (d)} and {dot over (V)} can be written as
Equation (1) also can be represented as
By substituting (6) in (4) we obtain
Consider D(t) as valve duty cycle and estimate the model between {dot over (V)}(t) and {dot over (D)}(t) for a specific range of duty cycle as the linear equation (8). Note that in some embodiments, rather than valve duty cycle voltage, a current duty cycle of a DC motor could be used, as well as proportional current of an AC motor. Equation (8) is
{dot over (V)}(t)=a{dot over (D)}(t) (8)
in which case {dot over (d)}(t) can be written as
where b=9β3α. To give (10) a control affine form, we design D as
{dot over (D)}=ad
3
+d
2
u,a>0 (11)
with u as our new virtual input and a as a parameter that can be chosen by the user to determine the speed of the dynamics. Using (11), we transform (10) to
{dot over (d)}=abd+bu (12)
Note that b encapsulates all unknown parameters and depends on surface and liquid characteristics. We assume that b is constant for a fixed surface, liquid and valve.
Our final model is then
{dot over (d)}=abd+bu=b(ad+u)=bf(d,u)
γ=d. (13)
where u can be converted to the real input based on (11).
In this section, a new, exponentially fast estimation approach is introduced to learn parameters in a class of nonlinear systems. Taking advantage of this knowledge, a Lyapunov-based tracking control is also applied in parallel with the estimation phase to follow the desired value.
Definition 1. A set S⊂ is called measure zero if
∀ϵ>0,∃{Ik}k=1∞,s.t.S⊆∪kIkand Σkl(Ik)<ϵ, (14)
where Ik: =(ak, bk) ⊂ are open intervals with length l(Ik): =bk−ak. In other words, if the sum of the lengths of intervals enclosing all elements of S can be made arbitrarily small, a finite set of points is of measure zero.
Theorem 1. For a nonlinear system, we define a dynamic model as
{circumflex over ({dot over (d)})}={circumflex over (b)}f(d,u) (15)
where {circumflex over (b)}(t)∈ is an estimate of constant b≠0; furthermore, {circumflex over (b)}(t) is updated according to the following rule
{circumflex over ({dot over (b)})}=−k1{circumflex over (b)}+k2s, (16)
where k1, k2∈+ are positive scalar gains, and s is given by
If the set of times ={t∈|f(d,u)=0} is a measure zero set, then exponentially converges to b from any initial value. Furthermore, if k12>4k2, and {circumflex over (b)} has initial condition {circumflex over (b)}(t0)>0, then {circumflex over (b)} will never equal 0.
Proof. Define our estimation error as
e
b
=b−{circumflex over (b)}. (18)
Taking the time derivative of eb gives
ė
b={circumflex over ({dot over (b)})}. (19)
Replacing (16) in (19)
ė
b
=k
1
{circumflex over (b)}−k
2
s. (20)
Replacing s from (17) when t∉ (i.e., when f (d, u)≠0) gives dynamics
Taking another time derivative of (21) and replacing {circumflex over ({dot over (b)})} with (19) gives
ë
b
k
1
ė
b
k
2
e
b=0. (22)
Because k1, k2>0, then eb exponentially converges to zero and {circumflex over (b)} converges to b.
For t∈, replacing s from (17) in (16), when f (d, u)=0, the dynamics are given by
{circumflex over ({dot over (b)})}=−k1{circumflex over (b)} (23)
which guarantees {circumflex over (b)}(t) does not jump or increase ∀t∈. Considering (18) and that b is constant, eb also does not jump or increase ∀t∈. As the set of times is measure zero, those set of times do not contribute to the solution of eb(t), and eb exponentially converges to zero based on (22). Furthermore, if k12>4k2, the system described in (22) is overdamped and will not overshoot or experience oscillations. As b>0, {circumflex over (b)} with initial condition {circumflex over (b)}(t0)>0 will converge to b without crossing 0.
Note that it is possible to estimate d in (17) using a variety of methods. While a backwards difference estimate is generally susceptible to sensor noise, in our case the estimate is immediately integrated, which provides filtering and mitigates noise. Our experimental results use backwards difference and do not show obvious ill effects.
Let the system in (13) be rearranged to
Lemma 1. Let dd(t)∈ be a differentiable desired trajectory. Assume b≠0. Under the estimator design given by (16), {circumflex over (b)} is an estimate that exponentially converges to b, according to Theorem 1. Setting u={circumflex over (b)}−1(dd−{circumflex over (b)}ad−ket), where k∈+ is a positive definite tracking gain. Under the conditions that 1) {circumflex over (b)}(t)≠0, and 2) k1, k2 are sufficiently large k12>>4k2), then the system in (24) remains stable, and d converges to dd exponentially as time goes to infinity.
Proof. Define et=d−dd, and set a Lyapunov function candidate as
Taking the time derivative of (25) leads to
Defining Eb=b/{circumflex over (b)}−1 gives
{dot over (W)}=−k(Eb+1)et2+Eb{dot over (d)}det (27)
By defining C(x, t)=Eb{dot over (d)}d, equation (27) can be rewritten
{dot over (W)}=−k(Eb+1)et2+C(x,t)et. (28)
Let i∈ and ai, bi∈+. We know from the estimator design and Theorem 1 that eb is exponentially decaying to zero, therefore the absolute value of eb can be upper bounded by a decaying exponential of the form |eb|≤a0e−b
Likewise, C(x, t) can also be upper bounded by an decaying exponential |C(x, t)|≤a2e−b
{dot over (W)}≤(|k|a1e−b
≤−2(|k|−|k|a1e−b
A closed-form solution for the ODE (29) exists, but it is quite complicated. Instead, we solve W(t) from two different initial conditions, W(t0)≥1 and W(t0)<1. We show the solution for the system when W(t0)≥1 will grow smaller until W(t)<1, and that the solution for the system when W(t0)<1 grows smaller and is lower bounded by 0. Note then, that if W(t0)≥1, the system will eventually enter the domain for W(t0)<1 and thus W(t) converges to 0 for all initial conditions.
For the case W(t)≥1, we have W(t)+√{square root over (W(t))}≤2 W(t), and we can replace (29) with
{dot over (W)}≤−2|k|W+a3e−b
where a3e−b
where we replace the constant term in parenthesis with γ. The solution (31) decays exponentially from any W(t0)>1, and eventually W(t)<1 at some time t1.
For the case W(t)<1, W(t)+√{square root over (W(t))}≤2√{square root over (W(t))}, and we can replace (29) with
{dot over (W)}≤−2|K|W+a3e−b
The ODE (32) with initial condition W(t)=W(t1) has a solution
The solution in (33) decays to zero if |k|≥b3. Therefore W(t) is upper bounded by an exponentially decaying function for any initial condition W(t0), and is lower bounded by 0. By the Comparison Lemma [10], W(t)→0 as t→∞, which means d→dd.
Note that the requirement that dd(t) be differentiable will rule out some desired patterns, such as piece-wise linear or step changes in line width. These can be approximated as close as necessary with smooth functions, such as splines or smooth heaviside approximations.
If Lemma 1 is satisfied, and dd does not satisfy
d
d(t)=dd(0)e−kt+e−kt∫0tkd(s)e−ksds. (34)
for any non-instantaneous interval of time, then the set of times ={t∈|f(d,u)=0} is a measure zero set for the system described in (13).
Proof. Given f (d, u)=ad+u and replacing u from Lemma 1, we have
f(d,u)=ad+u={circumflex over (b)}−1({dot over (d)}dk(et)). (35)
The proof is considered in two cases. In the first case, we assume {dot over (d)}d(t) is not identically equal to zero for a span of time. I.e.,α≥0, β≤∞,s. t. {dot over (d)}d(t)=0∀t∈[α, β]. Following Lemma 1, et exponentially converges to zero and {circumflex over (b)}≠0. From Theorem 1, {circumflex over (b)} is bounded and {circumflex over (b)}−1≠0. It remains to show that
In the second case, we assume dd(t) does become identically equal to zero for a span of time. I.e., ∃α≥0, β≤∞,s.t. {dot over (d)}d(t)=0 ∀t∈[α,β]. Because {circumflex over (b)}≠0 and {dot over (d)}d(t)=0, f (d, u) in (35) only depends on et. Note that et converges to zero exponentially based on Lemma 1. Therefore et approaches 0 in the limit but is not identically zero for any noninstantaneous interval of time; i.e. for t∈[α,β],={t|f (d, u)=0} is a measure 0 set.
Consider a nonlinear system described in (13). We define a dynamic model as (15), where {circumflex over (b)}(t) is the estimate of b≠0 where {circumflex over (b)}(t=0)≥0, and is updated according to (16). k1 and k2 are positive and sufficiently large, where k12>4k2 designed to render an overdamped second order differential equation of (22), s is defined according to (17), and T is a measure zero set based on Corollary 1. u in (24) can be designed as follows (where we can show {circumflex over (b)}(t) never becomes zero)
u={circumflex over (b)}
−1({dot over (d)}d−{circumflex over (b)}ad−ket) if {circumflex over (b)}≠0 (36)
Then, {circumflex over (b)} and d remain stable and converge to b and dd respectively, when time goes to infinity.
Proof. Because k12>4k2 and b is always positive, {circumflex over (b)}(t) with {circumflex over (b)}(t=0)>0 converges to b in an overdamped fashion and never crosses zero. Substituting (36) and (24) into (26) gives derivative of the Lyapunov function
{dot over (W)}=−2k(Eb+1)W+√{square root over (2W)}C(x,t),{circumflex over (b)}≠0. (37)
This solution obeys the bounds given in (31) for W(t)≥1 and (33) for W(t)≤1. Based on Lemma 1, d remains bounded and converges to dd. Based on Theorem 1, and because in this case is a zero-measure set, {circumflex over (b)} also converges to b independent of the input.
In this section, we try to simulate and control the line width of the ink jet printing system using our approach and compare our scheme with Model Reference Adaptive Control (MRAC) and Adaptive Pole Placement Control (APPC). Finally, we simulate a set point regulation by applying our approach where MRAC and APPC cannot achieve parameter convergence.
In this section, we simulate the proposed estimation and control scheme to regulate line width for both ideal and non-ideal situations.
We first test our estimator and control scheme under ideal conditions using Simulink. We set b=0.5 and constant. The desired line diameter is a sinusoidal function
d
d=sin(t)+1 (38)
which varies between 0 and 2 mm. In the graph 200 of
In the graph 300 of
1.2 Performance with a Time-Varying Unknown Parameter
In real scenarios, b is not constant due to different factors like dirt, surface non-coherence, etc. We next simulate a situation in which b varies between 0.4 and 0.6 due to the aforementioned factors. At each time instant, we define b as a random variable with mean of 0.5 and variance 0.1 with saturation limits of 0.4 and 0.6. We used the proposed control law with {circumflex over (b)}(t=0)=0.1 and k=1.
The graph 500 of
Assume the plant in (12). Here, we simulate the plant applying our adaptation law and control method. Set point is r(t)=1. One can observe in contrast to MRAC and APPC, parameter estimation error converges to zero, without PE.
We present experiments of line width regulation in ink-jet deposition. In one embodiment, a Staubli TX90 robot arm has a solenoid valve is mounted to the end effector. The valve mount was designed in Solidworks and machined such that the offset from the end effector flange is precisely known. We also mounted an Intel RealSense R300 RGB-D camera on the end effector, with image processing routines measuring line width. The robot is controlled to move in a horizontal line with constant desired velocity based on the built-in firmware. Based on the line width error, the proposed estimation in Theorem 1, and control algorithm introduced in Theorem 2, equation (36), are run on C++ code on an Intel i5 laptop. Control outputs are then sent to an Arduino microcontroller, which generates a pulse train to drive the solenoid valve. Colored water under regulated pressure is then deposited. Other computing systems may be used such as the computing system 1400 disclosed in
At 710, a set of parameters associated with a printer is received. The parameters may include one or more unknown parameters related to the characteristics of the ink and the surface that is being printed on. Because some of the unknown parameters may be difficult to measure or obtain, a single parameter may be estimated to represent the cumulative uncertainties associated with the set of parameters. The estimated single parameter may be provided by a non-linear estimator.
At 720, a duty cycle associated with the printer is received. The duty cycle may be the valve duty cycle and may represent the amount of time that the valve is open or the speed of a motor. The duty cycle of the printer may be provided by manufacturer of the printer or may be measured by a user or administrator.
At 730, the line width of the line is measured. The line width may be measured by a camera or other sensor capable of measuring the width of a line.
At 740, using the duty cycle, the parameters, and a model, one or more unknown parameters are estimated. Depending on the embodiment, steps 730 and 740 may be performed at or around the same time.
At 750, a desired width of the line is received. The desired with may be provided by a user or administrator. Depending on the embodiment, the desired width may be provided by a particular equation or function that the printer is printing or depositing on the surface.
At 760, it is determined that the measured line width is not the same as the desired line width. The determination may be made by comparing the measured line width to the desired line width. Any method for comparing line widths may be used.
At 770, a duty cycle of the printer is adjusted based on the set of parameters and the model in response to the determination. The duty cycle may be adjusted such that the line width measured by the model is closer to the desired line width. Any method for adjusting the duty cycle of a printer may be used. After adjusting the duty cycle, the method 700 may return to 720 to continue to monitor line width.
II. Trajectory Planning Over Regular General Surfaces with Application in Robot-Guided Deposition Printing
Systems and methods to design and carry out trajectories over regular curved surfaces are provided. In one embodiment, constrained optimization is used to find a surface parametrization that preservers the shape of a desired curve or trajectory from 2D onto a 3D surface. Surface parametrization can be considered as a mapping from a surface to a parametric domain in lower dimensions. Surfaces that are homomorphic to a disk have a parameter space in the 2D plane. This concept lets us map a curve or trajectory defined in 2D to a geometric shape in 3D space. This mapping can result in distortion in the shape and size of the curve. As we want the pattern on the surface to be similar to the original 2D pattern, isometric (length preserving) and conformal (angle preservative) mappings are desirable to minimize distortion.
The first concept in our approach is to use a Bezier surface parameterization to fit a parametrized surface to a point cloud representation of the surface, such as from a lidar or 3D camera. A Bezier surface is initially defined using points in the point cloud as the control points in the Bezier surface definition. The control points are then adjusted through a novel optimization to provide a better surface fitting between Bezier surface and the point cloud. In this way, there is no need to know the parameterized manifold equation of the surface. The second concept is to extend the surface fitting through a novel constrained optimization procedure such that 2D curves are mapped to the surface with minimal distortions; specifically, the mapping is as close to conformal or isometric as possible. A third concept adds constraints to the optimization that enforce the mapped trajectory lie within a specific region on the surface or pass through specific points. An example of mapping a complicated, discontinuous parameterized curve 810 from 2D to a regular 3D shape 820 is shown in
Focusing on our application of deposition printing, we discuss how to take the defined 3D curve and design the trajectory of a robot arm end effector to guide a nozzle along the surface while maintaining a distance to surface and remaining normal to the surface while printing/depositing materials on the curved surface.
In this section, we cover a variety of topics from differential geometry and surface fitting that we need in ensuing sections. These topics include regular surfaces, surface parametrization, mapping, conformal mapping, Bezier surfaces, etc.
Parametrized surfaces extend the idea of parametrized curves in Euclidean space. It can be considered as a one-to-one mapping from the surface to a specific domain. A parametrized surface is a smooth function rs(u, v): U→3 where u and v are in , and U is an open set in 2, such that for all q∈U, drs(q) has rank 2, where drs(q) is the Jacobian of rs at q.
We are specifically interested in regular surfaces on which the usual notation of calculus on a parametrized surface can be applied. The tangent plane is defined at every point on a regular surface. Consider a surface S⊂3 with parametric representation
r
s(u,v)=[x(u,v),y(u,v),z(u,v)]=r (1)
for points [u, v] in a topological disk in 2 (e.g. a single connected piece with no holes), and r is short notation of the surface parametrization. This representation is regular if for each p∈S, there exist a neighborhood V⊂3 and a map rs:U→V∩S of an open set U⊂2 onto V∩S⊂3 such that
1. x(u, v), y(u, v), z(u, v) have continuous partial derivatives of all orders in U;
2. rs is a homeomorphism; and
3. For each q E U, the differential drs: 2→3 is one-to-one.
A regular parametrized surface can be approximated by a two-dimensional Bezier surface. A Bezier surface is a function of two independent variables given by the tensor product equation
P(u,v)=Σj=0MΣi=0NPi,jBi,N(u)Bj,m(v),0≤u,v≤1 (2)
where Pi,j∈3 are control points, and are basis functions (or blending functions) called bi-variate Bernstein polynomials. To derive equation (2) to approximate a given surface, we need (N+1)(M+1) control points chosen from points on the surface. Larger N and M can provide better surface approximation. A Bezier surface will cross through some control points at the corners and lies in the convex hull of all of its control points. Therefore, taking surface points as control points will result in a Bezier surface spline that is not in contact with the surface at the control points. Indeed, the residual error between the Bezier surface spline and 3D surface can be notable. However, we later show that surface points can be an educated initial guess for an optimization problem to fit a Bezier surface to a given surface.
C. Mapping from a Plane onto a Surface
Many pertinent curves/trajectories can be initially designed and defined in 2D and then mapped from 2D onto a given 3D surface through knowledge of a parameterization of the surface. There can be multiple parameterizations for a given surface. We are interested in those that lead to the least possible distortion. For example, when a rectangle is mapped onto a surface, one desires the corner angles remain right. Some distortion indices, such as length, angle and area, are used to represent different mappings.
The image of a map rs(u, v)=[x(u, v), y(u, v), z(u, v)] defines a surface parametrization, where rs:2→3. The surface is defined by three functions x(u,v), y(u,v),z(u,v); each is a function of two variables u and v. The image of a map rc(θ)=[x(θ), y(θ), z(θ)] from parameter θ∈ to a curve rc⊂3, is called curve parametrization. This parametrization can be presented in the 2D domain as rcp(θ)=[u(θ), v(θ)], where rcp⊂2 is a curve in a plane such that rc(θ)=rs∘rcp(θ).
As examples of rcp for simple, popular curves, let a, b, ω, α, β ∈ be constants and θ∈[α, β]⊂.
An analytic surface parametrization may be used for mapping a curve onto a surface. Taking advantage of a Bezier surface definition, we present a parametrized function of the surface based on (2), with control points that need to be optimized, such that the optimized Bezier surface represents the given surface. Consider a surface S, for which we seek a parametrization rs(u, v), as in (1). Assume a point cloud has been captured of S, such as from a LiDAR or 3D camera.
and P is a tensor of (N+1)(M+1) control points Pi,j, i∈{0 . . . N}, j∈{0 . . . M}. If P is chosen from points in the point cloud, this Bezier formulation leads to a surface that only passes through some corner points and not all points in the point cloud. This is not a sufficient fit for our purposes. To get a better fit, we find an optimal P, and consequently K, such that the Bezier surface passes through a set of points in the point cloud Pni,j, i∈{0 . . . N}, j∈{0 . . . M}. To realize this optimization, let
be evenly gridded points on the uv plane (note that (N+1)(M+1) is the number of points). Then, let Pni,j be the point in the point cloud with the projection onto the uv plane closest to the point [ui,j, vi,j].
The optimization problem of fitting rs(ui,j, vi,j) to Pni,j, i∈{0 . . . N}, j∈{0 . . . M}, can be solved by finding the value of K that minimizes the objective function
(recalling that rs(ui,j, vi,j) is a function of K in (3) and (4)). To minimize (5), we employ an interior-point optimization method (specifically, we use the fmincon function in MATLAB) with Pi,j=Pni,j as our educated initial estimate. Interior-point optimization is an approach well-known for constrained minimization. This method defines an alternative approximate problem that is easier to solve than the original problem. Although there is no constraint in our optimization problem, we prefer to apply interior-point due to its accuracy and the fact that we will face optimization problems with nonlinear constraints later in this work.
After optimization, we can treat rs(u, v) as a good mapping function from the uv plane onto the surface S, which passes through Pni,j. To achieve still better results, and in case we need to cover a large surface area, we apply piecewise Bezier functions and partition the surface into different subsurfaces
and optimization is applied to each subsurface according to (5) plus a continuity condition.
Numerical optimization is sensitive to initial value, and we do not assume convexity of the optimization function. Therefore, the initial guess has a crucial role for fewer number of iterations and to avoid numerical divergence. Using points from the point cloud as the initial control points in Bezier formulation provides an educated initial guess.
In addition to a good fit, minimum distortion of angles is also desirable. This helps us to keep the structure and geometry of the curve rc similar to the original rcp in 2D. Isometric maps are the ideal, however, in many cases there is no isometric mapping. Conformal maps are a good practical options to be considered. To apply our optimization method to preserve angle, the following statement is presented.
Theorem 1. Let S1 and S2 be a pair of regular surfaces. Then, a diffeomorphism rs: S1→S2 is conformal if it preserves local angles, that is, if for all p∈S1 and all x, y∈TpS1, <(x,y)=<(drp(x),drp(y)), where drp(x)=<(∇r)(p),x>, and TpS1 is the tangent plane of S1 at the point p.
This leads to a constrained optimization problem
for some points pi in uv plane (S1) and xl, yl∈TpS1. This optimization may be solved using an interior-point method, and leads to a mapping fit to points Pni,j (first term) and preserves local angles based on the second term in (7).
Having a set of desired way points pti∈S, i=0, . . . , n, one might want the mapped pattern pass through them. This means, we not only impose that the pattern structure remains similar to the original pattern, but that pattern rcp(θ) should visit the set of points on the surface. This optimization problem can be formulated as
where K need to be tuned to minimize J for a good fit to the surface points. The second term preserves local angles, and last term forces the mapped pattern to go through the desired points.
We present experimental validation of the procedure discussed above.
In some implementations, a 3D camera such as an Ensenso N35 3D camera by Image Development Systems may be used. The 3D camera uses a stereo-paired of near infrared cameras with an IR projector to generate a dot pattern. The stereo cameras uses the dot pattern to provide texture for matching points in the two images. Both projector and cameras operate at approximately 850 nm wavelength. The result is a 1280×1024 point cloud. Other sized point clouds may be used. At a standoff distance of approximately 0.5 m from a target, the point cloud depths are accurate to about 0.5 mm.
The camera may be calibrated using a calibration board, where the center of the board is considered as the origin of the point clouds generated using the camera after calibration. This coordinate frame is denoted by FW, and we assume all point clouds are generated by the camera with respect to (WRT)FW.
The above described camera may be used to capture point clouds from a plurality of shapes. In the example described herein the shapes include a sphere and a manikin face. Other shapes may be used.
For each shape, 2500 evenly distributed points Pni,j, i∈{0 . . . 49}, j∈{0 . . . 49} on the surface to cover the desired area were selected. Through these points, an educated initial guess for the control points in Bezier surface is obtained (Pi, =Pni,j). Then, by minimizing the objective function in (7), rs(u, v) is achieved as a mapping from 2D plane onto the desired shape.
To show the necessity of the angle preservation constraint, an example of pattern placement on the manikin cheek is provided. In
In order to use a robot to conduct deposition printing, it may be necessary to use the mapped curve to define a robot trajectory or path. This trajectory must move the print head nozzle along the curve, while maintaining a specific distance to the surface and keeping the nozzle normal to the surface. Similar tasks would be needed for guiding a UAV over a curved surface while keeping sensors aimed at the ground.
In one embodiment, the robot used is a Staubli TX90, with 6 rotational joints. Other robots may be used. A mount for the nozzle was machined, with the offset from the robot flange to the nozzle known through the CAD design. We considered the nozzle tip as the robot end effector. As the camera is calibrated, point clouds are captured WRT board frame (FW). To map trajectories defined in FW to the robot frame FR, we use the transformation
where F
After coordinate transformation to the robot frame, it is desirable to set the z-axis of the nozzle normal to the surface, and nozzle top position equal to the mapped curve position on the surface plus a z-axis position offset. We define a rotation matrix based on Euler angles as
where, C and S stand for cos and sin. Recall that the columns of F
where u and v are parameterized as [u, v]=[u(θ), v(θ)] for θ⊂. By setting the last column of the rotation matrix in (9) to n, we set the z direction of the end effector equal to surface normal vector; α and β are then derived as
α=atan 2(−n2,n3),β=atan 2(n1 sin(α),n2) (11)
As the end effector moves along the curve, we need to avoid extreme rotation of the final robot joint to prevent tangling/pulling the tubes leading to the nozzle and prevent the robot from hitting its joint limit. We achieve this by setting the second element of the first column of the rotation matrix in (9) (i.e., the x-axis of the end effector WRT FR) equal to zero. This enforces the end effector x-axis to remain tangent to the xz plane in FR. This leads to
γ=atan 2(sin(α)sin(β), cos(γ)). (12)
Given α, β, γ and n, the axes FE are uniquely defined for every point on the curve.
At 1310, a 2D pattern is received. The 2D pattern may be an image and may be received from a user or administrator. Any type of 2D pattern may be supported.
At 1320, a point cloud of a 3D surface is received. The point cloud may be received from a 3D camera and may be a 1024×1024 point cloud. Other types of point clouds may be supported. The point cloud may have a coordinate frame that is denoted as FW.
At 1330, a subset of the points of the point cloud are selected. The subset of points are the initial control points and may be selected as described above for placing the 2D pattern on the 3D surface.
At 1340, a mapping of the 2D pattern to the subset of points is generated. The mapping rs(u, v) of the 2D pattern may be mapping from the 2D pattern to the points of the control points corresponding to the 3D surface. The mapping may be generated by minimizing the objective function described at (7). Other methods may be used. The mapping may be both isometric and conformal.
At 1350, a path is generated on the 3D surface using the mapping. The path may be a trajectory that will be followed by the print head nozzle of the printer over the 3D surface while maintaining a specified distance from the 3D surface. The path or trajectory may be determined as described above. In some embodiments, the path may be defined as a .csv file that lists the coordinate of the Cartesian frame [(x,y,z,α,β,γ)] at each time step. Other types of file or definitions may be used.
At 1360, a printer is instructed to draw the 2D pattern on the 3D surface using the generated path. Any method for providing instructions to a printer or robot may be used.
Numerous other general purpose or special purpose computing devices environments or configurations may be used. Examples of well-known computing devices, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, network personal computers (PCs), minicomputers, mainframe computers, embedded systems, distributed computing environments that include any of the above systems or devices, and the like.
Computer-executable instructions, such as program modules, being executed by a computer may be used. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Distributed computing environments may be used where tasks are performed by remote processing devices that are linked through a communications network or other data transmission medium. In a distributed computing environment, program modules and other data may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computing device 1400 may have additional features/functionality. For example, computing device 1400 may include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in
Computing device 1400 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by the device 600 and includes both volatile and non-volatile media, removable and non-removable media.
Computer storage media include volatile and non-volatile, and removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Memory 1404, removable storage 1408, and non-removable storage 1410 are all examples of computer storage media. Computer storage media include, but are not limited to, RAM, ROM, electrically erasable program read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device 900. Any such computer storage media may be part of computing device 1400.
Computing device 1400 may contain communication connection(s) 1412 that allow the device to communicate with other devices. Computing device 1400 may also have input device(s) 1414 such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 1416 such as a display, speakers, printer, etc. may also be included. All these devices are well known in the art and need not be discussed at length here.
It should be understood that the various techniques described herein may be implemented in connection with hardware components or software components or, where appropriate, with a combination of both. Illustrative types of hardware components that can be used include Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc. The methods and apparatus of the presently disclosed subject matter, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium where, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the presently disclosed subject matter.
Although exemplary implementations may refer to utilizing aspects of the presently disclosed subject matter in the context of one or more stand-alone computer systems, the subject matter is not so limited, but rather may be implemented in connection with any computing environment, such as a network or distributed computing environment. Still further, aspects of the presently disclosed subject matter may be implemented in or across a plurality of processing chips or devices, and storage may similarly be effected across a plurality of devices. Such devices might include personal computers, network servers, and handheld devices, for example.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
This application is a divisional of U.S. patent Ser. No. 16/913,651, filed on Jun. 26, 2020, entitled “LINE WIDTH CONTROL AND TRAJECTORY PLANNING FOR ROBOT GUIDED INKJET DEPOSITION”, which claims the benefit of priority to U.S. Provisional Patent Application No. 62/868,334, filed on Jun. 28, 2019, entitled “PARAMETER ESTIMATION AND LINE WIDTH CONTROL OF ROBOT GUIDED INKJET DEPOSITION.” The contents of both are hereby incorporated by reference in their entirety.
This invention was made with government support under award abstract numbers 1933558 and 1563424 awarded by the National Science Foundation. The government has certain rights in the invention.
Number | Date | Country | |
---|---|---|---|
62868334 | Jun 2019 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16913651 | Jun 2020 | US |
Child | 17931243 | US |