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

Looking at your urdf, I'd say that at least the definitions of the axes is not as they should be. For J1 for instance:

<joint name="J1" type="revolute">
    ..
    <parent link="base_link"/>
    <child link="link_1"/>
    <axis xyz="0 -1 0"/>
    ..
</joint>

This will result in a joint being defined between base_link and link_1 (what you'd want), which will be a revolute joint rotating around the -Y axis. As the first axis of an ARC Mate 100iB rotates the manipulator over the robot's base, this needs to rotated around the (+)Z axis.

The other axis elements have stranger values. J4: xyz="0 -0.067993 0.99769". While this is a valid axis definition, I'd expect a single 1 here, in the location for the X axis (so: xyz="1 0 0"). The M-6iB urdf I linked in my comment contains the correct axes definitions, perhaps you could use those as a guide.


Your screenshots do show coordinate system origins in the SolidWorks assembly. Are you sure you selected those from the dropdown boxes in the 'URDF export wizard'? Also make sure they have the correct orientation (X forward, Y left, Z up).

The SolidWorks to URDF exporter can be a bit difficult to work with, but if you place your reference geometry correctly, it should work.

Looking at your urdf, I'd say that at least the definitions of the axes is are not as they should be. For J1 for instance:

<joint name="J1" type="revolute">
    ..
    <parent link="base_link"/>
    <child link="link_1"/>
    <axis xyz="0 -1 0"/>
    ..
</joint>

This will result in a joint being defined between base_link and link_1 (what you'd want), which will be a revolute joint rotating around the -Y axis. axis (probably not what you want). As the first axis of an ARC Mate 100iB rotates the manipulator over the robot's base, this needs to rotated around the (+)Z axis.axis (third position in the xyz attribute).

The other axis elements have (even) stranger values. J4: xyz="0 -0.067993 0.99769". While this is a valid axis definition, I'd expect a single 1 here, in the location for the X axis (so: xyz="1 0 0"). The M-6iB urdf I linked in my comment contains the correct axes definitions, perhaps you could use those as a guide.


Your screenshots do show coordinate system origins in the SolidWorks assembly. Are you sure you selected those from the dropdown boxes in the 'URDF export wizard'? Also make sure they have the correct orientation (X forward, Y left, Z up).

The SolidWorks to URDF exporter can be a bit difficult to work with, but if you place your reference geometry correctly, it should work.

Looking at your urdf, I'd say that at least the definitions of the axes are not as they should be. For J1 for instance:

<joint name="J1" type="revolute">
    ..
    <parent link="base_link"/>
    <child link="link_1"/>
    <axis xyz="0 -1 0"/>
    ..
</joint>

This will result in a joint being defined between base_link and link_1 (what you'd want), which will be a revolute joint rotating around the -Y axis (probably not what you want). As the first axis of an ARC Mate 100iB rotates the manipulator over the robot's base, this needs to rotated around the (+)Z axis (third position in the xyz attribute).

The other axis elements have (even) stranger values. J4: xyz="0 -0.067993 0.99769". While this is a valid axis definition, I'd expect a single 1 here, in the location for the X axis (so: xyz="1 0 0"). The M-6iB urdf I linked in my comment contains the correct axes definitions, perhaps you could use those as a guide.


Your screenshots do show coordinate system origins in the SolidWorks assembly. Are you sure you selected those from the dropdown boxes in the 'URDF export wizard'? Also make sure they have the correct orientation (X forward, Y left, Z up).

The SolidWorks to URDF exporter can be a bit difficult to work with, but if you place your reference geometry correctly, it should work.


Edit: I also just noticed that the joint limits that you configured are not correct. For J2 for instance, the total range of motion is 4.36 radians. The linked URDF has:

<limit lower="-436" upper="4.36" effort="0" velocity="2.79"/>

Ignoring the typo (-436 rad), this would still give J2 double its actual range. You'll want to make sure these match the actual specifications of the robot, otherwise MoveIt (fi) cannot plan properly for your robot.