Skip to content

Conversation

@Yuki-cpp
Copy link

@Yuki-cpp Yuki-cpp commented Sep 4, 2019

Summary

ur_kinematics can only support one UR robot type without being recompiled and uses old style C++ code. Moreover the python bindings are not functional. It also doesn't support the e-series robots. In this PR, we aim at modernizing this package, fixing those 3 issues.

Details

Here is what was done:

  • Updated the UR robot parameter handling system to support robot selection at run-time instead of compile time. Added parameters for the e-series robots
  • Added pybind11 python bindings
  • Added a solution exploration function to expand the 8 original solutions into the full set of solutions

Warning

Since robot parameters are handled at run-time instead of compile time, a small over-head occurs reducing the time performances by a few percents. However, with C++20 we could remove said over head with the addition of class types in non-type template parameters

Related issue : #442

@gavanderhoorn
Copy link
Member

First: thank you for the PR and the work, this looks like a good improvement.

Three initial comments:

@gavanderhoorn
Copy link
Member

Apparently there is a Catkin-wrapped version of pybind11: ipab-slmc/pybind11_catkin. It's also been released into both Kinetic and Melodic.

@gavanderhoorn
Copy link
Member

Starting with Bionic we could depend on ros/rosdistro#22261.

@jbeck28
Copy link

jbeck28 commented Jan 4, 2020

I'm having issues using the kinematics plugin for a UR5e. Specifically, it seems the included kinematics.yaml is actually using KDL rather than the UR5e Kinematics plugin. When I modified this through setup assistant to use the UR5e kinematics plugin, I found that upon moving the interactive marker in RViz, the end effector becomes strangely oriented, and I can never find non-approximate IK solutions.

Is this something anyone else has encountered?

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants