Universal Robots Forum

Continuous set_gravity / dynamically changing acceleration


My robot will be mounted on a “seventh” axis to be moved from one position (pick) to another (place), let’s say in X-direction. At the same time the pick-position and the place-position is different in Y direction. Is it possible to move the 7th axis AND the roboter at the same time? Would the roboter “sense” the “force” (acceleration) coming from the movement on the 7th axis and stop its movement?

Would it help to use continuous “set_gravity” commands to tell the robot the current acceleration? Would the robot use the new gravity immediately and continuously (even when moving)?

I am using a UR10e with a pyload of less than 1 kg.


Whether or not the robot can move at the same time as the 7th axis depends on the software that controls the 7th axis, and how it interacts with the robot. Some URCaps that control 7th axes allow for the robot to be moved at the same time as the additional axes, whilst others will not, I suspect the gravity/acceleration is the same, and it depends if it was coded into the URCap that controls 7th axis… If the 7th axis is moving slowly, I wouldnt have thought it would cause any problems, but at higher speeds it might, you would have to test and see if speeds would cause a protective stop. I would have though with such a low payload you would be okay.

Hello Sam!

Thank you for your answer! I do not use a URCap, but directly control the 7th axis via the Modbus interface of the robot. So, what must I do to avoid protective stops (even at high acceleration)?
One possible solution is hte use of the “set_gravity” command. This is, what the second part of my question was talking about. Unfortunately I will get my testing machine not before next week, so I can not make any “real-world” tests, but cycle-time is important for us and I want to be prepared!


We had a UR10 on a vertical 7th axis that we were moving very quickly, 2m/s with good acceleration values, we were moving the robot while the axis was moving and carrying around a 8kg payload as well. We did not have protective stop issues at all from the up/down motion. We dialed in the acceleration and deceleration we could use with the servo drive with the arm placed at both the pick and place position and found accelerations that did not cause any fault of the arm. Then we were able to start moving the robot at the same time. We generally had the load tucked in tight to the arm during the high speed portion of the move so as not to exhibit too much moment on the shoulder joint as we were carrying a high payload. We would then swing the arm from one side to the other or start extending the arm out over the pick/place positions.

This was in a downstacking palletizing operation where we had two incoming stacks about 7’ high getting fownstacked onto a pallet. We would stack 4.5 incoming stacks per pallet with final pallet being roughly 7’ high. So lots of up and down on the arm.

Hello mbush!

Thank you for your answer.
Maybe I worry too much and it my application will work without any trouble. My axis is about 4m long and the robot is hanging down from it (mounted upside down).
I’ll wait for next week, when I can make real tests. I’ll try it and I’ll know it.


Hello everybody!

Finally I could make some tests.
Yes, the robot can handle some external movements without cacelling its own movement. I set the UR 10e to full speed (180°/sec) and an acceleration of 2000°/s^2. The seventh axis was driven (horizontally; length~3m) with 120m/min and 3m/s^2 acceleration. This was OK for the robot.

But I wanted to go faster. I used 15m/s^2 acceleration on the external axis. Then I had to move “exclusively”, that means, the robot moves, when the axis stands still and the axis moves, when the robot stands still. Additionally I put the robot in a good position (center of gravity near the z-axis), when the axis moves. This seemed to work, but I did not do any deeper tests (parallel movement was faster in this case)