BerkeleyAutomation/yumipy

Unable to load ROS

Closed this issue · 3 comments

lz89 commented

Hello,

I have installed the server on the controller and it seems running properly without any error.
However, when I try to run (roscore has been run):
python tools/calibrate_grippers.py

I got following error:

ERROR:root:Unable to load ROS! Will not be able to use client-side motion planner!
Traceback (most recent call last):
File "tools/calibrate_grippers.py", line 5, in
y.calibrate_grippers()
File "/home/xxx/dev/catkin_ws/src/yumipy/./yumipy/yumi_robot.py", line 244, in calibrate_grippers
arm.calibrate_gripper()
File "/home/xxx/dev/catkin_ws/src/yumipy/./yumipy/yumi_arm.py", line 1027, in calibrate_gripper
return self._request(req, wait_for_res, timeout=self._motion_timeout)
File "/home/xxx/dev/catkin_ws/src/yumipy/./yumipy/yumi_arm.py", line 313, in _request
raise YuMiControlException(req_packet, res)
yumipy.yumi_exceptions.YuMiControlException: Failed Request!
Req: _REQ_PACKET(req='22 #', timeout=8, return_res=True)
Res: _RAW_RES(mirror_code=22, res_code=0, message='Default Error: 1002')

I have tried to run the simple ros python publisher sample (link) and it works fine (I can rostopic echo the topic).

A bit info about my system:
64-bit Ubuntu 16.04 with ROS kinetic.
Installed autolab_core and yumipy in the catkin work space correctly (build without error).
There are two ethernet ports: one for external WAN and one for Yumi controller via the XP23 Service Port.

Would you please suggest what I can do to resolve the issue?

In addition, what's the recommended connection b/w the controller and the Linux PC? Currently, I am using the 'XP23 Service Port' which is a bit annoying if I also want to connect the controller with a Windows PC with the RobotStudio. Is there a way to connect both Linux and Windows PC using the ethernet port?

Thank you very much.

Regards,
Lin

Hi,

Unfortunately I'm not sure what the error code 1002 is...the ABB documentation I have for error codes only has the enum names for those codes, not the actual numerical values.

What you can do is print out all the errnums (there's not that many) and find the one that corresponds to 1002. You can see all the enum names if you goto RobotStudio > File > Help > RAPID Instructions, Functions and Data types and search for "errnum"

I'm not too sure I understand your question here. If you wish to connect multiple computers directly to the YuMi, you can have a switch that connects to the XP23 Service Port of the YuMi, and have the other computers connect to the switch. This way any computer connected to the switch can use YuMiPy to control the interface.

lz89 commented

Hi,

Thanks for you reply.
I checked the error code 1002 which correspond to error: 'ERR_NORUNUNIT'.
From the manual, the cause of the error:
There is no contact with the I/O device.

I found that the gripper L/R may not be switched on yesterday when I run the RAPID server. So I switch on the gripper and the 1002 error has gone and the python tools/calibrate_grippers.py can be run (I can see the gripper L/R fully closed and then fully opened). Therefore, I presume the communication b/w yumipy and the robot is correct now.


However, the ERROR:root:Unable to load ROS! Will not be able to use client-side motion planner! still exists when running the python tools/calibrate_grippers.py.

When I run $ roslaunch yumipy yumi_arms.launch (BTW, is there a typo in the wiki where rosrun was used?), I get following:

SUMMARY

PARAMETERS

  • /rosdistro: kinetic
  • /rosversion: 1.12.7
  • /yumi_robot/left_arm/display_output: True
  • /yumi_robot/left_arm/name: left
  • /yumi_robot/right_arm/display_output: True
  • /yumi_robot/right_arm/name: right

NODES
/yumi_robot/
left_arm (yumipy/yumi_arm_service.py)
right_arm (yumipy/yumi_arm_service.py)

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found
process[yumi_robot/left_arm-1]: started with pid [69758]
process[yumi_robot/right_arm-2]: started with pid [69759]
ERROR:root:Unable to load ROS! Will not be able to use client-side motion planner!
[INFO] [1508493063.938277]: right arm is ready
ERROR:root:Unable to load ROS! Will not be able to use client-side motion planner!
[INFO] [1508493064.135062]: left arm is ready


If I try to run from yumipy import YuMiRobot in python, again I get the Unable to load ROS! Will not be able to use client-side motion planner!.

Even though the error exists, I can still read/write from/to the robot server. I have tried the get_pose and goto_pose function of YuMiArm, it works fine so far.
I see the error comes from the yumi motion_planner, I understand this may not be stable yet, so maybe it's not fully support ROS Kinetic?

The yumi_planner is for using moveit for motion planning instead of the Yumi's internal motion planner. As long as you don't need to use MoveIt these warnings can safely be ignored.