// the find
pypose/pypose
A library for differentiable robotics on manifolds.
PyPose is a PyTorch extension for differentiable robotics that treats Lie groups (SO3, SE3, Sim3) as first-class tensor types with autograd support. It bundles EKF/UKF/PF filters, LQR, IMU preintegration, and second-order optimizers (Gauss-Newton, Levenberg-Marquardt) under one roof. The target user is a robotics researcher who wants to backprop through geometry — pose graph optimization, bundle adjustment, SLAM — without re-implementing the math themselves.
1. LieTensor is the real contribution: Lie group operations that compose with PyTorch autograd natively, including batched parallel Jacobian computation that benchmarks faster than Theseus. 2. The v0.9.5 sparse Jacobian tracing (`sjac=True`, `@psjac`) is a meaningful addition — sparse LM for bundle adjustment on GPU without hand-coding sparse structures. 3. Module coverage is unusually wide for one library: filters, PnP, LQR, MPC, IMU preintegration, ICP — each backed by a published paper, not a student's weekend project. 4. Test suite is thorough and organized by subsystem; the examples directory has runnable code for each module with real datasets.
1. Documentation quality is uneven — the API reference is auto-generated Sphinx and sparse on 'when would you actually use this vs. scipy/g2o', leaving newcomers to reverse-engineer intent from examples. 2. The optimizer API has too many moving parts: you need an `nn.Module`, a `solver`, a `strategy`, and a `scheduler` just to run LM — the abstraction layers made sense for research flexibility but will frustrate anyone who just wants to minimize a pose graph. 3. No GPU sparse linear solver beyond PCG — if your problem needs a direct sparse factorization (CHOLMOD-style), you're out of luck and will hit PCG convergence issues on ill-conditioned systems. 4. Maintenance bus factor looks thin: commit history is driven by a small CMU lab group, and issues from external contributors sit open for months — adopting this in production means owning the bugs you find.