コード例 #1
0
class StateListener(object):
    def __init__(self):
        self.subscriber = None
        self.transforms = []
        self.timer = SimpleTimer()
        self.paused = True

    def onBDIPose(self, m):
        t = transformUtils.transformFromPose(m.pos, m.orientation)
        if self.timer.elapsed() > 1.0:
            self.transforms.append((self.timer.now(), t))
            self.timer.reset()

    def describe(self):

        print '----------'
        print '%d transforms' % len(self.transforms)
        if not self.transforms:
            return

        time0, transform0 = self.transforms[0]
        o0 = np.array(transform0.GetOrientation())
        p0 = np.array(transform0.GetPosition())
        for timeN, transformN in self.transforms:
            oN = np.array(transformN.GetOrientation())
            pN = np.array(transformN.GetPosition())
            oD = oN - o0
            pD = pN - p0
            print '%.2f: [%.3f, %.3f, %.3f]  [%.3f, %.3f, %.3f]  ' % (
                (timeN - time0), oD[0], oD[1], oD[2], pD[0], pD[1], pD[2])

    def init(self):
        self.subscriber = lcmUtils.addSubscriber('POSE_BODY',
                                                 lcmbotcore.pose_t,
                                                 self.onBDIPose)
コード例 #2
0
ファイル: statelistener.py プロジェクト: mlab-upenn/arch-apex
class StateListener(object):
    def __init__(self):
        self.subscriber = None
        self.transforms = []
        self.timer = SimpleTimer()
        self.paused = True

    def onBDIPose(self, m):
        t = transformUtils.transformFromPose(m.pos, m.orientation)
        if self.timer.elapsed() > 1.0:
            self.transforms.append((self.timer.now(), t))
            self.timer.reset()

    def describe(self):

        print "----------"
        print "%d transforms" % len(self.transforms)
        if not self.transforms:
            return

        time0, transform0 = self.transforms[0]
        o0 = np.array(transform0.GetOrientation())
        p0 = np.array(transform0.GetPosition())
        for timeN, transformN in self.transforms:
            oN = np.array(transformN.GetOrientation())
            pN = np.array(transformN.GetPosition())
            oD = oN - o0
            pD = pN - p0
            print "%.2f: [%.3f, %.3f, %.3f]  [%.3f, %.3f, %.3f]  " % (
                (timeN - time0),
                oD[0],
                oD[1],
                oD[2],
                pD[0],
                pD[1],
                pD[2],
            )

    def init(self):
        self.subscriber = lcmUtils.addSubscriber("POSE_BODY", lcmbotcore.pose_t, self.onBDIPose)