Skip to content
Peter Corke edited this page Aug 17, 2026 · 2 revisions

Frequently asked questions

Common issues encountered while using the toolbox, and their fixes.

Toolbox Volatility

The toolbox is under active development and can have breaking changes between minor releases. We follow the Semantic Versioning guidelines.

Installed off PyPI?

You can update the toolbox: pip install --upgrade roboticstoolbox-python. This updates spatialmath-python (a required dependency) automatically. swift-sim (the Swift visualizer) is an optional extra, not a required dependency — if you installed it via pip install roboticstoolbox-python[swift] (or [all]), re-run that same command with [swift]/[all] to update it too; a plain pip install --upgrade roboticstoolbox-python won't touch it.

Installed using Github Version?

If the toolbox is installed from Github (pip install -e .), spatialgeometry is pulled directly from its GitHub repo as a pinned dependency (see pyproject.toml) rather than from PyPI, so it tracks automatically on reinstall. If you also want the bleeding-edge Swift or Spatial Math, install those from GitHub separately and not from PyPI.

If you update the toolbox through git pull and reinstall (if not using an interactive install) you will also need to use the Github version of Swift and Spatial Math and pull the latest changes (and reinstall if required) from those.

Due to the C++ extensions built into the toolbox (compiled via nanobind), if those extensions have been modified, you will need to reinstall the corresponding package to rebuild them. This is required even if you did an interactive install.

When in doubt, do pip install . when you are located in the top level directory of the package. This will uninstall the package if installed, and then reinstall it. Use pip install -e . to do an interactive install/reinstall.

Matplotlib version issues

None of RTB's dependencies (nor MVTB's or bdsim's) pin an upper bound on matplotlib — that's a deliberate choice, not an oversight: a static version cap needs ongoing upkeep to stay accurate, and can't protect against whatever the next bad release turns out to be anyway. The tradeoff is that an unlucky matplotlib release can occasionally break something.

One concrete case: matplotlib ~3.9.0 changed the Slider widget API, which broke the interactive sliders in panda.teach(panda.qz) and similar interactive demos (reported with matplotlib 3.9.4; downgrading to 3.8.6 fixed it at the time — see RVC3-python#21). That's several matplotlib releases behind us now and appears fixed upstream (RVC3-python's own test suite runs clean on matplotlib 3.11 as of 2026-08).

If you hit visual/widget glitches:

  • Try a different matplotlib version — usually upgrading to the latest fixes it, since regressions like the one above tend to get fixed upstream fairly quickly.
  • Install into a dedicated conda/venv environment, so the toolbox's dependency resolution never touches a matplotlib version you rely on elsewhere.

Odd behaviour from Swift

Try clearing the browser cache, see this link for help.

If you are using Safari on Mac, enable Metal (under experimental features).

Visualising robots using Matplotlib in Jupyter or sciview

  • Try changing backend to QT %matplotlib Qt
  • Try adding this %matplotlib widgets to the top of the notebook
  • Or try this %matplotlib notbook

Clone this wiki locally