Za6 robot frames and joints

Hi!

I have added an end effector to my za6. I am also using a custom ROS based vision system on another computer that is network connected to the za6 to publish tfs of interest to which I wish to move my new end effector. Since so much of our code was already in ROS, I am trying to send goals directly to the move_group node without going through the interpreter node or the robot_ui.

I was hoping for some clarifications about the za6 setup before I break something or waste a lot of time digging or going down dead end paths.

Looking at the za6 tf tree and the urdf, I see the flange attached to link_6, and that makes sense to me as to why it is there, but I am wondering about the other three frames I see: tool0, tcp_lin_link, and tool0_tcp and also the prismatic joints connecting them (tcp_lin, and tcp_rot). What are the purposes of these frames and the prismatic joints?

My guess is that the prismatic joints and the tcp links (probably standing for tool center point?) are somehow used in your wizard to determine new user tool frames and that I don’t really need to worry about them?

Also, when I add a new tool frame in pathpilot, it is a child of the tool0 frame rather than a child of the flange frame as I would have expected. I have found that I cannot specify my new link as a frame in a constraint because it is not actually a link. Looking at the goals that the interpreter node sends, you don’t use my created tool frame either, and just send tool0, so I am guessing that either the interpreter node does the offset to go from my tool frame to tool0 before sending the move_group goal or that it is unnecessary because of one of the move_group services that I can’t echo handles everything to go from my tool frame to tool0 and renders my tool frame unnecessary in the goal.

Am I doing something wrong with my frame setup through pathpilot or perhaps is there a way to add a real link with pathpilot? I see the other model types when I add a frame, so maybe that is what I should do, but I don’t see a way to add another model other than the ones you provide.

If I’m not doing anything wrong, then based on some of the other machines I’ve worked with, I think that the ROS way to do this would probably be to run the moveit setup wizard in order to add a new link with my end effector actually being a part of the arm. But if I do need to run the setup wizard, I want to make only necessary or minimal changes so as not to break anything, so I wanted to know the purpose of tool0 before doing it.

Thank you!

Hello @tbh

Sorry for the delayed reply. There are a couple of questions in that post, and I’m going to try my best to answer them:

  1. Your statement is correct, our tool wizard walks users through creating a tool_frame and auto populates those fields. We do not recommend users try to create custom values for tool_frame data points.
  2. PathPilot uses a user_frames to set waypoints, and when programing a move, you simply select the order of waypoints you want the robot to travel to. The way we have the software set up, tool_frames are not interpreted for these commands.

I don’t know if I quite understand what you are trying to set-up. I would recommend trusting PathPilot over a custom ROS, and I would be willing to work with you to get our product to fulfil the task you are looking to complete. If you submit a support ticket at Tormach Inc. - Jira Service Management and reference this forum post, I would be happy to review your set-up one-on-one and help get the ZA6 working for you.

Thanks!