Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1025の課題で部屋の部品の位置について #404

Open
RailgunJu opened this issue Nov 6, 2021 · 2 comments
Open

1025の課題で部屋の部品の位置について #404

RailgunJu opened this issue Nov 6, 2021 · 2 comments

Comments

@RailgunJu
Copy link

RailgunJu commented Nov 6, 2021

部屋内の代表的座標(cook-spotなど)以外に行かせたいところがあったら、その座標をどう調べればいいでしょうか。
(send *room* :spots)で出てきた
#<cascaded-coords #X558e35a69e08 cook-spot 1100.0 1600.0 0.0 / 3.142 0.0 0.0>の3.142 0.0 0.0は何を表しますか。

最後に、:move-to:locateの区別はなんですか。それぞれworld座標とlocal座標で動くという理解であってますか。

@RailgunJu RailgunJu changed the title 1025の課題で部屋の部品の位置とサイズについて 1025の課題で部屋の部品の位置について Nov 6, 2021
@k-okada
Copy link
Member

k-okada commented Nov 7, 2021

おそくなりました.

irteusgl$ (send (make-coords) :rotate pi/2 :z)
#<coordinates #X55f208d6f138  0.0 0.0 0.0 / 1.571 0.0 0.0>
irteusgl$ (send (make-coords) :rotate pi/2 :y)
#<coordinates #X55f208d6c168  0.0 0.0 0.0 / 0.0 1.571 0.0>
irteusgl$ (send (make-coords) :rotate pi/2 :x)
#<coordinates #X55f208d6be38  0.0 0.0 0.0 / 0.0 0.0 1.571>

となります.回転行列をZYXオイラー角で表したときに,値になるかと思います.c.f jsk-ros-pkg/jsk_roseus#662 (comment)

move-to は引数に座標系を使います,locate の引数は位置ベクトルです.
つまり,

irteusgl$ (setq c (make-coords))
#<coordinates #X55f208d6a8e0  0.0 0.0 0.0 / 0.0 0.0 0.0>
irteusgl$ (send c :move-to (make-coords :pos #f(0 0 100)))
#<coordinates #X55f208d6a8e0  0.0 0.0 100.0 / 0.0 0.0 0.0>

と,

irteusgl$ (setq c (make-coords))                                                                                                         
#<coordinates #X55f208d69740  0.0 0.0 0.0 / 0.0 0.0 0.0>
irteusgl$ (send c :locate #f(100 0 0))
#<coordinates #X55f208d69740  100.0 0.0 0.0 / 0.0 0.0 0.0>

が同じ結果になります.
world/local は第二引数で指定します.デフォルトは:localになっています.上のコードに続いて
irteusgl$ (send c :locate #f(100 0 0))
#<coordinates #X55f208d69740 200.0 0.0 0.0 / 0.0 0.0 0.0> ;; $(200 0 0) に移動
irteusgl$ (send c :locate #f(100 0 0) :local)
#<coordinates #X55f208d69740 300.0 0.0 0.0 / 0.0 0.0 0.0> ;; #f(300 0 0)に移動
irteusgl$ (send c :locate #f(100 0 0) :world)
#<coordinates #X55f208d69740 100.0 0.0 0.0 / 0.0 0.0 0.0> ;; #f(100 0 0)に移動

となります.

http://euslisp.github.io/EusLisp/jmanual-node16.html

@RailgunJu
Copy link
Author

なるほど、ありがとうございます!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants