-
Notifications
You must be signed in to change notification settings - Fork 131
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
Fix for pr2_calibration package to work #55
Conversation
…al robot.xml from pr2 robot
xmlr.Element('actuator', Actuator), | ||
]) | ||
|
||
class PR2Compensator(xmlr.Object): |
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.
We shold not put pr2 specific things in the urdfdom
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.
We shold not put pr2 specific things in the urdfdom
I agree with you, however PR2 requires several "extension" tags and old urdf parser could handle them because on groovy pr2 calibration worked.
What is the best way to solve this issue?
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.
Not sure what the issue is, but this is inconsistent with the C++ parser. There is no code specific to the pr2 there. The python shold be an equivalent feature set. Could we maybe have this pr2-specific parsing done in the calibration package itself?
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.
The problem is when we load pr2 urdf which contains pr2-specific tag and output to file, undefined tags are disappeared. Does anyone knows how to fix this?
There are a couple solutions I see here:
I'm not entirely sure what your error is with the URDF though. Could you explain what is going wrong and what commands reproduce it? |
I looked through the URDF, it should require a restructuring of all the transmission elements. They need hardware interfaces and an actuator tag with the mechanical reduction inside of it. Shouldn't be that big of a deal, no? The hardware interface is only checked at run time if ros_control is running and shouldn't affect anything else. |
What I understand from the implementation is that the duck-typing done here should take care of identifying whether a transmission specification is PR2- or ros_control-specific, according to the |
Another idea is to store any "illegal" tags inside of transmission 2014年10月30日木曜日、Devon [email protected]さんは書きました:
from iPhone |
@adolfo-rt pointed out something key. Edit: here is the error for those interested PR2/pr2_mechanism#324 (comment) |
I still don't understand the key... Anyway, I didn't see any errors when we compile xacro into urdf and urdf is The error comes up only when I run PR2 realtime controller as described 2014年10月31日金曜日、Devon [email protected]さんは書きました:
from iPhone |
Ok, if that solution at PR2/pr2_mechanism#324 fixes the bug I see no problem in adding it. Can you make a PR for it? |
Sorry, I'm a little bit confused. Could you summarize what we should do? 2014年10月31日金曜日、Devon [email protected]さんは書きました:
from iPhone |
If I understand correctly, this won't work because this information is used in pr2's controller, which is different from ros_control, so it might be big change. The problems is if we load ad write urdf ,then un-supported tag disappers.
https://github.com/ros-perception/calibration/blob/hydro/calibration_estimation/src/calibration_estimation/multi_step_cov_estimator.py#L304 So if there're way to avoid this in xml_reflection, that would be great. |
Ah I see now. Parsing the URDF doesn't recognize that tag so output doesn't include it and that info is needed for PR2. To summarize then our options are:
and finally one last hack:
What do you think? |
Sorry for late
I prefer this hack at this moment. Because we need to fix PR2-hydro calibration as soon as possible. In fact, merging this pull request is the fastest solution... |
There is something I am missing here. We should not need to modify the parser for the URDF to get calibration to work. How did this work before? |
@isucan -- the pr2_calibration and calibration packages predate the urdf_py stuff, and had their own hacky version inside. Maybe somebody updated the code to use this package not realizing that it wouldn't work? |
I see. I am reluctant to put pr2 specific hacks though in the urdf parser. Maybe we could have a hacked parser in the pr2_calibration package? The more generic solution would be to use extension tags as for gazebo, and make those generically available in the parser. Then we could have the pr2_calibration use that directly. |
So, what should we do now to re-work pr2 calibration on hydro?
|
We should put these changes in the pr2_calibration package. |
I'm not entirely sure how this change would propagate throughout the PR2 codebase, and what would be effected. Im thinking, a modified urdfdom that has the pr2's required hack inside of it, and renaming it pr2_urdfdom. Downsides of that mean no support for an up to date urdfdom, and another package to maintain. The longer term solution would be to modify the PR2's urdf and its mechanism controllers to get around this nonsense.. but that has repercussions for the controller manager code which I'd rather not get into the thick of. Garaemon, if this PR is not going to be accepted, would you like to make the modifications to the pr2_mechanism? |
@TheDash sounds good. But before that, as you said, I prefer to have pr2_urdfdom package as a hack. |
Ok, we can put it inside the pr2_calibration stack. Let's continue the discussion at PR2/pr2_calibration#5 If you make a PR of the pr2_calibration with the pr2_urdfdom included, that would be sufficient |
I solved this issue by PR2/pr2_calibration#6 |
it's just a hack |
This pull request is a year old and appears to be fixed by an external hack. Hydro is EOL'd. We are also trying to move away from PR2-specfiic logic in ROS. Thus I am closing this PR. |
Cc: @garaemon