Skip to content

Commit b1215fb

Browse files
committed
Merge master into fix-sphinx-automation
Resolves conflict in .github/workflows/sphinx.yml: keep master's dynamic ${{ github.repository }} reference for the gh-pages clone step instead of this branch's stale hardcoded bdaiinstitute org name (pre-dates the org rename to rai-opensource).
2 parents 3c87247 + 197d383 commit b1215fb

37 files changed

Lines changed: 968 additions & 385 deletions

‎.github/CODEOWNERS‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# Global Owners
2-
* @petercorke @jhavl @myeatman-bdai
2+
* @petercorke @jbarry-bdai @taughz

‎.github/workflows/master.yml‎

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
33
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
44

5-
name: build
5+
name: CI
66

77
on:
88
push:
@@ -15,17 +15,19 @@ jobs:
1515
unittest:
1616
runs-on: ${{ matrix.os }}
1717
strategy:
18+
fail-fast: false
1819
matrix:
1920
os: [windows-latest, ubuntu-22.04, macos-latest]
20-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
21+
# https://devguide.python.org/versions/
22+
python-version: ["3.10", "3.11", "3.12", "3.13"]
2123
exclude:
2224
- os: windows-latest
2325
python-version: "3.11"
2426
- os: windows-latest
2527
python-version: "3.12"
2628

2729
steps:
28-
- uses: actions/checkout@v2
30+
- uses: actions/checkout@v4
2931
- name: Set up Python ${{ matrix.python-version }}
3032
uses: actions/setup-python@v5
3133
with:
@@ -36,21 +38,30 @@ jobs:
3638
pip install .[dev]
3739
- name: Test with pytest
3840
env:
39-
MPLBACKEND: TkAgg
41+
MPLBACKEND: Agg
4042
run: |
41-
pytest -s --ignore=W605 --timeout=50 --timeout_method=thread
43+
pytest -s --timeout=50 --timeout_method=thread
44+
45+
all-unittests-passed:
46+
needs: unittest
47+
if: always()
48+
runs-on: ubuntu-latest
49+
steps:
50+
- name: Check unittest status
51+
if: ${{ needs.unittest.result != 'success' }}
52+
run: exit 1
4253

4354
codecov:
4455
# If all tests pass:
4556
# Run coverage and upload to codecov
4657
needs: unittest
4758
runs-on: ubuntu-22.04
4859
steps:
49-
- uses: actions/checkout@v2
50-
- name: Set up Python 3.8
60+
- uses: actions/checkout@v4
61+
- name: Set up Python 3.12
5162
uses: actions/setup-python@v5
5263
with:
53-
python-version: 3.8
64+
python-version: 3.12
5465
- name: Install dependencies
5566
run: |
5667
python -m pip install --upgrade pip
@@ -61,7 +72,7 @@ jobs:
6172
coverage report
6273
coverage xml
6374
- name: upload coverage to Codecov
64-
uses: codecov/codecov-action@v3
75+
uses: codecov/codecov-action@v5
6576
with:
6677
file: ./coverage.xml
6778
sphinx:

‎.github/workflows/publish.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ jobs:
1616
max-parallel: 2
1717
matrix:
1818
os: [ubuntu-22.04]
19-
python-version: [3.8]
19+
python-version: [3.12]
2020

2121
steps:
22-
- uses: actions/checkout@v2
22+
- uses: actions/checkout@v4
2323
- name: Set up Python
2424
uses: actions/setup-python@v5
2525
with:
@@ -35,5 +35,5 @@ jobs:
3535
run: |
3636
python -m build
3737
ls ./dist/*.whl
38-
twine upload dist/*.gz
39-
twine upload dist/*.whl
38+
twine upload dist/*.gz --verbose
39+
twine upload dist/*.whl --verbose

‎.github/workflows/sphinx.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ jobs:
88
runs-on: ubuntu-22.04
99
# if: ${{ github.event_name != 'pull_request' }}
1010
steps:
11-
- uses: actions/checkout@v2
12-
- name: Set up Python 3.8
11+
- uses: actions/checkout@v4
12+
- name: Set up Python 3.12
1313
uses: actions/setup-python@v5
1414
with:
15-
python-version: 3.8
15+
python-version: 3.12
1616
- name: Install dependencies
1717
run: |
1818
python -m pip install --upgrade pip
@@ -29,7 +29,7 @@ jobs:
2929
cd ../
3030
- name: Commit documentation changes
3131
run: |
32-
git clone https://github.com/bdaiinstitute/spatialmath-python.git --branch gh-pages --single-branch gh-pages
32+
git clone https://github.com/${{ github.repository }}.git --branch gh-pages --single-branch gh-pages
3333
cp -r docs/build/html/* gh-pages/
3434
cd gh-pages
3535
git config --local user.email "action@github.com"

‎README.md‎

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,29 @@
88
![Python Version](https://img.shields.io/pypi/pyversions/spatialmath-python.svg)
99
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
1010

11-
[![Build Status](https://github.com/bdaiinstitute/spatialmath-python/actions/workflows/master.yml/badge.svg?branch=master)](https://github.com/bdaiinstitute/spatialmath-python/actions/workflows/master.yml?query=workflow%3Abuild+branch%3Amaster)
12-
[![Coverage](https://codecov.io/github/bdaiinstitute/spatialmath-python/graph/badge.svg?token=W15FGBA059)](https://codecov.io/github/bdaiinstitute/spatialmath-python)
11+
[![Build Status](https://github.com/rai-opensource/spatialmath-python/actions/workflows/master.yml/badge.svg?branch=master)](https://github.com/rai-opensource/spatialmath-python/actions/workflows/master.yml?query=workflow%3Abuild+branch%3Amaster)
12+
[![Coverage](https://codecov.io/github/rai-opensource/spatialmath-python/graph/badge.svg?token=W15FGBA059)](https://codecov.io/github/rai-opensource/spatialmath-python)
1313
[![PyPI - Downloads](https://img.shields.io/pypi/dw/spatialmath-python)](https://pypistats.org/packages/spatialmath-python)
14-
[![GitHub stars](https://img.shields.io/github/stars/bdaiinstitute/spatialmath-python.svg?style=social&label=Star)](https://GitHub.com/bdaiinstitute/spatialmath-python/stargazers/)
15-
16-
14+
[![GitHub stars](https://img.shields.io/github/stars/rai-opensource/spatialmath-python.svg?style=social&label=Star)](https://GitHub.com/rai-opensource/spatialmath-python/stargazers/)
1715

1816
<table style="border:0px">
1917
<tr style="border:0px">
2018
<td style="border:0px">
21-
<img src="https://github.com/bdaiinstitute/spatialmath-python/raw/master/docs/figs/CartesianSnakes_LogoW.png" width="200"></td>
19+
<img src="https://github.com/rai-opensource/spatialmath-python/raw/master/docs/figs/CartesianSnakes_LogoW.png" width="200"></td>
2220
<td style="border:0px">
2321
A Python implementation of the <a href="https://github.com/petercorke/spatial-math">Spatial Math Toolbox for MATLAB<sup>&reg;</sup></a>
2422
<ul>
25-
<li><a href="https://github.com/bdaiinstitute/spatialmath-python">GitHub repository </a></li>
26-
<li><a href="https://bdaiinstitute.github.io/spatialmath-python">Documentation</a></li>
27-
<li><a href=https://github.com/bdaiinstitute/spatialmath-python/discussions/categories/changes>Recent changes</a>
28-
<li><a href="https://github.com/bdaiinstitute/spatialmath-python/wiki">Wiki (examples and details)</a></li>
23+
<li><a href="https://github.com/rai-opensource/spatialmath-python">GitHub repository </a></li>
24+
<li><a href="https://spatialmath-python.rai-inst.com">Documentation</a></li>
25+
<li><a href=https://github.com/rai-opensource/spatialmath-python/discussions/categories/changes>Recent changes</a>
26+
<li><a href="https://github.com/rai-opensource/spatialmath-python/wiki">Wiki (examples and details)</a></li>
2927
<li><a href="installation#">Installation</a></li>
3028
</ul>
3129
</td>
3230
</tr>
3331
</table>
3432

33+
3534
Spatial mathematics capability underpins all of robotics and robotic vision where we need to describe the position, orientation or pose of objects in 2D or 3D spaces.
3635

3736

@@ -74,7 +73,7 @@ These are layered over a set of base functions that perform many of the same ope
7473

7574
The class, method and functions names largely mirror those of the MATLAB toolboxes, and the semantics are quite similar.
7675

77-
![trplot](https://github.com/bdaiinstitute/spatialmath-python/raw/master/docs/figs/fig1.png)
76+
![trplot](https://github.com/rai-opensource/spatialmath-python/raw/master/docs/figs/fig1.png)
7877

7978
![animation video](./docs/figs/animate.gif)
8079

@@ -103,12 +102,12 @@ If the toolbox helped you in your research, please cite
103102

104103
If you are using the Toolbox in your open source code, feel free to add our badge to your readme!
105104

106-
[![Powered by the Spatial Math Toolbox](https://github.com/bdaiinstitute/spatialmath-python/raw/master/.github/svg/sm_powered.min.svg)](https://github.com/bdaiinstitute/spatialmath-python)
105+
[![Powered by the Spatial Math Toolbox](https://github.com/rai-opensource/spatialmath-python/raw/master/.github/svg/sm_powered.min.svg)](https://github.com/rai-opensource/spatialmath-python)
107106

108107
Simply copy the following
109108

110109
```
111-
[![Powered by the Spatial Math Toolbox](https://github.com/bdaiinstitute/spatialmath-python/raw/master/.github/svg/sm_powered.min.svg)](https://github.com/bdaiinstitute/spatialmath-python)
110+
[![Powered by the Spatial Math Toolbox](https://github.com/rai-opensource/spatialmath-python/raw/master/.github/svg/sm_powered.min.svg)](https://github.com/rai-opensource/spatialmath-python)
112111
```
113112

114113

@@ -134,7 +133,7 @@ pip install spatialmath-python[ros-humble]
134133
Install the current code base from GitHub and pip install a link to that cloned copy
135134

136135
```
137-
git clone https://github.com/bdaiinstitute/spatialmath-python.git
136+
git clone https://github.com/rai-opensource/spatialmath-python.git
138137
cd spatialmath-python
139138
pip install -e .
140139
# Optional: if you would like to contribute and commit code changes to the repository,
@@ -278,14 +277,14 @@ t = 1, 2, 3; rpy/zyx = 30, 0, 0 deg
278277
>>> T.plot()
279278
```
280279

281-
![trplot](https://github.com/bdaiinstitute/spatialmath-python/raw/master/docs/figs/fig1.png)
280+
![trplot](https://github.com/rai-opensource/spatialmath-python/raw/master/docs/figs/fig1.png)
282281

283282
`printline` is a compact single line format for tabular listing, whereas `print` shows the underlying matrix and for consoles that support it, it is colorised, with rotational elements in red and translational elements in blue.
284283

285284
For more detail checkout the shipped Python notebooks:
286285

287-
* [gentle introduction](https://github.com/bdaiinstitute/spatialmath-python/blob/master/notebooks/gentle-introduction.ipynb)
288-
* [deeper introduction](https://github.com/bdaiinstitute/spatialmath-python/blob/master/notebooks/introduction.ipynb)
286+
* [gentle introduction](https://github.com/rai-opensource/spatialmath-python/blob/master/notebooks/gentle-introduction.ipynb)
287+
* [deeper introduction](https://github.com/rai-opensource/spatialmath-python/blob/master/notebooks/introduction.ipynb)
289288

290289

291290
You can browse it statically through the links above, or clone the toolbox and run them interactively using [Jupyter](https://jupyter.org) or [JupyterLab](https://jupyter.org).
@@ -371,7 +370,7 @@ array([-60, 12, 30, 24])
371370

372371
## Graphics
373372

374-
![trplot](https://github.com/bdaiinstitute/spatialmath-python/raw/master/docs/figs/transforms3d.png)
373+
![trplot](https://github.com/rai-opensource/spatialmath-python/raw/master/docs/figs/transforms3d.png)
375374

376375
The functions support various plotting styles
377376

@@ -445,8 +444,24 @@ We see that the symbolic constants are converted back to Python numeric types on
445444

446445
Similarly when we assign an element or slice of the symbolic matrix to a numeric value, they are converted to symbolic constants on the way in.
447446

447+
## Making a New Release
448+
- Make a pull request that bumps the version number in `pyproject.toml`, which follows the major.minor.patch semantic versioning convention.
449+
- Then, go to the URL https://github.com/rai-opensource/spatialmath-python/releases, click draft new release. Click the tag selection dialouge, then click create new tag, and make a tag that matches the semantic version numbers in the pull request you just made. Click "generate release notes", then click publish release. This will automatically kick off the workflow in `.github/workflows/publish.yml` and the new version of the code on PyPi (https://pypi.org/project/spatialmath-python).
450+
451+
## Migration Notice
452+
453+
On April 28, 2026 this repository moved to the **RAI-Opensource** GitHub organization. If you are still pulling from the previous bdaiinstitute GitHub organization, please update your git remote:
454+
```bash
455+
git remote set-url origin https://github.com/RAI-Opensource/spatialmath-python.git
456+
```
457+
458+
Also update any links of `https://bdaiinstitute.github.io/spatialmath-python` to <https://spatialmath-python.rai-inst.com/>.
459+
460+
If you maintain downstream docs/scripts, update links from this repository to the new org.
461+
462+
448463
## History & Contributors
449464

450465
This package was originally created by [Peter Corke](https://github.com/petercorke) and [Jesse Haviland](https://github.com/jhavl) and was inspired by the [Spatial Math Toolbox for MATLAB](https://github.com/petercorke/spatialmath-matlab). It supports the textbook [Robotics, Vision & Control in Python 3e](https://github.com/petercorke/RVC3-python).
451466

452-
The package is now a collaboration with [Boston Dynamics AI Institute](https://theaiinstitute.com/).
467+
The package is now a collaboration with the [Robotics and AI Institute](https://rai-inst.com/).

‎docs/source/classes-2d.rst‎

Lines changed: 0 additions & 16 deletions
This file was deleted.

‎docs/source/classes-3d.rst‎

Lines changed: 0 additions & 10 deletions
This file was deleted.

‎docs/source/intro.rst‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,7 @@ The classes ``SE3``, ``SO3``, ``SE2`` and ``SO2`` can provide colorized text out
262262

263263
.. image:: ../figs/colored_output.png
264264
:width: 300
265+
265266
with rotational elements in red, translational elements in blue and constants in grey.
266267

267268
The foreground and background colors can be controlled using the following
@@ -538,8 +539,10 @@ A numpy column vector has shape ``(N,1)`` and a row vector
538539
has shape ``(1,N)`` but functions also accept row ``(1,N)`` and column ``(N,1)``
539540
where a vector argument is required.
540541

541-
.. warning:: For a user transitioning from MATLAB the most significant
542-
differences are:
542+
.. warning::
543+
544+
For a user transitioning from MATLAB the most significant differences are:
545+
543546
- the use of 1D arrays -- all MATLAB arrays have two dimensions,
544547
even if one of them is equal to one.
545548
- Iterating over a 1D NumPy array (N,) returns consecutive elements

‎gh-pages‎

Lines changed: 0 additions & 1 deletion
This file was deleted.

‎pyproject.toml‎

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
[project]
22
name = "spatialmath-python"
3-
version = "1.1.14"
3+
version = "1.1.17"
44
authors = [
55
{ name="Peter Corke", email="rvc@petercorke.com" },
66
]
77
description = "Provides spatial maths capability for Python."
88
readme = "README.md"
9-
requires-python = ">=3.7"
9+
requires-python = ">=3.10"
1010
classifiers = [
1111
"Development Status :: 5 - Production/Stable",
1212
# Indicate who your project is intended for
1313
"Intended Audience :: Developers",
1414
# Specify the Python versions you support here.
15-
"Programming Language :: Python :: 3.7",
16-
"Programming Language :: Python :: 3.8",
17-
"Programming Language :: Python :: 3.9",
1815
"Programming Language :: Python :: 3.10",
1916
"Programming Language :: Python :: 3.11",
2017
"Programming Language :: Python :: 3.12",
@@ -45,10 +42,10 @@ dependencies = [
4542
]
4643

4744
[project.urls]
48-
"Homepage" = "https://github.com/bdaiinstitute/spatialmath-python"
49-
"Bug Tracker" = "https://github.com/bdaiinstitute/spatialmath-python/issues"
50-
"Documentation" = "https://bdaiinstitute.github.io/spatialmath-python/"
51-
"Source" = "https://github.com/bdaiinstitute/spatialmath-python"
45+
"Homepage" = "https://github.com/rai-opensource/spatialmath-python"
46+
"Bug Tracker" = "https://github.com/rai-opensource/spatialmath-python/issues"
47+
"Documentation" = "https://rai-opensource.github.io/spatialmath-python/"
48+
"Source" = "https://github.com/rai-opensource/spatialmath-python"
5249

5350
[project.optional-dependencies]
5451

0 commit comments

Comments
 (0)