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

walk-motion が動かない #1

Open
k-okada opened this issue Jan 11, 2015 · 15 comments
Open

walk-motion が動かない #1

k-okada opened this issue Jan 11, 2015 · 15 comments

Comments

@k-okada
Copy link

k-okada commented Jan 11, 2015

現在irteusモデルの歩行のモーション(package://euslisp/jskeus/irteus/demo/walk-motion.l)を作成しようとしているのですが, 
(walk-motion *io* )
を実行する所でsegmentation faultで落ちてしまいます.
どうすればいいでしょうか?
@k-okada
Copy link
Author

k-okada commented Jan 11, 2015

試してみると,

(load "robot.l")
(setq *io* (make-iorobot))
;(setq l0 (elt (send *io* :rleg) 1)) ;; dame                                                                           
;;(setq l0 (elt (send *io* :rleg) 2)) ;; dame                                                                          
;;(setq l0 (elt (send *io* :rleg) 0)) ;; dame                                                                          
(setq l0 (elt (send *io* :lleg) 0)) ;; dame                                                                            
(dolist (l1 (send *io* :links))
  (print (list l0 l1))
  (print (eq l0 l1))
  (print (equal l0 l1)))

segfaultするので,モデルの作り方に問題がありそう.

      (let ((bl (instance bodyset-link
                          :init (make-cascoords :coords (send (send (send (send (car bs) :copy-worldcoords) :locate #f(0 -20 -40)) :rotate -pi/2 :y) :rotate -pi/2 :z))
                          :bodies bs :name :leg-link1)))
;        (send bl :put :joint-coords (make-cascoords :pos (float-vector 1 2 3))                                        
;             (make-cascoords :coords ;(send (send (send (send (car bs) :copy-worldcoords) :locate #f(0 -20 -40)) :rot\
ate -pi/2 :y) :rotate -pi/2 :z))                                                                                       
;              )                                                                                                       
;        (send bl :assoc (send bl :get :joint-coords)) 

https://github.com/iory/jishupro/blob/master/models/robot.l#L172
で,:put :joint-coordsしているところをコメントアウトすると(他のところでこれを使っているところも直すけど)プログラムは通る(けどモデルはおかしくなる)

これを使わなくて,モデルを作ることは出来たりしないかな?

@k-okada
Copy link
Author

k-okada commented Jan 11, 2015

本質的な問題は以下? -> euslisp/jskeus#161

@iory
Copy link
Owner

iory commented Jan 11, 2015

モデルを修正しようとしているのですが, jointの回転場所の指定がうまくいきません.
もともとは,
(send bl :put :joint-coords
(make-cascoords :coords
(send (send b1 :copy-worldcoords) :locate #f(0 0 0))))
の場所でlocateやrotateを指示し, その場所が回転する軸になると思ってやっていたのですが, :put :joint-coords が使えないとなると, 別の書き方としてはどうすればいいでしょうか?

@k-okada
Copy link
Author

k-okada commented Jan 11, 2015

https://github.com/iory/jishupro/blob/master/models/robot.l#L585
の部分で書き下せばいい気がします.

◉ Kei Okada

2015-01-11 16:45 GMT+09:00 ioryz [email protected]:

モデルを修正しようとしているのですが, jointの回転場所の指定がうまくいきません.
もともとは,
(send bl :put :joint-coords
(make-cascoords :coords
(send (send b1 :copy-worldcoords) :locate #f(0 0 0))))
の場所でlocateやrotateを指示し, その場所が回転する軸になると思ってやっていたのですが, :put :joint-coords
が使えないとなると, 別の書き方としてはどうすればいいでしょうか?


Reply to this email directly or view it on GitHub
#1 (comment).

@iory
Copy link
Owner

iory commented Jan 11, 2015

やってみます.

@iory
Copy link
Owner

iory commented Jan 12, 2015

足のモデルから:put :joint-coords をなくしたら動くようになりました.
walk-motion を実機に反映させるにはどうすればいいでしょうか?

@k-okada
Copy link
Author

k-okada commented Jan 13, 2015

walk-motion の返り値がangle-vector listになっていないかな?それを
send ri :angle-vector-sequence に入れるといい気がします.
https://github.com/jsk-ros-pkg/jsk_pr2eus/blob/master/pr2eus/robot-interface.l#L211

◉ Kei Okada

2015-01-12 20:04 GMT+09:00 ioryz [email protected]:

足のモデルから:put :joint-coords をなくしたら動くようになりました.
walk-motion を実機に反映させるにはどうすればいいでしょうか?


Reply to this email directly or view it on GitHub
#1 (comment).

@iory
Copy link
Owner

iory commented Jan 13, 2015

walk-motion io
;; test1 ;; specify footstep-list
;; inverse-kinematics failed.
;; dif-pos : #f(-0.002119 0.113167 -1.10367)/(1.10946/1)
;; dif-rot : #f(-3.516272e-06 -5.840758e-07 4.567071e-07)/(3.593591e-06/0.017453)
;; dif-pos : #f(-0.002121 0.14485 -1.0947)/(1.10424/1)
;; dif-rot : #f(-4.465355e-06 -4.973298e-07 -5.638277e-07)/(4.528204e-06/0.017453)
;; cog-dif : #f(0.132216 -7.72815)/(7.72929/5.0)
;; coords : #<coordinates #X71ce6d8 -0.079 -20.351 250.0 / -2.553e-07 0.0 0.0>
;; angles : (#f(0.045156 -5.13826 0.0 0.0 0.0 -1.145282e-05) -6.123240e-05 -3.21423 0.714734 -1.5211 -0.806425 -3.21401 5.590785e-05 -3.25708 0.710638 -1.51288 -0.802305 -3.25709)
;; args : ((#<coordinates #X77947a8 0.001 40.047 -0.026 / -5.085e-07 2.886e-07 -1.751e-06> #<coordinates #X7743610 0.001 -40.012 -0.027 / 5.103e-07 2.940e-07 1.923e-08>) :move-target (#<cascaded-coords #X8ed8fd8 0.003 39.934 1.078 / -9.652e-07 8.727e-07 1.765e-06> #<c
ascaded-coords #X8e36dd8 0.003 -40.157 1.067 / 1.074e-06 7.913e-07 4.485e-06>) :link-list ((#<bodyset-link #X74d6658 :root-link -0.079 -20.351 250.0 / -2.553e-07 0.0 0.0> #<bodyset-link #X76deda8 :leg-link1 -0.079 19.649 230.0 / 2.356 1.571 -2.356> #<bodyset-link #X8d1e0
c8 :leg-link2 -0.079 19.649 210.0 / 1.571 1.486 -6.882e-16> #<bodyset-link #X8d25350 :leg-link3 -0.079 42.127 181.809 / 1.603 1.486 0.032> #<bodyset-link #X8ec2ed8 :leg-link4 -0.297 9.073 98.698 / 1.571 -0.085 -1.575> #<bodyset-link #X735a7d0 :leg-link5 0.003 40.784 21.
114 / -1.571 -1.486 -1.571> #<bodyset-link #X7518ef0 :leg-link6 0.003 39.934 31.078 / -9.652e-07 8.727e-07 -1.571>) (#<bodyset-link #X74d6658 :root-link -0.079 -20.351 250.0 / -2.553e-07 0.0 0.0> #<bodyset-link #X8ffb7f0 :leg-link1 -0.079 -60.351 230.0 / -0.927 1.571 0.6
44> #<bodyset-link #X9129c70 :leg-link2 -0.079 -60.351 210.0 / 1.571 1.486 -6.184e-16> #<bodyset-link #X9319650 :leg-link3 -0.079 -37.887 181.798 / 1.603 1.486 0.032> #<bodyset-link #X9329528 :leg-link4 -0.299 -70.983 98.704 / 1.571 -0.085 -1.575> #<bodyset-link #X6f428a
8 :leg-link5 0.003 -39.312 21.103 / -1.571 -1.486 -1.571> #<bodyset-link #X74fc4f8 :leg-link6 0.003 -40.157 31.067 / 1.074e-06 7.913e-07 -1.571>)) :move-target (#<cascaded-coords #X8ed8fd8 0.003 39.934 1.078 / -9.652e-07 8.727e-07 1.765e-06> #<cascaded-coords #X8e36dd8
0.003 -40.157 1.067 / 1.074e-06 7.913e-07 4.485e-06>) :link-list ((#<bodyset-link #X74d6658 :root-link -0.079 -20.351 250.0 / -2.553e-07 0.0 0.0> #<bodyset-link #X76deda8 :leg-link1 -0.079 19.649 230.0 / 2.356 1.571 -2.356> #<bodyset-link #X8d1e0c8 :leg-link2 -0.079 19.6
49 210.0 / 1.571 1.486 -6.882e-16> #<bodyset-link #X8d25350 :leg-link3 -0.079 42.127 181.809 / 1.603 1.486 0.032> #<bodyset-link #X8ec2ed8 :leg-link4 -0.297 9.073 98.698 / 1.571 -0.085 -1.575> #<bodyset-link #X735a7d0 :leg-link5 0.003 40.784 21.114 / -1.571 -1.486 -1.571\

#<bodyset-link #X7518ef0 :leg-link6 0.003 39.934 31.078 / -9.652e-07 8.727e-07 -1.571>) (#<bodyset-link #X74d6658 :root-link -0.079 -20.351 250.0 / -2.553e-07 0.0 0.0> #<bodyset-link #X8ffb7f0 :leg-link1 -0.079 -60.351 230.0 / -0.927 1.571 0.644> #<bodyset-link #X9129c
70 :leg-link2 -0.079 -60.351 210.0 / 1.571 1.486 -6.184e-16> #<bodyset-link #X9319650 :leg-link3 -0.079 -37.887 181.798 / 1.603 1.486 0.032> #<bodyset-link #X9329528 :leg-link4 -0.299 -70.983 98.704 / 1.571 -0.085 -1.575> #<bodyset-link #X6f428a8 :leg-link5 0.003 -39.31
2 21.103 / -1.571 -1.486 -1.571> #<bodyset-link #X74fc4f8 :leg-link6 0.003 -40.157 31.067 / 1.074e-06 7.913e-07 -1.571>)) :cog-gain 3.5 :centroid-thre 5.0 :target-centroid-pos #f(0.052935 -28.0788 265.5) :additional-weight-list ((#<bodyset-link #X74d6658 :root-link -0.079
-20.351 250.0 / -2.553e-07 0.0 0.0> #f(0.1 0.1 0.0 0.0 0.0 0.5))) :move-target (#<cascaded-coords #X8ed8fd8 0.003 39.934 1.078 / -9.652e-07 8.727e-07 1.765e-06> #<cascaded-coords #X8e36dd8 0.003 -40.157 1.067 / 1.074e-06 7.913e-07 4.485e-06>) :link-list ((#<bodyset-link
#X76deda8 :leg-link1 -0.079 19.649 230.0 / 2.356 1.571 -2.356> #<bodyset-link #X8d1e0c8 :leg-link2 -0.079 19.649 210.0 / 1.571 1.486 -6.882e-16> #<bodyset-link #X8d25350 :leg-link3 -0.079 42.127 181.809 / 1.603 1.486 0.032> #<bodyset-link #X8ec2ed8 :leg-link4 -0.297 9.0
73 98.698 / 1.571 -0.085 -1.575> #<bodyset-link #X735a7d0 :leg-link5 0.003 40.784 21.114 / -1.571 -1.486 -1.571> #<bodyset-link #X7518ef0 :leg-link6 0.003 39.934 31.078 / -9.652e-07 8.727e-07 -1.571>) (#<bodyset-link #X8ffb7f0 :leg-link1 -0.079 -60.351 230.0 / -0.927 1.5
71 0.644> #<bodyset-link #X9129c70 :leg-link2 -0.079 -60.351 210.0 / 1.571 1.486 -6.184e-16> #<bodyset-link #X9319650 :leg-link3 -0.079 -37.887 181.798 / 1.603 1.486 0.032> #<bodyset-link #X9329528 :leg-link4 -0.299 -70.983 98.704 / 1.571 -0.085 -1.575> #<bodyset-link #X
6f428a8 :leg-link5 0.003 -39.312 21.103 / -1.571 -1.486 -1.571> #<bodyset-link #X74fc4f8 :leg-link6 0.003 -40.157 31.067 / 1.074e-06 7.913e-07 -1.571>)) :fix-limbs (:lleg :rleg) :root-link-virtual-joint-weight #f(0.1 0.1 0.0 0.0 0.0 0.5) :thre (1 1) :rthre (0.017453 0.017
453) :target-centroid-pos #f(0.052935 -28.0788 265.5) :target-centroid-pos #f(0.052935 -28.0788 265.5) :fix-limbs-target-coords (#<coordinates #X77947a8 0.001 40.047 -0.026 / -5.085e-07 2.886e-07 -1.751e-06> #<coordinates #X7743610 0.001 -40.012 -0.027 / 5.103e-07 2.940e-
07 1.923e-08>) :cog-gain 3.5 :stop 100 :additional-nspace-list ((#<bodyset-link #X74d6658 :root-link -0.079 -20.351 250.0 / -2.553e-07 0.0 0.0> #<closure #X69cb2c8>)))
;; command : (let ((r (instance iorobot :init))) (progn (send r :newcoords (make-coords :4x4 #2f((1.0 2.552979e-07 0.0 -0.079281) (-2.552979e-07 1.0 0.0 -20.3507) (0.0 0.0 1.0 250.0) (0.0 0.0 0.0 1.0)))) (mapc #'(lambda (j a) (send* j :joint-angle a nil)) (list (send r :joi
nt107819280) (send r :rleg_joint1) (send r :rleg_joint2) (send r :rleg_joint3) (send r :rleg_joint4) (send r :rleg_joint5) (send r :rleg_joint6) (send r :lleg_joint1) (send r :lleg_joint2) (send r :lleg_joint3) (send r :lleg_joint4) (send r :lleg_joint5) (send r :lleg_joint
6)) '(#f(0.045156 -5.13826 0.0 0.0 0.0 -1.145282e-05) -6.123240e-05 -3.21423 0.714734 -1.5211 -0.806425 -3.21401 5.590785e-05 -3.25708 0.710638 -1.51288 -0.802305 -3.25709)) (objects (list r))) (send* r :inverse-kinematics (list (list (make-coords :pos #f(0.001014 40.0473 -
0.026054) :rot #2f((1.0 5.084718e-07 2.885810e-07) (-5.084723e-07 1.0 1.750993e-06) (-2.885802e-07 -1.750993e-06 1.0))) (make-coords :pos #f(0.001016 -40.0117 -0.027336) :rot #2f((1.0 -5.102815e-07 2.940188e-07) (5.102815e-07 1.0 -1.923355e-08) (-2.940188e-07 1.923370e-08 1
.0)))) :dump-command nil :debug-view t :move-target (list (let* ((p (send r :link :leg-link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 1.452201e-22 8.906921e-23 -4.336809e-19) (8.906921e-23 6.467320e-45 -1.0 30.0) (
-1.452201e-22 1.0 -6.467320e-45 0.0) (0.0 0.0 0.0 1.0))))))) (send p :assoc mt) mt) (let* ((p (send r :link :leg-link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 2.007946e-22 -9.867673e-23 0.0) (-9.867673e-23 -3.3306
69e-16 -1.0 30.0) (-2.007946e-22 1.0 -3.330669e-16 0.0) (0.0 0.0 0.0 1.0))))))) (send p :assoc mt) mt)) :link-list (list (list (send r :link :root-link) (send r :link :leg-link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :le
g-link5) (send r :link :leg-link6)) (list (send r :link :root-link) (send r :link :leg-link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :leg-link5) (send r :link :leg-link6))) :move-target (list (let* ((p (send r :link :leg-
link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 1.452201e-22 8.906921e-23 -4.336809e-19) (8.906921e-23 6.467320e-45 -1.0 30.0) (-1.452201e-22 1.0 -6.467320e-45 0.0) (0.0 0.0 0.0 1.0))))))) (send p :assoc mt) mt) (le
t* ((p (send r :link :leg-link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 2.007946e-22 -9.867673e-23 0.0) (-9.867673e-23 -3.330669e-16 -1.0 30.0) (-2.007946e-22 1.0 -3.330669e-16 0.0) (0.0 0.0 0.0 1.0))))))) (send p
:assoc mt) mt)) :link-list (list (list (send r :link :root-link) (send r :link :leg-link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :leg-link5) (send r :link :leg-link6)) (list (send r :link :root-link) (send r :link :leg-
link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :leg-link5) (send r :link :leg-link6))) :cog-gain 3.5 :centroid-thre 5.0 :target-centroid-pos #f(0.052935 -28.0788 265.5) :additional-weight-list (list (list (send r :link :ro
ot-link) #f(0.1 0.1 0.0 0.0 0.0 0.5))) :move-target (list (let* ((p (send r :link :leg-link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 1.452201e-22 8.906921e-23 -4.336809e-19) (8.906921e-23 6.467320e-45 -1.0 30.0) (
-1.452201e-22 1.0 -6.467320e-45 0.0) (0.0 0.0 0.0 1.0))))))) (send p :assoc mt) mt) (let* ((p (send r :link :leg-link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 2.007946e-22 -9.867673e-23 0.0) (-9.867673e-23 -3.3306
69e-16 -1.0 30.0) (-2.007946e-22 1.0 -3.330669e-16 0.0) (0.0 0.0 0.0 1.0))))))) (send p :assoc mt) mt)) :link-list (list (list (send r :link :leg-link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :leg-link5) (send r :link :le
g-link6)) (list (send r :link :leg-link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :leg-link5) (send r :link :leg-link6))) :fix-limbs (list :lleg :rleg) :root-link-virtual-joint-weight #f(0.1 0.1 0.0 0.0 0.0 0.5) :thre (lis
t 1 1) :rthre (list 0.017453 0.017453) :target-centroid-pos #f(0.052935 -28.0788 265.5) :target-centroid-pos #f(0.052935 -28.0788 265.5) :fix-limbs-target-coords (list #<coordinates #X77947a8 0.001 40.047 -0.026 / -5.085e-07 2.886e-07 -1.751e-06> #<coordinates #X7743610 0
.001 -40.012 -0.027 / 5.103e-07 2.940e-07 1.923e-08>) :cog-gain 3.5 :stop 100 :additional-nspace-list (list (list (send r :link :root-link) #<closure #X69cb2c8>)))))
;; dump debug command to /tmp/irtmodel-ik-6078/iorobot-2015-01-13-13-13-37-failure.l
;; (progn (load "/tmp/irtmodel-ik-6078/iorobot-2015-01-13-13-13-37-failure.l")(ik-setup)(ik-check))
;; inverse-kinematics failed.

ik が解けてない場合もリンクの作り方がダメなのでしょうか?

@k-okada
Copy link
Author

k-okada commented Jan 13, 2015

https://github.com/euslisp/jskeus/blob/master/irteus/demo/walk-motion.l#L33

などでパラメーターを変える必要がある気がします。

◉ Kei Okada

2015/01/13 13:16、ioryz [email protected] のメッセージ:

walk-motion io
;; test1 ;; specify footstep-list
;; inverse-kinematics failed.
;; dif-pos : #f(-0.002119 0.113167 -1.10367)/(1.10946/1)
;; dif-rot : #f(-3.516272e-06 -5.840758e-07 4.567071e-07)/(3.593591e-06/0.017453)
;; dif-pos : #f(-0.002121 0.14485 -1.0947)/(1.10424/1)
;; dif-rot : #f(-4.465355e-06 -4.973298e-07 -5.638277e-07)/(4.528204e-06/0.017453)
;; cog-dif : #f(0.132216 -7.72815)/(7.72929/5.0)
;; coords : #
;; angles : (#f(0.045156 -5.13826 0.0 0.0 0.0 -1.145282e-05) -6.123240e-05 -3.21423 0.714734 -1.5211 -0.806425 -3.21401 5.590785e-05 -3.25708 0.710638 -1.51288 -0.802305 -3.25709)
;; args : ((# #) :move-target (# # ascaded-coords #X8e36dd8 0.003 -40.157 1.067 / 1.074e-06 7.913e-07 4.485e-06>) :link-list ((# # # c8 :leg-link2 -0.079 19.649 210.0 / 1.571 1.486 -6.882e-16> # # # 114 / -1.571 -1.486 -1.571> #) (# # 44> # # # # 8 :leg-link5 0.003 -39.312 21.103 / -1.571 -1.486 -1.571> #)) :move-target (# # 0.003 -40.157 1.067 / 1.074e-06 7.913e-07 4.485e-06>) :link-list ((# # # 49 210.0 / 1.571 1.486 -6.882e-16> # # #<bodyset-link #X735a7d0 :leg-link5 0.003 40.784 21.114 / -1.571 -1.486 -1.571\

#) (# # # 70 :leg-link2 -0.079 -60.351 210.0 / 1.571 1.486 -6.184e-16> # # # 2 21.103 / -1.571 -1.486 -1.571> #)) :cog-gain 3.5 :centroid-thre 5.0 :target-centroid-pos #f(0.052935 -28.0788 265.5) :additional-weight-list ((# -20.351 250.0 / -2.553e-07 0.0 0.0> #f(0.1 0.1 0.0 0.0 0.0 0.5))) :move-target (# #) :link-list ((# #X76deda8 :leg-link1 -0.079 19.649 230.0 / 2.356 1.571 -2.356> # # # 73 98.698 / 1.571 -0.085 -1.575> # #) (# 71 0.644> # # # # 6f428a8 :leg-link5 0.003 -39.312 21.103 / -1.571 -1.486 -1.571> #)) :fix-limbs (:lleg :rleg) :root-link-virtual-joint-weight #f(0.1 0.1 0.0 0.0 0.0 0.5) :thre (1 1) :rthre (0.017453 0.017
453) :target-centroid-pos #f(0.052935 -28.0788 265.5) :target-centroid-pos #f(0.052935 -28.0788 265.5) :fix-limbs-target-coords (# # 07 1.923e-08>) :cog-gain 3.5 :stop 100 :additional-nspace-list ((# #)))
;; command : (let ((r (instance iorobot :init))) (progn (send r :newcoords (make-coords :4x4 #2f((1.0 2.552979e-07 0.0 -0.079281) (-2.552979e-07 1.0 0.0 -20.3507) (0.0 0.0 1.0 250.0) (0.0 0.0 0.0 1.0)))) (mapc #'(lambda (j a) (send* j :joint-angle a nil)) (list (send r :joi
nt107819280) (send r :rleg_joint1) (send r :rleg_joint2) (send r :rleg_joint3) (send r :rleg_joint4) (send r :rleg_joint5) (send r :rleg_joint6) (send r :lleg_joint1) (send r :lleg_joint2) (send r :lleg_joint3) (send r :lleg_joint4) (send r :lleg_joint5) (send r :lleg_joint
6)) '(#f(0.045156 -5.13826 0.0 0.0 0.0 -1.145282e-05) -6.123240e-05 -3.21423 0.714734 -1.5211 -0.806425 -3.21401 5.590785e-05 -3.25708 0.710638 -1.51288 -0.802305 -3.25709)) (objects (list r))) (send* r :inverse-kinematics (list (list (make-coords :pos #f(0.001014 40.0473 -
0.026054) :rot #2f((1.0 5.084718e-07 2.885810e-07) (-5.084723e-07 1.0 1.750993e-06) (-2.885802e-07 -1.750993e-06 1.0))) (make-coords :pos #f(0.001016 -40.0117 -0.027336) :rot #2f((1.0 -5.102815e-07 2.940188e-07) (5.102815e-07 1.0 -1.923355e-08) (-2.940188e-07 1.923370e-08 1
.0)))) :dump-command nil :debug-view t :move-target (list (let* ((p (send r :link :leg-link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 1.452201e-22 8.906921e-23 -4.336809e-19) (8.906921e-23 6.467320e-45 -1.0 30.0) (
-1.452201e-22 1.0 -6.467320e-45 0.0) (0.0 0.0 0.0 1.0))))))) (send p :assoc mt) mt) (let* ((p (send r :link :leg-link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 2.007946e-22 -9.867673e-23 0.0) (-9.867673e-23 -3.3306
69e-16 -1.0 30.0) (-2.007946e-22 1.0 -3.330669e-16 0.0) (0.0 0.0 0.0 1.0))))))) (send p :assoc mt) mt)) :link-list (list (list (send r :link :root-link) (send r :link :leg-link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :le
g-link5) (send r :link :leg-link6)) (list (send r :link :root-link) (send r :link :leg-link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :leg-link5) (send r :link :leg-link6))) :move-target (list (let* ((p (send r :link :leg-
link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 1.452201e-22 8.906921e-23 -4.336809e-19) (8.906921e-23 6.467320e-45 -1.0 30.0) (-1.452201e-22 1.0 -6.467320e-45 0.0) (0.0 0.0 0.0 1.0))))))) (send p :assoc mt) mt) (le
t* ((p (send r :link :leg-link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 2.007946e-22 -9.867673e-23 0.0) (-9.867673e-23 -3.330669e-16 -1.0 30.0) (-2.007946e-22 1.0 -3.330669e-16 0.0) (0.0 0.0 0.0 1.0))))))) (send p
:assoc mt) mt)) :link-list (list (list (send r :link :root-link) (send r :link :leg-link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :leg-link5) (send r :link :leg-link6)) (list (send r :link :root-link) (send r :link :leg-
link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :leg-link5) (send r :link :leg-link6))) :cog-gain 3.5 :centroid-thre 5.0 :target-centroid-pos #f(0.052935 -28.0788 265.5) :additional-weight-list (list (list (send r :link :ro
ot-link) #f(0.1 0.1 0.0 0.0 0.0 0.5))) :move-target (list (let* ((p (send r :link :leg-link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 1.452201e-22 8.906921e-23 -4.336809e-19) (8.906921e-23 6.467320e-45 -1.0 30.0) (
-1.452201e-22 1.0 -6.467320e-45 0.0) (0.0 0.0 0.0 1.0))))))) (send p :assoc mt) mt) (let* ((p (send r :link :leg-link6)) (mt (make-cascoords :coords (send (send p :copy-worldcoords) :transform (make-coords :4x4 #2f((1.0 2.007946e-22 -9.867673e-23 0.0) (-9.867673e-23 -3.3306
69e-16 -1.0 30.0) (-2.007946e-22 1.0 -3.330669e-16 0.0) (0.0 0.0 0.0 1.0))))))) (send p :assoc mt) mt)) :link-list (list (list (send r :link :leg-link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :leg-link5) (send r :link :le
g-link6)) (list (send r :link :leg-link1) (send r :link :leg-link2) (send r :link :leg-link3) (send r :link :leg-link4) (send r :link :leg-link5) (send r :link :leg-link6))) :fix-limbs (list :lleg :rleg) :root-link-virtual-joint-weight #f(0.1 0.1 0.0 0.0 0.0 0.5) :thre (lis
t 1 1) :rthre (list 0.017453 0.017453) :target-centroid-pos #f(0.052935 -28.0788 265.5) :target-centroid-pos #f(0.052935 -28.0788 265.5) :fix-limbs-target-coords (list # # .001 -40.012 -0.027 / 5.103e-07 2.940e-07 1.923e-08>) :cog-gain 3.5 :stop 100 :additional-nspace-list (list (list (send r :link :root-link) #)))))
;; dump debug command to /tmp/irtmodel-ik-6078/iorobot-2015-01-13-13-13-37-failure.l
;; (progn (load "/tmp/irtmodel-ik-6078/iorobot-2015-01-13-13-13-37-failure.l")(ik-setup)(ik-check))
;; inverse-kinematics failed.

ik が解けてない場合もリンクの作り方がダメなのでしょうか?


Reply to this email directly or view it on GitHub.

@iory
Copy link
Owner

iory commented Jan 13, 2015

https://github.com/iory/jishupro/blob/master/euslisp/robot-interface.l#L26

wakl-motion を直書きしてdefault-step-heightなどを小さくしたりしてみましたが, 解けないです.
walk-motion-failed

@k-okada
Copy link
Author

k-okada commented Jan 13, 2015

わからないけど,最初は膝が少し曲がっているよく有る歩行ロボットの姿勢から始めないとダメじゃないかな.

◉ Kei Okada

On Tue, Jan 13, 2015 at 3:59 PM, ioryz [email protected] wrote:

https://github.com/iory/jishupro/blob/master/euslisp/robot-interface.l#L26

wakl-motion を直書きしてdefault-step-heightなどを小さくしたりしてみましたが, 解けないです.
[image: walk-motion-failed]
https://cloud.githubusercontent.com/assets/4690682/5717055/14c8eb32-9b3d-11e4-98f1-4f88470b246f.png


Reply to this email directly or view it on GitHub
#1 (comment).

@iory
Copy link
Owner

iory commented Jan 13, 2015

なるほど.

reset-poseを修正したらerrorが出ましたが, 数歩進んでから出たので, もう少し調整してみます.
https://github.com/iory/jishupro/blob/master/models/robot.l#L664

@iory
Copy link
Owner

iory commented Jan 14, 2015

うまくいかないと思ったら, 脚の関節角度の制限でひっかかっていたようでした.
ありがとうございました.
https://github.com/iory/jishupro/blob/master/models/robot.l#L337

@iory
Copy link
Owner

iory commented Jan 15, 2015

実機の方でとりあえず動くというのも確認出来ました.

重心の位置をとって倒れないように姿勢を変更するのは, czmpの位置に脚裏を持っていく制御でいいのでしょうか?

@k-okada
Copy link
Author

k-okada commented Jan 15, 2015

そうですね.それか,モデルの重心(重量情報)を変える,というというのもあるとおもいます.

◉ Kei Okada

2015-01-15 12:51 GMT+09:00 ioryz [email protected]:

実機の方でとりあえず動くというのも確認出来ました.

重心の位置をとって倒れないように姿勢を変更するのは, czmpの位置に脚裏を持っていく制御でいいのでしょうか?


Reply to this email directly or view it on GitHub
#1 (comment).

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