ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A
Ask Your Question

improper joint positioning of industrial robot in moveit! from solidworks

asked 2015-09-16 19:36:02 -0500

TheDude35 gravatar image

updated 2015-09-17 10:14:25 -0500

gvdhoorn gravatar image

I've attached a few pictures highlighting my problem and what is going on is I setup my axis and co ordinate systems in solidworks according to the guides whereby the axis are along the joints of the robot and the co ordinate systems for each joint is along the axis.

screenshot 1

screenshot 2

I export my URDF file from solidworks and when I create a moveit! package the joints are all misaligned and the motion is completely off. what I mean is the joints rotate at offset axis and the links are very far from one another. I've already varied the directions of the co ordinates but have seen the same results and I've managed to get the motion close to what it is supposed to be like but even so it's not what the motion should be like on the real robot.

screenshot 3

I can't upload the files because I'm a very new member but hopefully one of the members here can still offer some advice.

thanks in advance

edit retag flag offensive close merge delete


Your images aren't visible. Could you upload them to and add the links to your question? If you can make your urdf files available, that would also help (dropbox/github/wetransfer).

As to the plugin: have you made it use your coordsys origins before exporting?

gvdhoorn gravatar imagegvdhoorn ( 2015-09-17 00:54:59 -0500 )edit

Also: if you accept the answer to your previous question, you'll get some karma, which will unlock some of the features on this site.

gvdhoorn gravatar imagegvdhoorn ( 2015-09-17 01:00:43 -0500 )edit

here is the imgur link to the photos: link text and here is the github link to the URDF: link text

take a look and tell me what you think. Thanks in Advance

TheDude35 gravatar imageTheDude35 ( 2015-09-17 08:43:49 -0500 )edit

I'll take a look. In the meantime, you could perhaps use the recently added M-6iB from the ROS-Industrial Fanuc support packages (here). ARC Mate 100iB and M-6iB are identical as far as I know.

gvdhoorn gravatar imagegvdhoorn ( 2015-09-17 09:07:18 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2015-09-17 09:22:39 -0500

gvdhoorn gravatar image

updated 2015-09-17 11:40:46 -0500

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"/>

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.

edit flag offensive delete link more


Great this is all very helpful I will not try all of it today since I've been using the Fanuc m16ib files as a replacement for my simulation, thank you very much and if there are any problems within the next few days I will add another comment

TheDude35 gravatar imageTheDude35 ( 2015-09-17 13:09:18 -0500 )edit

[..] since I've been using the Fanuc m16ib files [..]

Just to be sure: I mentioned that there is M-6iB support in ROS-Industrial, which should be identical to the ARC Mate 100iB. We also have M-16iB/20 support, but that is not what I was referring to.

gvdhoorn gravatar imagegvdhoorn ( 2015-09-17 15:26:31 -0500 )edit

Everything work now, with your advice I was able to solve the problem. Thanks

TheDude35 gravatar imageTheDude35 ( 2015-09-30 14:02:29 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2015-09-16 19:36:02 -0500

Seen: 713 times

Last updated: Sep 30 '15