add support to get actual joint current

This commit is contained in:
mustaffxx 2021-04-08 14:22:52 -03:00 committed by oroulet
parent 7674fab5c0
commit 18fed61168
2 changed files with 23 additions and 1 deletions

View File

@ -104,6 +104,13 @@ class URRobot(object):
force += i**2 force += i**2
return force**0.5 return force**0.5
def get_joint_current(self, wait=True):
"""
return measured joint current
if wait==True, waits for next packet before returning
"""
return self.rtmon.getJOINTCurrent(wait)
def set_tcp(self, tcp): def set_tcp(self, tcp):
""" """
set robot flange to tool tip transformation set robot flange to tool tip transformation

View File

@ -47,6 +47,7 @@ class URRTMonitor(threading.Thread):
self._qTarget = None self._qTarget = None
self._tcp = None self._tcp = None
self._tcp_force = None self._tcp_force = None
self._joint_current = None
self.__recvTime = 0 self.__recvTime = 0
self._last_ctrl_ts = 0 self._last_ctrl_ts = 0
# self._last_ts = 0 # self._last_ts = 0
@ -140,6 +141,18 @@ class URRTMonitor(threading.Thread):
return tcf_force return tcf_force
getTCFForce = tcf_force getTCFForce = tcf_force
def joint_current(self, wait=False, timestamp=False):
""" Get the joint current."""
if wait:
self.wait()
with self._dataAccess:
joint_current = self._joint_current
if timestamp:
return self._timestamp, joint_current
else:
return joint_current
getJOINTCurrent = joint_current
def __recv_rt_data(self): def __recv_rt_data(self):
head = self.__recv_bytes(4) head = self.__recv_bytes(4)
# Record the timestamp for this logical package # Record the timestamp for this logical package
@ -178,6 +191,7 @@ class URRTMonitor(threading.Thread):
self._qTarget = np.array(unp[1:7]) self._qTarget = np.array(unp[1:7])
self._tcp_force = np.array(unp[67:73]) self._tcp_force = np.array(unp[67:73])
self._tcp = np.array(unp[73:79]) self._tcp = np.array(unp[73:79])
self._joint_current = np.array(unp[43:49])
if self._csys: if self._csys:
with self._csys_lock: with self._csys_lock:
@ -245,7 +259,8 @@ class URRTMonitor(threading.Thread):
qActual=self._qActual, qActual=self._qActual,
qTarget=self._qTarget, qTarget=self._qTarget,
tcp=self._tcp, tcp=self._tcp,
tcp_force=self._tcp_force) tcp_force=self._tcp_force,
joint_current=self._joint_current)
def stop(self): def stop(self):
# print(self.__class__.__name__+': Stopping') # print(self.__class__.__name__+': Stopping')