fkanehiro / hrpsys-base

Basic RT components and utilities to control robots using OpenRTM
Other
41 stars 88 forks source link

"omniORB.BAD_OPERATION_UnRecognisedOperationName" error upon calling readDigitalOutput #1170

Open 130s opened 7 years ago

130s commented 7 years ago

Reported at https://github.com/tork-a/rtmros_nextage/issues/343 from @antgarmun. robot object is a derived class of HrpsysConfigurator.

In [2]: b=robot.readDigitalOutput()
BAD_OPERATION                             Traceback (most recent call last)
/home/kwduser/<ipython-input-2-4ab7a4ba7bdd> in <module>()
----> 1 b=robot.readDigitalOutput()

/opt/ros/hydro/lib/python2.7/dist-packages/hrpsys/hrpsys_config.pyc in readDigitalOutput(self)
   1554         @return list of int: List of the values in digital input register. Range: 0 or 1.
   1555         '''
-> 1556         ret, dout = self.rh_svc.readDigitalOutput()
   1557         retList = []
   1558         for item in dout:

/opt/ros/hydro/lib/python2.7/dist-packages/hrpsys/RobotHardwareService_idl.pyc in readDigitalOutput(self, *args)
    273
    274     def readDigitalOutput(self, *args):
--> 275         return _omnipy.invoke(self, "readDigitalOutput", _0_OpenHRP.RobotHardwareService._d_readDigitalOutput, args)
    276
    277     def getStatus2(self, *args):

BAD_OPERATION: CORBA.BAD_OPERATION(omniORB.BAD_OPERATION_UnRecognisedOperationName, CORBA.COMPLETED_NO)
antgarmun commented 7 years ago

I get erros with hand commands too:

In [10]: robot._hands.gripper_l_close() dout, mask: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0] [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2]

BAD_OPERATION Traceback (most recent call last) /home/kwduser/ in () ----> 1 robot._hands.gripper_l_close()

/opt/ros/hydro/lib/python2.7/dist-packages/nextage_ros_bridge/hands_05.pyc in gripper_l_close(self) 104 105 def gripper_l_close(self): --> 106 return self._gripper_l_command.execute(self._gripper_l_command.GRIPPER_CLOSE) 107 108 def gripper_r_close(self):

/opt/ros/hydro/lib/python2.7/dist-packages/nextage_ros_bridge/command/gripper_command.pyc in execute(self, operation) 88 elif self._hands.HAND_R == self._hand: 89 mask = mask_r ---> 90 return self._hands._dio_writer(dout, mask)

/opt/ros/hydro/lib/python2.7/dist-packages/nextage_ros_bridge/base_hands.pyc in _dio_writer(self, digitalout_indices, dio_assignments, padding) 168 try: 169 is_written_dout = self._parent.writeDigitalOutputWithMask(dout, --> 170 mask) 171 except AttributeError as e: 172 rospy.logerr('AttributeError from robot.\nTODO: Needs handled.')

/opt/ros/hydro/lib/python2.7/dist-packages/hrpsys/hrpsys_config.pyc in writeDigitalOutputWithMask(self, dout, mask) 1512 1513 # octet sequences are mapped to strings in omniorbpy

-> 1514 return self.rh_svc.writeDigitalOutputWithMask(outStr, outMsk) 1515 1516 def readDigitalInput(self):

/opt/ros/hydro/lib/python2.7/dist-packages/hrpsys/RobotHardwareService_idl.pyc in writeDigitalOutputWithMask(self, args) 267 268 def writeDigitalOutputWithMask(self, args): --> 269 return _omnipy.invoke(self, "writeDigitalOutputWithMask", _0_OpenHRP.RobotHardwareService._d_writeDigitalOutputWithMask, args) 270 271 def lengthDigitalOutput(self, *args):

BAD_OPERATION: CORBA.BAD_OPERATION(omniORB.BAD_OPERATION_UnRecognisedOperationName, CORBA.COMPLETED_NO)

`