Hi all,
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_lib
and 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_kinematic_plugin
andtrac_ik_python
is WIP. I recognize support for the former would be quite high impact because themoveit2
supports plugins already. -
TracIK
is not composable. Well, it doesn’t instantiate arclcpp::Node
object anyway, because I used static loggers and because the API change involves constructingTracIK
with 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 usingrobot_state_publisher
. - Documentation is lacking. Really. If someone could help out with this…