-
Notifications
You must be signed in to change notification settings - Fork 181
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
JointRelayHandler calibration offsets support? #218
Comments
Context: mikeferguson/robot_calibration#64 (please always include that in the future). |
Adding support for calibration offsets could be interesting.
That doesn't link me to a specific line number (this does) so I assume you are referring to There are two sides to this:
The first needs a transformation from For calibration to be taken into account properly (and I'm assuming you're talking about joint space offsets), you'd have to subtract the offsets in the first case, and add them in the second. The bigger issue here I believe would be to make the offsets themselves available to the conversion functions without introducing all sorts of extra infrastructure. |
It would be nice if we could add this to In this specific case though (the |
Yes, I was referring to that function. Thanks for your confirmation.
I will try implementing this in my project. I will report back here in the coming week.
So it would be something like this?
Or did i understand it the wrong way? Also, should I change the title to something in the lines of: JointRelayHandler calibration offsets support? |
yes (you misunderstood), that is not what I meant. The function you link to only works in one direction. You need to update the functions for both directions of data flow.
yes, that would seem like a good thing to do. I might even transfer this issue to the |
I looked for the other direction based on the nodes called from the abb_driver robot_interface.launch and found the joint_trajectory_downloader. With the other direction do you mean this function? https://github.com/ros-industrial/industrial_core/blob/kinetic-devel/industrial_robot_client/src/joint_trajectory_downloader.cpp#L42 So So, again, to me it seems that the points, which have the joint data in function send_to_robot(..) are the values that need to be added with the joint offsets and the values in function create_messages(..) need to be subtracted with the offsets. Please correct me if I'm wrong. I tried adding some lines in both joint_trajectory_downloader as joint_relay_handler. joint_relay_handler.cpp
joint_trajectory_downloader.cpp:
I tried this implementation with a simulated robot. I worked fine for me. Am I missing anything? |
After further inspection, I don't think this particular implementation, with regards to joint offsets, would work efficiently for industrial robots. This, because the offset generally differs per pose. I'm not a professional in the ways industrial robots are used. But my understanding is that most users make use of the high repeatability. Whatsmore, vendors develop the robots with that in mind. These are the reasons I believe the addition is not required in the industrial core until a better approach comes around. Though, i do believe that an addition where the user can transform the joint angles before sending to the robot and receiving will be useful for future development. For example, having an inheriting class implementing the functionality. In my case that would be in a class in abb_driver, where I can put the above code. To this end, some inheritable functions that get called in send_to_robot and create_messages are required. This way the current code doesn't get hurt, only passing the joint angles or trajectory one more time should be fine for now. Similar to transform function in joint_trajectory_interface, which doesn't do anything when not implemented by a child class. Any thoughts on this? |
I am not sure if this is the right place to ask this.
I want to edit the messages sent to the controller, namely the joint angles. I want to add a certain offset to each joint angle based on the calibration tag in the robots URDF. I am assuming that this is currently not a feature in the driver, at least, I could not find something regarding this in the abb_driver nor in the industrial_robot_client. Can someone point me to where I can best add these offsets to the joint angles/joint states?
somewhere here? https://github.com/ros-industrial/industrial_core/blob/kinetic-devel/industrial_robot_client/src/joint_relay_handler.cpp#L98
The text was updated successfully, but these errors were encountered: