cambel / ur_ikfast

Python IKFast library for Universal Robots
MIT License
85 stars 18 forks source link

ikfast61.cpp generation error for ur5 #3

Closed chinmay1148 closed 2 years ago

chinmay1148 commented 3 years ago

The links provided for .cpp file generation (using universal robot ur_description urdf) is generating error. Can u share the urdf file ? In your ur5 folder the urdf or dae is not shared.

I skipped the moveit_ikfast round off to 5 decimal place.

Did you also use ur5.xml format (from https://github.com/andyzeng/ikfastpy) to generate ikfast61.cpp file ?

cambel commented 3 years ago

Which error are you getting?

I skipped the moveit_ikfast round off to 5 decimal places.

Are you trying to generate your own IKfast database? or are you trying to use the ones I am providing here?

Did you also use ur5.xml format (from https://github.com/andyzeng/ikfastpy) to generate ikfast61.cpp file?

I used the official ur5 URDF file following the moveit_ikfast steps. I uploaded the urdf, dae and I regenerated the database.

chinmay1148 commented 3 years ago

Thank you for uploading urdf and dae. I am using your repo with pybullet simulator. The output of IKsolver is not as expected. So was trying to generate new ikfast61.cpp.

I also realize that my ur5 urdf didnot have (baselink --> base) joint. What did you use for parameters "--baselink=1 --eelink=6" while generating IK solver ?

cambel commented 3 years ago

I set them as"--baselink=1 --eelink=10"

Mickeyyyang commented 3 years ago

If I have a real UR3e, can I directly use the ikfast plugin your gave in this?

cambel commented 3 years ago

@Mickeyyyang Sure you can just be aware that the real UR robots are not identical to the URDF design. They have some calibration parameters to adjust for those small differences. In other words, the IK solution from IKFAST (tip of the end-effector) may be slightly off with respect to the real robot. In my experience with the UR3e, I had no issue with that, I didn't really check, it was good enough for me. For bigger robots, some people reported several millimeters of error. For more info see this thread https://github.com/ros-industrial/universal_robot/issues/564

QNXLQ commented 2 years ago

Hello, I'm using yours ur10.cpp and ikfast.h, is normal that sometimes only have 4 or less solution?

cambel commented 2 years ago

Yes, It is normal. If I am not wrong a 6 DOF robot has a maximum of 16 valid IK solutions when all joint has a limited range of motion. Then the IKFAST it's just a database of the best poses found, discarding singularities and self-collisions (not sure about that last one but I suppose that is the case). So getting less than 4 or None can happen.