• Increase font size
  • Default font size
  • Decrease font size

Coordinate systems

Coordinate systems and especially transformations between local and world coordinates are used in robotics very often. Here is a small but practical introduction into the topic.

There are different types of coordinate systems but when we talk about robotic the most popular are:


  1. The standard Cartesian coordinates - values x, y specify position of a point as a distance from the coordinate system origin. Origin is the point where coordinate system axis cross each other. These axis are perpendicular. Computer display uses this type of coordinate system.
  2. The standard Polar coordinates - 2D coordinate system in which position of a point in a plane is determined by a distance from a fixed point (r) and an angle (theta) from a fixed direction.
When we want to transform local to world coordinates and vise verse we need to do that in a specific coordinate system. Let's focus on Cartesian coordinate system. In the system we use matrices and vectors to do the job.


Transformation matrix - the coordinate system that is rotating while the object remains fixed.  (http://www.continuummechanics.org/cm/coordxforms.html)
Q = [cos(theta), sin(theta); -sin(theta), cos(theta)] = R'
$Q^{-1}$ = $Q'$ = $R$
Let $v_{new}$ and $v_{old}$ be vectors than
$v_{new} = Q * v_{old}$

Rotation matrix - the object rotates while the coordinate system remains fixed.
R = [cos(theta), -sin(theta); sin(theta), cos(theta)] = Q'
$R^{-1}$ = $R'$ = $Q$
Let $v_{new}$ and $v_{old}$ be vectors than
$v_{new} = R * v_{old}$

Transformation from global to local coordinates and vise versa in Octave/Matlab

clear all;
close all;

offset = 0.1;

%Transformation matrix from global to local coordinates
theta1 = -pi/4;
x1 = 2;
y1 = 2;
R1 = [cos(theta1), - sin(theta1), x1; sin(theta1), cos(theta1), y1; 0, 0, 1];

%Transformation matrix from local to global coordinates
R1_inv = inv(R1);

%Points in global and local coordinate system
Xg = [1;2;1];
Xl = [1;1;1];
%Temp vector used to store temporary math result
TMP = [0;0;0];

%Vector containing data to be plotted - initially filled by min and max values so the plot has dimensions 0 - 10 in x direction and 0 - 10 in y direction

%Display Xg in global CS
printf("Xg in global CS - no transformation needed: ");
TMP = Xg
text (TMP(1,1) + offset,TMP(2,1) - offset, "Xg in\ngl. CS");
hold on
x=[x;TMP(1),0]; %Add result into vector that will be plotted
y=[y;TMP(2),0]; %Add result into vector that will be plotted

%Display Xl in global CS
printf("Xl in global CS - transformed via R1: ");
TMP = R1*Xl
text (TMP(1,1) + offset,TMP(2,1) - offset, "Xl in\ngl. CS");
hold on

%Display Xg in local CS
printf("Xg in local CS - transformed via R1_inv: ");
TMP = R1_inv*Xg
text (TMP(1,1) + offset,TMP(2,1) - offset, "Xg in local CS\nnote: [0,0] of this view is taken as origin of the local CS for this point");
hold on




Source code : local_to_global_coords_transforms.m

Result of the local_to_global_coords_transforms.m generated in Octave

Extended source code : local_to_global_coords_transforms_ext.m

Result of the local_to_global_coords_transforms_ext.m generated in Octave



0 #10 profile7980 2018-11-01 13:58
Need cheap hosting? Try webhosting1st, just $10 for an year.

0 #9 BeatriceJuicy 2018-08-13 00:22
Hello. I see that you don't update your website too often. I know
that writing posts is time consuming and boring. But did you know that
there is a tool that allows you to create new posts using existing content (from article directories or
other websites from your niche)? And it does it very well.

The new posts are unique and pass the copyscape test.
You should try miftolo's tools
0 #8 real edu blog 2018-05-26 01:47
Good day! Do you know if they make any plugins to safeguard against hackers?
I'm kinda paranoid about losing everything I've worked hard on. Any tips?
0 #7 waist shaper 2018-03-28 14:14
Excellent blog here! Also your website loads up very fast!
What web host are you using? Can I get your affiliate link to your host?
I wish my website loaded up as quickly as yours lol
0 #6 money lender 2018-02-19 22:22
Hi are using Wordpress for your site platform?

I'm new to the blog world but I'm trying to get started and create my own. Do
you require any html coding knowledge to make your own blog?
Any help would be greatly appreciated!
0 #5 news houston 2018-01-05 10:21
If that suits you reading news, you will want to make use of an online news aggregate to help you
boost your comprehension skills inside the new vernacular.

Until you buy your feet under you, you have to minimize
the knowledge you eat, and TV news houston: https://mylatestnews.org is the initial to
go. Over the approaching months I'll be writing some articles revealing the techniques for pr (everything a
journalist doesn't really would love you to
0 #4 broderie 2017-09-30 17:15
Exceptional post but I was wanting to know if you could write a litte more
on this subject? I'd be very thankful if you could elaborate a little bit further.
-1 #3 skyrim 2017-07-21 21:49
Thanks a bunch for sharing this with all folks you actually understand what you
are speaking approximately! Bookmarked. Please additionally talk over with my site =).
We will have a hyperlink exchange contract between us
skyrim: http://theelderscrolls5skyrimevolution225.ru
-1 #2 Anemonalove 2017-07-06 03:44
Hello guys! Who wants to meet me? I have profile at
HotBabesCams.com, we can chat, you can watch me live for free, my
nickname is Anemonalove , here is my pic:

-1 #1 We-Vibe 4 Plus 2015-06-25 10:34
Hi, its nice paragraph about media print, we all be familiar with media is a impressive source of facts.

Here is my homepage - We-Vibe 4 Plus madrid: http://lolatoys.com/es/we-vibe-4-plus.html

Add comment

No bad words.

Security code

Design by i-cons.ch / etosha-namibia.ch