ros-industrial / abb_experimental

Experimental packages for ABB manipulators within ROS-Industrial (http://wiki.ros.org/abb_experimental)
Apache License 2.0
131 stars 115 forks source link

some questions for creating irb6700 155/2.85 support package #123

Closed EulerPiGauss closed 4 years ago

EulerPiGauss commented 4 years ago

Hi, recently I am trying to create a irb6700 155/2.85 support package based on abb_irb6700_support. I have some questions, could you give me some help?

  1. According to abb's 6700 product specification, 6700 200/2.60's max axis speed is [110, 110, 110, 190, 150, 210]degree/s. However, in irb6700_200_260_macro.xacro, velocity limits are [100, 90, 90, 170, 120, 190]. It is confusing for me. velocity limits

  2. I noticed that in irb6700_200_260_macro.xacro, there are cylinder_joint and pistion_joint definition. And according to this, limit value seems not important. I haven't found any infomation about piston and cylinder in any document until now. So could you tell me how you get these limit information please? Is it right that I keep your values unchanged for 6700 155/2.84?

  3. Although in RViz, everything looks OK, I still want to know how you verify robot's urdf. Could you give some instructions? irb6700_155_285

Thank you very much!

gavanderhoorn commented 4 years ago

1. According to abb's 6700 product specification, 6700 200/2.60's max axis speed is [110, 110, 110, 190, 150, 210]degree/s. However, in irb6700_200_260_macro.xacro, velocity limits are [100, 90, 90, 170, 120, 190]. It is confusing for me. velocity limits

According to the commit history, the variant you refer to was contributed by @marip8 in #116.

@marip8: would you happen to remember where you got the joint limits for the 200/2.6m variant? They do seem to be different from the ones in the quoted documentation.

2. I noticed that in irb6700_200_260_macro.xacro, there are cylinder_joint and pistion_joint definition. And according to this, limit value seems not important. I haven't found any infomation about piston and cylinder in any document until now. So could you tell me how you get these limit information please? Is it right that I keep your values unchanged for 6700 155/2.84?

There are no known limits for that part of the robot geometry. The limits present are there to allow for the typical motion of these parts, without restricting them. Those limits do not come from any documentation of data sheet.

If the variant you're adding has a similar structure, you could most likely reuse the ones you found.

3. Although in RViz, everything looks OK, I still want to know how you verify robot's urdf. Could you give some instructions? irb6700_155_285

For the visual aspect of the model, a visual inspection is used (ie: does the model look complete, do the meshes look correct, are there no obvious defects, are the mesh normals correct (ie: no inverted normals), etc). It's also important to check whether the meshes are not overly detailed. Anything above a few hundred KB for .stl is too detailed.

Also make sure to have correct collision quality meshes. Create convex hulls of your visual meshes.

For the kinematic structure, a good approach would be to compare the result of looking up the base->tool0 transform with the robot in various poses and then comparing it to what either a real robot or RobotStudio tells you the pose of the unconfigured tool frame is.

Both position and orientation should match to a significant number of decimals.

Next, compare the directions of rotation to what the manual specifies. You could either do this manually, for each joint, using the joint_state_publisher, or by running a RobotStudio simulation of the same robot variant and then starting the driver to visualise the current state. Motions in RobotStudio should correspond to what you see in RViz.

Especially important is the J2-J3 coupling factor. But if that's incorrect you'll immediately notice it when moving the robot around in RobotStudio, as it will lead to unexpected motions of the lower arm (ie: links 3 and later).

gavanderhoorn commented 4 years ago

recently I am trying to create a irb6700 155/2.85 support package

please note: variants of robot series for which support packages already exist should be placed in the package for that series.

So in your case, the 155/2.85 could be placed as a variant in the existing abb_irb7600_support package.

There would be no need to create a new separate package.

gavanderhoorn commented 4 years ago

We'll track the potentially incorrect joint limits in #124.

gavanderhoorn commented 4 years ago

As we're tracking the potential issue with the joint limits in #124, and the rest of this post is asking for guidance instead of reporting other problems, I'm going to close the issue.

Feel free to keep commenting on it of course.

EulerPiGauss commented 4 years ago

Thank you very much for your help!

gavanderhoorn commented 4 years ago

No problem.

It would of course be very much appreciated if you could contribute support for the variant by submitting a pull request.