示例#1
0
    def surveyGuess(self, guesser):
        if self.service_stack:
            s = self.service_stack.pop(0)

            g = GuessRequest()
            g.inPoints = guesser.outPoints()
            g.means = guesser.means()
            g.stds = guesser.stds()
            g.pers = guesser.periods
            g.data_type = guesser.data_type
            g.source_stamp = guesser.stamp
            g.source_data = guesser.source_data

            service = self.services[s]
            resp = service(g)

            if self.debug:
                s = String()
                self.counter += 1
                s.data += " CALLED:%d:%s \n" % (self.counter, str(service),)
                s.data += str(service.resolved_name) + " "
                s.data += resp.source_data + "\n"
                s.data += str(resp.source_stamp.secs) + ":" + str(resp.source_stamp.nsecs)
                self.pdebug.publish(s)

            if not resp.no_data:
                guesser.newPoints(resp.outPoints)
                guesser.stamp = resp.source_stamp
                guesser.source_data = resp.source_data
        else:
            resp = GuessResponse()
            resp.no_data = True

        return resp
示例#2
0
    def surveyGuess(self, guesser):
        if self.service_stack:
            s = self.service_stack.pop(0)

            g = GuessRequest()
            g.inPoints = guesser.outPoints()
            g.means = guesser.means()
            g.stds = guesser.stds()
            g.pers = guesser.periods
            g.data_type = guesser.data_type
            g.source_stamp = guesser.stamp
            g.source_data = guesser.source_data

            service = self.services[s]
            resp = service(g)

            if self.debug:
                s = String()
                self.counter += 1
                s.data += " CALLED:%d:%s \n" % (
                    self.counter,
                    str(service),
                )
                s.data += str(service.resolved_name) + " "
                s.data += resp.source_data + "\n"
                s.data += str(resp.source_stamp.secs) + ":" + str(
                    resp.source_stamp.nsecs)
                self.pdebug.publish(s)

            if not resp.no_data:
                guesser.newPoints(resp.outPoints)
                guesser.stamp = resp.source_stamp
                guesser.source_data = resp.source_data
        else:
            resp = GuessResponse()
            resp.no_data = True

        return resp
示例#3
0
    ol.append(Odometry())
    th = 0.0
    ol[-1].pose.pose.position.x = 0.058
    ol[-1].pose.pose.orientation.z = math.sin(th/2.0)
    ol[-1].pose.pose.orientation.w = math.cos(th/2.0)
    ol[-1].header.stamp = rospy.Time.from_sec(1310140131.643)
    o.msmts.addMsmt(ol[-1])

    # Arrange empty position array
    pts = [ Pt(point = [0.0, 0.0, 0.0]) for i in range(npts) ]

    print o.propagateError(pts, init, ol[-1])

    greq = GuessRequest()
    greq.source_stamp = rospy.Time(secs=init.header.stamp.secs,nsecs=init.header.stamp.nsecs)
#    greq.source_stamp.nsecs -= 10000
    greq.inPoints = pts

    output = o.updateBelief(greq)
    print output

    from perfesser_guesser import Guesser
    g = Guesser("testGuesser", (0.0,0.0,2*math.pi), "location",
                (4,4,7))
    g.newPoints(output.outPoints)
    m = g.means()

    print m

    assert math.fabs(m[0] - 0.058) < 0.001