Submit Search
Upload
EusLispでロボットプログラミング
•
Download as ODP, PDF
•
8 likes
•
4,019 views
Hiroaki Yaguchi
Follow
ROS勉強会で発表させていただきました. ロボット開発向けの開発環境EusLispの使い方の初級者向けチュートリアルです.
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 31
Download now
Recommended
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用
Yasunori Ozaki
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
Deep Learning JP
[DL輪読会]Social Influence as Intrinsic Motivation for Multi-Agent Deep Reinforc...
[DL輪読会]Social Influence as Intrinsic Motivation for Multi-Agent Deep Reinforc...
Deep Learning JP
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
Atsushi Hayakawa
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations
Deep Learning JP
MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理
Takeshi Yamamuro
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Yusuke Uchida
Recommended
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用
Yasunori Ozaki
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
Deep Learning JP
[DL輪読会]Social Influence as Intrinsic Motivation for Multi-Agent Deep Reinforc...
[DL輪読会]Social Influence as Intrinsic Motivation for Multi-Agent Deep Reinforc...
Deep Learning JP
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
Atsushi Hayakawa
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations
Deep Learning JP
MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理
Takeshi Yamamuro
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Yusuke Uchida
劣微分
劣微分
ShintaUrakami
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
Koichi Hamada
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
Eiji Uchibe
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)
Shohei Taniguchi
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化
Kanetaka Heshiki
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
Deep Learning JP
グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey
Akira Taniguchi
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
Deep Learning JP
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
Deep Learning JP
第六回全日本コンピュータビジョン勉強会資料 UniT (旧題: Transformer is all you need)
第六回全日本コンピュータビジョン勉強会資料 UniT (旧題: Transformer is all you need)
Yasunori Ozaki
Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門
Shohei Hido
Javaでつくる本格形態素解析器
Javaでつくる本格形態素解析器
Works Applications
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
Tatsuya Matsushima
Cvpr 2019 pvnet
Cvpr 2019 pvnet
Kenta Tanaka
3次元レジストレーション(PCLデモとコード付き)
3次元レジストレーション(PCLデモとコード付き)
Toru Tamaki
技術者が知るべき Gröbner 基底
技術者が知るべき Gröbner 基底
Hiromi Ishii
ステレオカメラ作成の道
ステレオカメラ作成の道
ytanno
[DL輪読会]画像を使ったSim2Realの現況
[DL輪読会]画像を使ったSim2Realの現況
Deep Learning JP
Lisperはじめました
Lisperはじめました
Nobutada Matsubara
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
Ransui Iso
More Related Content
What's hot
劣微分
劣微分
ShintaUrakami
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
Koichi Hamada
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
Eiji Uchibe
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)
Shohei Taniguchi
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化
Kanetaka Heshiki
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
Deep Learning JP
グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey
Akira Taniguchi
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
Deep Learning JP
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
Deep Learning JP
第六回全日本コンピュータビジョン勉強会資料 UniT (旧題: Transformer is all you need)
第六回全日本コンピュータビジョン勉強会資料 UniT (旧題: Transformer is all you need)
Yasunori Ozaki
Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門
Shohei Hido
Javaでつくる本格形態素解析器
Javaでつくる本格形態素解析器
Works Applications
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
Tatsuya Matsushima
Cvpr 2019 pvnet
Cvpr 2019 pvnet
Kenta Tanaka
3次元レジストレーション(PCLデモとコード付き)
3次元レジストレーション(PCLデモとコード付き)
Toru Tamaki
技術者が知るべき Gröbner 基底
技術者が知るべき Gröbner 基底
Hiromi Ishii
ステレオカメラ作成の道
ステレオカメラ作成の道
ytanno
[DL輪読会]画像を使ったSim2Realの現況
[DL輪読会]画像を使ったSim2Realの現況
Deep Learning JP
What's hot
(20)
劣微分
劣微分
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
グラフィカルモデル入門
グラフィカルモデル入門
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
第六回全日本コンピュータビジョン勉強会資料 UniT (旧題: Transformer is all you need)
第六回全日本コンピュータビジョン勉強会資料 UniT (旧題: Transformer is all you need)
Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門
Javaでつくる本格形態素解析器
Javaでつくる本格形態素解析器
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
Cvpr 2019 pvnet
Cvpr 2019 pvnet
3次元レジストレーション(PCLデモとコード付き)
3次元レジストレーション(PCLデモとコード付き)
技術者が知るべき Gröbner 基底
技術者が知るべき Gröbner 基底
ステレオカメラ作成の道
ステレオカメラ作成の道
[DL輪読会]画像を使ったSim2Realの現況
[DL輪読会]画像を使ったSim2Realの現況
Similar to EusLispでロボットプログラミング
Lisperはじめました
Lisperはじめました
Nobutada Matsubara
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
Ransui Iso
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
Kosuke Tanabe
TOPPERSプロジェクトの紹介 OSC2017 Tokyo Fall
TOPPERSプロジェクトの紹介 OSC2017 Tokyo Fall
Center for Embedded Computing Systems, Nagoya Univ.
What is Metasepi?
What is Metasepi?
Kiwamu Okabe
Rclex: ElixirでROS!!
Rclex: ElixirでROS!!
Hideki Takase
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
Yasuhiro Yoshimura
Similar to EusLispでロボットプログラミング
(7)
Lisperはじめました
Lisperはじめました
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
TOPPERSプロジェクトの紹介 OSC2017 Tokyo Fall
TOPPERSプロジェクトの紹介 OSC2017 Tokyo Fall
What is Metasepi?
What is Metasepi?
Rclex: ElixirでROS!!
Rclex: ElixirでROS!!
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
Recently uploaded
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
CRI Japan, Inc.
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Recently uploaded
(11)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
EusLispでロボットプログラミング
1.
EusLispで ロボットプログラミング 2015/10/4(日) 矢口 裕明 @hyaguchijsk
2.
EusLisp? ● http://hara.jpn.com/_default/ja/Software/EusLisp.html より – “電子技術総合研究所(現 産業技術総合研究所)松井 俊浩氏によって開発されたオブジェクト指向Lispの1 つ。その他のLispを基礎としたオブジェクト指向プロ グラム言語(例えばCLOS
)と異なり、オブジェクト 指向を基礎とした Lisp ”システムである。 ● 現在は情報システム工学研究室:JSKが管理. – https://github.com/euslisp
3.
EusLispはオープンソースである ● 誰でも使える! – 最小限であれば,例えば ●
sudo apt-get install ros-indigo-roseus ● しかし,チュートリアルがほとんどない. – ようやく一部のドキュメントがメンテされ始めた が,初心者向けのものはあまり無い. ● http://euslisp-docs.readthedocs.org/en/latest/ ● つまり,誰でも使えるはずのソフトウェアでは あるが,使い方が分かる人が限られていて,結 局誰もが使えるソフトウェアではない.
4.
この発表の目的 ● EusLispは誰でも使っていいものなので,誰で も使えるようにしたい. – 非常に効率的な開発環境だが,使い方がわからない という理由からなかなか理解を得られない.これで は開発してきたものも理解してもらえない. ●
特に,リファレンスマニュアルのような中級者 以上向け資料は整備されていても,肝心の初級 者向けがない. – 初級者向けの教科書の必要性. ● http://euslisp-tutorial.readthedocs.org/ja/latest/
5.
EusLispのここがすごい! ● ロボットプログラミングのための便利機能が充 実している.特に三次元幾何に関する機能はお そらく世界一充実している. – 三次元ビューワも標準でついている. –
物体やロボットだけでなく環境情報も記述できる. ● インタプリタを用いてらくらくプロトタイピン グ. ● ROS対応(roseus). ● 多種のロボットに対応.
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.
EusLispデモ(1) ● https://github.com/euslisp/jskeus – roseus –
load “package://euslisp/jskeus/irteus/demo/demo.l”
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.
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.
EusLispの弱点 ● 実行速度は遅い. – 配列へのアクセスが遅いため,画像処理や点群処理は非常に苦 手. –
三次元モデルの取り扱いが厳密で,実行速度が犠牲になってい る. ● 中身がいかんせん古い. – 例) readlineに対応してないのでターミナルからインタプリタを上 げるとまともに使えない. ● 厳密にはどのLISPとも違う. – CommonLISPでもSchemeでもない.他のLISPになれた人には 却って大変かもしれない. – クロージャの実装が不完全.
11.
下準備
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.
Emacs shell ● 前述のとおり,readlineが使えないため,イン タプリタを起動する前に何らかの対策が必要で す. –
rlwrapを使う – emacs shellを使う(推奨) ● emacs –nwして,M-x shellとするとemacs shellが起動できます. – バッファに出力が貯められて便利. – M-pで履歴をたどれます.
14.
はじめてみよう
15.
roseus Irteusgl eusgl eusx eusg eus2 eus1 EusLispの構造 ● EusLisp本体にも拡張段 階がある. – eus0,eus1,eus2,eusg, eusx,eusgl,それぞれ前 の段階を拡張するもの になっている. ●
拡張としてirteusglがあ る. ● ROS対応としてroseus がある. eus0
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.
関数定義・クラス定義 ● 関数定義は – (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.
3Dモデルを作ってみよう ● http://euslisp- docs.readthedocs.org/en/latest/euslisp/manual/#geometri c-modeling ● http://euslisp- docs.readthedocs.org/en/latest/jskeus/jmanual/#_2
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.
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.
Coordinate vs TF ●
Coordinate ● 静的,永続性. ● タイムスタンプを持たな い. ● 座標を連結できる. ● 連結は連結座標系 (cascaded-coords)で管 理. ● 基本的にすべてが世界座標 系に存在するという前提の ため,どこから見た何なの ● TF ● 動的,揮発性. ● タイムスタンプを持つ. ● 座標を連結できる. ● 連結は親座標系の名前で管 理. ● 座標は自分自身が名前を持 ち,連結も名前で指定され ているため,どこから見た 何なのかはシステム上管理 されている.
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.
ロボットを動かしてみよう ● http://wiki.ros.org/rtmros_common/Tutorials/WorkingWithEusLisp ● http://euslisp-docs.readthedocs.org/en/latest/jskeus/jmanual/#_19
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.
ロボットプログラミング(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.
ロボットプログラミング(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.
ロボットプログラミング(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.
ロボットプログラミング(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.
自分のロボットを 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.
まとめ
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/
Download now