Understanding vvvv's Transformation Matrices

Hey there,

I’m trying to control a KUKA robot with a Kinect. For this to work I need to project the tracked skeletons position into the coordinate system of the robot. However, I don’t really understand what is going on with the transformation matrices that vvvv uses. For example, from right handed coordinate systems like OpenGL, I’m used to translation matrices that look like this:
1 0 0 tx
0 1 0 ty
0 0 1 tz
0 0 0 1

In vvvv they look like this:
1 0 0 0
0 1 0 0
0 0 0 1
tx ty tz 1

Can somebody point towards an explanation of how to work with these matrices or how to convert from one to another?

Note: I’m only working with rotation and translation right now!

All best
Moritz

for the basics on vvvvs coordinate system see here: https://vvvv.org/documentation/coordinate-systems

That I know :) However, I don’t know how I can translate from that knowledge to matrix calculation.

wouldn’t it be possible to work with chains of transformation nodes and then use GetMatrix at the end if you need the matrix itself

there are a few things you have to separate:

  • left-handed and right-handed has nothing to do with the matrix layout
  • OpenGL has col-major notation, DirectX row-major notation. that means the matrix element names are transposed
  • you need to make sure which notation is used in your target coordinate system
  • matrix multiplcation does exactly the same in both cases
  • you need to know how the XYZ axis are aligned in both coordinate systems

vvvv uses DirectX conventions:

  • left handed coordinate system with X+ axis right, Y+ axis up, Z+ axis forward
  • row-major matrix notation

for conversion you need two steps:

  • probably a transpose of the vvvv matrix
  • a conversion matrix from the vvvv system into the robot system
  • multiply the transposed vvvv matrix with the conversion matrix, note that AB is not BA try both ways, i don’t know which way ATM

here is a comprehensive document about all info i could find on this topic. see slide 19 for the conversion matrix and 28ff for the matrix conventions:

1 Like

wow, thanks for the comprehensive answer and the great link! :)

All best
Moritz

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.