A module for homogeneous transformation matrices, Euler angles and quaternions

I found a nice module for these transforms at http://www.lfd.uci.edu/~gohlke/code/transformations.py.html . I've been using an older version for some time and thought it might make a good addition to numpy/scipy. I made some simple mods to the older version to add a couple of functions I needed and to allow it to be used with Python 2.4. The module is pure Python (2.5, with numpy 1.2 imported), includes doctests, and is BSD licensed. Here's the first part of the module docstring: """Homogeneous Transformation Matrices and Quaternions. A library for calculating 4x4 matrices for translating, rotating, mirroring, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of homogenous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. """ I'd like to see this added to numpy/scipy so I know I've got some reading to do (scipy.org/Developer_Zone and the huge scipy-dev discussions on Scipy development infrastructure / workflow) to make sure it follows the guidelines, but where would people like to see this? In numpy? scipy? scikits? elsewhere? I seem to remember that there was a first draft of a guide for developers being written. Are there any links available? Thanks, Gareth.

Looks cool but a lot of this should be done in an extension module to make it fast. Perhaps starting this process off as a separate entity until stability is acheived. I would be tempted to do some of this using cython. I just wrote found that generating a rotation matrix from euler angles is about 10x faster when done properly with cython. J. On Wed, Mar 4, 2009 at 5:10 PM, Gareth Elston <gareth.elston.floss@googlemail.com> wrote:
I found a nice module for these transforms at http://www.lfd.uci.edu/~gohlke/code/transformations.py.html . I've been using an older version for some time and thought it might make a good addition to numpy/scipy. I made some simple mods to the older version to add a couple of functions I needed and to allow it to be used with Python 2.4.
The module is pure Python (2.5, with numpy 1.2 imported), includes doctests, and is BSD licensed. Here's the first part of the module docstring:
"""Homogeneous Transformation Matrices and Quaternions.
A library for calculating 4x4 matrices for translating, rotating, mirroring, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of homogenous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. """
I'd like to see this added to numpy/scipy so I know I've got some reading to do (scipy.org/Developer_Zone and the huge scipy-dev discussions on Scipy development infrastructure / workflow) to make sure it follows the guidelines, but where would people like to see this? In numpy? scipy? scikits? elsewhere?
I seem to remember that there was a first draft of a guide for developers being written. Are there any links available?
Thanks, Gareth. _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion

Does anyone know any good internet references for defining and using homogeneous transformation matrices, especially oblique projection matrices? I'm writing some tests for transformations.py and I'm getting unexpected results, quite possibly because I'm making naive assumptions about how to use projection_matrix(). Thanks, Gareth. On Thu, Mar 5, 2009 at 3:28 AM, Jonathan Taylor <jonathan.taylor@utoronto.ca> wrote:
Looks cool but a lot of this should be done in an extension module to make it fast. Perhaps starting this process off as a separate entity until stability is acheived. I would be tempted to do some of this using cython. I just wrote found that generating a rotation matrix from euler angles is about 10x faster when done properly with cython.
J.
On Wed, Mar 4, 2009 at 5:10 PM, Gareth Elston <gareth.elston.floss@googlemail.com> wrote:
I found a nice module for these transforms at http://www.lfd.uci.edu/~gohlke/code/transformations.py.html . I've been using an older version for some time and thought it might make a good addition to numpy/scipy. I made some simple mods to the older version to add a couple of functions I needed and to allow it to be used with Python 2.4.
The module is pure Python (2.5, with numpy 1.2 imported), includes doctests, and is BSD licensed. Here's the first part of the module docstring:
"""Homogeneous Transformation Matrices and Quaternions.
A library for calculating 4x4 matrices for translating, rotating, mirroring, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of homogenous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. """
I'd like to see this added to numpy/scipy so I know I've got some reading to do (scipy.org/Developer_Zone and the huge scipy-dev discussions on Scipy development infrastructure / workflow) to make sure it follows the guidelines, but where would people like to see this? In numpy? scipy? scikits? elsewhere?
I seem to remember that there was a first draft of a guide for developers being written. Are there any links available?
Thanks, Gareth.

Hello, I have reimplemented many functions of the transformations.py module in a C extension module. Speed improvements are 5-50 times. <http://www.lfd.uci.edu/~gohlke/code/transformations.c.html> <http://www.lfd.uci.edu/~gohlke/code/transformations.py.html> -- Christoph On Mar 4, 8:28 pm, Jonathan Taylor <jonathan.tay...@utoronto.ca> wrote:
Looks cool but a lot of this should be done in an extension module to make it fast. Perhaps starting this process off as a separate entity until stability is acheived. I would be tempted to do some of this using cython. I just wrote found that generating a rotation matrix from euler angles is about 10x faster when done properly with cython.
J.
On Wed, Mar 4, 2009 at 5:10 PM, Gareth Elston
<gareth.elston.fl...@googlemail.com> wrote:
I found a nice module for these transforms at http://www.lfd.uci.edu/~gohlke/code/transformations.py.html. I've been using an older version for some time and thought it might make a good addition to numpy/scipy. I made some simple mods to the older version to add a couple of functions I needed and to allow it to be used with Python 2.4.
The module is pure Python (2.5, with numpy 1.2 imported), includes doctests, and is BSD licensed. Here's the first part of the module docstring:
"""Homogeneous Transformation Matrices and Quaternions.
A library for calculating 4x4 matrices for translating, rotating, mirroring, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of homogenous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. """
I'd like to see this added to numpy/scipy so I know I've got some reading to do (scipy.org/Developer_Zone and the huge scipy-dev discussions on Scipy development infrastructure / workflow) to make sure it follows the guidelines, but where would people like to see this? In numpy? scipy? scikits? elsewhere?
I seem to remember that there was a first draft of a guide for developers being written. Are there any links available?
Thanks, Gareth. _______________________________________________ Numpy-discussion mailing list Numpy-discuss...@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ Numpy-discussion mailing list Numpy-discuss...@scipy.orghttp://projects.scipy.org/mailman/listinfo/numpy-discussion

Hi Gareth 2009/3/5 Gareth Elston <gareth.elston.floss@googlemail.com>:
I seem to remember that there was a first draft of a guide for developers being written. Are there any links available?
Sorry, I should have posted that already. We are still setting up Trac to support a proper work-flow, which should be done soon. In the meantime, I would suggest creating a repository on http://github.com, so that the code is out in the open. Then we can start the process of maturing it, and maybe even look at the optimisations Jonathan suggested. Regards Stéfan

there has already been a port of the robotics toolbox for matlab into python which is built on numpy: http://code.google.com/p/robotics-toolbox-python/ which contains all the function you are describing. Chris On Wed, Mar 4, 2009 at 6:10 PM, Gareth Elston < gareth.elston.floss@googlemail.com> wrote:
I found a nice module for these transforms at http://www.lfd.uci.edu/~gohlke/code/transformations.py.html<http://www.lfd.uci.edu/%7Egohlke/code/transformations.py.html>. I've been using an older version for some time and thought it might make a good addition to numpy/scipy. I made some simple mods to the older version to add a couple of functions I needed and to allow it to be used with Python 2.4.
The module is pure Python (2.5, with numpy 1.2 imported), includes doctests, and is BSD licensed. Here's the first part of the module docstring:
"""Homogeneous Transformation Matrices and Quaternions.
A library for calculating 4x4 matrices for translating, rotating, mirroring, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of homogenous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. """
I'd like to see this added to numpy/scipy so I know I've got some reading to do (scipy.org/Developer_Zone and the huge scipy-dev discussions on Scipy development infrastructure / workflow) to make sure it follows the guidelines, but where would people like to see this? In numpy? scipy? scikits? elsewhere?
I seem to remember that there was a first draft of a guide for developers being written. Are there any links available?
Thanks, Gareth. _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion
participants (5)
-
cgohlke@uci.edu
-
Chris Colbert
-
Gareth Elston
-
Jonathan Taylor
-
Stéfan van der Walt