Skip to content
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

joint limits in urdf are not accurate (ros ticket #3774) #177

Open
ahendrix opened this issue Mar 12, 2013 · 10 comments
Open

joint limits in urdf are not accurate (ros ticket #3774) #177

ahendrix opened this issue Mar 12, 2013 · 10 comments

Comments

@ahendrix
Copy link
Member

Some of the joint limits in the urdf are not accurate. The robot joints often exceed the specified joint limits:

e.g. [ERROR] 1264808171.989901000: joint: head_tilt_joint, high_limit: 1.296260, low_limit: -0.371200, value: -0.391297

trac data:

@ahendrix
Copy link
Member Author

[watts] The joints occasionally overrun the normal limits. This can happen when a rubber bump stop compresses, or when a belt stretches during a hit. There is some question as to where we should set these limits, and I'm not sure what the answer is.

Changing the joint limits in the URDF wouldn't change anything in robot behavior, since the soft limits would be the same.

@ahendrix
Copy link
Member Author

[watts] What do you think we should do about this one? Should we make the URDF more "real", or just say that the robot will occasionally record a reading greater than the URDF values.

@ahendrix
Copy link
Member Author

[watts] Sachin, John and Wim:

I think the way to fix this would be to have an "outer limit" set for joints on the robot. We can add a PR2 specific URDF extension the PR2's defs to set this field for all non-continuous joints. The only applications for this field that I can think of:

  • Determining if the joint has gone way out of bounds.

Sachin, do you still care about this?

@ahendrix
Copy link
Member Author

[sachinc] Yes, I do. I just ran into the problem again. Maybe this could be part of the calibration procedure - write out the joint limits into the urdf every time we calibrate.

@ahendrix
Copy link
Member Author

[watts] I don't think it needs to be part of the calibration procedure. It can just be:

  • Joint limits: 0 - 0.08
  • Joint outer limits: -0.002 - 0.085
    That could work for the gripper.

@ahendrix
Copy link
Member Author

[wim] I understand what is causing this problem, but what is the usecase for adding extra information into the urdf? Do you need this for the planners?

@ahendrix
Copy link
Member Author

[sachinc] Yes, I need it for the planners. We can get around it in a hackish way but it would be nice if the limits were more accurate than they are currently for each robot.

@ahendrix
Copy link
Member Author

[wim] Sachin, could you explain the usecase in more detail? I'm reluctant to add pr2 specific limits to the urdf. This will make your planners depend on pr2 specific extensions, and there is no good way to define good values for these extra limits because they depend on the force applied on the rubber end stops.

@ahendrix
Copy link
Member Author

[sachinc] I don't want to change the definition of the urdf and add something PR2 specific. I just want the numbers in there to better represent the individual robots. I think this could and should be a part of the calibration process - we rewrite a lot of other stuff during calibration.

@ahendrix
Copy link
Member Author

[wim] Okay, I understand. So the question is how to calibrate that. When moving slowly, the safety controllers will prevent the arm from reaching the hard limits. So do we need to move the arm at high velocity into its limits?

Or it the case that the soft limits are in some cases specified incorrectly and lie outside the hard limits?

I'm still interested to understand your use case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant