-
Notifications
You must be signed in to change notification settings - Fork 193
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Basic support for Yaskawa Motoman GP180-120 6DOF arm #277
Basic support for Yaskawa Motoman GP180-120 6DOF arm #277
Conversation
…e derived from official Yaskawa 3D model files; collision meshes are convex hulls; URDF does not contain correct effort limit values yet
…askawa controller flange coordinate system
Travis build for ROS Indigo is still failing with this error:
The property is defined in xacro files like this: <?xml version="1.0" ?>
<robot xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:macro name="motoman_gp180_120" params="prefix">
...
<property name="DEG2RAD" value="0.017453292519943295" /> What's wrong with that for ROS Indigo? I remember creating some URDFs for KUKA KR210 back in Indigo days and I also used this DEG2RAD property (declared in included file from kuka_resources package). |
Again, thanks for the PR. Contributing support for new models like this is much appreciated 👍 Some high-level comments as a pre-review:
Additionally:
Unfortunately I'm going to have to ask you to please fix the origins of the meshes. I realise that is some work, but it makes using the meshes outside of this package much easier, would align with the rest of the models in this repository and would simplify the xacro macro significantly. I also noticed that the |
… robot series, 120 is variant of this series); moved meshes to subdirectory for GP180-120 variant; renamed meshes to lowercase
…ocation; scaling, rotating and translating origin point in URDF no longer needed; added tools directory with script and README file describing automation of the processing of the source meshes (derived from Yaskawa 3D model STEP file)
Thank you for your comments and also for help with using Jade+ xacro on Indigo! I have implemented most of your suggestions. The only thing remaining is changing the location of joints so that they are "in line" (with translation only in single dimension). Will try to do that tomorrow. What about effort limit values? Is there some best practice about what values should I use if I don't know them? |
…ariant, updated README for them
…he joints are "in line" with only one axis translation between two neighboring joints (exception is link_3_u for upper arm, there is 2-axis translation)
…ic collision meshes generation from visual meshes
The URDF was changed to rotate the whole model so that the X-axis point forward and kinematic model adjusted to match the standard Yaskawa model and dimensions. The mesh were then adjusted to realign properly with the new kinematic model. The direction of motion for each axis was also corrected to match the real robot motion. Finally, the visual meshes were reduce by 50% to reduce the display processing.
I hope you don't mind. I just pushed some commits on your branch. So, the URDF was changed to rotate the whole model so that the X-axis point forward and kinematic model adjusted to match the standard Yaskawa model and dimensions. The mesh were then adjusted to realign properly with the new kinematic model. The direction of motion for each axis was also corrected to match the real robot motion. Finally, the visual meshes were reduce by 50% to reduce the display processing. Finally, the yellow line linking the U axis to the R-axis is correct. It's just the mathematically representation and doesn't need to go thought the physical arm. With these changes, I don't have a problem releasing the model. Please review it and let me know if you have any questions. |
Thanks for your work on this model. I usually create these models from scratch when requested, so this did saved me time. |
…s made by Eric Marcil in last commit; added simplification step of visual meshes to 50% faces
Thank you Eric for your corrections. I have updated my scripts to produce meshes from original Yaskawa STEP file to be usable with your corrected URDF. I did not update the meshes themselves because your meshes are perfectly ok. But I tested the URDF with meshes produced by my scripts and the result looks the same. One question - what about the base "link"? Should it be in this position (see picture)? Is Yaskawa controller robot coordinate system origin placed in this position? What about the effort limits in URDF file? I understand that those are probably not used when running with the real robot through MotoROS, right? I plan to further improve the URDF so that it can be used in Gazebo simulator (in another pull request, in a few days or weeks), is it ok to include Gazebo stuff in the URDF itself or should I create separate SDF file? I see that in motoman_sia10d_support package there are some Gazebo and simulation related properties directly in the URDF, so that probably means that I can do it in a similar way? |
Thanks @EricMarcil for the first look and correcting some issues already. And thanks @jmarsik for the PR and iterating on it. As to your questions:
yes, that is exactly where it should be. The purpose of
they are not used by MotoROS, no. But it would be nice if we can get them correct. @EricMarcil would this be something you could contribute like you've done for the other models you've contributed?
you don't necessarily need to create an SDF, but please don't "pollute" the manipulator xacro with Gazebo-specific tags. It isn't needed, as we can achieve the same result in a different way: by "wrapping" the plain xacro with one that adds the Gazebo extensions (using It's not perfect, but take a look at how this is done in abb_irb120_gazebo. |
I thought that the origin of Yaskawa controller robot coordinate system is placed in a physical joint position between base and S link or on the bottom of the robot base (same as base_link "link"). See picture for Robot coordinate system on https://www.motoman.com/en-us/about/company/robotics-glossary. But I may be wrong because my experience with Yaskawa robots is still limited. We don't have any real robot available at the moment, still deciding which variant we should use for our application. When I try to visualize GP12 from motoman_gp12_support in RViz, I see that the base "link" is placed exactly like the one in my package after Eric's correction. Regarding the effort limit values, it would be nice to know how (from what documentation) will Eric determine them. If that's ok, then I think that we can proceed and merge the pull request (maybe after correction of effort limit values, that's up to you), I will then probably contribute another variant into the same package (for GP180 variant of the manipulator with shorter U link) and then I will start working on Gazebo simulation support with your suggestions in mind. Should I place the wrapping / extending URDF in the same package (motoman_gp180_support) or create a new package dedicated to simulation support of GP180 and its variants (like abb_irb120_gazebo)? |
…eet provided by Eric Marcil
Thank you for the values Eric! I have updated the URDF. Also, thank you for the explanation of Yaskawa controller robot coordinate system origin position, I will keep this in mind. Can we merge the pull request now? |
I will do a final review. If everything is ok, then we can merge. |
One more question about future |
I know there are some old move_it_config in the motoman branch but we decided to stop including them because already with the increasing number of models the repository is growing. Plus, in most cases, people would have to modify it anyways to make it match their specific environment. So motoman_experimental would be a better choice. |
I thought so, will do another pull request to motoman_experimental repository after successful merge of this one. |
@gavanderhoorn could you please do the final review so that we can close this PR? |
Can we merge this PR so that I can continue with my contributions? |
This avoids translations in two dimensions for 'joint_4_r'.
So move final translation (from J5->J6) and make J6->tool0 transform identity.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is OK to merge.
I've pushed a few commits to fix some minor things and address some of the issues that remained after the last time this was discussed (multi-dim transforms, etc).
I'm not entirely sure I'm comfortable with the tools
sub directory, but it is specific to the GP180 120, so I can't come up with a better location for those files right now.
@jmarsik: thanks for your PR, this is a nice contribution. 👍 And thanks for iterating on it. Apologies for taking so long: your PR was submitted right before/in the holiday season. We'll wait for Travis to give the final OK and then merge. |
Note: I'm going to squash-merge this PR. All of the commits that followed the initial one are fixups, and don't need to end up in the repository history. Especially the many changes to binary meshes are undesirable, as they bloat the repository considerably. |
@EricMarcil: I am currently working on basic GP88 support and would like to add the correct efforts there as well. Are these YRC1000 parameter charts available for download anywhere, or could you post the values for the GP88? @jmarsik: Your stl processing scripts are very helpful, thanks for contributing them! I will create a PR for my |
Not sure what is going on with Travis. It seems to be having some problems. Just restarted the build. |
Travis appears to still have some problem, could you try to restart it again? |
An additional approx 2MB reduction.
Thanks @jmarsik for the PR 👍 And thank you for iterating on it. I've squash-merged everything as almost all commits were fixups based on review feedback, and we don't want those to end-up in the history of the repository. Especially not the many intermediate versions of the meshes. |
Meshes are derived from official Yaskawa 3D model files. Collision meshes are convex hulls of visual meshes created in MeshLab. Visual meshes don't include the balancer.
Origin point of all meshes is shifted from the original origin point in URDF to keep the meshes creation from Yaskawa 3D model files as simple as possible (currently it means just loading the STEP file into Fusion 360 and exporting individual components as STL files).
This pull request is created instead of previous pull request to motoman_experimental repository (ros-industrial/motoman_experimental#46).