Exemple #1
0
 def getLocation(self):
     info('getting Location')
     r = messaging.LocationMessage()
     r.location = messaging.WGS84Coord(self.location.north,
                                       self.location.east,
                                       -self.location.depth)
     r.speed = messaging.floatXYZ(self.speed.x, self.speed.y, self.speed.z)
     return r
Exemple #2
0
 def __init__(self, node):
     msg.MessageObserver.__init__(self)
     self.__node = node
     self.__node.addObserver(self)
     self.log = open(time.strftime('cauv-mission-%H-%M-%S.log'), 'w')
     self.__node.join("telemetry")
     self.__node.join("ai")
     # Properties:
     self.start_time = time.time()
     # From LocationMessage:
     self.latitude = 0
     self.longitude = 0
     self.altitude = 0
     self.speed = msg.floatXYZ()
     # From TelemetryMessage:
     self.depth = 0
     self.bearing = 0
     # From AILogMessage:
     self.comment = ""
p_OutputType = pp.Forward()
p_Controller = pp.Forward()

# Parse Structs
p_floatYPR << pp.Group(l \
    + p_float + c \
    + p_float + c \
    + p_float \
    + r)
p_floatYPR.setParseAction(lambda x: messaging.floatYPR(*x[0]))
p_floatXYZ << pp.Group(l \
    + p_float + c \
    + p_float + c \
    + p_float \
    + r)
p_floatXYZ.setParseAction(lambda x: messaging.floatXYZ(*x[0]))
p_floatXY << pp.Group(l \
    + p_float + c \
    + p_float \
    + r)
p_floatXY.setParseAction(lambda x: messaging.floatXY(*x[0]))
p_NodeInput << pp.Group(l \
    + p_int + c \
    + p_str + c \
    + p_int \
    + r)
p_NodeInput.setParseAction(lambda x: messaging.NodeInput(*x[0]))
p_LocalNodeInput << pp.Group(l \
    + p_str + c \
    + p_int \
    + r)
Exemple #4
0
                                          -self.location.depth)
        r.speed = messaging.floatXYZ(self.speed.x, self.speed.y, self.speed.z)
        return r


if __name__ == '__main__':
    parser = argparse.ArgumentParser(
        usage='usage: %prog -m simple|exponential')
    parser.add_argument(
        "-m",
        "--mode",
        dest="mode",
        default="simple",
        help="integration mode: 'simple' or 'exponential' see" +
        "displacement_integrator.py for exponential integrator constants")
    opts, args = parser.parse_known_args()

    node = cauv.node.Node('py-dspl', args)
    try:
        auv = control.AUV(node)
        d = Location(node, opts.mode)
        while True:
            time.sleep(3)
            ll = d.getLocation()
            info('%s : %s' % (d.location, ll))
            node.send(
                messaging.LocationMessage(ll.location,
                                          messaging.floatXYZ(0, 0, 0)))
    finally:
        node.stop()
Exemple #5
0
def xyz(vec, z=0):
    for v in vec:
        yield floatXYZ(v.x, v.y, z)
Exemple #6
0
def add(v1, v2):
    v = floatXYZ(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z)
    return v
Exemple #7
0
def absv(v):
    return floatXYZ(abs(v.x), abs(v.y), abs(v.z))
Exemple #8
0
def sxx(v_vec):
    r = floatXYZ(0, 0, 0)
    for v in v_vec:
        r = add(r, sqr(v))
    return r
Exemple #9
0
def sx(v_vec):
    r = floatXYZ(0, 0, 0)
    for v in v_vec:
        r = add(r, v)
    return r
Exemple #10
0
def pow(v1, p):
    return floatXYZ(v1.x**p, v1.y**p, v1.z**p)
Exemple #11
0
def sub(v1, v2):
    v = floatXYZ(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z)
    return v