szmlb.net

ロボット関係のメモ書き. 自分用メモに使っているので, 人に読ませることを意識せずに書きなぐります.

最適制御の数値計算あたりの資料メモ

非線形最適制御の資料をまとめておく. 特にindirect/direct methodの数値計算まわりが日本語資料が少なくアクセスしづらいので集中的に. 調べ次第追記していく予定.

オンラインの資料

matthew神のわかりやすい資料たち.

Canon Tutorial

Trajectory Optimization

大学の講義資料. 日本の先生っぽい?

Index of /media/Education/DoctorateProgram/2018/OptimalControl

書籍

Betts神の本

direct methodに関して細かく書いてある.

Practical Methods for Optimal Control and Estimation Using Nonlinear Programming (Advances in Design and Control)

Practical Methods for Optimal Control and Estimation Using Nonlinear Programming (Advances in Design and Control)

Ross先生の本

最適制御の基礎と擬スペクトル法とDIDOの使い方.

A Primer on Pontryagin's Principle in Optimal Control: Second Edition

A Primer on Pontryagin's Principle in Optimal Control: Second Edition

実装例

matlab

matlab実装ならmatthew神のOptimTraj (trajOptと名前が被って変えたっぽい)
github.com

python

OpenGoddard
github.com

julia

juliaにもあるんだなあ
github.com

C++

Control Toolbox. ROSから使う. どちらかというとMPCかも.
ct: Overview

論文メモ: Direct Collocation for Dynamic Behaviors with Nonprehensile Contacts: Application to Flipping Burgers

今日の論文メモ.
読むだけなら問題ないけど, ブログにまとめるの結構キツイ. 理解度は普通に読むだけの場合と比べたらだいぶ高い気がする.

読んだ論文

ロボットマニピュレータでハンバーガのパティをひっくり返す為の軌道計画を行う論文.
Direct Collocation for Dynamic Behaviors With Nonprehensile Contacts: Application to Flipping Burgers - IEEE Journals & Magazine

MISO ROBOTICSという会社が開発したFLIPPYというロボットシステムについての論文のようです. MISOは味噌? ベンチャーの開発成果をRA-Lみたいな論文誌に通して技術力をアピールするのは海外では普通なんだろうか. すごい.

動画

FLIPPY | Miso Robotics from Miso Robotics on Vimeo.

どんなもの?(概要)

nonprehensile contactとは, 把持を伴わない摩擦だけを介した接触のことを指す. 本論文では, nonprehensile object manipulationの例としてハンバーガのパティをひっくり返すためのロボットマニピュレータの動作計画を提案している. パティをひっくり返すためには, パティの場所にエンドエフェクタ(ヘラ)を誘導する動作に始まり, パティをすくい上げる(ヘラの上に載せる)動作, 持ち上げる動作, ひっくり返す動作など, 一連の動作を計画する必要がある. 本研究では, direct collocation法を用いて, これらの一連の動作に関する軌道最適化を行う方法を提案している.

先行研究と比べてどこがすごい?(関連研究との比較)

類似の研究事例として, パンケーキをひっくり返す動作の軌道計画を行う方法が提案されていた. 従来研究では作業空間での軌道を計画し, 得られた軌道に対して逆運動学計算を行って関節動作へとマッピングする方法を提案していたが, この方法でグリル上の動作を計画してみると, 特異姿勢等の問題で解が得られないケースがあった. その問題点を解決することをモチベーションにして, 関節空間で軌道を計画するような問題設定とした点が従来研究との違いである.

技術や手法の肝はどこ?(新規性)

direct collocation法を用いた軌道計画法を提案しており, パティひっくり返しの為の制約条件や初期・終端条件等を詳細に提示している点が学術的な貢献となっている. ひとたび一般的な最適化問題として定式化できれば, ソルバに投げるだけで解が得られるので, 汎用性が高いというメリットがある上, 評価関数や拘束条件の変更が容易なので, 有用性の面でも貢献度が高いと言える. また, 実応用の観点では計算が高速である必要があるため, 最適化計算が高速化されるような工夫を行っている(この部分がよくわからんかった).

どうやって有効だと検証した?(実験方法)

グリルの上の10箇所をランダムに選択し, それぞれの場所でパティをひっくり返す実験を10回ずつ実施した. 特にヘラとパティの接触が伴う動作である, 1. すくい上げ, 2. 持ち上げ, 3. ひっくり返し, の3つの動作について評価したところ, 100%成功するケースとそうでないケースがあった. ワーストケースでは70%の成功率であった.

議論はある?(未解決課題)

実験的な観察に基づくと, パティの高さ(グリルの位置)の違いに非常に敏感で, 成功率が大きく変動することがわかった. 他にも, 油が多いと滑りやすくて失敗したり, グリルの温度が低いとパティがネバネバして失敗したり, パティが部分的に崩れていると失敗しやすいらしい. そりゃそうだ. そりゃそうだけど論文にこういうことを書いてくれるのはいいことだと思う.

次に読むべき文献は?

A. Cowley, B. Cohen, W. Marshall, C. J. Taylor, M. Likhachev, "Perception and motion planning for pick-and-place of dynamic objects", Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst., pp. 816-823, 2013.

K. M. Lynch, "Issues in nonprehensile manipulation", Proc. Robot. Algorithmic Perspective 3rd Workshop Algorithmic Found. Robot., pp. 237-250, 1998.

T. Tsuji, J. Ohkuma, S. Sakaino, "Dynamic object manipulation considering contact condition of robot with tool", IEEE Trans. Ind. Electron., vol. 63, no. 3, pp. 1972-1980, Mar. 2016.

A. Hereid, A. D. Ames, "FROST: Fast robot optimization and simulation toolkit", Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst., pp. 719-726, Sep. 2017.

A. Hereid, E. A. Cousineau, C. M. Hubicki, A. D. Ames, "3D dynamic walking with underactuated humanoid robots: A direct collocation framework for optimizing hybrid zero dynamics", Proc. IEEE Int. Conf. Robot. Automat., pp. 1447-1454, May 2016.

C. R. Hargraves, S. W. Paris, "Direct trajectory optimization using nonlinear programming and collocation", J. Guid. Control Dyn., vol. 10, no. 4, pp. 338-342, 1987.

M. Posa, C. Cantu, R. Tedrake, "A direct method for trajectory optimization of rigid bodies through contact", Int. J. Robot. Res., vol. 33, no. 1, pp. 69-81, 2014.

J. Betts, Practical Methods for Optimal Control and Estimation Using Nonlinear Programming, Philadelphia, PA, USA:SIAM, 2010.

H. Zhao, S. N. Yadukumar, A. D. Ames, "Bipedal robotic running with partial hybrid zero dynamics and human-inspired optimization", Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst., pp. 1821-1827, Oct. 2012.

論文メモ: Implementation of Nonlinear Model Predictive Path-Following Control for an Industrial Robot

今日の論文メモ.

読んだ論文

ロボットマニピュレータの軌道追従制御問題(path-following control)に非線形モデル予測制御を適用した論文.
Implementation of Nonlinear Model Predictive Path-Following Control for an Industrial Robot - IEEE Journals & Magazine

動画

Implementation of Nonlinear Model Predictive Path-Following Control for an Industrial Robot

どんなもの?(概要)

軌跡の指令が与えられた条件下で, その指令軌跡にマニピュレータのエンドエフェクタを追従させる動作生成の問題を, 拘束条件付きの非線形モデル予測制御問題として捉えた論文. 軌跡上の移動速度を事前に指定できるような問題設定も可能. また,リアルタイム演算が可能な実装を念頭に置いた検討を行っている.

先行研究と比べてどこがすごい?(関連研究との比較)

path-following controlに非線形モデル予測制御を適用した事例として, x-yテーブルやクレーンの制御に適用した研究がある. また, 著者らの研究によって, ロボットマニピュレータに非線形モデル予測制御がすでに適用されていた. 著者らの従来研究と比較して, 対象とするロボットの関節数を増やし, かつ関節空間でなく作業空間でのpath-following control問題の演算を, 1msオーダの計算時間で実行可能とした点が, 本研究の貢献となっている.

技術や手法の肝はどこ?(新規性)

軌跡を表現するパラメータとして軌跡長が用いられることが一般的であるが, そのパラメータを仮想的な状態変数として扱った拡大系を構築した点が, 本研究のキモとなっている.

どうやって有効だと検証した?(実験方法)

KUKAのLWRを対象として, 簡単化のために3つの関節のみを考慮した実験を実施した. また, 作業空間上の軌跡は多項式スプライン関数で補間し, クローバ型の軌跡や「hello」という筆記体の文字を表した軌跡を評価用のパターンとして用いた. 最適化にはACADO toolkitを用い, C/C++で実装している.

議論はある?(未解決課題)

KUKAのLWRを対象としているが, 3自由度分のみモデル化して次元数を落としている点が気になる. 全ての自由度を考慮した時(=冗長なシステムになった時)にどのような問題設定とすべきかは議論の余地がありそう. また, 計算時間に関しても大幅に増加するものと予想される. また, 月並みな疑問だがモデル化誤差に対する影響も気になる. さらに, 今回の問題設定は時間最適性に関しては考慮されていないので, 時間最短最適制御問題が解けるようになると面白そう.

次に読むべき文献は?

T. Faulwasser, R. Findeisen, "Nonlinear model predictive control for constrained output path following", IEEE Trans. Autom. Control, vol. 61, no. 4, pp. 1026-1039, Apr. 2016.
Nonlinear Model Predictive Control for Constrained Output Path Following - IEEE Journals & Magazine

B. Houska, H. J. Ferreau, M. Diehl, "An auto-generated real-time iteration algorithm for nonlinear MPC in the microsecond range", Automatica, vol. 47, no. 10, pp. 2279-2285, 2011.
http://sist.shanghaitech.edu.cn/faculty/boris/paper/autogeneratedMPC.pdf

論文メモ: Transcription Methods for Trajectory Optimization - A beginners tutorial -

今日の論文メモ.

読んだ論文

軌道最適化のチュートリアル論文.
[1707.00284] Transcription Methods for Trajectory Optimization: a beginners tutorial

著者のページに, 軌道最適化に関するわかりやすい解説資料がたくさんあり, 大変参考になる.
Trajectory Optimization

どんなもの?(概要)

single-shooting法, multiple-shooting法, orthogonal-collocation法などについて解説した論文. これらの手法は日本語の文献があまり見当たらず, 学習コストが高いので, 入門時に大変参考になる. 離散化時のgrid(mesh)数や初期解の選び方, 目的関数の設定方針, 最適化ソルバの紹介など, 実装時に注意すべき点が細かく紹介されている.

先行研究と比べてどこがすごい?(関連研究との比較)

-

技術や手法の肝はどこ?(新規性)

-

どうやって有効だと検証した?(実験方法)

-

議論はある?(未解決課題)

特に記述なし.

次に読むべき文献は?

著者のページにある論文がおすすめ.
direct collocation法について詳細に紹介されており, matlabのサンプルコードもある. スライドでの解説もあるので超絶わかりやすい. matlabのサンプルをpythonかjuliaで実装し直しつつ勉強したい.

論文メモ: Gait and Trajectory Optimization for Legged Systems Through Phase-Based End-Effector Parameterization

今日の論文メモ. 今日は落合先生方式で書いてみる(試行錯誤中). 論文メモは週に三回更新を目標にして続けていきたい.

どんなもの?(概要)

歩行ロボットの歩容パターン, 一歩毎のタイミング, 着地地点, 遊脚動作や胴体(重心)の動作計画を決定する問題を, 1つの最適化問題として定式化して解く方法を提案した研究. フラットでない地形における歩行パターンの生成も可能.

先行研究と比べてどこがすごい?(関連研究との比較)

歩行ロボットの歩行パターンの生成は, 重心動作や遊脚動作についてそれぞれ独立に軌道計画が行われる場合が多い. 本研究では, それらの処理を全て同時に, 1つの最適化問題として定式化した点が最大の貢献となっている.

技術や手法の肝はどこ?(新規性)

歩行パターンの生成問題は, タイミングなどの離散的な事象を含むので, 混合整数最適化問題となる. この時, 決定すべき変数が多くなると, 計算時間が問題となる. 本研究ではこの問題を避け, 連続非線形最適化問題として定式化する方法を提案した. これにより, 通常の非線形最適化ソルバを適用することができ, 数秒程度で全体の動作を計画することが可能となった.

どうやって有効だと検証した?(実験方法)

二足歩行ロボットモデルおよび4脚歩行ロボットモデル(ANYmal, HyQ)に対して動作計画を行なった. 詳細については上述の動画を参照.

議論はある?(未解決課題)

以下の課題が残っている.

  • 本手法では, 脚部の質量が胴体部と比較して無視できると仮定している (いわゆる単質点近似モデル). よって, 脚部が重いロボットに対してはダイナミクスの誤差が無視できなくなるので, 詳細なダイナミクスモデルを仮定する必要がある.
  • 床面の状態に関する拘束(床との衝突, 摩擦円錐など)は脚動作の軌道の交差点上でしか考慮されていないので, 制約を破ってしまう危険性がある (ここはよく分かってない).
  • 床面が複雑すぎると局所最適解に陥る

今後の計画として, 最適化の計算時間をより短縮してモデル予測制御的な逐次最適化アプローチへと拡張する予定とのことである.

次に読むべき文献は?

著者, 論文めっちゃ書いてる.

[1] J. T. Betts, “Survey of numerical methods for trajectory optimization,” J. Guid., Control, Dyn., vol. 21, no. 2, pp. 193–207, 1998. [Online]. Available: http://arc.aiaa.org/doi/abs/10.2514/2.4231

[2] A. W. Winkler, “TOWR—An open-source trajecetory optimizer for legged robots in C++.” 2018. [Online]. Available: http://wiki.ros.org/towr

[9] A. W. Winkler, F. Farshidian, D. Pardo, M. Neunert, and J. Buchli, “Fast trajectory optimization for legged robots using vertex-based ZMP constraints,” IEEE Robot. Autom. Lett., vol. 2, no. 4, pp. 2201–2208, Oct. 2017.

[21] D. Pardo, M. Neunert, A. W. Winkler, R. Grandia, and J. Buchli, “Hybrid direct collocation and control in the constraint-consistent subspace for dynamic legged robot locomotion,” in Proc. Robot., Sci. Syst., 2017. [Online]. Available: http://www.roboticsproceedings.org/rss13/p42.html

[25] A. Herzog, S. Schaal, and L. Righetti, “Structured contact force optimization for kino-dynamic motion generation,” in Proc. IEEE Int. Conf. Intell. Robots Syst., 2016, pp. 2703–2710.

[27] A. Ibanez, P. Bidaud, and V. Padois, “Emergence of humanoid walking behaviors from mixed-integer model predictive control,” in Proc. IEEE Int. Conf. Intell. Robots Syst., 2014, pp. 4014–4021.

[28] R. Deits and R. Tedrake, “Footstep planning on uneven terrain with mixedinteger convex optimization,” in Proc. IEEE-RAS Int. Conf. Humanoid Robots, 2015, pp. 279–286.

[29] M. Neunert, F. Farshidian, A. W. Winkler, and J. Buchli, “Trajectory optimization through contacts and automatic gait discovery for quadrupeds,” IEEE Robot. Autom. Lett., vol. 2, no. 3, pp. 1502–1509, Jul. 2017.

[31] M. Posa, C. Cantu, and R. Tedrake, “A direct method for trajectory optimization of rigid bodies through contact,” Int. J. Robot. Res., vol. 33, no. 1, pp. 69–81, 2013. [Online]. Available: http://ijr.sagepub.com/content/33/1/69.short

[33] M. Diehl, H. G. Bock, H. Diedam, and P. B. Wieber, “Fast direct multiple shooting algorithms for optimal robot control,” in Fast Motions in Biomechanics and Robotics (Lecture Notes in Control and Information Sciences), vol. 340. Berlin, Germany: Springer, 2006, pp. 65–93.

[37] A. W. Winkler, “XPP—A collection of ROS packages for the visualization of legged robots.” 2017. [Online]. Available: http://wiki.ros.org/xpp

[39] C. Gehring et al., “Kindr library—Kinematics and dynamics for robotics,” 2016. [Online]. Available: https://docs.leggedrobotics.com/kindr/cheatsheet_latest.pdf. Accessed on: Nov. 25, 2017.

論文メモ: Skating with a Force Controlled Quadrupedal Robot

概要

ANYmalの足先に受動輪と爪をつけて, スケーティング動作ができるような動作計画と動作制御手法を提案した研究. 4脚ロボットや二足歩行ロボットにスケート動作をさせる研究は存在していたが, それらの多くが位置制御に基づいていた. この研究では, 全関節トルク制御が可能なANYmalを用いることで, 力制御ベースのスケート動作生成法および制御手法を提案したことが主な貢献となっている. 具体的には, ZMPをベースにして重心動作計画を行い, 脚の動作に関しては, 爪を使ったpushing phaseと, 車輪部を使ったgliding phaseに分けてそれぞれ動作計画を行なっている. 動作制御に関しては, J. PrattのVirtual Model Controlと, スケート動作に特有な非ホロノミック拘束を考慮した反力最適化問題を解くアプローチを採っている.

次に読む論文

久しぶりに4脚の論文を読んだので, 面白そうな論文がたくさん引用されている.

[1] M. Hutter, C. Gehring, M. A. Hopflinger, M. Bl ¨ osch, and R. Siegwart, “Toward combining speed, efficiency, versatility, and robustness in an autonomous quadruped,” IEEE Transactions on Robotics, 2014.

[2] M. Hutter, C. Gehring, D. Jud, A. Lauber, C. D. Bellicoso, V. Tsounis, J. Hwangbo, K. Bodie, P. Fankhauser, M. Bloesch, et al., “ANYmal - a highly mobile and dynamic quadrupedal robot,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS),
2016.

[3] M. Hutter, C. Gehring, A. Lauber, F. Gunther, C. Bellicoso, V. Tsounis, P. Fankhauser, R. Diethelm, S. Bachmann, M. Bloesch, et al., “ANYmal - toward legged robots for harsh environments,” Advanced
Robotics, 2017.

[4] W. Reid, F. J. Perez-Grau, A. H. G ´ okto ¨ gan, and S. Sukkarieh, “Actively ˘ articulated suspension for a wheel-on-leg rover operating on a martian analog surface,” in IEEE International Conference on Robotics and
Automation (ICRA), 2016.

[10] C. D. Bellicoso, F. Jenelten, C. Gehring, and M. Hutter, “Dynamic locomotion through online nonlinear motion optimization for
quadrupedal robots,” IEEE Robotics and Automation Letters, 2018.

[12] C. Gehring, S. Coros, M. Hutler, C. D. Bellicoso, H. Heijnen, R. Diethelm, M. Bloesch, P. Fankhauser, J. Hwangbo, M. Hoepflinger, et al., “Practice makes perfect: An optimization-based approach to controlling agile motions for a quadruped robot,” IEEE Robotics & Automation Magazine, 2016

[13] G. Bellegarda, K. van Teeffelen, and K. Byl, “Design and evaluation of skating motions for a dexterous quadruped,” in IEEE International Conference on Robotics and Automation, 2018.

[22] C. D. Bellicoso, M. Bjelonic, L. Wellhausen, K. Holtmann, F. Gunther, M. Tranzatto, P. Fankhauser, and M. Hutter, “Advances in real-world applications for legged robots,” under review for Journal of Field Robotics, 2018.

[26] M. Bloesch, C. Gehring, P. Fankhauser, M. Hutter, M. A. Hoepflinger, and R. Siegwart, “State estimation for legged robots on unstable and slippery terrain,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2013.

読書メモ: 没頭力「なんかつまらない」を解決する技術

没頭力「なんかつまらない」を解決する技術 のまとめと感想.

没頭力 「なんかつまらない」を解決する技術

没頭力 「なんかつまらない」を解決する技術

何についての本?

日本放送のよっぴーさんこと吉田尚記さんの著書. 「人生を上機嫌 (=ワクワクして目が醒めて, 夜満ち足りて眠るような状態)で過ごす方法を論理的に考えたい」というモチベーションから始まり, 「没頭する時間を増やすことで, 上機嫌な人生を送れるのではないか?」と考え, 「ではいかに没頭する時間を再現するか」, ということを論じている本です. 没頭するというのはどういう状態なのか, その定義から始まって, 没頭する状態になるにはどうしたらいいのかまで説明されています.

読もうと思った経緯は?

twitterを眺めていたらたまたま目に入り,「最近没頭できてないなあ」という漫然とした悩みというか, フラストレーションみたいなものがあったので, これを読んで参考になったらいいな, と思ったからです. これまで, もちろん没頭してきたことはたくさんあったのですが, その状態に意図的に持っていくヒントが何か得られれば良いなと.

本の特徴は?

よっぴーさんはニコ生のチャンネルを持っていて, 過去のニコ生で話した内容を書籍化した点が特徴的です. 放送時の視聴者のコメントも一部記載されていて, 読み手の疑問に都度答えるような形になっており, 非常に読みやすいです. 200ページ程度で, 1~2時間で一気に読めます.

本の内容の要約は?

没頭するための条件を本から引用すると, 以下の8つになります.

  1. ゴールとルールがはっきりしていて, フィードバックがはやいこと
  2. 目の前のことに100%集中していること
  3. 無意識に体を動かしていること
  4. 自分というものをなくしていること
  5. 時間の感覚がなくなっていること
  6. その場の状況を自分でコントロールできていること
  7. その行動自体が目的になっていること
  8. 自分の持っているスキルと行為のバランスが取れていること

ここで, 1, 6, 8が外的要因であり, その他が没頭した状態の結果についての説明なので, 没頭するためには特に1, 6, 8に注視する必要がある, と述べられています.

具体的な方策として, 以下の3つが提案されています.

  • 自分なりのルールを決める
  • 結果が得られるまでのスパンを短くする
  • 自分のスキルより4%難しいことに挑戦する

また, 没頭した状態にさらに入りやすくするためのステップとして, 「不安→開き直り→没頭」という手順が良い, としています. まずはストレスとかけて, 次にリラックスし, 最後に目の前のやるべきことに集中する, という手順が没頭しやすい. twitterとかをダラダラと見てしまうのは, ストレスがかかっていない「安定した状態」なので, ワクワク感のある没頭した状態からは遠ざかってしまうそうです.
そのほかにも, 開き直るためにはどうしたらいいのか, 没頭するものを見つけるにはどうしたらいいのか, 没頭するためのさらなるテクニック等, 色々書いてあるので, 気になる方は読んでみてください.

所感

上に書いてある内容で, 没頭している状態についての説明は, 「まあ言われてみればその通りだな」という感じなのですが, 言語化されているのは今の自分にとって参考になりました. 会社の仕事なんかだと, 個人で完結するような作業以外は, やっぱり没頭するのは難しいのかなーとか. 色々これやりたいありやりたいとか勝手に考えることには没頭できるんですが. 上の定義からいうと, プログラミングとかものを作ったりするときは, ほぼ条件を満たしそうな気がします. 最近没頭できてないなーと感じていたのは, 「自分の持っているスキルと行為のバランスが取れていること」という条件を満たしていないことが原因な気がします. 最近は自分のスキル以上の難しいことに興味がいっていて, その勉強をしようと思っても集中力がすぐに切れてしまう場合が多いです. じゃあこんな時に没頭するためにはどうすれば良いのかというと, 背伸びせずに順を追って勉強しろ, という感じになるのかな. 難しい論文を読もうとして諦めて, 調べようと思ったらいつの間にかtwitter見て...というケースが多い気がしたので, 勉強の計画をもう少し真面目にやろうと思いました.

次に読む本は?

実はこの本にはタネ本があります. 少し高めですが, 読むとしたら次はこの本だと思います. よっぴーさんの本は安いしすぐ読めるので, 一発目としておすすめです.

フロー体験入門―楽しみと創造の心理学

フロー体験入門―楽しみと創造の心理学