# Omron Viper 850 Orientation out of range error

Good morning folks

We have a Omron Viper 850 robot

It is in inverted mount, i.e mounted upside down as you can see in the photo.

We are using the ACE 4.3 Software to program the robot. I don't have the code to paste here, but is something like:

SPEED 20 ALWAYS
DURATION 0.5 ALWAYS
MOVE safe.pos
MOVES pos2
MOVEC pos3,pos4


The properly code are much bigger than it. But this fit as an example, because we are using basically these five instructions.

When we ran the code, the robot sometimes make the course, sometimes not. When not, we receive the error message "Orientation Out of Range".

We suspect that we have to include some instruction to says to the robot that it are working in upside down orientation.

The manual said something about this error, but we not realize how it works

The manual ev+ programming pdf is here.

I appreciate any idea to workaround this error.

• I'm not experienced with industrial robot arm but I have some experience on designing the controller, could you get the value of joint 4 5 6 when error happen? it seems like spherical wrist singularity, try to give offset around 0-5 degree on joint 5 and 6 and inform if there is any difference. Jul 10 at 10:14
• Sorry, i didnt realize what you mean by give offset around 0-5 degree. Could you give more detailed information? Jul 10 at 10:28
• For example before command MOVES, try to increase the joint 5 and 6 by 5 degree Jul 10 at 10:34
• Right now i am a few kilometers away from the robot to realize the test. I ve already moved around the joints 4 5 and 6 before, but with no success. I think that i may use the BASE or FRAME instruction to change the orientation. What do you think? Jul 10 at 10:57
• I'm sorry with my limited knowledge I cant help any further.. but you can take a look at this article robohub.org/… maybe give u any useful information. Jul 10 at 11:31

## 1 Answer

It has been a while since I worked in V+, the predecessor to EV+, but I think I can answer some questions.

The base instruction allows you shift the robot world frame in X, Y, Z, and rotate about Z, but it does not allow you to rotate about X or Y so it cannot invert the arm.

The Frame instruction allows you to very accurately define the orientation of a transformation. You could use this create an inverted transformation and set your locations relative to it, but I don't think that is the issue you are seeing.

If you are only getting errors during MOVES instructions, you are almost certainly running into a singularity. The most common singularity is when joint 5 passes through 0 degrees. This changes the configuration of wrist between flip and noflip. You can also get a singularity when joint 3 passes through 0 and when the arms wrist passes directly over top of the base. The latter is very common when working below an inverted arm.

If possibly do a MOVE instead of MOVES, possibly breaking the trajectory up into a MOVES, a MOVE through the singularity, then a MOVES. You might also want to specify a precision point for the MOVE to force the arm into the correct joint positions.

Sometimes changing your end of arm tooling design, putting ii at an angle to mount flange can help. This moves the singularity somewhere else.