Skip to content

Commit 29c06e6

Browse files
author
Documenter.jl
committed
build based on 42200cf
1 parent 610a8d9 commit 29c06e6

12 files changed

Lines changed: 52 additions & 52 deletions

File tree

dev/.documenter-siteinfo.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"documenter":{"julia_version":"1.12.5","generation_timestamp":"2026-03-16T08:38:42","documenter_version":"1.17.0"}}
1+
{"documenter":{"julia_version":"1.12.5","generation_timestamp":"2026-04-01T19:44:30","documenter_version":"1.17.0"}}

dev/index.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

dev/lib/dynamics/index.html

Lines changed: 10 additions & 10 deletions
Large diffs are not rendered by default.

dev/lib/forward-kinematics/index.html

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

dev/lib/inverse-kinematics/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
julia> angular_tolerance, linear_tolerance = 0.01, 0.001;
1919

2020
julia> inverse_kinematics_body(body_screw_axes, home_ee_pose, target_config, initial_guess, angular_tolerance, linear_tolerance)
21-
([1.5707381937148923, 2.999666997382943, 3.141539129217613], true)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ferrolho/ModernRoboticsBook.jl/blob/f92af23009fcf80e0ce40eba8c5e124715f86e72/src/inverse_kinematics.jl#LL3-L48">source</a></section></details></article><article><details class="docstring" open="true"><summary id="ModernRoboticsBook.inverse_kinematics_space-Tuple{AbstractMatrix, AbstractMatrix, AbstractMatrix, AbstractVector, Number, Number}"><a class="docstring-binding" href="#ModernRoboticsBook.inverse_kinematics_space-Tuple{AbstractMatrix, AbstractMatrix, AbstractMatrix, AbstractVector, Number, Number}"><code>ModernRoboticsBook.inverse_kinematics_space</code></a><span class="docstring-category">Method</span></summary><section><div><pre><code class="language-julia hljs">inverse_kinematics_space(screw_axes, home_ee_pose, target_config, initial_guess, angular_tolerance, linear_tolerance)</code></pre><p>Computes inverse kinematics in the space frame for an open chain robot using Newton-Raphson iteration.</p><div class="admonition is-info" id="Body-vs-space-IK-df5932e93831c6ad"><header class="admonition-header">Body vs space IK<a class="admonition-anchor" href="#Body-vs-space-IK-df5932e93831c6ad" title="Permalink"></a></header><div class="admonition-body"><p>This is the space-frame version of <a href="#ModernRoboticsBook.inverse_kinematics_body-Tuple{AbstractMatrix, AbstractMatrix, AbstractMatrix, AbstractVector, Number, Number}"><code>inverse_kinematics_body</code></a>. Both converge to the same solution; the difference is whether the error twist is computed in the body or space frame. The initial guess matters — the algorithm may converge to different solutions or fail to converge depending on the starting point.</p></div></div><p><strong>Arguments</strong></p><ul><li><code>screw_axes</code>: the joint screw axes <span>$S_i$</span> expressed in the space (base) frame at the home configuration, as a <span>$6 \times n$</span> matrix.</li><li><code>home_ee_pose</code>: the <span>$4 \times 4$</span> end-effector pose <span>$M \in$</span> SE(3) when all joint positions are zero (home configuration).</li><li><code>target_config</code>: the desired <span>$4 \times 4$</span> end-effector pose <span>$T \in$</span> SE(3).</li><li><code>initial_guess</code>: an <span>$n$</span>-vector initial guess of joint positions <span>$\theta_0$</span>.</li><li><code>angular_tolerance</code>: small positive tolerance on the end-effector orientation error.</li><li><code>linear_tolerance</code>: small positive tolerance on the end-effector position error.</li></ul><p><strong>Returns</strong></p><p>A tuple <code>(joint_positions, success)</code> where <code>joint_positions</code> is the <span>$n$</span>-vector solution and <code>success</code> is a <code>Bool</code>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia&gt; screw_axes = [ 0 0 1 4 0 0 ;
21+
([1.5707381937148923, 2.999666997382943, 3.141539129217613], true)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ferrolho/ModernRoboticsBook.jl/blob/42200cfa99f2e661deeff52d23166b1269d29b64/src/inverse_kinematics.jl#LL3-L48">source</a></section></details></article><article><details class="docstring" open="true"><summary id="ModernRoboticsBook.inverse_kinematics_space-Tuple{AbstractMatrix, AbstractMatrix, AbstractMatrix, AbstractVector, Number, Number}"><a class="docstring-binding" href="#ModernRoboticsBook.inverse_kinematics_space-Tuple{AbstractMatrix, AbstractMatrix, AbstractMatrix, AbstractVector, Number, Number}"><code>ModernRoboticsBook.inverse_kinematics_space</code></a><span class="docstring-category">Method</span></summary><section><div><pre><code class="language-julia hljs">inverse_kinematics_space(screw_axes, home_ee_pose, target_config, initial_guess, angular_tolerance, linear_tolerance)</code></pre><p>Computes inverse kinematics in the space frame for an open chain robot using Newton-Raphson iteration.</p><div class="admonition is-info" id="Body-vs-space-IK-df5932e93831c6ad"><header class="admonition-header">Body vs space IK<a class="admonition-anchor" href="#Body-vs-space-IK-df5932e93831c6ad" title="Permalink"></a></header><div class="admonition-body"><p>This is the space-frame version of <a href="#ModernRoboticsBook.inverse_kinematics_body-Tuple{AbstractMatrix, AbstractMatrix, AbstractMatrix, AbstractVector, Number, Number}"><code>inverse_kinematics_body</code></a>. Both converge to the same solution; the difference is whether the error twist is computed in the body or space frame. The initial guess matters — the algorithm may converge to different solutions or fail to converge depending on the starting point.</p></div></div><p><strong>Arguments</strong></p><ul><li><code>screw_axes</code>: the joint screw axes <span>$S_i$</span> expressed in the space (base) frame at the home configuration, as a <span>$6 \times n$</span> matrix.</li><li><code>home_ee_pose</code>: the <span>$4 \times 4$</span> end-effector pose <span>$M \in$</span> SE(3) when all joint positions are zero (home configuration).</li><li><code>target_config</code>: the desired <span>$4 \times 4$</span> end-effector pose <span>$T \in$</span> SE(3).</li><li><code>initial_guess</code>: an <span>$n$</span>-vector initial guess of joint positions <span>$\theta_0$</span>.</li><li><code>angular_tolerance</code>: small positive tolerance on the end-effector orientation error.</li><li><code>linear_tolerance</code>: small positive tolerance on the end-effector position error.</li></ul><p><strong>Returns</strong></p><p>A tuple <code>(joint_positions, success)</code> where <code>joint_positions</code> is the <span>$n$</span>-vector solution and <code>success</code> is a <code>Bool</code>.</p><p><strong>Examples</strong></p><pre><code class="language-julia-repl hljs">julia&gt; screw_axes = [ 0 0 1 4 0 0 ;
2222
0 0 0 0 1 0 ;
2323
0 0 -1 -6 0 -0.1 ]&#39;;
2424

@@ -37,4 +37,4 @@
3737
julia&gt; angular_tolerance, linear_tolerance = 0.01, 0.001;
3838

3939
julia&gt; inverse_kinematics_space(screw_axes, home_ee_pose, target_config, initial_guess, angular_tolerance, linear_tolerance)
40-
([1.57073782965672, 2.999663844672525, 3.141534199856583], true)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ferrolho/ModernRoboticsBook.jl/blob/f92af23009fcf80e0ce40eba8c5e124715f86e72/src/inverse_kinematics.jl#LL83-L128">source</a></section></details></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../velocity-kinematics/">« Velocity Kinematics and Statics</a><a class="docs-footer-nextpage" href="../dynamics/">Dynamics of Open Chains »</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="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.17.0 on <span class="colophon-date" title="Monday 16 March 2026 08:38">Monday 16 March 2026</span>. Using Julia version 1.12.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
40+
([1.57073782965672, 2.999663844672525, 3.141534199856583], true)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ferrolho/ModernRoboticsBook.jl/blob/42200cfa99f2e661deeff52d23166b1269d29b64/src/inverse_kinematics.jl#LL83-L128">source</a></section></details></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../velocity-kinematics/">« Velocity Kinematics and Statics</a><a class="docs-footer-nextpage" href="../dynamics/">Dynamics of Open Chains »</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="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.17.0 on <span class="colophon-date" title="Wednesday 1 April 2026 19:44">Wednesday 1 April 2026</span>. Using Julia version 1.12.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>

0 commit comments

Comments
 (0)