Disclaimer: My experience with Theseus spans roughly one week.

In my early grad school days, I did not enjoy implementing the optimization part of any robotics algorithms, such as loop closure in SLAM and trajectory optimization for motion planners. The pain of deriving Jacobian matrices and checking the correctness of each update step was just … too much for me.

Fast forward to today, and things have changed so much. With amazing opensource libraries like Theseus out there, applying numerical optimization methods to robotics problems has become significantly more straightforward. Check out this pull request (PR) where I implemented an optimization-based motion planner for a link arm by making small adjustments like changing cost functions to an existing motion planning as optimization example.

Here’s a brief rundown of what makes Theseus a joy to work with:

  • Seamless Pytorch Integration: Offers a wealth of tensor utilities, autograd capabilities, and more, enhancing the library’s flexibility and ease of use.
  • Easy-to-read Python Implementation of Nonlinear & Linear Optimization Algorithms: Provides a clear view of the underlying processes, making it accessible for both learning and practical application.
  • Practical Robotics Utility Code: Includes a variety of tools such as geometry, along with practical application examples that showcase the library’s capabilities in real-world scenarios.

Give it a try and let me know what you think! Is it just me or do you also find it useful? What other numerical optimization libraries do you like? I’m eager to know more about libraries and tools that exist in this space.