# Force Rotation Direction

• Hi

I am teaching a program and got troubles with limits. Going to a point that is 180° turned from the home position, is done sometimes differently by the robot and I can not figure out how to set the points right. If the robot accesses this point turned into the wrong direction, the next points will give a limit error.

How do I force the rotation direction for accessing a certain point?

• I actually do first two TOOL_OFFSETS and then the point itself. The first TOOL_OFFSET is with a JOINT motion. The others are Linear. So in the end the point is stored in cartesian coordinates of a user frame. Shouln't this work?

• If you have a set of movements that start with a joint move and then a series of linear moves, then the robot should always behave the same when following those commands through from the start, however the behavior may be different from the original taught behavior. There are (theoretically) 24-ish different postures to achieve the exact same position and orientation of the TCP (for the reversal of pairs of joints and for the full 360 revolutions of different joints. Not nearly all of these are real or can be reached, usually 2-4 of them are real for any given point and orientation). When you do a linear move from one point to another, it will go to the nearest posture that achieves the command position and orientation, even if it is impossible by the joint limits (because with a different posture and joint position, it IS possible, and they are not able to make that distinction until run time).

If the normal program operation causes an axis limit, you may need to add an additional joint move to unwind the robot and ensure that the nearest posture to achieve the command position is possible for the robot.

• If you use 'Wjnt' modifier on your linear points it will force the same turn numbers. Test and make sure it does what you want in all possible scenarios. Wjnt can cause the tool to flip if it starts in a different orientation, but it sounds like you are always starting with a joint move.

• The WJNT (Writs Joint) Option worked out. This is exactly what I was looking for. Everything works seamlessly. Thanks a lot!

For understanding:
How are the points stored in the program? If I store them with the LINEAR option, I only see the cartesian coordinates when checking the point. When I store them with JOINT option, I see the joint angles.
But now when I do WJNT, it is basically a linear point but still the joint angles of the wrist are saved somewhere.

Can someone explain me this?

• wrist joint has nothing to do with the coordinate representation in your program.
It is only a movement option. it is a mix of linear and joint movement. The main axis 1-3 will be moved linear but the wrist 5-6 will be moved in joint, that´s why it is called wrist joint.

• Yes, this I know. But how so, that the JOINT movement (assuming we do a complete joint movement) and a LINEAR movement (also complete linear without WJNT) behave different?
Is this different behaviour only because the axis are controlled different?

I thought that the joint motion has absolute angles stored. Meaning you could also do a 360 degree turn with a tool for example.
On the other hand the linear representation has just the end point stored, which means, that the best and fastest way is driven.

Am I right with this?

• Do you see the position config in the top right of the position screen, it looks like "NUT 000". (may have a few different letters or numbers).

The config is what tells the robot how to calculate which joint angles to use. So if you press 'config' and change to "NUT 001" or "NUT 00-1" then use Wjnt you will see the robot flip a different direction (if it can) to reach the point. There is a lot of info about the config string on this forum if you search and also in the manual. So with a combination of the Cartesian point (xyzwpr) and config string it can calculate the joint angles needed for the final position.

• Thanks so much! This is what I was looking for! Just today I printed out my code for a better overview (Tip for everyone that did not know: also the points are printed when you do ASCII export) and saw that some of the points are FUT 000 and some are FUT 001. The options for F, U and T I already tried to flip but I saw fast that this is not what I was looking for.

I researched for short about this settings and found an interesting post where everything is well explained here: https://www.onerobotics.com/po…erils-of-six-axis-robots/