Stéphane on Locomotion - Comments: Leveraging Cone Double Description for Multi-contact Stability of Humanoids with Applications to Statics and Dynamicshttps://scaron.info/publications/rss-2015.html/2015-07-13T16:42:00+02:00Posted by: Stéphane2015-07-13T16:42:00+02:002015-07-13T16:42:00+02:00Stéphanetag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-reply-dirac-fields<p>Yes, in this case we refer to the <a class="reference external" href="https://en.wikipedia.org/wiki/Dirac_delta_function">Dirac delta function</a>, that is to say, a distribution that concentrates forces at the vertices of the contact area. You will find a bit more discussion on this point, along with a proof of the corresponding proposition, at the end of Section …</p><p>Yes, in this case we refer to the <a class="reference external" href="https://en.wikipedia.org/wiki/Dirac_delta_function">Dirac delta function</a>, that is to say, a distribution that concentrates forces at the vertices of the contact area. You will find a bit more discussion on this point, along with a proof of the corresponding proposition, at the end of Section III of <a class="reference external" href="https://scaron.info/publications/rss-2015.html/publications/icra-2015.html">this study of surface contacts</a>.</p> Posted by: Stéphane2015-07-13T16:42:00+02:002015-07-13T16:42:00+02:00Stéphanetag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-reply-need-double-description<p>It is not, as we later found out: local span matrices are straightforward to compute, as detailed for instance in the introduction of <a class="reference external" href="https://scaron.info/publications/tro-2016.html">this paper</a>. The only point where the double description remains necessary so far is for computing the gravito-inertial face matrix <span class="math">$$U_\mathit{stance}.$$</span></p> <p>It is not, as we later found out: local span matrices are straightforward to compute, as detailed for instance in the introduction of <a class="reference external" href="https://scaron.info/publications/rss-2015.html/publications/tro-2016.html">this paper</a>. The only point where the double description remains necessary so far is for computing the gravito-inertial face matrix <span class="math">$$U_\mathit{stance}.$$</span></p> Posted by: Stéphane2015-07-13T16:42:00+02:002015-07-13T16:42:00+02:00Stéphanetag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-reply-numerical-instabilities-more-contacts<p>Unfortunately I have only an intuition here: making more contacts implies a resultant polyhedron with more faces, i.e. with more rays in the V-description and more hyperplanes in the H-one. This increases the risk of &quot;tricky&quot; faces (of very small area) in the output polyhedron, especially if some of …</p><p>Unfortunately I have only an intuition here: making more contacts implies a resultant polyhedron with more faces, i.e. with more rays in the V-description and more hyperplanes in the H-one. This increases the risk of &quot;tricky&quot; faces (of very small area) in the output polyhedron, especially if some of your input rays are nearly aligned. My guess is that these make the double-description fail when it tries to cut (c.f. Fukuda's paper on the algorithm) by an &quot;almost meaningless&quot; hyperplane.</p> Posted by: Stéphane2015-07-13T16:42:00+02:002015-07-13T16:42:00+02:00Stéphanetag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-reply-cdd-canonicalize<p>In my experience this extra step only make matters worse (with regards to numerical-inconsistency errors), so I would advise against doing it. Also, note that, even if your input V-description is irreducible, cdd may output you a non-minimal H-description.</p> Posted by: Stéphane2015-07-13T16:42:00+02:002015-07-13T16:42:00+02:00Stéphanetag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-reply-cdd-numerical-inconsistency<p>It may happen that your problem is &quot;doable&quot; but you ended up hitting some near-singular configuration. In such cases, a simple hack is to perturb the input (contact locations, or coordinates where the CWC is taken) by some epsilon.</p> <p>Another cause of numerical instabilities are vectors that are &quot;almost&quot; rational …</p><p>It may happen that your problem is &quot;doable&quot; but you ended up hitting some near-singular configuration. In such cases, a simple hack is to perturb the input (contact locations, or coordinates where the CWC is taken) by some epsilon.</p> <p>Another cause of numerical instabilities are vectors that are &quot;almost&quot; rational, for instance with coordinates such as <tt class="docutils literal">0.4 + <span class="pre">1e-12</span></tt>. Rounding up coordinates to a sound number of decimals can filter out those.</p> <p>If none of the above apply, you can try with rational rather than floating point numbers. In that case, I'd advise using PPL or its Python wrapper <a class="reference external" href="https://github.com/haudren/pyparma">pyparma</a> rather than cdd.</p> Posted by: Stéphane2015-07-13T16:42:00+02:002015-07-13T16:42:00+02:00Stéphanetag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-reply-analytical-wrench-cone<p>Unfortunately the <a class="reference external" href="https://scaron.info/publications/icra-2015.html">analytical formula of the contact wrench cone</a> is only known (yet) for a <em>single</em> contact. In multi-contact, the best call so far is to use numerical algorithms such as the double description method.</p> <p>Unfortunately the <a class="reference external" href="https://scaron.info/publications/rss-2015.html/publications/icra-2015.html">analytical formula of the contact wrench cone</a> is only known (yet) for a <em>single</em> contact. In multi-contact, the best call so far is to use numerical algorithms such as the double description method.</p> Posted by: Stéphane2015-07-13T16:42:00+02:002015-07-13T16:42:00+02:00Stéphanetag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-reply-dual-matrix-shape<p>It is not always the case, as you can see in Table I of the paper. In single support, redundant inequalities simplify and the <span class="math">$$6 \times 16$$</span> span matrix of the wrench cone has a <span class="math">$$16 \times 6$$</span> face dual. However, in double-support the dual of the <span class="math">$$6 \times 32 …</span></p><p>It is not always the case, as you can see in Table I of the paper. In single support, redundant inequalities simplify and the <span class="math">\(6 \times 16$$</span> span matrix of the wrench cone has a <span class="math">$$16 \times 6$$</span> face dual. However, in double-support the dual of the <span class="math">$$6 \times 32$$</span> span matrix typically has more than 100 rows.</p> Posted by: Stéphane2015-07-13T16:42:00+02:002015-07-13T16:42:00+02:00Stéphanetag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-reply-link-with-3d-com-pattern-generator<p>In this paper, the gravito-inertial wrench coordinates <span class="math">$$w_{GI} = (f_{GI}, \tau_{GI})$$</span> are taken at the origin <span class="math">$$O$$</span> of the world frame. Using proper notations, we should have written <span class="math">$$w^{gi}_O$$</span> to acknowledge this reference point. (We apologize for the non-standard notations.) Our <a class="reference external" href="https://scaron.info/publications/humanoids-2016.html">later works</a> uses the <em>net …</em></p><p>In this paper, the gravito-inertial wrench coordinates <span class="math">$$w_{GI} = (f_{GI}, \tau_{GI})$$</span> are taken at the origin <span class="math">$$O$$</span> of the world frame. Using proper notations, we should have written <span class="math">$$w^{gi}_O$$</span> to acknowledge this reference point. (We apologize for the non-standard notations.) Our <a class="reference external" href="https://scaron.info/publications/rss-2015.html/publications/humanoids-2016.html">later works</a> uses the <em>net contact wrench</em>, <em>i.e.</em> the sum of all contact wrenches applied to the robot, which yields the opposite of the gravito-inertial one: <span class="math">$$w^{c}_O = -w^{gi}_O.$$</span> Therefore, the face matrices are opposed as well: <span class="math">$$U_\mathit{stance} = -A_O.$$</span></p> Posted by: Attendee #82015-07-13T16:18:00+02:002015-07-13T16:18:00+02:00Attendee #8tag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-question-dirac-fields<p>One footnote of the paper mentions Dirac fields. Are you referring here to the Dirac delta function and its higher dimensional versions?</p>Posted by: Attendee #72015-07-13T16:17:00+02:002015-07-13T16:17:00+02:00Attendee #7tag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-question-numerical-instabilities-more-contacts<p>Numerical instabilities seem to happen more often in stances with more contacts. Why?</p>Posted by: Attendee #52015-07-13T16:06:00+02:002015-07-13T16:06:00+02:00Attendee #5tag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-question-cdd-canonicalize<p>What about calling the <code>Canonicalize()</code> function in cdd to remove redundant rays from the input V-description?</p>Posted by: Attendee #52015-07-13T16:05:00+02:002015-07-13T16:05:00+02:00Attendee #5tag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-question-cdd-numerical-inconsistency<p>The cdd library gives me the error "Numerical inconsistency is found. Use the GMP exact arithmetic." What can I do?</p>Posted by: Attendee #42015-07-13T16:04:00+02:002015-07-13T16:04:00+02:00Attendee #4tag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-question-dual-matrix-shape<p>Given an <span class="math">$$n \times m$$</span> matrix <span class="math">$$V$$</span>, is it the case that its dual (face or H-representation) matrix <span class="math">$$U = V^F$$</span> has shape <span class="math">$$m \times n$$</span>?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#@#')) { var align = "center", indent = "0em", linebreak = "false"; if (false) { align = (screen.width < 768) ? "left" : align; indent = (screen.width < 768) ? "0em …</script><p>Given an <span class="math">$$n \times m$$</span> matrix <span class="math">$$V$$</span>, is it the case that its dual (face or H-representation) matrix <span class="math">$$U = V^F$$</span> has shape <span class="math">$$m \times n$$</span>?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#@#')) { var align = "center", indent = "0em", linebreak = "false"; if (false) { align = (screen.width < 768) ? "left" : align; indent = (screen.width < 768) ? "0em" : indent; linebreak = (screen.width < 768) ? 'true' : linebreak; } var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#@#'; mathjaxscript.type = 'text/javascript'; mathjaxscript.src = '/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; var configscript = document.createElement('script'); configscript.type = 'text/x-mathjax-config'; configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + " displayIndent: '"+ indent +"'," + " showMathMenu: true," + " messageStyle: 'normal'," + " tex2jax: { " + " inlineMath: [ ['\\\$$','\\\$$'] ], " + " displayMath: [ ['$$','$$'] ]," + " processEscapes: true," + " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + " availableFonts: ['STIX', 'TeX']," + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#333 ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + " 'TeX': { " + " Macros: { " + " defeq: \"{\\\\stackrel{\\\\mathrm{def}}{=}}\"," + " Ld: \"{\\\\dot{L}}\"," + " LdG: \"{\\\\dot{L}_G}\"," + " bfA: \"{\\\\boldsymbol{A}}\"," + " bfB: \"{\\\\boldsymbol{B}}\"," + " bfC: \"{\\\\boldsymbol{C}}\"," + " bfD: \"{\\\\boldsymbol{D}}\"," + " bfE: \"{\\\\boldsymbol{E}}\"," + " bfF: \"{\\\\boldsymbol{F}}\"," + " bfG: \"{\\\\boldsymbol{G}}\"," + " bfH: \"{\\\\boldsymbol{H}}\"," + " bfI: \"{\\\\boldsymbol{I}}\"," + " bfJ: \"{\\\\boldsymbol{J}}\"," + " bfK: \"{\\\\boldsymbol{K}}\"," + " bfL: \"{\\\\boldsymbol{L}}\"," + " bfM: \"{\\\\boldsymbol{M}}\"," + " bfN: \"{\\\\boldsymbol{N}}\"," + " bfO: \"{\\\\boldsymbol{O}}\"," + " bfP: \"{\\\\boldsymbol{P}}\"," + " bfQ: \"{\\\\boldsymbol{Q}}\"," + " bfR: \"{\\\\boldsymbol{R}}\"," + " bfS: \"{\\\\boldsymbol{S}}\"," + " bfT: \"{\\\\boldsymbol{T}}\"," + " bfU: \"{\\\\boldsymbol{U}}\"," + " bfV: \"{\\\\boldsymbol{V}}\"," + " bfW: \"{\\\\boldsymbol{W}}\"," + " bfX: \"{\\\\boldsymbol{X}}\"," + " bfY: \"{\\\\boldsymbol{Y}}\"," + " bfZ: \"{\\\\boldsymbol{Z}}\"," + " bfa: \"{\\\\boldsymbol{a}}\"," + " bfb: \"{\\\\boldsymbol{b}}\"," + " bfc: \"{\\\\boldsymbol{c}}\"," + " bfd: \"{\\\\boldsymbol{d}}\"," + " bfe: \"{\\\\boldsymbol{e}}\"," + " bff: \"{\\\\boldsymbol{f}}\"," + " bfg: \"{\\\\boldsymbol{g}}\"," + " bfh: \"{\\\\boldsymbol{h}}\"," + " bfi: \"{\\\\boldsymbol{i}}\"," + " bfj: \"{\\\\boldsymbol{j}}\"," + " bfk: \"{\\\\boldsymbol{k}}\"," + " bfl: \"{\\\\boldsymbol{l}}\"," + " bfm: \"{\\\\boldsymbol{m}}\"," + " bfn: \"{\\\\boldsymbol{n}}\"," + " bfo: \"{\\\\boldsymbol{o}}\"," + " bfp: \"{\\\\boldsymbol{p}}\"," + " bfq: \"{\\\\boldsymbol{q}}\"," + " bfr: \"{\\\\boldsymbol{r}}\"," + " bfs: \"{\\\\boldsymbol{s}}\"," + " bft: \"{\\\\boldsymbol{t}}\"," + " bfu: \"{\\\\boldsymbol{u}}\"," + " bfv: \"{\\\\boldsymbol{v}}\"," + " bfw: \"{\\\\boldsymbol{w}}\"," + " bfx: \"{\\\\boldsymbol{x}}\"," + " bfy: \"{\\\\boldsymbol{y}}\"," + " bfz: \"{\\\\boldsymbol{z}}\"," + " bfalpha: \"{\\\\boldsymbol{\\\\alpha}}\"," + " bfbeta: \"{\\\\boldsymbol{\\\\beta}}\"," + " bfchi: \"{\\\\boldsymbol{\\\\chi}}\"," + " bfgamma: \"{\\\\boldsymbol{\\\\gamma}}\"," + " bflambda: \"{\\\\boldsymbol{\\\\lambda}}\"," + " bfomega: \"{\\\\boldsymbol{\\\\omega}}\"," + " bfone: \"{\\\\boldsymbol{1}}\"," + " bfsigma: \"{\\\\boldsymbol{\\\\sigma}}\"," + " bftau: \"{\\\\boldsymbol{\\\\tau}}\"," + " bfxi: \"{\\\\boldsymbol{\\\\xi}}\"," + " bfzero: \"{\\\\boldsymbol{0}}\"," + " calA: \"{\\\\cal A}\"," + " calB: \"{\\\\cal B}\"," + " calC: \"{\\\\cal C}\"," + " calD: \"{\\\\cal D}\"," + " calE: \"{\\\\cal E}\"," + " calF: \"{\\\\cal F}\"," + " calG: \"{\\\\cal G}\"," + " calH: \"{\\\\cal H}\"," + " calI: \"{\\\\cal I}\"," + " calJ: \"{\\\\cal J}\"," + " calK: \"{\\\\cal K}\"," + " calL: \"{\\\\cal L}\"," + " calM: \"{\\\\cal M}\"," + " calN: \"{\\\\cal N}\"," + " calO: \"{\\\\cal O}\"," + " calP: \"{\\\\cal P}\"," + " calQ: \"{\\\\cal Q}\"," + " calR: \"{\\\\cal R}\"," + " calS: \"{\\\\cal S}\"," + " calT: \"{\\\\cal T}\"," + " calU: \"{\\\\cal U}\"," + " calV: \"{\\\\cal V}\"," + " calW: \"{\\\\cal W}\"," + " calX: \"{\\\\cal X}\"," + " calY: \"{\\\\cal Y}\"," + " calZ: \"{\\\\cal Z}\"," + " d: [\"{\\\\rm d}{#1}\", 1]," + " bfcd: \"{\\\\dot{\\\\bfc}}\"," + " bfpd: \"{\\\\dot{\\\\bfp}}\"," + " bfpdd: \"{\\\\ddot{\\\\bfp}}\"," + " dim: \"{\\\\rm dim}\"," + " p: \"{\\\\boldsymbol{p}}\"," + " q: \"{\\\\boldsymbol{q}}\"," + " qd: \"{\\\\dot{\\\\bfq}}\"," + " qdd: \"{\\\\ddot{\\\\bfq}}\"," + " xd: \"{\\\\dot{x}}\"," + " xdd: \"{\\\\ddot{x}}\"," + " yd: \"{\\\\dot{y}}\"," + " ydd: \"{\\\\ddot{y}}\"," + " zd: \"{\\\\dot{z}}\"," + " zdd: \"{\\\\ddot{z}}\"," + " defeq: \"{\\\\stackrel{\\\\mathrm{def}}{\\\\ =\\\\ }}\"," + " } " + " } " + "}); " + "if ('default' !== 'default') {" + "MathJax.Hub.Register.StartupHook('HTML-CSS Jax Ready',function () {" + "var VARIANT = MathJax.OutputJax['HTML-CSS'].FONTDATA.VARIANT;" + "VARIANT['normal'].fonts.unshift('MathJax_default');" + "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" + "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" + "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "MathJax.Hub.Register.StartupHook('SVG Jax Ready',function () {" + "var VARIANT = MathJax.OutputJax.SVG.FONTDATA.VARIANT;" + "VARIANT['normal'].fonts.unshift('MathJax_default');" + "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" + "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" + "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; (document.body || document.getElementsByTagName('head')).appendChild(configscript); (document.body || document.getElementsByTagName('head')).appendChild(mathjaxscript); } </script>Posted by: Attendee #32015-07-13T16:03:00+02:002015-07-13T16:03:00+02:00Attendee #3tag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-question-link-with-3d-com-pattern-generator<p>What is the link between the matrix <span class="math">$$U_\mathit{stance}$$</span> in this paper and the matrices <span class="math">$$A_O$$</span> or <span class="math">$$A_G$$</span> used in your follow-up 3D-COM pattern generator?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#@#')) { var align = "center", indent = "0em", linebreak = "false"; if (false) { align = (screen.width < 768) ? "left" : align; indent = (screen.width < 768) ? "0em …</script><p>What is the link between the matrix <span class="math">$$U_\mathit{stance}$$</span> in this paper and the matrices <span class="math">$$A_O$$</span> or <span class="math">$$A_G$$</span> used in your follow-up 3D-COM pattern generator?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#@#')) { var align = "center", indent = "0em", linebreak = "false"; if (false) { align = (screen.width < 768) ? "left" : align; indent = (screen.width < 768) ? "0em" : indent; linebreak = (screen.width < 768) ? 'true' : linebreak; } var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#@#'; mathjaxscript.type = 'text/javascript'; mathjaxscript.src = '/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; var configscript = document.createElement('script'); configscript.type = 'text/x-mathjax-config'; configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + " displayIndent: '"+ indent +"'," + " showMathMenu: true," + " messageStyle: 'normal'," + " tex2jax: { " + " inlineMath: [ ['\\\$$','\\\$$'] ], " + " displayMath: [ ['$$','$$'] ]," + " processEscapes: true," + " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + " availableFonts: ['STIX', 'TeX']," + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#333 ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + " 'TeX': { " + " Macros: { " + " defeq: \"{\\\\stackrel{\\\\mathrm{def}}{=}}\"," + " Ld: \"{\\\\dot{L}}\"," + " LdG: \"{\\\\dot{L}_G}\"," + " bfA: \"{\\\\boldsymbol{A}}\"," + " bfB: \"{\\\\boldsymbol{B}}\"," + " bfC: \"{\\\\boldsymbol{C}}\"," + " bfD: \"{\\\\boldsymbol{D}}\"," + " bfE: \"{\\\\boldsymbol{E}}\"," + " bfF: \"{\\\\boldsymbol{F}}\"," + " bfG: \"{\\\\boldsymbol{G}}\"," + " bfH: \"{\\\\boldsymbol{H}}\"," + " bfI: \"{\\\\boldsymbol{I}}\"," + " bfJ: \"{\\\\boldsymbol{J}}\"," + " bfK: \"{\\\\boldsymbol{K}}\"," + " bfL: \"{\\\\boldsymbol{L}}\"," + " bfM: \"{\\\\boldsymbol{M}}\"," + " bfN: \"{\\\\boldsymbol{N}}\"," + " bfO: \"{\\\\boldsymbol{O}}\"," + " bfP: \"{\\\\boldsymbol{P}}\"," + " bfQ: \"{\\\\boldsymbol{Q}}\"," + " bfR: \"{\\\\boldsymbol{R}}\"," + " bfS: \"{\\\\boldsymbol{S}}\"," + " bfT: \"{\\\\boldsymbol{T}}\"," + " bfU: \"{\\\\boldsymbol{U}}\"," + " bfV: \"{\\\\boldsymbol{V}}\"," + " bfW: \"{\\\\boldsymbol{W}}\"," + " bfX: \"{\\\\boldsymbol{X}}\"," + " bfY: \"{\\\\boldsymbol{Y}}\"," + " bfZ: \"{\\\\boldsymbol{Z}}\"," + " bfa: \"{\\\\boldsymbol{a}}\"," + " bfb: \"{\\\\boldsymbol{b}}\"," + " bfc: \"{\\\\boldsymbol{c}}\"," + " bfd: \"{\\\\boldsymbol{d}}\"," + " bfe: \"{\\\\boldsymbol{e}}\"," + " bff: \"{\\\\boldsymbol{f}}\"," + " bfg: \"{\\\\boldsymbol{g}}\"," + " bfh: \"{\\\\boldsymbol{h}}\"," + " bfi: \"{\\\\boldsymbol{i}}\"," + " bfj: \"{\\\\boldsymbol{j}}\"," + " bfk: \"{\\\\boldsymbol{k}}\"," + " bfl: \"{\\\\boldsymbol{l}}\"," + " bfm: \"{\\\\boldsymbol{m}}\"," + " bfn: \"{\\\\boldsymbol{n}}\"," + " bfo: \"{\\\\boldsymbol{o}}\"," + " bfp: \"{\\\\boldsymbol{p}}\"," + " bfq: \"{\\\\boldsymbol{q}}\"," + " bfr: \"{\\\\boldsymbol{r}}\"," + " bfs: \"{\\\\boldsymbol{s}}\"," + " bft: \"{\\\\boldsymbol{t}}\"," + " bfu: \"{\\\\boldsymbol{u}}\"," + " bfv: \"{\\\\boldsymbol{v}}\"," + " bfw: \"{\\\\boldsymbol{w}}\"," + " bfx: \"{\\\\boldsymbol{x}}\"," + " bfy: \"{\\\\boldsymbol{y}}\"," + " bfz: \"{\\\\boldsymbol{z}}\"," + " bfalpha: \"{\\\\boldsymbol{\\\\alpha}}\"," + " bfbeta: \"{\\\\boldsymbol{\\\\beta}}\"," + " bfchi: \"{\\\\boldsymbol{\\\\chi}}\"," + " bfgamma: \"{\\\\boldsymbol{\\\\gamma}}\"," + " bflambda: \"{\\\\boldsymbol{\\\\lambda}}\"," + " bfomega: \"{\\\\boldsymbol{\\\\omega}}\"," + " bfone: \"{\\\\boldsymbol{1}}\"," + " bfsigma: \"{\\\\boldsymbol{\\\\sigma}}\"," + " bftau: \"{\\\\boldsymbol{\\\\tau}}\"," + " bfxi: \"{\\\\boldsymbol{\\\\xi}}\"," + " bfzero: \"{\\\\boldsymbol{0}}\"," + " calA: \"{\\\\cal A}\"," + " calB: \"{\\\\cal B}\"," + " calC: \"{\\\\cal C}\"," + " calD: \"{\\\\cal D}\"," + " calE: \"{\\\\cal E}\"," + " calF: \"{\\\\cal F}\"," + " calG: \"{\\\\cal G}\"," + " calH: \"{\\\\cal H}\"," + " calI: \"{\\\\cal I}\"," + " calJ: \"{\\\\cal J}\"," + " calK: \"{\\\\cal K}\"," + " calL: \"{\\\\cal L}\"," + " calM: \"{\\\\cal M}\"," + " calN: \"{\\\\cal N}\"," + " calO: \"{\\\\cal O}\"," + " calP: \"{\\\\cal P}\"," + " calQ: \"{\\\\cal Q}\"," + " calR: \"{\\\\cal R}\"," + " calS: \"{\\\\cal S}\"," + " calT: \"{\\\\cal T}\"," + " calU: \"{\\\\cal U}\"," + " calV: \"{\\\\cal V}\"," + " calW: \"{\\\\cal W}\"," + " calX: \"{\\\\cal X}\"," + " calY: \"{\\\\cal Y}\"," + " calZ: \"{\\\\cal Z}\"," + " d: [\"{\\\\rm d}{#1}\", 1]," + " bfcd: \"{\\\\dot{\\\\bfc}}\"," + " bfpd: \"{\\\\dot{\\\\bfp}}\"," + " bfpdd: \"{\\\\ddot{\\\\bfp}}\"," + " dim: \"{\\\\rm dim}\"," + " p: \"{\\\\boldsymbol{p}}\"," + " q: \"{\\\\boldsymbol{q}}\"," + " qd: \"{\\\\dot{\\\\bfq}}\"," + " qdd: \"{\\\\ddot{\\\\bfq}}\"," + " xd: \"{\\\\dot{x}}\"," + " xdd: \"{\\\\ddot{x}}\"," + " yd: \"{\\\\dot{y}}\"," + " ydd: \"{\\\\ddot{y}}\"," + " zd: \"{\\\\dot{z}}\"," + " zdd: \"{\\\\ddot{z}}\"," + " defeq: \"{\\\\stackrel{\\\\mathrm{def}}{\\\\ =\\\\ }}\"," + " } " + " } " + "}); " + "if ('default' !== 'default') {" + "MathJax.Hub.Register.StartupHook('HTML-CSS Jax Ready',function () {" + "var VARIANT = MathJax.OutputJax['HTML-CSS'].FONTDATA.VARIANT;" + "VARIANT['normal'].fonts.unshift('MathJax_default');" + "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" + "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" + "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "MathJax.Hub.Register.StartupHook('SVG Jax Ready',function () {" + "var VARIANT = MathJax.OutputJax.SVG.FONTDATA.VARIANT;" + "VARIANT['normal'].fonts.unshift('MathJax_default');" + "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" + "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" + "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; (document.body || document.getElementsByTagName('head')).appendChild(configscript); (document.body || document.getElementsByTagName('head')).appendChild(mathjaxscript); } </script>Posted by: Attendee #22015-07-13T16:02:00+02:002015-07-13T16:02:00+02:00Attendee #2tag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-question-need-double-description<p>According to Figure 2, you use the double-description method to compute the span matrix <span class="math">$$V_\mathit{surf}$$</span> at each contact. Is this necessary?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#@#')) { var align = "center", indent = "0em", linebreak = "false"; if (false) { align = (screen.width < 768) ? "left" : align; indent = (screen.width < 768) ? "0em" : indent; linebreak = (screen …</script><p>According to Figure 2, you use the double-description method to compute the span matrix <span class="math">$$V_\mathit{surf}$$</span> at each contact. Is this necessary?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#@#')) { var align = "center", indent = "0em", linebreak = "false"; if (false) { align = (screen.width < 768) ? "left" : align; indent = (screen.width < 768) ? "0em" : indent; linebreak = (screen.width < 768) ? 'true' : linebreak; } var mathjaxscript = document.createElement('script'); mathjaxscript.id = 'mathjaxscript_pelican_#%@#\$@#'; mathjaxscript.type = 'text/javascript'; mathjaxscript.src = '/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; var configscript = document.createElement('script'); configscript.type = 'text/x-mathjax-config'; configscript[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({" + " config: ['MMLorHTML.js']," + " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," + " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + " displayAlign: '"+ align +"'," + " displayIndent: '"+ indent +"'," + " showMathMenu: true," + " messageStyle: 'normal'," + " tex2jax: { " + " inlineMath: [ ['\\\$$','\\\$$'] ], " + " displayMath: [ ['$$','$$'] ]," + " processEscapes: true," + " preview: 'TeX'," + " }, " + " 'HTML-CSS': { " + " availableFonts: ['STIX', 'TeX']," + " preferredFont: 'STIX'," + " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#333 ! important'} }," + " linebreaks: { automatic: "+ linebreak +", width: '90% container' }," + " }, " + " 'TeX': { " + " Macros: { " + " defeq: \"{\\\\stackrel{\\\\mathrm{def}}{=}}\"," + " Ld: \"{\\\\dot{L}}\"," + " LdG: \"{\\\\dot{L}_G}\"," + " bfA: \"{\\\\boldsymbol{A}}\"," + " bfB: \"{\\\\boldsymbol{B}}\"," + " bfC: \"{\\\\boldsymbol{C}}\"," + " bfD: \"{\\\\boldsymbol{D}}\"," + " bfE: \"{\\\\boldsymbol{E}}\"," + " bfF: \"{\\\\boldsymbol{F}}\"," + " bfG: \"{\\\\boldsymbol{G}}\"," + " bfH: \"{\\\\boldsymbol{H}}\"," + " bfI: \"{\\\\boldsymbol{I}}\"," + " bfJ: \"{\\\\boldsymbol{J}}\"," + " bfK: \"{\\\\boldsymbol{K}}\"," + " bfL: \"{\\\\boldsymbol{L}}\"," + " bfM: \"{\\\\boldsymbol{M}}\"," + " bfN: \"{\\\\boldsymbol{N}}\"," + " bfO: \"{\\\\boldsymbol{O}}\"," + " bfP: \"{\\\\boldsymbol{P}}\"," + " bfQ: \"{\\\\boldsymbol{Q}}\"," + " bfR: \"{\\\\boldsymbol{R}}\"," + " bfS: \"{\\\\boldsymbol{S}}\"," + " bfT: \"{\\\\boldsymbol{T}}\"," + " bfU: \"{\\\\boldsymbol{U}}\"," + " bfV: \"{\\\\boldsymbol{V}}\"," + " bfW: \"{\\\\boldsymbol{W}}\"," + " bfX: \"{\\\\boldsymbol{X}}\"," + " bfY: \"{\\\\boldsymbol{Y}}\"," + " bfZ: \"{\\\\boldsymbol{Z}}\"," + " bfa: \"{\\\\boldsymbol{a}}\"," + " bfb: \"{\\\\boldsymbol{b}}\"," + " bfc: \"{\\\\boldsymbol{c}}\"," + " bfd: \"{\\\\boldsymbol{d}}\"," + " bfe: \"{\\\\boldsymbol{e}}\"," + " bff: \"{\\\\boldsymbol{f}}\"," + " bfg: \"{\\\\boldsymbol{g}}\"," + " bfh: \"{\\\\boldsymbol{h}}\"," + " bfi: \"{\\\\boldsymbol{i}}\"," + " bfj: \"{\\\\boldsymbol{j}}\"," + " bfk: \"{\\\\boldsymbol{k}}\"," + " bfl: \"{\\\\boldsymbol{l}}\"," + " bfm: \"{\\\\boldsymbol{m}}\"," + " bfn: \"{\\\\boldsymbol{n}}\"," + " bfo: \"{\\\\boldsymbol{o}}\"," + " bfp: \"{\\\\boldsymbol{p}}\"," + " bfq: \"{\\\\boldsymbol{q}}\"," + " bfr: \"{\\\\boldsymbol{r}}\"," + " bfs: \"{\\\\boldsymbol{s}}\"," + " bft: \"{\\\\boldsymbol{t}}\"," + " bfu: \"{\\\\boldsymbol{u}}\"," + " bfv: \"{\\\\boldsymbol{v}}\"," + " bfw: \"{\\\\boldsymbol{w}}\"," + " bfx: \"{\\\\boldsymbol{x}}\"," + " bfy: \"{\\\\boldsymbol{y}}\"," + " bfz: \"{\\\\boldsymbol{z}}\"," + " bfalpha: \"{\\\\boldsymbol{\\\\alpha}}\"," + " bfbeta: \"{\\\\boldsymbol{\\\\beta}}\"," + " bfchi: \"{\\\\boldsymbol{\\\\chi}}\"," + " bfgamma: \"{\\\\boldsymbol{\\\\gamma}}\"," + " bflambda: \"{\\\\boldsymbol{\\\\lambda}}\"," + " bfomega: \"{\\\\boldsymbol{\\\\omega}}\"," + " bfone: \"{\\\\boldsymbol{1}}\"," + " bfsigma: \"{\\\\boldsymbol{\\\\sigma}}\"," + " bftau: \"{\\\\boldsymbol{\\\\tau}}\"," + " bfxi: \"{\\\\boldsymbol{\\\\xi}}\"," + " bfzero: \"{\\\\boldsymbol{0}}\"," + " calA: \"{\\\\cal A}\"," + " calB: \"{\\\\cal B}\"," + " calC: \"{\\\\cal C}\"," + " calD: \"{\\\\cal D}\"," + " calE: \"{\\\\cal E}\"," + " calF: \"{\\\\cal F}\"," + " calG: \"{\\\\cal G}\"," + " calH: \"{\\\\cal H}\"," + " calI: \"{\\\\cal I}\"," + " calJ: \"{\\\\cal J}\"," + " calK: \"{\\\\cal K}\"," + " calL: \"{\\\\cal L}\"," + " calM: \"{\\\\cal M}\"," + " calN: \"{\\\\cal N}\"," + " calO: \"{\\\\cal O}\"," + " calP: \"{\\\\cal P}\"," + " calQ: \"{\\\\cal Q}\"," + " calR: \"{\\\\cal R}\"," + " calS: \"{\\\\cal S}\"," + " calT: \"{\\\\cal T}\"," + " calU: \"{\\\\cal U}\"," + " calV: \"{\\\\cal V}\"," + " calW: \"{\\\\cal W}\"," + " calX: \"{\\\\cal X}\"," + " calY: \"{\\\\cal Y}\"," + " calZ: \"{\\\\cal Z}\"," + " d: [\"{\\\\rm d}{#1}\", 1]," + " bfcd: \"{\\\\dot{\\\\bfc}}\"," + " bfpd: \"{\\\\dot{\\\\bfp}}\"," + " bfpdd: \"{\\\\ddot{\\\\bfp}}\"," + " dim: \"{\\\\rm dim}\"," + " p: \"{\\\\boldsymbol{p}}\"," + " q: \"{\\\\boldsymbol{q}}\"," + " qd: \"{\\\\dot{\\\\bfq}}\"," + " qdd: \"{\\\\ddot{\\\\bfq}}\"," + " xd: \"{\\\\dot{x}}\"," + " xdd: \"{\\\\ddot{x}}\"," + " yd: \"{\\\\dot{y}}\"," + " ydd: \"{\\\\ddot{y}}\"," + " zd: \"{\\\\dot{z}}\"," + " zdd: \"{\\\\ddot{z}}\"," + " defeq: \"{\\\\stackrel{\\\\mathrm{def}}{\\\\ =\\\\ }}\"," + " } " + " } " + "}); " + "if ('default' !== 'default') {" + "MathJax.Hub.Register.StartupHook('HTML-CSS Jax Ready',function () {" + "var VARIANT = MathJax.OutputJax['HTML-CSS'].FONTDATA.VARIANT;" + "VARIANT['normal'].fonts.unshift('MathJax_default');" + "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" + "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" + "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "MathJax.Hub.Register.StartupHook('SVG Jax Ready',function () {" + "var VARIANT = MathJax.OutputJax.SVG.FONTDATA.VARIANT;" + "VARIANT['normal'].fonts.unshift('MathJax_default');" + "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" + "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" + "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" + "});" + "}"; (document.body || document.getElementsByTagName('head')).appendChild(configscript); (document.body || document.getElementsByTagName('head')).appendChild(mathjaxscript); } </script>Posted by: Attendee #12015-07-13T16:01:00+02:002015-07-13T16:01:00+02:00Attendee #1tag:scaron.info,2015-07-13:/publications/rss-2015.html//comment-question-analytical-wrench-cone<p>In your previous work, you provided an analytical formula for the contact wrench cone. Why don't you use it in this paper?</p>