ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I believe the problem is that in your top-level .xacro file, you are setting the prefix of the seallant_tool to tool_:

 <xacro:seallant_tool prefix = "tool_"/>

but then in the flange_to_seallant_tool joint spec you are not using that prefix, but simply use base_fit as the name of the child link.

It should probably be tool_base_fit.

Same with tool0 in the tool0_to_flange joint. It should probably be robot_tool0.

And for consistency you might want to prefix flange with robot_ as well (so it becomes robot_flange).

Edit: the main problem here was that the name of the attribute that encodes the parent or child link for a joint is link, not name.

Having fixed that in the tool0_to_flange and flange_to_seallant_tool joint specs made things almost work.

Remaining issue was that tool_base_fit is already a child of tool_base_link, so you cannot make it a child of robot_flange as well (that is not allowed in urdf).

After changing flange_to_seallant_tool to have tool_base_link as its child the .xacro could successfully be converted and it loaded into RViz:

image description


Original answer: I believe the problem is that in your top-level .xacro file, you are setting the prefix of the seallant_tool to tool_:

 <xacro:seallant_tool prefix = "tool_"/>

but then in the flange_to_seallant_tool joint spec you are not using that prefix, but simply use base_fit as the name of the child link.

It should probably be tool_base_fit.

Same with tool0 in the tool0_to_flange joint. It should probably be robot_tool0.

And for consistency you might want to prefix flange with robot_ as well (so it becomes robot_flange).