Skip to content

Contributing

Peter Corke edited this page Aug 17, 2026 · 8 revisions

Contributions are welcome, and there is lots to do.

What a contribution is

A contribution is ideally

  • submitted as a pull request, which means it can be tested by the build system before it is merged, and adheres to the coding conventions
  • well documented, using Sphinx + ReStructured Text and adheres to the documentation style guide
  • tested before submission, and has unit tests for the new functionality

If you want to contribute, and you're thinking about a big chunk of work, post an issue with new feature tag, and we can discuss the approach before you invest too much time.

What needs doing

Housekeeping

  • Documentation proof reading and fixups
  • Rationalize the examples folder
  • Benchmarking and performance optimisation

Kinematics

  • Robust/global search IK
  • Symbolic IK solutions, perhaps
    • interface to OpenRAVEs IK generation toolset
    • interface/integrate with SYMORO, written in Python 2
  • Improve URDF/xacro subsystem to give good reports of parse errors, with line numbers
  • Additional DH convention models, there are lots from the MATLAB version that haven't been ported across
  • DHFactor

Dynamics

  • Symbolic simplification/factorization of rigid-body dynamics
  • Use Featherstone's ABA to compute forward dynamics
  • Integrate with PyBullet, i.e. map the ERobot class to a form that allows us to exploit PyBullet goodness
  • Floating base dynamics
  • Dynamics of closed kinematic loops- Integration of dynamics with some control design/dynamic simulation framework
  • Integration with capability like the compliant joint toolbox

Trajectory generators

  • More trajectory generators, perhaps multiple point to point

Backends

  • Backends for CoppeliaSim (ROS and Dynamixel backends already exist, see Backends)

Mobile robotics

Mobile robotics support (roboticstoolbox.mobile: vehicle models, planners, EKF/particle-filter localization, SLAM) has landed on main, with tests (tests/test_mobile.py, tests/test_mobile_planner.py) and Sphinx docs. If you're looking for something to contribute here, check open issues rather than assuming it's greenfield work.

Clone this wiki locally