How to attach Franka Arm with Robotiq Gripper using Robot Assembly?

Hi, Thanks for the amazing work on IssacSim

I am trying to attach the Robotiq2f Gripper to Franka Arm following the Robot Assembly example here.

I imported the Franka asset and the Robotiq Gripper from the Issac Beta Asset release and used the Robot Assemble tool to merge the gripper with the arm. While doing this I get the following error in the console:

2023-11-28 00:37:04  [Error] [omni.physicsschema.plugin] UsdPhysics: Nested articulation roots are not allowed.
2023-11-28 00:37:04  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/body_f1_l
2023-11-28 00:37:04  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/body_f1_r
2023-11-28 00:37:04  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/body_f3_l
2023-11-28 00:37:04  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/body_f3_r
2023-11-28 00:37:04  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f1_f2_l
2023-11-28 00:37:04  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f1_f2_r
2023-11-28 00:37:04  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f2_f4_l
2023-11-28 00:37:04  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f2_f4_r
2023-11-28 00:37:04  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f4_f3_r
2023-11-28 00:37:04  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f4_f3_l
2023-11-28 00:37:27  [Error] [omni.physicsschema.plugin] UsdPhysics: Nested articulation roots are not allowed.
2023-11-28 00:37:27  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/body_f1_l
2023-11-28 00:37:27  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/body_f1_r
2023-11-28 00:37:27  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/body_f3_l
2023-11-28 00:37:27  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/body_f3_r
2023-11-28 00:37:27  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f1_f2_l
2023-11-28 00:37:27  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f1_f2_r
2023-11-28 00:37:27  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f2_f4_l
2023-11-28 00:37:27  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f2_f4_r
2023-11-28 00:37:27  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f4_f3_r
2023-11-28 00:37:27  [Error] [omni.physx.plugin] PhysicsUSD: CreateJoint - no bodies defined at body0 and body1, joint prim: /World/factory_franka_instanceable/Robotiq_2F_145/f4_f3_l

Any help would be really appreciated. Thanks!

After quite a bit of playing around, I think I was able to get this to work properly. The key was to first flatten the robotiq gripper usd to remove references to external assets. Then, add a fixed joint between link8 of the panda arm and _F_body of the robotiq. Final usd is attached, and as you can see, I’m able to change the target positions of the robotiq fingers as well as the arm successfully while the simulation is running.




franka_robotiq_final.usd.zip (3.4 MB)

1 Like

This is awesome @jamejia 🙌

Glad it is helpful! I found that the structure I chose made control in OmniIsaacGymEnvs a bit difficult so here is an updated version that I was able to get working. I’ll probably need to modify this to make it instanceable to save memory when scaling up envs but for now it works:
franka_robotiq_d1.usd.zip (4.3 MB)


2 Likes