Created
October 27, 2015 07:35
-
-
Save mmurooka/ec9b8e3b3922a29b6377 to your computer and use it in GitHub Desktop.
PR2 inverse kinematics considering self collision
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(load "package://pr2eus/pr2.l") | |
(setq *robot* (pr2)) | |
(objects (list *robot*)) | |
(send *robot* :reset-pose) | |
(send *robot* :inverse-kinematics | |
(list (make-coords :pos (float-vector 370 -200 770)) | |
(make-coords :pos (float-vector 370 200 790))) | |
:move-target (list (send *robot* :larm :end-coords) (send *robot* :rarm :end-coords)) | |
:list-list(list (send *robot* :link-list (send (send *robot* :larm :end-coords) :parent)) (send *robot* :link-list (send (send *robot* :rarm :end-coords) :parent))) | |
:rotation-axis (list nil nil) | |
:avoid-collision-distance 100 | |
:avoid-collision-null-gain 5.0 | |
:avoid-collision-joint-gain 0.8 | |
:collision-avoidance-link-pair | |
(reduce #'append | |
(mapcar #'(lambda (rarm-link) | |
(mapcar #'(lambda (larm-link) (list (send *robot* :link larm-link) (send *robot* :link rarm-link))) | |
(list "l_shoulder_pan_link" "l_shoulder_lift_link" "l_upper_arm_roll_link" "l_elbow_flex_link" "l_forearm_roll_link" "l_wrist_flex_link" "l_wrist_roll_link"))) | |
(list "r_shoulder_pan_link" "r_shoulder_lift_link" "r_upper_arm_roll_link" "r_elbow_flex_link" "r_forearm_roll_link" "r_wrist_flex_link" "r_wrist_roll_link")) | |
) | |
:debug-view :no-messge | |
:stop 1000 | |
) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@furushchev
これで,干渉をよけようとしてIKを解くけれど,
(send *robot* :larm :links)
,(send *robot* :rarm :links)
だけれど,:draw-on :flush t
してみると手首の太いリンクがこれに含まれていないのでぶつかってしまう.