CLI tool
petercorke/RVC3-python avatar
petercorke/RVC3-python

RVC3-python installs the toolboxes behind the Robotics, Vision and Control book

Code examples for Robotics, Vision & Control 3rd edition in Python

786 stars177 forksJupyter NotebookMIT

At a glance

What is it?
RVC3-python is the PyPI package that pulls in the Robotics Toolbox, Machine Vision Toolbox, Spatial Maths Toolbox and bdsim for the third edition of Robotics, Vision & Control, while the GitHub repository holds the chapter notebooks, the figure generation code and the point cloud data. A single command installs the support code, and rvctool --test checks it.
Who is it for?
Readers of Robotics, Vision & Control third edition, and teachers using it as a course text, should install rvc3python and clone the repository, because the package supplies the importable support code while the notebooks and figure scripts live in the repository, and rvctool --test gives a quick check that the whole stack works.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 7 days ago.
What is it written in?
Mainly Jupyter Notebook, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Support code for a Springer textbook

RVC3-python is the code companion to Robotics, Vision & Control, 3rd edition in Python, published by Springer-Nature in 2023 by Peter Corke.

The package itself is described in the project metadata as support for book: Robotics, Vision & Control 3 in Python, and the README calls it the online hub for the book. The material it holds is the importable support code, not the teaching material: the README is explicit that pip or conda install gives you the importable support code only, and that the Jupyter notebooks, figure generation scripts and example data live in the GitHub repository.

That split is the first thing to understand about the project, and it is a good one. A reader who wants to run the book's code in their own environment needs the package, and a reader who wants the worked examples needs the repository. The two are complementary and neither replaces the other.

The ecosystem is the author's own set of Python packages. The book uses the Robotics Toolbox for Python, the Machine Vision Toolbox for Python, the Spatial Maths Toolbox for Python and bdsim for block diagram simulation, and the README notes that these in turn have dependencies on other packages created by the author and by third parties. The repository is part of the wider Robotics Toolbox collection and is associated with the QUT Centre for Robotics open source work.

The licence is MIT, the package requires Python 3.10 or later, and the package metadata declares support for Python 3.10 through 3.14 with a Development Status of 5, Production/Stable.

One install for four toolboxes and their dependency trees

The installation section is short because the package does the work for you.

shell
pip install rvc3python

or:

shell
conda install rvc3python

The README warns that there are a lot of dependencies and that this might take a minute or so, and then says what you end up with: a very powerful computing environment for robotics and computer vision.

That is the trade the package makes. Rather than letting you assemble four toolboxes and discover the transitive requirements yourself, rvc3python resolves the whole set in one resolution, which is exactly what a student following a book needs and exactly what a production environment might not want.

The keyword list in the package metadata describes what that environment covers, and it reads like a table of contents for the book itself. On the robotics side: manipulator, mobile robot, mobile manipulation, path planning, SLAM, pose graph, Dubins, Reeds-Shepp, lattice planner, RRT, PRM, force control, kinematics, Jacobian, position control and velocity control. On the mathematical side: spatial math, SO(2), SE(2), SO(3), SE(3), twist, product of exponential, angle-axis, Lie group, skew symmetric matrix, pose, rotation matrix, rigid body transform, homogeneous transformation, Euler angles, roll-pitch-yaw angles and quaternion. On the vision side: computer vision, machine vision, robotic vision, color space, blackbody, image segmentation, blobs, Hough transform and k-means.

The keywords are not decoration. They tell you the scope of the dependency set you are pulling in, and they are a fair summary of what a robotics and computer vision teaching environment contains.

rvctool --test checks the stack instead of assuming it

The verification step is the most useful thing in the README, and it is a small design decision with a large effect on first-run friction.

shell
rvctool --test

The README describes it as a quick, non-interactive check that prints package versions and exercises one real code path per toolbox, reporting PASS or FAIL for each rather than just saying it imported.

That distinction matters. An import check proves the package is on the path. Exercising one real code path per toolbox, which the README lists as RTB, MVTB, spatialgeometry, spatialmath, bdsim, and Open3D if installed, proves the pieces work together. For a book with chapters that move from robot kinematics through computer vision to block diagram simulation, a single command that exercises all of them is a genuine setup check rather than a formality.

It also gives you the version list, which matters because the README documents an active effort to keep the code aligned with current upstream releases. The maintenance note in the README says that in August 2026 every chapter notebook, the CLI tools, which it names as rvctool, bdsim_path and rvc3-model, and the packaging were re-verified against current RTB, MVTB, SMTB and bdsim releases and fixed where they had drifted, with the full list in errata.md.

The two halves of the project are therefore maintained together. When the toolbox releases move, the notebooks and the CLI tools are checked against them, and the errata file records what changed and why.

Optional extras, and the platform limits they carry

The package installs the core toolboxes, but a handful of book examples need extras that are not installed by default, and the README lists them with the specific limits that matter.

PyTorch, installed with the pytorch extra, is used for the segmentation and object detection examples in Chapter 12, and the README says to check current platform support before installing it.

Open3D, installed with the open3d extra of the machinevision-toolbox-python package, is used for the point cloud examples in Chapter 14, and it does not yet ship wheels for Python 3.13 and later.

The coal package, installed with the collision extra of roboticstoolbox-python, is used for the collision checking examples in Chapter 7, and it is not available on Windows.

The extras themselves are one word on the install line:

shell
pip install rvc3python[pytorch]

The README's framing of these is worth repeating, because it is the right framing. Each optional package has its own platform or Python version limits, worth knowing about before you hit them as a surprise rather than as a bug.

That is an unusually candid note for a package README, and it changes the install decision. A reader on Python 3.13 who needs the Chapter 14 point cloud examples has a different plan from a reader on Python 3.12, and the README lets them find that out before the first run rather than during it.

The repository holds the notebooks, the figures and the point clouds

The additional resources section is what the package deliberately leaves out, and it is a substantial list.

There are Jupyter notebooks containing all code lines from each chapter in the notebooks folder, the code to produce every Python and Matplotlib two-dimensional figure in the book in the figures folder, the 3D point clouds from Chapter 14 and the code to create them in figures/pointclouds, the 3D figures from chapters 2 to 3 and 7 to 9 with their code in figures/3d, and all example scripts in the RVC3/examples folder.

One dependency is worth calling out because it is easy to hit. To run the visual odometry example in section 14.8.3 you need to download two image sequences, each over 100 MB, and the README links to the instructions in the machine vision toolbox data documentation.

So the material comes with a git clone:

shell
git clone https://github.com/petercorke/RVC3-python.git

The repository also carries the surrounding project infrastructure: a Makefile, a pyproject.toml, tests, tools, a doc directory, an errata.md, an AGENTS.md and a pre-commit configuration. The Makefile is small and conventional, with a help target that lists the rest: make test runs the fast test suite, make testall runs the full suite including slow notebook and example tests, make dist builds the distribution files, make upload publishes to PyPI with twine, and make clean removes the distribution and documentation build output.

That distinction between a fast suite and a full suite is the interesting bit, because the full suite executes the notebooks, which is a much longer job than a unit test run.

Where RVC3-python is the wrong tool

The boundaries are clear once you see that this is a book's support package rather than a general robotics toolkit.

First, installing rvc3python to get one toolbox is overkill. Each of the four toolboxes is installable on its own, and a project that needs the spatial maths package and nothing else should install that. The aggregator is for readers following the book, where the examples move between toolboxes and the friction of assembling four environments is the thing to remove.

Second, the package does not contain the teaching material. The notebooks, the figure scripts, the point clouds and the example data are in the repository, so a pip install alone gives you an environment you can write code in but not the examples to run.

Third, the dependency set is heavy and the optional extras carry real limits. Open3D does not yet ship wheels for Python 3.13 and later, and coal is not available on Windows, so a reader on a current Python or on Windows has to plan around specific chapters rather than running everything.

Fourth, the project is versioned loosely. The pyproject declares version 1.0.0 and the repository publishes no GitHub releases, so the package version on PyPI is the only handle you have, and the README's own maintenance note, which points at August 2026, is the most recent statement about which upstream releases the code has been verified against.

For a course, a workshop, or a person working through the book, all of that is a good trade. For a production robotics service, the book is not the reason to take the dependency.

Editorial conclusion

Readers of Robotics, Vision & Control third edition, and teachers using it as a course text, should install rvc3python and clone the repository, because the package supplies the importable support code while the notebooks and figure scripts live in the repository, and rvctool --test gives a quick check that the whole stack works. It is the wrong choice if you only need one toolbox, since each is installable on its own, and it is the wrong choice if you cannot accept the optional dependency limits around Python 3.13 wheels and Windows. Before adopting, read errata.md, check which optional extras your chapters need, and note that the package is at version 1.0.0 with no tagged releases.

Frequently asked questions

How do I install the code for Robotics, Vision & Control 3rd edition?

Run pip install rvc3python or conda install rvc3python. The README notes that there are a lot of dependencies and it might take a minute, and it recommends a virtual environment, for example conda create -n RVC3 python=3.12 followed by conda activate RVC3 and pip install rvc3python.

How do I check that the RVC3-python installation works?

Run rvctool --test. It is a quick, non-interactive check that prints package versions and exercises one real code path per toolbox, reporting PASS or FAIL for each instead of only confirming that the import worked.

Where are the Jupyter notebooks and the figures?

In the GitHub repository rather than in the package. The notebooks folder holds the code lines from each chapter, figures holds the code for the two-dimensional figures plus point clouds and 3D figures, and RVC3/examples holds the example scripts, so you need to clone the repository as well as install the package.

Which optional extras does RVC3-python offer and what are their limits?

The pytorch extra for the Chapter 12 segmentation and object detection examples, the open3d extra for the Chapter 14 point cloud examples, which does not yet ship wheels for Python 3.13 and later, and the collision extra for the Chapter 7 collision checking examples, where coal is not available on Windows.

Official sources

  1. Issues
  2. License: MIT
  3. petercorke/RVC3-python on GitHub
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/petercorke-rvc3-python.svg)](https://hysenlabs.com/projects/petercorke-rvc3-python)

Was this useful?