-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Updated cog for ur16 how I understand the documentation #504
base: melodic-devel-staging
Are you sure you want to change the base?
Updated cog for ur16 how I understand the documentation #504
Conversation
So where are the origins supposed to be (I haven't read the document yet)? |
Roughly, where we have them right now, but they aren't exactly in the geometric center. |
Unfortunately I won't have time to investigate this/support you. Perhaps one of the other maintainers (@ipa-nhg or @miguelprada) could lend a hand. |
@fmauch: would this be something you could potentially work on during WRID20? I don't know whether you've already decided whether you'd join or not, so this is just a question/suggestion of course. |
In light of #521, having correct |
I could definitely work on that, yes. I've talked back to the guys at UR and it seems that the inertias are only set for the UR10 and UR16 as for the smaller ones they are negligible compared to the motor inertia used internally. That means that we should probably stick to the cylinder approximations using the masses and cog as listed in UR's documentation. |
I was about to propose the same, I am unfortunately not an expert of the topic but I can help during the WRID reviewing and testing changes. |
I'll continue here the conversation started with @gavanderhoorn in #521 as the next steps regard this pull request. To recap:
the inertia matrices of UR3 and UR5 can be left as they are, but we should add the exact inertia matrices extracted from URSim to UR10, UR16. I am not sure about what would be a good strategy to include the matrices for UR10 and UR16 without compromising the current modular file structure. To @fmauch : given the big effort you put into this I would leave the lead to you but I would happy to help you out, please let me know how can I support you with this |
I'm not sure whether this is the correct conclusion to draw from this. I'd suggest trying the cylinder approximations here, as well. But we could use them to improve our approximation to match this as close as possible. |
@fmauch wrote:
Ok so should we start with fixing the cogs for all the models while keeping all the intertia matrices approximated to the ones of cylinders? |
@fmauch wrote:
@fmauch: should we not try to use the official nrs as much as possible? If this leads to undesirable behaviour in Gazebo, then we should try to compensate, but as URDFs are supposed to be a faithful model of the real robot, using the 'real' values would seem to be desirable. |
I'm just not sure if they reflect the same physical parameters. As far as I understood, those values are used together with motor inertia to calculate the actual robot dynamics. As we don't separate that in gazebo AFAIK, it might make sense to stick with what's resulting from the geometric information that we have. But I don't know enough about physics dynamics simulation to give a fully qualified opinion on that. Apart from that I do agree that sticking as close as possible to the official numbers does make sense. |
used documentation: https://www.universal-robots.com/how-tos-and-faqs/faq/ur-faq/parameters-for-calculations-of-kinematics-and-dynamics-45257/ Note: This changes inertia for all robots as the main xacro file is changed.
I've updated this PR to define the full inertia matrix. This allows us to either use the values coming from UR directly or inserting the ones from the cylinder approximation. With the values coming from UR the inertia boxes are angled (some quite significantly). Using a position joint interface this seems to work properly. I would suggest to test this with a draft implementation of #521 before proceeding here. @matteolucchi Are you going to test this? Note: Currently, only the UR16e version will work. Edit: I hacked up a draft version where the robot at least does not explode and performs motions using an effort trajectory controller. |
@fmauch: could you perhaps attach a screenshot? |
@fmauch wrote:
Comparing it to the IRB 1200 over at |
I'll go ahead and implement the cog and full inertia matrix for all variants. We can decide on the inertia content later, as well. |
For the UR16e I used the parameters extracted from URSim
I've implemented the changes as recapped in #504 (comment) CI should accept this again and we can test this by rebasing #525 ontop of this. I am still not fully convinced that I got all the rotations correct, but the cog docs also are a bit confusing as I can't find a system how the cog is offset in wrist_1 and wrist_2 for example. E.g. the UR5 and UR10 model state the following cog offsets: UR5
UR10
I can't follow why for the UR5 (and UR5e) the sign of So, this should be reviewed thoroughly questioning all steps I took. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
2bade90
to
6a64eb0
Compare
This PR spins out of #460, as it not only affects the UR16e.
Up until now, the robots' CoG calculation were centered inside the links they were referring to. This PR sets them to the place where they are supposed to be according to UR's documentation
The actual inertia matrix isn't changed by this PR, that might still have to be updated. UR provides 3x3 inertia matrices, but (at least in URSim) the ones from the ur3e and ur5e seem to be very sparse (the following files are from a URSim v5.8, so all robots are actually e-Series):
Currently, this is a draft implementation for the UR16e. If somebody with more experience about inertias than me could have a look at this, I'd be happy do adapt the parameters for the other robots, as well.
ToDo: