Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

EusLispでロボットプログラミング

3,315 views

Published on

ROS勉強会で発表させていただきました.
ロボット開発向けの開発環境EusLispの使い方の初級者向けチュートリアルです.

Published in: Technology
  • ⇒ www.HelpWriting.net ⇐ is a good website if you’re looking to get your essay written for you. You can also request things like research papers or dissertations. It’s really convenient and helpful.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

EusLispでロボットプログラミング

  1. 1. EusLispで ロボットプログラミング 2015/10/4(日) 矢口 裕明 @hyaguchijsk
  2. 2. EusLisp? ● http://hara.jpn.com/_default/ja/Software/EusLisp.html  より – “電子技術総合研究所(現 産業技術総合研究所)松井 俊浩氏によって開発されたオブジェクト指向Lispの1 つ。その他のLispを基礎としたオブジェクト指向プロ グラム言語(例えばCLOS )と異なり、オブジェクト 指向を基礎とした Lisp ”システムである。 ● 現在は情報システム工学研究室:JSKが管理. – https://github.com/euslisp
  3. 3. EusLispはオープンソースである ● 誰でも使える! – 最小限であれば,例えば ● sudo apt-get install ros-indigo-roseus ● しかし,チュートリアルがほとんどない. – ようやく一部のドキュメントがメンテされ始めた が,初心者向けのものはあまり無い. ● http://euslisp-docs.readthedocs.org/en/latest/ ● つまり,誰でも使えるはずのソフトウェアでは あるが,使い方が分かる人が限られていて,結 局誰もが使えるソフトウェアではない.
  4. 4. この発表の目的 ● EusLispは誰でも使っていいものなので,誰で も使えるようにしたい. – 非常に効率的な開発環境だが,使い方がわからない という理由からなかなか理解を得られない.これで は開発してきたものも理解してもらえない. ● 特に,リファレンスマニュアルのような中級者 以上向け資料は整備されていても,肝心の初級 者向けがない. – 初級者向けの教科書の必要性. ● http://euslisp-tutorial.readthedocs.org/ja/latest/
  5. 5. EusLispのここがすごい! ● ロボットプログラミングのための便利機能が充 実している.特に三次元幾何に関する機能はお そらく世界一充実している. – 三次元ビューワも標準でついている. – 物体やロボットだけでなく環境情報も記述できる. ● インタプリタを用いてらくらくプロトタイピン グ. ● ROS対応(roseus). ● 多種のロボットに対応.
  6. 6. EusLisp対応ロボット ● HRP2, HRP4R, PR2, HiroNX, NextageOpen, Baxter, Pepper, Nao, etc… – しかもこれらのロボットのeusインタフェースは共通化され ている. – すべてのロボットがrobot-interfaceというクラスを継承して いる. ● http://euslisp-docs.readthedocs.org/en/latest/pr2eus/robot-interface/ ● https://github.com/jsk-ros-pkg/jsk_pr2eus/blob/master/pr2eus/robot-interfa ● これにより,一つのロボットが使えれば同じように別のロ ボットを扱うことができる.あるロボット用に書いた行動 プログラムを他のロボットでも利用できる.
  7. 7. EusLispデモ(1) ● https://github.com/euslisp/jskeus – roseus – load “package://euslisp/jskeus/irteus/demo/demo.l”
  8. 8. EusLispデモ(2) ● モデルの一括生成デモ – 大量のウインドウが出るので 注意 ● https://github.com/euslisp/jskeus ● ロボットモデル – (load “package://euslisp/jskeus/eus/ models/irt-all-robots.l”) (make- all-robots) ● 物体モデル – (load “package://euslisp/jskeus/eus/ models/irt-all-objects.l”) (make-all-objects) https://github.com/euslisp/jskeus/blob/master/images/irt-all-robots.png https://github.com/euslisp/jskeus/blob/master/images/irt-all-objects.png
  9. 9. EusLispデモ(3) ● 部屋のモデルを生成 – http://euslisp-docs.readthedocs.org/en/latest/jskeus/jmanual/#_19 ● scene-modelというクラスになってい る. – (load “package://euslisp/jskeus/eus/models/ro om73b2-scene.l”) – (setq *room* (room73b2)) – (objects (list *room*)) ● 部屋モデルが複数の物体モデルの集合 からなる. – (send *room* :objects) ● 立ち位置も含む. – (send *room* :spots)
  10. 10. EusLispの弱点 ● 実行速度は遅い. – 配列へのアクセスが遅いため,画像処理や点群処理は非常に苦 手. – 三次元モデルの取り扱いが厳密で,実行速度が犠牲になってい る. ● 中身がいかんせん古い. – 例) readlineに対応してないのでターミナルからインタプリタを上 げるとまともに使えない. ● 厳密にはどのLISPとも違う. – CommonLISPでもSchemeでもない.他のLISPになれた人には 却って大変かもしれない. – クロージャの実装が不完全.
  11. 11. 下準備
  12. 12. インストール ● http://wiki.ros.org/rtmros_common/Tutorials/GettingStart – sudo apt-get install ros-indigo-hrpsys-ros-bridge ros-indigo-roseus ros-indigo-euscollada ros-indigo-pr2eus ● http://wiki.ros.org/rtmros_common/Tutorials/WorkingWithEusLisp ● wstoolを先にインストールしてください ● sudo apt-get install python-wstool – wstool set rtm-ros-robotics/rtmros_tutorials https://github.com/start-jsk/rtmros_tutorials.git --git – wstool update rtm-ros-robotics/rtmros_tutorials – cd .. – catkin_make --force-cmake --only-pkg-with-deps hrpsys_ros_bridge_tutorials
  13. 13. Emacs shell ● 前述のとおり,readlineが使えないため,イン タプリタを起動する前に何らかの対策が必要で す. – rlwrapを使う – emacs shellを使う(推奨) ● emacs –nwして,M-x shellとするとemacs shellが起動できます. – バッファに出力が貯められて便利. – M-pで履歴をたどれます.
  14. 14. はじめてみよう
  15. 15. roseus Irteusgl eusgl eusx eusg eus2 eus1 EusLispの構造 ● EusLisp本体にも拡張段 階がある. – eus0,eus1,eus2,eusg, eusx,eusgl,それぞれ前 の段階を拡張するもの になっている. ● 拡張としてirteusglがあ る. ● ROS対応としてroseus がある. eus0
  16. 16. EusLispの基本 ● まずはroseusを起動しよう – roseus ● 簡単な演算 – (setq a (+ 1 2)) ● 前回の計算結果を参照 – * ● リストを作ろう – (setq *ls* (list 1 3 2)) ● carとcdr – (car *ls*) ;; 1 – (cdr *ls*) ;; ‘(3 2) ● 終了 – (exit) ● プログラムはどうやって書く の? – .lというファイルにコーディン グしてください. ● 読み込みは, – 起動時に読む場合は roseus < ファイル名> – 起動後に読む場合は (load “< ファイル名>”) ● エントリーポイントは存在しま せん. – 読んでいきなり実行するには 最後に実行文が全部実行され るようにしましょう.
  17. 17. 関数定義・クラス定義 ● 関数定義は – (defun function-name (args) … ) ● クラス定義は – (defclass class-name :super super-class :slots (slot-vars)) – (defmethod class-name (:init (args) …) … ) – メソッド定義がクラス定義と分かれているため,実行時にメソッドを追 加することもできる. ● インスタンス生成は – (instance class-name :init args) – :init がコンストラクタ ● メソッド呼び出しは – (send instance :method)
  18. 18. 3Dモデルを作ってみよう ● http://euslisp- docs.readthedocs.org/en/latest/euslisp/manual/#geometri c-modeling ● http://euslisp- docs.readthedocs.org/en/latest/jskeus/jmanual/#_2
  19. 19. 3Dモデリング ● ビューワを表示しよう. – (make-irtviewer) – *irtviewer*という変数にビューワのインスタンスが入ります. ● キューブを作ろう. – (setq *cube* (make-cube 100 100 100)) ;; 単位[mm] ● 表示しよう. – (objects (list *cube*)) – (send *irtviewer* :draw-objects) ● 姿勢を変えよう – (send *cube* :translate (float-vector 0 0 50)) ;; float-vectorは実数ベクト ルを作る – (send *cube* :rotate (deg2rad 30) :z) ;; 単位[rad],z軸周りの回転
  20. 20. Coordinate ● EusLispにおける同次座標変換の肝となるクラス. – http://euslisp-docs.readthedocs.org/en/latest/euslisp/manual/#coordina ● roseusではTFとの相互変換ができる. – http://euslisp-docs.readthedocs.org/en/latest/roseus/eustf/ ● TFとは異なる点が多い(後述) ● インスタンスの取り出し方 – (make-coords) ;; 新規作成 – (send *cube* :coords) ;; 物体の座標を取り出す ● 姿勢の変え方は物体と同じく:translate, :rotate – 実際にはcoordsを操作している.
  21. 21. Coordinate vs TF ● Coordinate ● 静的,永続性. ● タイムスタンプを持たな い. ● 座標を連結できる. ● 連結は連結座標系 (cascaded-coords)で管 理. ● 基本的にすべてが世界座標 系に存在するという前提の ため,どこから見た何なの ● TF ● 動的,揮発性. ● タイムスタンプを持つ. ● 座標を連結できる. ● 連結は親座標系の名前で管 理. ● 座標は自分自身が名前を持 ち,連結も名前で指定され ているため,どこから見た 何なのかはシステム上管理 されている.
  22. 22. assoc, dissoc ● 物体や連結座標系は連結する事ができます. – http://euslisp- docs.readthedocs.org/en/latest/euslisp/manual/#cascadedcoords ● 連結座標系のつくりかた – (make-cascoords) ;; cascaded-coordsというクラス ● 連結方法 – (send parent-obj :assoc child-obj) – こうすることで,親となる物体や連結座標系が移動すると一緒に動きま す. – 世界座標系でのcoordsを取ってくるには:worldcoordsを使います. ● 連結解除 – (send parent-obj :dissoc child-obj)
  23. 23. ロボットを動かしてみよう ● http://wiki.ros.org/rtmros_common/Tutorials/WorkingWithEusLisp ● http://euslisp-docs.readthedocs.org/en/latest/jskeus/jmanual/#_19
  24. 24. ロボットプログラミング(1) 準備 ● eusを用いたロボットプログラミングの流れ – ロボットモデルをEusLisp上で動かす. ● この時に静的な安定性や干渉などを予め計算することができ る. – 実ロボットに対して関節角度列ベースで指令を送る. – この繰り返し. ● samplerobotを使ってみよう – http://wiki.ros.org/rtmros_common/Tutorials/WorkingWithEusLisp – hrpsys_ros_bridge_tutorials/euslisp/samplerobot-interface.l – (samplerobot-init) – (objects (list *sr*))
  25. 25. ロボットプログラミング(2) 順運動学 ● リムへのアクセス方法 – :head (samplerobotにはない) – :rarm, :larm, :arms – :torso – :rleg, :lleg, :legs ● 関節角度へのアクセス方法 – (send *sr* :rarm :elbow-p :joint-angle) ;; ゲッタ – (send *sr* :rarm :elbow-p :joint-angle -90) ;; セッタ
  26. 26. ロボットプログラミング(3) 逆運動学 ● 目標となる座標系を用いて – (setq *co* (send *sr* :rarm :end-coords :copy- worldcoords)) – (send *co* :translate (float-vector 100 0 0)) – (send *sr* :rarm :inverse-kinematics *co*) ● 現在の手先座標からの相対位置 – (send *sr* :rarm :move-end-pos (float-vector 100 0 0))
  27. 27. ロボットプログラミング(4) 足の使い方 ● (send *sr* :rleg :move-end-pos (float-vector 0 -100 100)) – :move-end-posは足にも使える. ● (send *sr* :move-centroid-on-foot :lleg ‘(:lleg)) – 第一引数はどの足の上に重心を乗せるか – 第二引数はどの足を動かすか ● (send *sr* :fix-leg-to-coords (make-coords) :lleg)
  28. 28. ロボットプログラミング(5) 実機への指令 ● http://wiki.ros.org/rtmros_common/Tutorials/WorkingWithEusLisp ● (send *ri* :angle-vector (send *sr* :angle-vector) 5000) – 全ロボット共通(*sr*を変更すればすべてのロボットでこの方法が使えま す). – 全身の関節角度列をコントローラに送信する. – 最後の引数は目標時間(単位[ms]). – 非同期的.通信が終了するのを待つには, – (send *ri* :wait-interpolation) ● 実機の状態をモデル側へ反映するには – (send *ri* :state) – (send *sr* :angle-vector (send *ri* :potentio-vector))
  29. 29. 自分のロボットを EusLispに対応させるには? ● 1. OpenHRP対応の機体の場合,hrpsys_ros_bridgeを用いてeusモデルと robot-interfaceを作る. – OpenHRPに対応させるにはVRML形式のモデルを作って,iob.cppをロボットに 合わせて作る必要があります. – http://hrpsys-base.readthedocs.org/en/latest/de/ddc/iob_8h.htm ● 2. ROS対応の機体の場合,collada_urdf, euscolladaを用いてeusモデルを作 り,robot-interfaceは自分で書く. – moveit!対応(followjointtrajectoryがある)なら簡単. – 例えば,以下を参考にしました. ● https://github.com/jsk-ros-pkg/jsk_robot/tree/master/jsk_baxter_robot/baxtereus – ただし,eusで3Dメッシュを扱うのは非常に重いので,予めモデルファイルの点 数を削減しておくことをおすすめします.Blenderでできます. ● なお,どちらの場合も手足が四本を超えるとダメ. – ヒューマノイドを前提としているため. – 足りない分には問題無いようです.
  30. 30. まとめ
  31. 31. おわりに ● ロボットプログラミングのための開発環境EusLispの 使い方について紹介しました. – 更に詳しくは本家ドキュメント – http://euslisp-docs.readthedocs.org/en/latest/ – またはこのスライドの元になったチュートリアル – http://euslisp-tutorial.readthedocs.org/ja/latest/ – ROS連携はroseusのドキュメントを参照してくださ い. – http://euslisp-docs.readthedocs.org/en/latest/roseus/

×