Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

from director import lcmUtils 

from director import transformUtils 

import PythonQt 

import bot_core as lcmbotcore 

from director.simpletimer import SimpleTimer 

 

import numpy as np 

 

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) 

 

 

listener = StateListener() 

listener.init()