Merging modern software development with electrons and metal
Random header image... Refresh for more!

Robot Primer 12: Moving In Work Coordinates

While researching for this post, I reviewed the relevant Denso manual (the Setup Guide).  Although its dry text is no match for my scintillating style, I have to say it gives a good, illustrated explanation of the various coordinate systems.  I am not going to try to compete with it; instead, I will give my own summary with some videos and, in an effort to get your programming juices flowing, concentrate on why and where you might want to use these features.

I will be using a simulated robot recorded in WinCaps III simulation mode (kudos to Denso for providing a 90-day WinCaps III trial version, available to everyone).  I chose a 6-axis articulated robot because it can do motions that are impossible using a SCARA or Delta robot. I am using Denso in my examples, primarily because I can use the simulator and am familiar with their robots.

As I’ve noted before, the basics should apply to other robots, but the details will vary for different robot controllers,   Of course the robot type determines what poses the robot can do (for example, a 4-axis SCARA can only roll about the Z axis (Rz), not the X axis or Y axis).

Note that you can click on the pictures to see a bigger version.

Work Coordinates

Work coordinates are rectangular coordinates fixed relative to the base of the robot.  Work coordinate systems are defined relative to the Base coordinates by specifying:

  • the coordinate origin (X, Y, Z) defined in base coordinates
  • the angles of rotation (Rx, Ry, Rz) around the corresponding base coordinate axes (Rx, Ry, Rz).

Base Coordinates

Base coordinates are work coordinates with the origin at the base of the robot.  In Denso terminology, the base coordinates are “3-dimensional Cartesian coordinates whose origin is at the center of the robot basement”.

Example Base And Work Coordinates

Base, Work Top View

Base, Work Top View

I setup my robot work space with a few objects:

  • Denso robot with my simple end effector
  • A table with two of my simple fixtures.  The second fixture is rotated 180 degrees from the first fixture.
  • Two work coordinate systems, Work1 for Fixture 1 and Work2 for Fixture 2.  When the robot is in the appropriate Work coordinates, the fixtures’ positions are exactly the same.

The picture, above, shows Base coordinates (Work0), Work1, and Work 2.  The lines show the direction of the positive axes (+X, +Y, and +Z).  The  bottom window shows the definition of Work1 and Work2 relative to Base coordinates.  Note  that Work2 has a Rz value of 180 degrees, and you can see that the direction of Work2’s X and Y axes are exactly opposite Work1’s.

Coordinate Axes and Angles of Rotation

Work1 Front View

Work1 Front View

Work2 - Front View

Work2 – Front View

The first picture above shows the Work1 coordinate axes (X, Y, Z) and angles of rotation (Rx, Ry, Rz), and the second picture shows the Work2 coordinate axes and angles of rotation.  The lines and arrows point in the direction of positive movement.

The Base coordinate axis directions (X, Y, Z) are the same as Work1’s axis directions, but the origin is different.  The angles of rotation are the same for both.

The coordinate axis directions are different between Work1 and Work2: because Work2 is rotated 180 degrees about the Z axis, its X and Y axes point in the opposite direction from Work1’s X and Y axes.

The angles of rotation define the attitude of the robot flange, and are also called yaw, pitch, and roll.  Their origin always is at the center of the robot flange surface (you can see that the origin is the same for both Work1 and Work2), but the directions are the same as the Work coordinate’s X, Y, and Z axes (so Work2’s Rx and Ry directions are reversed compared to Work1’s Rx and Ry directions).  When you rotate along Rx, Ry, or Rz, the origin (which is the center of the flange surface) will stay in the same X, Y, Z position, but the rest of robot will rotate around that axis.

Putting It All Together: Robot Movements in Base World Coordinates

My youtube video shows some basic movements in Base World Coordinates, moving in CP (straight line) mode.  Try to match my descriptions above with what the robot is doing: making this video took a lot of time, so I hope it helps make my prose a lot clearer.

What’s Next

More on World Coordinates, of course, including potential applications.


1 Motorguy { 10.19.14 at 7:44 am }

Hello Tony,

I noticed you found some info on the electrocraft 3618 motor, on your trac blog. I’m wondering if you might have any info on the 3622 series? Specifically what the suffixes of the part number mean? I’m trying to repair a mill. Any help is greatly appreciated! Please email me!

Thank you!


2 Tony { 10.20.14 at 8:42 am }


I should have the info, but it will take a couple days to find it. I plan on posting it publicly (probably on trac) so others can find the info, too.


3 Tony { 10.21.14 at 4:56 pm }

E-3618 trac page updated with attached Electro-Craft datasheet.


4 kiat { 04.13.15 at 7:26 pm }


I am really sorry to bother you. I would like to use a gripper and a conveyor to the WINCAPS III but I do not know where I can download .x or .wrl of grippers and conveyors and I do not know how I can simulate grippers and conveyor in WINCAPS III. There are no sample projects in WINCAPS III CD. I tried to google for a week but I have found nothing.

Could you please help me ?

Thank you very much

5 Tony { 04.14.15 at 9:37 am }

I don’t have time to write a tutorial, but here are some notes:

Normally, the manufacturers provide STEP (.STP or .STEP) or IGES 3D models, so you will have to convert from one of these formats to .wrl, probably via an intermediate format such as STL since very few CAD programs support both STEP/IGES import and WRL output. You should be able to find STEP/IGES models of conveyors and grippers, although you might have to register to be able to download these models.

Once you have converted your models to WRL files, you import them by right clicking on the desired location (such as the robot’s end effector) in the object tree in the simulator. The only animated model will be the robot (so the conveyor will not turn).

You can see my notes here

If you’re doing this for a machine that will go into production, try asking your local Denso office for help.

6 kiat { 04.15.15 at 2:27 am }

Thank you very much for your help.
I will try to contact the Denso office in my country.

Leave a Comment