How chungmin99/pyroki works
PyRoki is a Python/JAX toolkit for robot kinematics and optimization. The main workflow is to parse a URDF into a differentiable robot model, define pose, limit, manipulability, or collision objectives, and use an external Levenberg–Marquardt solver to find joint configurations; the same residuals support trajectory regularization. Collision modeling, visualization, and interactive weight tuning are supporting capabilities. The graph follows the documented API and sampled implementations; solver call-site wiring and several documented application workflows were not sampled, so uncertain links are omitted.
Main entry points: _robot.py Forward kinematics · costs.py Cost factories · _residuals.py Optimization residuals · _robot_collision.py Robot collision model
Components 18
Robot model
- URDF parser
src/pyroki/_robot_urdf_parser.py - Robot model
src/pyroki/_robot.py - Forward kinematics
src/pyroki/_robot.py
Collision modeling
- Robot collision model
src/pyroki/collision/_robot_collision.py - Collision geometry
src/pyroki/collision/_geometry.py - Geometry distances
src/pyroki/collision/_geometry_pairs.py
Optimization
- Optimization residuals
src/pyroki/_residuals/_residuals.py - Analytic pose Jacobian
src/pyroki/_residuals/_pose_residual_analytic_jac.py - Numerical pose Jacobian
src/pyroki/_residuals/_pose_residual_numerical_jac.py - Cost factories
src/pyroki/costs.py - Trajectory objectives
src/pyroki/_residuals/_residuals.py
Visualization tools
- Manipulability display
src/pyroki/viewer/_manipulability_ellipse.py - Weight tuner
src/pyroki/viewer/_weight_tuner.py
Other components
- Robot developer
- URDF description
- LM solver
- Viser interface
- Joint solution
Connections 27
- Robot developer → URDF description: provides model
- Robot developer → URDF parser: loads robot
- URDF description → URDF parser: parsed from
- URDF parser → Robot model: builds model
- Robot model → Forward kinematics: computes poses
- Robot model → Robot collision model: provides link model
- Robot collision model → Forward kinematics: requests link poses
- Robot collision model → Collision geometry: transforms bodies
- Geometry distances → Collision geometry: measures pairs
- Optimization residuals → Forward kinematics: computes pose terms
- Optimization residuals → Robot collision model: queries collisions
- Optimization residuals → Geometry distances: uses distances
- Analytic pose Jacobian → Forward kinematics: differentiates poses
- Numerical pose Jacobian → Forward kinematics: evaluates poses
- Cost factories → Optimization residuals: wraps residuals
- Cost factories → Analytic pose Jacobian: exports pose cost
- Cost factories → Numerical pose Jacobian: exports pose cost
- Robot developer → Cost factories: defines objectives
- Robot developer → LM solver: runs optimization
- Cost factories → LM solver: optimized by
- LM solver → Joint solution: returns configuration
- Trajectory objectives → Forward kinematics: supports motion terms
- Robot developer → Trajectory objectives: defines trajectory terms
- Viser interface → Manipulability display: renders display
- Manipulability display → Forward kinematics: computes manipulability
- Viser interface → Weight tuner: hosts controls
- Weight tuner → Cost factories: tunes weights