ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

How to check robot mode on UR5

asked 2018-02-28 08:17:41 -0600

MaKaNu gravatar image

updated 2018-03-26 11:15:49 -0600

ahendrix gravatar image

Hello There,

I have some trouble to work with the Getting Started with a Universal Robot and ROS-Industrial. After setting up the ur_modern_driver for our 3.4.X UR5 Robot I tried to execute the script. The console returns: Robot is not ready, check Robot_mode! I have after several hours of research no clue.

REF: Getting Started with a Universal Robot and ROS-Industrial


@gvdhoorn Below I postet the actuall execute command that leads to the following Error:

[ WARN] [1519905657.372310797]: Goal error: Robot is not ready, check robot_mode

This warning shows up if I enter the command on another terminal:

$ rosrun ur_modern_driver

After this I got the Infostream from and confirm the movement with "y" and it leads to the listed Warning.

@PeteBlackerThe3rd As it sounds like the obvious Solution, it is not easy to discover. I've plenty hours of experience with industrial robots from denso, but its my first atempt with ROS. I have 3 modes at a denso robot: Auto, Manual or Teach-Check. This is something what I have missed as I start with UR5. After a little more analysing of the ur_modern_driver Code I have realized the lines 70-80 of robot_state.h. I actually dont know if it's the point of my problem, but my experience with ROS is just beginner's status.

At last thank you both for the fast response.


After running the launchfile:

roslaunch ur_modern_driver ur5_bringup.launch robot_ip:=IP_OF_THE_ROBOT

I still can move the Robot-Arm with the Polyscope-Teachpendant. I also searched for an option to change the robot_mode but I just found and also know about the "reduced Mode".

EDIT: The "Initilaize Robot" Screen shows:

Robot --> "green-ample-sign" NORMAL


Meanwhile we tested the response of the dashboardserver. Our results was the following:

  • RUNNING --> if the robot is in NORMAL, RECOVERY and running a PolyScope-Program

-IDLE --> if the robot is IDLE

-BOOTING --> if the robot is BOOTING

so far everything as expected.

edit retag flag offensive close merge delete


can you please copy-paste the output that you get? There is probably some context missing here.

gvdhoorn gravatar image gvdhoorn  ( 2018-02-28 08:37:48 -0600 )edit

Not trying to point out of the obvious but the UR5 is in drive mode and you can drive it from the attached tablet?

PeteBlackerThe3rd gravatar image PeteBlackerThe3rd  ( 2018-02-28 11:33:48 -0600 )edit

I've edited my Question

MaKaNu gravatar image MaKaNu  ( 2018-03-01 07:40:27 -0600 )edit

"Robot Mode" is something Universal Robots came up with, it's not a ROS or ROS-Industrial invention. See the robotmode entry on this page fi. If your robot is not in ready mode, it cannot ..

gvdhoorn gravatar image gvdhoorn  ( 2018-03-01 07:58:55 -0600 )edit

.. be controlled by the ROS driver component.

As @PeteBlackerThe3rd asks: can you use the UR teach pendant to control the robot at that point?

If not: you'll need to make sure the robot is operational before trying to use ROS with it. Please refer to the Universal Robots documentation for that.

gvdhoorn gravatar image gvdhoorn  ( 2018-03-01 08:00:21 -0600 )edit

Readed your awnsers and edited again.

MaKaNu gravatar image MaKaNu  ( 2018-03-01 08:59:07 -0600 )edit

Could you please add some more detail to your opening post? I can only find the phrase "Robot is not ready" in a version of ur_modern_driver that is currently in a Pull Request. It's not the normal version of the driver. Can you clearly state which particular pkg you are using?

gvdhoorn gravatar image gvdhoorn  ( 2018-03-01 10:22:20 -0600 )edit

It could be that your robot is using a Polyscope version that is not supported by the driver yet. In that case, if Universal Robots changed the binary protocol, the driver could be misinterpreting the data it receives from the robot, leading to what you observe.

gvdhoorn gravatar image gvdhoorn  ( 2018-03-01 10:23:29 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2018-03-26 02:24:28 -0600

matt_do gravatar image

The solution was quite simple. The last required step was to call the service rosservice call /ur_driver/robot_enable

I think, this is came from a fork we used instead of the original /ur_modern_driver by ThomasTimm. This servicecall was, AFAIK, not required by the original /ur_modern_driver. Maybe someone can tell me if I'm right or not?

edit flag offensive delete link more



Yes, the enable service was only added in the fork I mentioned in one of my comments. That was also why I asked: "Can you clearly state which particular pkg you are using?"

gvdhoorn gravatar image gvdhoorn  ( 2018-03-26 03:07:18 -0600 )edit

Oh, now I understand what you meant with "not the normal package". We just looked for the package-name and not for the actual repo where the package was cloned from. However, thank you for your help.

matt_do gravatar image matt_do  ( 2018-03-26 03:13:30 -0600 )edit

Question Tools



Asked: 2018-02-28 08:17:41 -0600

Seen: 991 times

Last updated: Mar 26 '18