Skip to content

Commit

Permalink
build based on ebbe4eb
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Aug 22, 2023
1 parent 3ce80ea commit 87cc0a0
Show file tree
Hide file tree
Showing 29 changed files with 121 additions and 121 deletions.
186 changes: 93 additions & 93 deletions dev/api.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/background_contact/collisions.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/background_contact/contact_models.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/background_contact/impact.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/background_contact/linearized_friction.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@
\psi \cdot (\mu \gamma - \beta^T \textbf{1}) &= 0, \\
\beta \circ \eta &= 0, \\
\beta, \psi, \eta &\geq 0,
\end{align*}\]</p><p>where <span>$\psi \in \mathbf{R}$</span> and <span>$\eta \in \mathbf{R}^{4}$</span> are the dual variables associated with the friction cone and positivity constraints, respectively, and <span>$\textbf{1}$</span> is a vector of ones.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="nonlinear_friction.html">« Nonlinear friction</a><a class="docs-footer-nextpage" href="collisions.html">Collisions »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 0.27.25 on <span class="colophon-date" title="Tuesday 22 August 2023 13:37">Tuesday 22 August 2023</span>. Using Julia version 1.9.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
\end{align*}\]</p><p>where <span>$\psi \in \mathbf{R}$</span> and <span>$\eta \in \mathbf{R}^{4}$</span> are the dual variables associated with the friction cone and positivity constraints, respectively, and <span>$\textbf{1}$</span> is a vector of ones.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="nonlinear_friction.html">« Nonlinear friction</a><a class="docs-footer-nextpage" href="collisions.html">Collisions »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 0.27.25 on <span class="colophon-date" title="Tuesday 22 August 2023 16:31">Tuesday 22 August 2023</span>. Using Julia version 1.9.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/background_contact/nonlinear_friction.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@
&amp; \quad \beta^{(i)}_{(1)} - \mu^{(i)} \gamma^{(i)} = 0, &amp;&amp; \quad i = 1, \dots, P,\\
&amp; \quad \gamma, s \geq 0,\\
&amp; \quad \beta^{(i)}, \eta^{(i)} \in \mathcal{Q}^3, &amp;&amp; \quad i = 1, \dots, P,
\end{align*}\]</p><p>where <span>$u \in \mathbf{R}^m$</span> is the control input at the current time step, <span>$\lambda = (\beta^{(1)}_{(2:3)}, \gamma^{(1)}, \dots, \beta^{(P)}_{(2:3)}, \gamma^{(P)}) \in \mathbf{\Lambda}$</span> is the concatenation of impact and friction impulses, <span>$B : \mathbf{Z} \rightarrow \mathbf{R}^{6N \times m}$</span> is the input Jacobian mapping control inputs into maximal coordinates, <span>$C : \mathbf{Z} \rightarrow \mathbf{R}^{\text{dim}(\mathbf{\Lambda}) \times 6N}$</span> is a contact Jacobian mapping between maximal coordinates and contact surfaces, <span>$s \in \mathbf{R}^P$</span> is a slack variable introduced for convenience, and <span>$v^{(i)} : \mathbf{Z} \times \mathbf{Z} \rightarrow \mathbf{R}^2$</span> is the tangential velocity at contact point <span>$i$</span>. Joint limits and internal friction are readily incorporated into this problem formulation.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="impact.html">« Impact</a><a class="docs-footer-nextpage" href="linearized_friction.html">Linearized Friction »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 0.27.25 on <span class="colophon-date" title="Tuesday 22 August 2023 13:37">Tuesday 22 August 2023</span>. Using Julia version 1.9.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
\end{align*}\]</p><p>where <span>$u \in \mathbf{R}^m$</span> is the control input at the current time step, <span>$\lambda = (\beta^{(1)}_{(2:3)}, \gamma^{(1)}, \dots, \beta^{(P)}_{(2:3)}, \gamma^{(P)}) \in \mathbf{\Lambda}$</span> is the concatenation of impact and friction impulses, <span>$B : \mathbf{Z} \rightarrow \mathbf{R}^{6N \times m}$</span> is the input Jacobian mapping control inputs into maximal coordinates, <span>$C : \mathbf{Z} \rightarrow \mathbf{R}^{\text{dim}(\mathbf{\Lambda}) \times 6N}$</span> is a contact Jacobian mapping between maximal coordinates and contact surfaces, <span>$s \in \mathbf{R}^P$</span> is a slack variable introduced for convenience, and <span>$v^{(i)} : \mathbf{Z} \times \mathbf{Z} \rightarrow \mathbf{R}^2$</span> is the tangential velocity at contact point <span>$i$</span>. Joint limits and internal friction are readily incorporated into this problem formulation.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="impact.html">« Impact</a><a class="docs-footer-nextpage" href="linearized_friction.html">Linearized Friction »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 0.27.25 on <span class="colophon-date" title="Tuesday 22 August 2023 16:31">Tuesday 22 August 2023</span>. Using Julia version 1.9.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/background_representations/gradients.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/background_representations/maximal_representation.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/background_representations/minimal_representation.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/background_solver/interior_point.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
\text{subject to} &amp; \quad c(x, y, z; \theta) = 0, \\
&amp; \quad y^{(i)} \circ z^{(i)} = \kappa \mathbf{e}, &amp;&amp; \quad i = 1,\dots,n, \\
&amp; \quad y^{(i)}, z^{(i)} \in \mathcal{K}, &amp;&amp; \quad i = 1,\dots, n,
\end{align*}\]</p><p>with decision variables <span>$x \in \mathbf{R}^k$</span> and <span>$y, z \in \mathbf{R}^m$</span>, equality-constraint set <span>$c : \mathbf{R}^k \times \mathbf{R}^m \times \mathbf{R}^m \times \mathbf{R}^l \rightarrow \mathbf{R}^h$</span>, problem data <span>$\theta \in \mathbf{R}^l$</span>; and where <span>$\mathcal{K}$</span> is the Cartesian product of <span>$n$</span> total positive-orthant and second-order cones. The variables are partitioned: <span>$x = (x^{(1)}, \dots, x^{(p)})$</span>, where <span>$i = 1$</span> are Euclidean variables and <span>$i = 2, \dots, p$</span> are each quaternion variables; and <span>$y = (y^{(1)}, \dots, y^{(n)})$</span>, <span>$z = (z^{(1)}, \dots, z^{(n)})$</span>, where <span>$j = 1$</span> is the positive-orthant and the remaining <span>$j = 2, \dots, n$</span> are second-order cones. For convenience, we denote <span>$w = (x, y, z)$</span>.</p><p>The algorithm aims to satisfy a sequence of relaxed problems with <span>$\kappa &gt; 0$</span> and <span>$\kappa \rightarrow 0$</span> in order to reliably converge to a solution of the original problem (i.e., <span>$\kappa = 0$</span>). This continuation approach helps avoid premature ill-conditioning and is the basis for numerous convex and non-convex general-purpose interior-point solvers.</p><h3 id="Violation-metrics:"><a class="docs-heading-anchor" href="#Violation-metrics:">Violation metrics:</a><a id="Violation-metrics:-1"></a><a class="docs-heading-anchor-permalink" href="#Violation-metrics:" title="Permalink"></a></h3><p>Two metrics are used to measure progress: The constraint violation,</p><p class="math-container">\[r_{\text{vio}} = \| c(w; \theta) \|_{\infty},\]</p><p>and complementarity violation,</p><p class="math-container">\[b_{\text{vio}} = {\text{max}}_i \{\| y^{(i)} \circ z^{(i)} \|_{\infty}\}.\]</p><p>The NCP is considered solved when <span>$r_{\text{vio}} &lt; r_{\text{tol}}$</span> and <span>$b_{\text{vio}} &lt; b_{\text{tol}}$</span>.</p><div class="admonition is-info"><header class="admonition-header">solver options</header><div class="admonition-body"><p>Both <code>r_tol</code> and <code>b_tol</code> are options that can easily be accessed and modified via <a href="../api.html#Dojo.SolverOptions"><code>SolverOptions</code></a>.</p></div></div><h3 id="Newton-Steps"><a class="docs-heading-anchor" href="#Newton-Steps">Newton Steps</a><a id="Newton-Steps-1"></a><a class="docs-heading-anchor-permalink" href="#Newton-Steps" title="Permalink"></a></h3><p>The main loop of the solver performs Newton&#39;s method on the equality-constraint set <span>$c$</span> and the bilinear constraints. The solver typically converges in about 10 iterations.</p><div class="admonition is-info"><header class="admonition-header">solver options</header><div class="admonition-body"><p>The maximal number of Newton&#39;s iterations <code>max_iter</code> can be set via <a href="../api.html#Dojo.SolverOptions"><code>SolverOptions</code></a>.</p></div></div><h3 id="Line-Search"><a class="docs-heading-anchor" href="#Line-Search">Line Search</a><a id="Line-Search-1"></a><a class="docs-heading-anchor-permalink" href="#Line-Search" title="Permalink"></a></h3><p>Newton&#39;s method provides a search direction, then we perform a line search along this direction to determine the step length <span>$\alpha$</span>. We use a backtracking line search that accepts the step whenever it decreases <span>$c_{\text{vio}}$</span> or <span>$b_{\text{vio}}$</span>. The line search starts with a step <span>$\alpha=1$</span>, if the step acceptance conditions are not met the step is decreased geometrically: <span>$\alpha \leftarrow s \cdot \alpha$</span>. The line search takes at most <code>max_ls</code> backtracking steps.</p><div class="admonition is-info"><header class="admonition-header">solver options</header><div class="admonition-body"><p>The scaling parameter <span>$s$</span> is called <code>ls_scale</code> and the maximum number of line search iteration <code>max_ls</code> can be set via <a href="../api.html#Dojo.SolverOptions"><code>SolverOptions</code></a>.</p></div></div></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../background_representations/gradients.html">« Background on Gradients</a><a class="docs-footer-nextpage" href="solver_options.html">Solver Options »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 0.27.25 on <span class="colophon-date" title="Tuesday 22 August 2023 13:37">Tuesday 22 August 2023</span>. Using Julia version 1.9.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
\end{align*}\]</p><p>with decision variables <span>$x \in \mathbf{R}^k$</span> and <span>$y, z \in \mathbf{R}^m$</span>, equality-constraint set <span>$c : \mathbf{R}^k \times \mathbf{R}^m \times \mathbf{R}^m \times \mathbf{R}^l \rightarrow \mathbf{R}^h$</span>, problem data <span>$\theta \in \mathbf{R}^l$</span>; and where <span>$\mathcal{K}$</span> is the Cartesian product of <span>$n$</span> total positive-orthant and second-order cones. The variables are partitioned: <span>$x = (x^{(1)}, \dots, x^{(p)})$</span>, where <span>$i = 1$</span> are Euclidean variables and <span>$i = 2, \dots, p$</span> are each quaternion variables; and <span>$y = (y^{(1)}, \dots, y^{(n)})$</span>, <span>$z = (z^{(1)}, \dots, z^{(n)})$</span>, where <span>$j = 1$</span> is the positive-orthant and the remaining <span>$j = 2, \dots, n$</span> are second-order cones. For convenience, we denote <span>$w = (x, y, z)$</span>.</p><p>The algorithm aims to satisfy a sequence of relaxed problems with <span>$\kappa &gt; 0$</span> and <span>$\kappa \rightarrow 0$</span> in order to reliably converge to a solution of the original problem (i.e., <span>$\kappa = 0$</span>). This continuation approach helps avoid premature ill-conditioning and is the basis for numerous convex and non-convex general-purpose interior-point solvers.</p><h3 id="Violation-metrics:"><a class="docs-heading-anchor" href="#Violation-metrics:">Violation metrics:</a><a id="Violation-metrics:-1"></a><a class="docs-heading-anchor-permalink" href="#Violation-metrics:" title="Permalink"></a></h3><p>Two metrics are used to measure progress: The constraint violation,</p><p class="math-container">\[r_{\text{vio}} = \| c(w; \theta) \|_{\infty},\]</p><p>and complementarity violation,</p><p class="math-container">\[b_{\text{vio}} = {\text{max}}_i \{\| y^{(i)} \circ z^{(i)} \|_{\infty}\}.\]</p><p>The NCP is considered solved when <span>$r_{\text{vio}} &lt; r_{\text{tol}}$</span> and <span>$b_{\text{vio}} &lt; b_{\text{tol}}$</span>.</p><div class="admonition is-info"><header class="admonition-header">solver options</header><div class="admonition-body"><p>Both <code>r_tol</code> and <code>b_tol</code> are options that can easily be accessed and modified via <a href="../api.html#Dojo.SolverOptions"><code>SolverOptions</code></a>.</p></div></div><h3 id="Newton-Steps"><a class="docs-heading-anchor" href="#Newton-Steps">Newton Steps</a><a id="Newton-Steps-1"></a><a class="docs-heading-anchor-permalink" href="#Newton-Steps" title="Permalink"></a></h3><p>The main loop of the solver performs Newton&#39;s method on the equality-constraint set <span>$c$</span> and the bilinear constraints. The solver typically converges in about 10 iterations.</p><div class="admonition is-info"><header class="admonition-header">solver options</header><div class="admonition-body"><p>The maximal number of Newton&#39;s iterations <code>max_iter</code> can be set via <a href="../api.html#Dojo.SolverOptions"><code>SolverOptions</code></a>.</p></div></div><h3 id="Line-Search"><a class="docs-heading-anchor" href="#Line-Search">Line Search</a><a id="Line-Search-1"></a><a class="docs-heading-anchor-permalink" href="#Line-Search" title="Permalink"></a></h3><p>Newton&#39;s method provides a search direction, then we perform a line search along this direction to determine the step length <span>$\alpha$</span>. We use a backtracking line search that accepts the step whenever it decreases <span>$c_{\text{vio}}$</span> or <span>$b_{\text{vio}}$</span>. The line search starts with a step <span>$\alpha=1$</span>, if the step acceptance conditions are not met the step is decreased geometrically: <span>$\alpha \leftarrow s \cdot \alpha$</span>. The line search takes at most <code>max_ls</code> backtracking steps.</p><div class="admonition is-info"><header class="admonition-header">solver options</header><div class="admonition-body"><p>The scaling parameter <span>$s$</span> is called <code>ls_scale</code> and the maximum number of line search iteration <code>max_ls</code> can be set via <a href="../api.html#Dojo.SolverOptions"><code>SolverOptions</code></a>.</p></div></div></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../background_representations/gradients.html">« Background on Gradients</a><a class="docs-footer-nextpage" href="solver_options.html">Solver Options »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 0.27.25 on <span class="colophon-date" title="Tuesday 22 August 2023 16:31">Tuesday 22 August 2023</span>. Using Julia version 1.9.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit 87cc0a0

Please sign in to comment.