Skip to content

Commit 68e60a0

Browse files
committed
Update documentation
1 parent 4e7000e commit 68e60a0

49 files changed

Lines changed: 70 additions & 40 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎2d_ellipse.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ <h1>2D ellipse<a class="headerlink" href="#d-ellipse" title="Link to this headin
129129
<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">perim</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
130130
<span class="go">(2, 20)</span>
131131
<span class="gp">&gt;&gt;&gt; </span><span class="n">Ellipse</span><span class="o">.</span><span class="n">FromPerimeter</span><span class="p">(</span><span class="n">perim</span><span class="p">)</span>
132-
<span class="go">Ellipse(radii=[1.+0.j 2.-0.j], centre=[3. 4.], theta=0.7853981633974343)</span>
132+
<span class="go">Ellipse(radii=[1.+0.j 2.-0.j], centre=[3. 4.], theta=0.785398163397435)</span>
133133
</pre></div>
134134
</div>
135135
<dl class="field-list simple">

‎3d_orient_SO3.html‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -505,9 +505,9 @@ <h1>SO(3) matrix<a class="headerlink" href="#so-3-matrix" title="Link to this he
505505
<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">spatialmath</span><span class="w"> </span><span class="kn">import</span> <span class="n">SO3</span>
506506
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">SO3</span><span class="o">.</span><span class="n">Rand</span><span class="p">()</span>
507507
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span>
508-
<span class="go">SO3(array([[-0.5072887 , 0.48758056, -0.7105796 ],</span>
509-
<span class="go"> [ 0.85660169, 0.19507041, -0.47768303],</span>
510-
<span class="go"> [-0.09429591, -0.85100689, -0.51661935]]))</span>
508+
<span class="go">SO3(array([[ 0.0084743 , 0.33165172, 0.94336383],</span>
509+
<span class="go"> [ 0.95279317, 0.28365518, -0.10828164],</span>
510+
<span class="go"> [-0.30350183, 0.89974823, -0.31359171]]))</span>
511511
</pre></div>
512512
</div>
513513
<dl class="field-list simple">

‎3d_orient_unitquaternion.html‎

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -467,11 +467,11 @@ <h1>Unit quaternion<a class="headerlink" href="#unit-quaternion" title="Link to
467467
<p>Example:</p>
468468
<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">spatialmath</span><span class="w"> </span><span class="kn">import</span> <span class="n">UnitQuaternion</span> <span class="k">as</span> <span class="n">UQ</span>
469469
<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">UQ</span><span class="o">.</span><span class="n">Rand</span><span class="p">())</span>
470-
<span class="go"> 0.2131 &lt;&lt; -0.6618, 0.6920, -0.1941 &gt;&gt;</span>
470+
<span class="go"> 0.5187 &lt;&lt; 0.7907, 0.2955, -0.1357 &gt;&gt;</span>
471471
<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">UQ</span><span class="o">.</span><span class="n">Rand</span><span class="p">(</span><span class="mi">3</span><span class="p">))</span>
472-
<span class="go"> 0.8534 &lt;&lt; -0.1730, -0.4143, -0.2649 &gt;&gt;</span>
473-
<span class="go"> 0.1530 &lt;&lt; -0.8004, -0.5438, 0.2006 &gt;&gt;</span>
474-
<span class="go"> 0.3217 &lt;&lt; 0.4938, 0.4411, 0.6768 &gt;&gt;</span>
472+
<span class="go"> 0.3798 &lt;&lt; 0.1501, 0.6617, -0.6288 &gt;&gt;</span>
473+
<span class="go"> 0.4844 &lt;&lt; -0.4088, -0.1961, -0.7482 &gt;&gt;</span>
474+
<span class="go"> 0.6645 &lt;&lt; -0.3094, 0.6709, -0.1122 &gt;&gt;</span>
475475
</pre></div>
476476
</div>
477477
<dl class="field-list simple">
@@ -1548,6 +1548,16 @@ <h1>Unit quaternion<a class="headerlink" href="#unit-quaternion" title="Link to
15481548
of the result matches the input’s sign, it is not forced
15491549
positive.</p>
15501550
</div>
1551+
<div class="versionchanged">
1552+
<p><span class="versionmodified changed">Changed in version 1.1.18: </span>Fixes a bug present in 1.1.17 and earlier: <code class="docutils literal notranslate"><span class="pre">UnitQuaternion.conj()</span></code>
1553+
re-canonicalized its result’s sign, silently returning
1554+
<span class="math notranslate nohighlight">\(-\bar{q}\)</span> instead of the true conjugate whenever <code class="docutils literal notranslate"><span class="pre">q</span></code> had
1555+
negative scalar part. This broke any algebra relying on
1556+
<span class="math notranslate nohighlight">\(q \cdot \bar{q} = 1\)</span>, including <code class="xref py py-class docutils literal notranslate"><span class="pre">DualQuaternion</span></code>
1557+
translation extraction (<code class="docutils literal notranslate"><span class="pre">SE3()</span></code>), <code class="docutils literal notranslate"><span class="pre">norm()</span></code> (which could raise
1558+
<code class="docutils literal notranslate"><span class="pre">ValueError</span></code> from taking the square root of a small negative
1559+
float), and point transformation via <code class="docutils literal notranslate"><span class="pre">dq</span> <span class="pre">*</span> <span class="pre">v</span></code>.</p>
1560+
</div>
15511561
<p>Example:</p>
15521562
<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">spatialmath</span><span class="w"> </span><span class="kn">import</span> <span class="n">Quaternion</span><span class="p">,</span> <span class="n">UnitQuaternion</span>
15531563
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>

‎3d_pose_SE3.html‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -606,13 +606,13 @@ <h1>SE(3) matrix<a class="headerlink" href="#se-3-matrix" title="Link to this he
606606
<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">spatialmath</span><span class="w"> </span><span class="kn">import</span> <span class="n">SE3</span>
607607
<span class="gp">&gt;&gt;&gt; </span><span class="n">SE3</span><span class="o">.</span><span class="n">Rand</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
608608
<span class="go">SE3([</span>
609-
<span class="go">array([[-0.7705656 , 0.45040853, -0.45095544, 0.71144933],</span>
610-
<span class="go"> [-0.62582888, -0.66867094, 0.40151885, 0.22547656],</span>
611-
<span class="go"> [-0.12069328, 0.59161755, 0.79713349, 0.70859241],</span>
609+
<span class="go">array([[-0.46089598, -0.80245139, 0.37900747, 0.54273952],</span>
610+
<span class="go"> [ 0.16714989, -0.49792306, -0.85096036, 0.86201404],</span>
611+
<span class="go"> [ 0.87157088, -0.32885316, 0.3636204 , 0.23208914],</span>
612612
<span class="go"> [ 0. , 0. , 0. , 1. ]]),</span>
613-
<span class="go">array([[ 0.02565476, -0.2991223 , 0.95386985, 0.35702037],</span>
614-
<span class="go"> [-0.96114168, -0.26973477, -0.05873529, -0.84219433],</span>
615-
<span class="go"> [ 0.2748609 , -0.91529722, -0.29441889, 0.86653704],</span>
613+
<span class="go">array([[-0.41759189, -0.67119638, 0.61246423, 0.55408443],</span>
614+
<span class="go"> [-0.5851296 , 0.71432788, 0.38387371, 0.8073223 ],</span>
615+
<span class="go"> [-0.69515492, -0.1980684 , -0.6910344 , 0.43448602],</span>
616616
<span class="go"> [ 0. , 0. , 0. , 1. ]]) ])</span>
617617
</pre></div>
618618
</div>

‎3d_pose_dualquaternion.html‎

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -150,18 +150,18 @@ <h1>Unit dual quaternion<a class="headerlink" href="#unit-dual-quaternion" title
150150
<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">spatialmath</span><span class="w"> </span><span class="kn">import</span> <span class="n">UnitDualQuaternion</span><span class="p">,</span> <span class="n">SE3</span>
151151
<span class="gp">&gt;&gt;&gt; </span><span class="n">T</span> <span class="o">=</span> <span class="n">SE3</span><span class="o">.</span><span class="n">Rand</span><span class="p">()</span>
152152
<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">T</span><span class="p">)</span>
153-
<span class="go"> 0.4662 -0.7297 -0.5002 0.5944 </span>
154-
<span class="go"> -0.8767 -0.3055 -0.3715 -0.07905 </span>
155-
<span class="go"> 0.1183 0.6117 -0.7822 0.7367 </span>
153+
<span class="go"> 0.9605 0.06313 0.2711 -0.7334 </span>
154+
<span class="go"> -0.07012 0.9974 0.01618 0.271 </span>
155+
<span class="go"> -0.2694 -0.03455 0.9624 0.2536 </span>
156156
<span class="go"> 0 0 0 1 </span>
157157

158158
<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">UnitDualQuaternion</span><span class="p">(</span><span class="n">T</span><span class="p">)</span>
159159
<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
160-
<span class="go"> 0.3076 &lt;&lt; 0.7991, -0.5026, -0.1195 &gt;&gt; + ε -0.2133 &lt; 0.2813, 0.3177, -0.0045 &gt;</span>
160+
<span class="go"> 0.9900 &lt;&lt; -0.0128, 0.1365, -0.0336 &gt;&gt; + ε -0.0189 &lt; -0.3849, 0.1202, 0.0772 &gt;</span>
161161
<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">SE3</span><span class="p">())</span>
162-
<span class="go"> 0.4662 -0.7297 -0.5002 0.5944 </span>
163-
<span class="go"> -0.8767 -0.3055 -0.3715 -0.07905 </span>
164-
<span class="go"> 0.1183 0.6117 -0.7822 0.7367 </span>
162+
<span class="go"> 0.9605 0.06313 0.2711 -0.7334 </span>
163+
<span class="go"> -0.07012 0.9974 0.01618 0.271 </span>
164+
<span class="go"> -0.2694 -0.03455 0.9624 0.2536 </span>
165165
<span class="go"> 0 0 0 1 </span>
166166

167167
</pre></div>
@@ -211,14 +211,14 @@ <h1>Unit dual quaternion<a class="headerlink" href="#unit-dual-quaternion" title
211211
<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">spatialmath</span><span class="w"> </span><span class="kn">import</span> <span class="n">UnitDualQuaternion</span><span class="p">,</span> <span class="n">SE3</span>
212212
<span class="gp">&gt;&gt;&gt; </span><span class="n">T</span> <span class="o">=</span> <span class="n">SE3</span><span class="o">.</span><span class="n">Rand</span><span class="p">()</span>
213213
<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">T</span><span class="p">)</span>
214-
<span class="go"> -0.5051 0.7634 0.4026 0.6804 </span>
215-
<span class="go"> -0.5502 -0.6442 0.5313 -0.4937 </span>
216-
<span class="go"> 0.6649 0.04681 0.7454 -0.2911 </span>
214+
<span class="go"> 0.4876 0.3117 -0.8156 -0.73 </span>
215+
<span class="go"> 0.8644 -0.04053 0.5012 -0.1204 </span>
216+
<span class="go"> 0.1232 -0.9493 -0.2891 -0.8508 </span>
217217
<span class="go"> 0 0 0 1 </span>
218218

219219
<span class="gp">&gt;&gt;&gt; </span><span class="n">d</span> <span class="o">=</span> <span class="n">UnitDualQuaternion</span><span class="p">(</span><span class="n">T</span><span class="p">)</span>
220220
<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
221-
<span class="go">-0.3860 &lt;&lt; 0.3137, 0.1699, 0.8507 &gt;&gt; + ε 0.0590 &lt; -0.3166, -0.2398, 0.1914 &gt;</span>
221+
<span class="go">-0.5380 &lt;&lt; 0.6740, 0.4362, -0.2568 &gt;&gt; + ε 0.1630 &lt; 0.3974, -0.3481, 0.1102 &gt;</span>
222222
<span class="gp">&gt;&gt;&gt; </span><span class="nb">type</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
223223
<span class="go">&lt;class 'spatialmath.DualQuaternion.UnitDualQuaternion'&gt;</span>
224224
</pre></div>

‎3d_pose_twist.html‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,8 @@ <h1>se(3) twist<a class="headerlink" href="#se-3-twist" title="Link to this head
281281
<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">spatialmath</span><span class="w"> </span><span class="kn">import</span> <span class="n">Twist3</span>
282282
<span class="gp">&gt;&gt;&gt; </span><span class="n">Twist3</span><span class="o">.</span><span class="n">Rand</span><span class="p">(</span><span class="n">N</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
283283
<span class="go">Twist3([</span>
284-
<span class="go"> [-0.099484, 1.071, -0.40736, 1.0095, 1.4134, 1.1121],</span>
285-
<span class="go"> [0.18003, 0.46025, -0.91848, -1.9352, 0.10905, -2.2837]</span>
284+
<span class="go"> [-0.53188, -0.72532, 0.2037, 2.4141, 1.5592, 0.88453],</span>
285+
<span class="go"> [-0.035879, 0.67178, -0.79444, -2.3817, 0.8754, 0.63817]</span>
286286
<span class="go">])</span>
287287
</pre></div>
288288
</div>

‎3d_quaternion.html‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,16 @@ <h1>Quaternion<a class="headerlink" href="#quaternion" title="Link to this headi
900900
of the result matches the input’s sign, it is not forced
901901
positive.</p>
902902
</div>
903+
<div class="versionchanged">
904+
<p><span class="versionmodified changed">Changed in version 1.1.18: </span>Fixes a bug present in 1.1.17 and earlier: <code class="docutils literal notranslate"><span class="pre">UnitQuaternion.conj()</span></code>
905+
re-canonicalized its result’s sign, silently returning
906+
<span class="math notranslate nohighlight">\(-\bar{q}\)</span> instead of the true conjugate whenever <code class="docutils literal notranslate"><span class="pre">q</span></code> had
907+
negative scalar part. This broke any algebra relying on
908+
<span class="math notranslate nohighlight">\(q \cdot \bar{q} = 1\)</span>, including <code class="xref py py-class docutils literal notranslate"><span class="pre">DualQuaternion</span></code>
909+
translation extraction (<code class="docutils literal notranslate"><span class="pre">SE3()</span></code>), <code class="docutils literal notranslate"><span class="pre">norm()</span></code> (which could raise
910+
<code class="docutils literal notranslate"><span class="pre">ValueError</span></code> from taking the square root of a small negative
911+
float), and point transformation via <code class="docutils literal notranslate"><span class="pre">dq</span> <span class="pre">*</span> <span class="pre">v</span></code>.</p>
912+
</div>
903913
<p>Example:</p>
904914
<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">spatialmath</span><span class="w"> </span><span class="kn">import</span> <span class="n">Quaternion</span><span class="p">,</span> <span class="n">UnitQuaternion</span>
905915
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
Binary file not shown.
Binary file not shown.
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)