<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Stéphane on Locomotion - Comments: Humanoid and wheeled-legged controllers in C++ and Python: balancing at different frequencies</title><link href="https://scaron.info/talks/humanoids-2022.html/" rel="alternate"/><link href="https://scaron.info/feeds/comment.humanoids-2022.atom.xml" rel="self"/><id>https://scaron.info/talks/humanoids-2022.html/</id><updated>2022-11-28T10:47:00+01:00</updated><entry><title>Posted by: Yuki Onishi</title><link href="https://scaron.info/talks/humanoids-2022.html/#comment-reply-rust" rel="alternate"/><published>2022-11-28T10:47:00+01:00</published><updated>2022-11-28T10:47:00+01:00</updated><author><name>Yuki Onishi</name></author><id>tag:scaron.info,2022-11-28:/talks/humanoids-2022.html//comment-reply-rust</id><content type="html">&lt;p&gt;That's good to hear! I contribute to &lt;a href="https://github.com/openrr/openrr"&gt;OpenRR&lt;/a&gt;, the Open Rust Robotics platform. You should check it out.&lt;/p&gt;</content><category term="misc"/></entry><entry><title>Posted by: Yuki Onishi</title><link href="https://scaron.info/talks/humanoids-2022.html/#comment-question-rust-julia" rel="alternate"/><published>2022-11-28T10:46:00+01:00</published><updated>2022-11-28T10:46:00+01:00</updated><author><name>Yuki Onishi</name></author><id>tag:scaron.info,2022-11-28:/talks/humanoids-2022.html//comment-question-rust-julia</id><content type="html">&lt;p&gt;You mentioned Rust and Julia. Do you have plans to extend Vulp to these languages?&lt;/p&gt;</content><category term="misc"/></entry><entry><title>Posted by: Stéphane</title><link href="https://scaron.info/talks/humanoids-2022.html/#comment-reply-support-area" rel="alternate"/><published>2022-11-28T10:44:00+01:00</published><updated>2022-11-28T10:44:00+01:00</updated><author><name>Stéphane</name></author><id>tag:scaron.info,2022-11-28:/talks/humanoids-2022.html//comment-reply-support-area</id><content type="html">&lt;p&gt;Indeed, this analysis does not consider the distance to the edge of the support area.&lt;/p&gt;
&lt;p&gt;I agree with you that the maximum sampling period should be affected by the position of the ZMP within its support area.&lt;/p&gt;</content><category term="misc"/></entry><entry><title>Posted by: Yuichi Tazaki</title><link href="https://scaron.info/talks/humanoids-2022.html/#comment-question-support-area" rel="alternate"/><published>2022-11-28T10:44:00+01:00</published><updated>2022-11-28T10:44:00+01:00</updated><author><name>Yuichi Tazaki</name></author><id>tag:scaron.info,2022-11-28:/talks/humanoids-2022.html//comment-question-support-area</id><content type="html">&lt;p&gt;I have a follow-up question: does this work consider the distance from the ZMP to the edge of its support area?&lt;/p&gt;
&lt;p&gt;It seems the maximum sampling period would become smaller as this distance shrinks.&lt;/p&gt;</content><category term="misc"/></entry><entry><title>Posted by: Stéphane</title><link href="https://scaron.info/talks/humanoids-2022.html/#comment-reply-rust-julia" rel="alternate"/><published>2022-11-28T10:42:00+01:00</published><updated>2022-11-28T10:42:00+01:00</updated><author><name>Stéphane</name></author><id>tag:scaron.info,2022-11-28:/talks/humanoids-2022.html//comment-reply-rust-julia</id><summary type="html">&lt;p&gt;Vulp being a protocol, it is open to implementation in either Rust or Julia. Rust has proper safety guarantees compared to C++, and Julia performs faster than Python with roughly the same level of abstraction—although, regarding this last point, we saw in this presentation that the current performance of …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Vulp being a protocol, it is open to implementation in either Rust or Julia. Rust has proper safety guarantees compared to C++, and Julia performs faster than Python with roughly the same level of abstraction—although, regarding this last point, we saw in this presentation that the current performance of Python is already sufficient for many balancing use cases. Personally I'm interested in Rust's guarantees and type system.&lt;/p&gt;</content><category term="misc"/></entry><entry><title>Posted by: Stéphane</title><link href="https://scaron.info/talks/humanoids-2022.html/#comment-reply-low-frequency-controller" rel="alternate"/><published>2022-11-28T10:42:00+01:00</published><updated>2022-11-28T10:42:00+01:00</updated><author><name>Stéphane</name></author><id>tag:scaron.info,2022-11-28:/talks/humanoids-2022.html//comment-reply-low-frequency-controller</id><summary type="html">&lt;p&gt;We indeed need to specify what is discretized exactly. In this analysis, the continuous-time DCM dynamics are discretized with sampling time &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;&lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;δ&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;\def\bfA{\boldsymbol{A}}
\def\bfB{\boldsymbol{B}}
\def\bfC{\boldsymbol{C}}
\def\bfD{\boldsymbol{D}}
\def\bfE{\boldsymbol{E}}
\def\bfF{\boldsymbol{F}}
\def\bfG{\boldsymbol …&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;We indeed need to specify what is discretized exactly. In this analysis, the continuous-time DCM dynamics are discretized with sampling time &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;&lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;δ&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;\def\bfA{\boldsymbol{A}}
\def\bfB{\boldsymbol{B}}
\def\bfC{\boldsymbol{C}}
\def\bfD{\boldsymbol{D}}
\def\bfE{\boldsymbol{E}}
\def\bfF{\boldsymbol{F}}
\def\bfG{\boldsymbol{G}}
\def\bfH{\boldsymbol{H}}
\def\bfI{\boldsymbol{I}}
\def\bfJ{\boldsymbol{J}}
\def\bfK{\boldsymbol{K}}
\def\bfL{\boldsymbol{L}}
\def\bfM{\boldsymbol{M}}
\def\bfN{\boldsymbol{N}}
\def\bfO{\boldsymbol{O}}
\def\bfP{\boldsymbol{P}}
\def\bfQ{\boldsymbol{Q}}
\def\bfR{\boldsymbol{R}}
\def\bfS{\boldsymbol{S}}
\def\bfT{\boldsymbol{T}}
\def\bfU{\boldsymbol{U}}
\def\bfV{\boldsymbol{V}}
\def\bfW{\boldsymbol{W}}
\def\bfX{\boldsymbol{X}}
\def\bfY{\boldsymbol{Y}}
\def\bfZ{\boldsymbol{Z}}
\def\bfalpha{\boldsymbol{\alpha}}
\def\bfa{\boldsymbol{a}}
\def\bfbeta{\boldsymbol{\beta}}
\def\bfb{\boldsymbol{b}}
\def\bfcd{\dot{\bfc}}
\def\bfchi{\boldsymbol{\chi}}
\def\bfc{\boldsymbol{c}}
\def\bfd{\boldsymbol{d}}
\def\bfe{\boldsymbol{e}}
\def\bff{\boldsymbol{f}}
\def\bfgamma{\boldsymbol{\gamma}}
\def\bfg{\boldsymbol{g}}
\def\bfh{\boldsymbol{h}}
\def\bfi{\boldsymbol{i}}
\def\bfj{\boldsymbol{j}}
\def\bfk{\boldsymbol{k}}
\def\bflambda{\boldsymbol{\lambda}}
\def\bfl{\boldsymbol{l}}
\def\bfm{\boldsymbol{m}}
\def\bfn{\boldsymbol{n}}
\def\bfomega{\boldsymbol{\omega}}
\def\bfone{\boldsymbol{1}}
\def\bfo{\boldsymbol{o}}
\def\bfpdd{\ddot{\bfp}}
\def\bfpd{\dot{\bfp}}
\def\bfphi{\boldsymbol{\phi}}
\def\bfp{\boldsymbol{p}}
\def\bfq{\boldsymbol{q}}
\def\bfr{\boldsymbol{r}}
\def\bfsigma{\boldsymbol{\sigma}}
\def\bfs{\boldsymbol{s}}
\def\bftau{\boldsymbol{\tau}}
\def\bftheta{\boldsymbol{\theta}}
\def\bft{\boldsymbol{t}}
\def\bfu{\boldsymbol{u}}
\def\bfv{\boldsymbol{v}}
\def\bfw{\boldsymbol{w}}
\def\bfxi{\boldsymbol{\xi}}
\def\bfx{\boldsymbol{x}}
\def\bfy{\boldsymbol{y}}
\def\bfzero{\boldsymbol{0}}
\def\bfz{\boldsymbol{z}}
\def\defeq{\stackrel{\mathrm{def}}{=}}
\def\p{\boldsymbol{p}}
\def\qdd{\ddot{\bfq}}
\def\qd{\dot{\bfq}}
\def\q{\boldsymbol{q}}
\def\xd{\dot{x}}
\def\yd{\dot{y}}
\def\zd{\dot{z}}

\delta t&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span aria-hidden="true" class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut" style="height:0.6944em;"&gt;&lt;/span&gt;&lt;span class="mord mathnormal" style="margin-right:0.03785em;"&gt;δ&lt;/span&gt;&lt;span class="mord mathnormal"&gt;t&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;. Meanwhile, force control is assumed to run in an underlying continuous process, but its outcome (&lt;em&gt;e.g.&lt;/em&gt; delay) is lumped in a ZMP tracking error at the next sampling time.&lt;/p&gt;</content><category term="misc"/></entry><entry><title>Posted by: Stéphane</title><link href="https://scaron.info/talks/humanoids-2022.html/#comment-reply-reply-rust" rel="alternate"/><published>2022-11-28T10:42:00+01:00</published><updated>2022-11-28T10:42:00+01:00</updated><author><name>Stéphane</name></author><id>tag:scaron.info,2022-11-28:/talks/humanoids-2022.html//comment-reply-reply-rust</id><content type="html">&lt;p&gt;👍&lt;/p&gt;</content><category term="misc"/></entry><entry><title>Posted by: Takumi Kamioka</title><link href="https://scaron.info/talks/humanoids-2022.html/#comment-question-low-frequency-controller" rel="alternate"/><published>2022-11-28T10:42:00+01:00</published><updated>2022-11-28T10:42:00+01:00</updated><author><name>Takumi Kamioka</name></author><id>tag:scaron.info,2022-11-28:/talks/humanoids-2022.html//comment-question-low-frequency-controller</id><content type="html">&lt;p&gt;This question is about balancing as a low-frequency task (&lt;a href="https://scaron.info/slides/humanoids-2022.pdf#page=32"&gt;slide 26&lt;/a&gt; about &lt;a href="https://arxiv.org/abs/1907.01805"&gt;this work&lt;/a&gt;). Isn't this result assuming continuous-time control at some stage?&lt;/p&gt;</content><category term="misc"/></entry><entry><title>Posted by: Stéphane</title><link href="https://scaron.info/talks/humanoids-2022.html/#comment-reply-windows" rel="alternate"/><published>2022-11-28T10:40:00+01:00</published><updated>2022-11-28T10:40:00+01:00</updated><author><name>Stéphane</name></author><id>tag:scaron.info,2022-11-28:/talks/humanoids-2022.html//comment-reply-windows</id><content type="html">&lt;p&gt;Currently Vulp only supports Linux for x86 and ARM architectures, which is Upkie's use case. We can add Windows support to the roadmap: &lt;a href="https://github.com/stephane-caron/vulp/issues/3"&gt;#3&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note however that Vulp targets mostly researchers, research engineers, or PhD students. It may have some rough edges for students earlier in the learning curve.&lt;/p&gt;</content><category term="misc"/></entry><entry><title>Posted by: Yuichi Tazaki</title><link href="https://scaron.info/talks/humanoids-2022.html/#comment-question-windows" rel="alternate"/><published>2022-11-28T10:40:00+01:00</published><updated>2022-11-28T10:40:00+01:00</updated><author><name>Yuichi Tazaki</name></author><id>tag:scaron.info,2022-11-28:/talks/humanoids-2022.html//comment-question-windows</id><content type="html">&lt;p&gt;Does Vulp run on Windows? This would be helpful when setting up a teaching environment for students.&lt;/p&gt;</content><category term="misc"/></entry></feed>