(self)
return observable.Generic(appendages_pos_in_egocentric_frame)
Equivalent to `end_effectors_pos` with the head's position appended.
Equivalent to `end_effectors_pos` with the head's position appended.
Equivalent to end_effectors_pos with the head s position appended .
def appendages_pos(self):
    """Equivalent to `end_effectors_pos` with the head's position appended."""
    def appendages_pos_in_egocentric_frame(physics):
      appendages = self._entity.end_effectors
      appendages_xpos = physics.bind(appendages).xpos
      root_xpos = physics.bind(self._entity.root_body).xpos
      root_xmat = np.reshape(physics.bind(self._entity.root_body).xmat, (3, 3))
      return np.reshape(
          np.dot(appendages_xpos - root_xpos, root_xmat), -1)
    return observable.Generic(appendages_pos_in_egocentric_frame)
def appendages_pos ( self ) : def appendages_pos_in_egocentric_frame ( physics ) : appendages = self . _entity . end_effectors appendages_xpos = physics . bind ( appendages ) . xpos root_xpos = physics . bind ( self . _entity . root_body ) . xpos root_xmat = np . reshape ( physics . bind ( self . _entity . root_body ) . xmat , ( 3 , 3 ) ) return np . reshape ( np . dot ( appendages_xpos - root_xpos , root_xmat ) , - 1 ) return observable . Generic ( appendages_pos_in_egocentric_frame )