11"""Franka Emika Panda asset zoo entry — 7-DoF arm + 2-finger parallel gripper.
22
3- Joints split into two actuator groups: a high-PD arm group covering ``panda_joint1..7``
4- and a stiffer finger group covering the parallel-jaw fingers. Gain values follow
5- Isaac Lab's ``FRANKA_PANDA_HIGH_PD_CFG`` so behaviour transfers when downstream code
6- mixes the two stacks. ``default_joint_pos`` matches the MuJoCo Menagerie home keyframe.
3+ Sourced from MuJoCo Menagerie ``franka_emika_panda`` (Apache-2.0). Joint names follow
4+ the upstream convention (``joint1..7`` plus ``finger_joint1..2``) and the default pose
5+ matches the Menagerie ``home`` keyframe. Two actuator groups split arm and hand with
6+ the Isaac Lab ``FRANKA_PANDA_HIGH_PD_CFG`` gains so cross-stack behaviour stays
7+ comparable.
78"""
89
910from typing import Final
1516
1617_MJCF : Final = AssetSpec (
1718 name = "franka" ,
18- url = "https://raw.githubusercontent.com/KraHsu/genelab-assets/main/franka/franka.xml" ,
19- md5 = "4c413c93f77e8e7bd5364c23a772c72d" ,
20- filename = "franka.xml" ,
19+ url = "https://raw.githubusercontent.com/KraHsu/genelab-assets/main/franka_emika_panda/franka_emika_panda.tar.gz" ,
20+ md5 = "6890871be5fbb852a13b6be2a766f270" ,
21+ filename = "franka_emika_panda.tar.gz" ,
22+ archive_member = "franka_emika_panda/panda.xml" ,
2123)
2224
25+ # Menagerie home keyframe: qpos = "0 0 0 -1.57079 0 1.57079 -0.7853 0.04 0.04".
2326_HOME_POSE : Final [dict [str , float ]] = {
24- "panda_joint1 " : 0.0 ,
25- "panda_joint2 " : - 0.785 ,
26- "panda_joint3 " : 0.0 ,
27- "panda_joint4 " : - 2.356 ,
28- "panda_joint5 " : 0.0 ,
29- "panda_joint6 " : 1.571 ,
30- "panda_joint7 " : 0.785 ,
31- "panda_finger_joint .*" : 0.04 ,
27+ "joint1 " : 0.0 ,
28+ "joint2 " : 0.0 ,
29+ "joint3 " : 0.0 ,
30+ "joint4 " : - 1.57079 ,
31+ "joint5 " : 0.0 ,
32+ "joint6 " : 1.57079 ,
33+ "joint7 " : - 0.7853 ,
34+ "finger_joint .*" : 0.04 ,
3235}
3336
3437
@@ -47,15 +50,15 @@ def FrankaPandaCfg() -> ArticulationCfg:
4750 default_joint_pos = dict (_HOME_POSE ),
4851 actuators = {
4952 "panda_arm" : ImplicitPDActuatorCfg (
50- target_names_expr = (r"panda_joint [1-7]" ,),
53+ target_names_expr = (r"joint [1-7]" ,),
5154 stiffness = 400.0 ,
5255 damping = 80.0 ,
5356 effort_limit = 87.0 ,
5457 velocity_limit = 2.175 ,
5558 action_scale = 0.5 ,
5659 ),
5760 "panda_hand" : ImplicitPDActuatorCfg (
58- target_names_expr = (r"panda_finger_joint .*" ,),
61+ target_names_expr = (r"finger_joint .*" ,),
5962 stiffness = 1.0e4 ,
6063 damping = 200.0 ,
6164 effort_limit = 20.0 ,
@@ -69,7 +72,7 @@ def FrankaPandaCfg() -> ArticulationCfg:
6972register_robot (
7073 "franka" ,
7174 FrankaPandaCfg ,
72- description = "Franka Emika Panda 7-DoF arm with parallel-jaw gripper; high-PD gains." ,
75+ description = "Franka Emika Panda 7-DoF arm + parallel gripper (Menagerie source) ; high-PD gains." ,
7376 cfg_type = ArticulationCfg ,
7477 examples = [
7578 "genelab info franka" ,
0 commit comments