Over the past few days I’ve done some work to write a ROS 2 port of TRACLabs’ IK solver, TRAC-IK. TRAC-IK is an “alternative Inverse Kinematics solver to the popular inverse Jacobian methods in Orocos’ KDL”. I’d used TRAC-IK for robotics research before, and thought it would be nice to have ROS 2 support for it.
So far, I’ve completed porting
trac_ik_examples with minimal changes to the API (documented here). As such, the TRAC-IK project is technically ready for use in a ROS 2 project!
Link to my fork: GitHub - aprotyas/trac_ik: ROS 2 port of `trac_ik`, an alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL.
Link to the upstream repository: Bitbucket
Link to ROS 2 port progress tracker: Add ROS 2 support · Issue #1 · aprotyas/trac_ik · GitHub
To the community, please feel free to leave feedback/requests through Github issues on my fork - I will try my best to engage with things as they come up. I’ve written this port in a short time, and hence there are some shortcomings to address:
- ROS 2 support for
trac_ik_pythonis WIP. I recognize support for the former would be quite high impact because the
moveit2supports plugins already.
TracIKis not composable. Well, it doesn’t instantiate a
rclcpp::Nodeobject anyway, because I used static loggers and because the API change involves constructing
TracIKwith the full URDF XML of a robot in string form. This is not a problem unless I decide to add a subscription mechanism to capture URDF XMLs in trying to replicate how data flows using
- Documentation is lacking. Really. If someone could help out with this…