Fix XACRO joint alignment and precision for IKFast compatibility#1021
Fix XACRO joint alignment and precision for IKFast compatibility#1021oguzhanbzglu wants to merge 1 commit intoros-controls:masterfrom
Conversation
|
@oguzhanbzglu, all pull requests must be targeted towards the |
|
This pull request is in conflict. Could you fix it @oguzhanbzglu? |
|
@oguzhanbzglu, all pull requests must be targeted towards the |
|
@oguzhanbzglu, all pull requests must be targeted towards the |
| <parent link="link_2"/> | ||
| <child link="link_3"/> | ||
| <origin xyz="0.685682 0 0.041861" rpy="0 ${pi} ${pi+pi/2}"/> | ||
| <origin xyz="0.686 0 -0.27" rpy="0 ${pi} ${pi+pi/2}"/> |
There was a problem hiding this comment.
you change the xacro macro in line 104, but here it is OK? I don't think this is a problem. If IKfast is not capable of importing xacro, then you have to process with xacro first and pass the plain URDF.
There was a problem hiding this comment.
I use this xacro and take the plain urdf from the robot_description topic to parse IKfast, but the resulting URDF isn't suitable for IKFast; I'm simplifying it.
There was a problem hiding this comment.
but then for sure the ${pi} macros are evaluated, and no need to change this in the xacro
There was a problem hiding this comment.
so the literal 2 in the PR description above is outdated?
There was a problem hiding this comment.
Yes, sorry that was wrong description of the rpy expression (removed).
Basically, IKFast could not find solution for rpy calculations (pi/6 or pi/3) thus, I made them simpler and worked.
christophfroehlich
left a comment
There was a problem hiding this comment.
Please rebase your changes on top of master and change the HEAD of this PR.
79955ad to
6936ab5
Compare
|
This pull request is in conflict. Could you fix it @oguzhanbzglu? |

Description
This PR fixes the R6bot URDF to make it compatible with IKFast solver generation using tools like pyikfast. The original URDF contained joint misalignments and excessive decimal precision that prevented successful IKFast compilation.
Problem
When attempting to generate an IKFast solver for the R6bot using pyikfast, the process fails because it cannot find solution or try to solve (waited couple hours). The main causes were:
Excessive decimal precision: Joint origin values contain too many decimal places
xyz="0.518777 0 0.067458"(6 decimals)Joint misalignment: Non-axis-aligned joints cause solver generation to fail
Changes
xyz="0.518777 0 0.067458"xyz="0.519 0 0.067"rpy="${pi/6+pi} 0 ${pi/3}"rpy="${pi} 0 ${pi/2}"(orrpy="0 0 0"where applicable)After changes mentioned above, IKFast successfully generated solution.
This is how robot joints look: