diff --git a/jsk_panda_robot/panda_eus/euslisp/franka-common-interface.l b/jsk_panda_robot/panda_eus/euslisp/franka-common-interface.l
index 69f90bf8d9..f7251cf696 100644
--- a/jsk_panda_robot/panda_eus/euslisp/franka-common-interface.l
+++ b/jsk_panda_robot/panda_eus/euslisp/franka-common-interface.l
@@ -264,8 +264,14 @@ Details: `ErrorRecoveryAction` part of https://frankaemika.github.io/docs/franka
))
(:send-gripper-action-method
(arm actions method &rest args)
- (let ((action (gethash (send self :expand-arm-alias arm) actions)))
- (if action (send* action method args) nil))
+ (case arm
+ (:arms
+ (mapcar #'(lambda (a)
+ (send self :send-gripper-action-method a actions method))
+ (send self :arm2arms arm)))
+ (t
+ (let ((action (gethash (send self :expand-arm-alias arm) actions)))
+ (if action (send* action method args) nil))))
)
(:gripper-action-postprocess
(arm actions wait)
@@ -274,7 +280,8 @@ Details: `ErrorRecoveryAction` part of https://frankaemika.github.io/docs/franka
(dolist (a arms)
(setq wait-res
(and (send self :send-gripper-action-method a actions :wait-for-result)
- wait-res))))
+ wait-res)))
+ (send self :spin-once))
(if (not wait-res)
(progn
(setq wait-res t)
@@ -288,13 +295,7 @@ Details: `ErrorRecoveryAction` part of https://frankaemika.github.io/docs/franka
(setq wait-res nil))))
(if (not wait-res)
(return-from :gripper-action-postprocess nil))))
- (case arm
- (:arms
- (mapcar #'(lambda (a)
- (send self :send-gripper-action-method a actions :get-result))
- arms))
- (t
- (send self :send-gripper-action-method arm actions :get-result)))
+ (send self :send-gripper-action-method arm actions :get-result)
))
(:gripper-method-helper
(action-sender actions arm wait)
@@ -315,10 +316,16 @@ Details: `StopAction` part of https://frankaemika.github.io/docs/franka_ros.html
(send self :gripper-method-helper
:send-gripper-stop-action gripper-stop-actions arm wait)
)
- (:get-stop-gripper-result
+ (:get-stop-gripper-status
(arm)
+ "Return status of :stop-gripper (`status` of `actionlib_msgs::GoalStatus`)"
+ (send self :spin-once)
+ (send self :send-gripper-action-method arm gripper-stop-actions :get-state)
+ )
+ (:get-stop-gripper-result
+ (arm &key (wait t))
"Return result of :stop-gripper (`franka_gripper::StopActionResult`)"
- (send self :gripper-action-postprocess arm gripper-stop-actions t)
+ (send self :gripper-action-postprocess arm gripper-stop-actions wait)
)
(:homing-gripper
(arm &key (wait nil))
@@ -330,10 +337,16 @@ Details: `HomingAction` part of https://frankaemika.github.io/docs/franka_ros.ht
(send self :gripper-method-helper
:send-gripper-homing-action gripper-homing-actions arm wait)
))
- (:get-homing-gripper-result
+ (:get-homing-gripper-status
(arm)
+ "Return status of :homing-gripper (`status` of `actionlib_msgs::GoalStatus`)"
+ (send self :spin-once)
+ (send self :send-gripper-action-method arm gripper-homing-actions :get-state)
+ )
+ (:get-homing-gripper-result
+ (arm &key (wait t))
"Return result of :homing-gripper (`franka_gripper::HomingActionResult`)"
- (send self :gripper-action-postprocess arm gripper-homing-actions t)
+ (send self :gripper-action-postprocess arm gripper-homing-actions wait)
)
(:gripper
(&rest args)
@@ -395,20 +408,31 @@ Details: `GraspAction` part of https://frankaemika.github.io/docs/franka_ros.htm
:send-gripper-grasp-action gripper-grasp-actions arm wait width tm
effort :inner inner :outer outer)
))
- (:get-start-grasp-result
+ (:get-start-grasp-status
(arm)
+ "Return status of :start-grasp (`status` of `actionlib_msgs::GoalStatus`)"
+ (send self :spin-once)
+ (send self :send-gripper-action-method arm gripper-grasp-actions :get-state)
+ )
+ (:get-start-grasp-result
+ (arm &key (wait t))
"Return result of :start-grasp (`franka_gripper::GraspActionResult`)"
- (send self :gripper-action-postprocess arm gripper-grasp-actions t)
+ (send self :gripper-action-postprocess arm gripper-grasp-actions wait)
)
(:stop-grasp
(arm &key (wait nil) (width 0.08))
"Open the gripper to the target `width` [m]"
(send self :move-gripper arm width :tm 500 :wait wait)
)
- (:get-stop-grasp-result
+ (:get-stop-grasp-status
(arm)
- "Return result of :stop-gripper (`franka_gripper::MoveActionResult`)"
- (send self :get-move-gripper-result arm)
+ "Return status of :stop-grasp (`status` of `actionlib_msgs::GoalStatus`)"
+ (send self :get-move-gripper-status arm)
+ )
+ (:get-stop-grasp-result
+ (arm &key (wait t))
+ "Return result of :stop-grasp (`franka_gripper::MoveActionResult`)"
+ (send self :get-move-gripper-result arm :wait wait)
)
(:move-gripper
(arm width &key (tm 500) (wait nil))
@@ -420,10 +444,16 @@ Details: `MoveAction` part of https://frankaemika.github.io/docs/franka_ros.html
(send self :gripper-method-with-width-helper
:send-gripper-move-action gripper-move-actions arm wait width tm)
))
- (:get-move-gripper-result
+ (:get-move-gripper-status
(arm)
+ "Return status of :move-gripper (`status` of `actionlib_msgs::GoalStatus`)"
+ (send self :spin-once)
+ (send self :send-gripper-action-method arm gripper-move-actions :get-state)
+ )
+ (:get-move-gripper-result
+ (arm &key (wait t))
"Return result of :move-gripper (`franka_gripper::MoveActionResult`)"
- (send self :gripper-action-postprocess arm gripper-move-actions t)
+ (send self :gripper-action-postprocess arm gripper-move-actions wait)
)
)
diff --git a/jsk_panda_robot/panda_eus/models/dual_panda.urdf.xacro b/jsk_panda_robot/panda_eus/models/dual_panda.urdf.xacro
index f47eb6c525..eac361f09f 100644
--- a/jsk_panda_robot/panda_eus/models/dual_panda.urdf.xacro
+++ b/jsk_panda_robot/panda_eus/models/dual_panda.urdf.xacro
@@ -109,17 +109,17 @@
-
+
-
+
-
+
-
+
diff --git a/jsk_panda_robot/panda_eus/models/dual_panda.yaml b/jsk_panda_robot/panda_eus/models/dual_panda.yaml
index 351154873a..14c48cfbfe 100644
--- a/jsk_panda_robot/panda_eus/models/dual_panda.yaml
+++ b/jsk_panda_robot/panda_eus/models/dual_panda.yaml
@@ -20,12 +20,12 @@ larm:
# - pan_tilt_JOINT1 : head-neck-p
rarm-end-coords:
- parent: rarm_hand_tcp
- translate: [0, 0, 0]
+ parent: rarm_hand # If rarm_hand_tcp is used to delete the following translation, (send *dual_panda* :rarm :gripper :joint-list) does not include finger joints
+ translate: [0, 0, 0.1034] # https://github.com/frankaemika/franka_ros/blob/0.10.1/franka_description/robots/common/franka_robot.xacro#L8
rotate : [0, -1, 0, 90]
larm-end-coords:
- parent: larm_hand_tcp
- translate: [0, 0, 0]
+ parent: larm_hand # If larm_hand_tcp is used to delete the following translation, (send *dual_panda* :larm :gripper :joint-list) does not include finger joints
+ translate: [0, 0, 0.1034] # https://github.com/frankaemika/franka_ros/blob/0.10.1/franka_description/robots/common/franka_robot.xacro#L8
rotate : [0, -1, 0, 90]
angle-vector:
diff --git a/jsk_panda_robot/panda_eus/models/panda.yaml b/jsk_panda_robot/panda_eus/models/panda.yaml
index 08b55ee3f2..73b9e3f980 100644
--- a/jsk_panda_robot/panda_eus/models/panda.yaml
+++ b/jsk_panda_robot/panda_eus/models/panda.yaml
@@ -8,8 +8,8 @@ rarm:
- panda_joint7 : rarm-wrist-y
rarm-end-coords:
- parent: panda_hand_tcp
- translate: [0, 0, 0]
+ parent: panda_hand # If panda_hand_tcp is used to delete the following translation, (send *panda* :rarm :gripper :joint-list) does not include finger joints
+ translate: [0, 0, 0.1034] # https://github.com/frankaemika/franka_ros/blob/0.10.1/franka_description/robots/common/franka_robot.xacro#L8
rotate : [0, -1, 0, 90]
angle-vector: