예제 #1
0
    def __init__ (self, param_args):
        param = BotParam.BotParam (param_args)
        orglatlon = param.get_double_array ("site.orglatlon")
        
        self.llxy = BotCore.BotGPSLinearize (orglatlon[0],orglatlon[1])
        self.xy_utime = 0
        self.xy = []

        self.lc = lcm.LCM ()

        acomms_chan = param.get_str ("sensors.modem.gsd.channel")
        self.rq_sub = self.lc.subscribe (acomms_chan + "_NAV_REQUEST", self.pose_request_cb)
        self.reply_chan = acomms_chan + "_NAV_POSE_REPLY"

        gpsd_chan = param.get_str ("sensors.gpsd3-client.gsd.channel")
        self.gps_sub = self.lc.subscribe (gpsd_chan, self.gpsd_cb)

        self.depth = param.get_int ("owtt-nav.topside.sensors.static_depth")

        self.done = False
예제 #2
0
def param_from_log(lcmlog):
    param = None
    while True:
        e = lcmlog.read_next_event()
        if "PARAM_UPDATE" in e.channel:
            p = update_t.decode(e.data)
            with open("tmp_param.cfg", "w") as f:
                lines, save_line = [], False
                for line in p.params.splitlines():
                    if "INCLUDE = [" in line:
                        continue
                    else:
                        lines.append(line)
                f.write("\n".join(lines))
            param_args = BotParam.bot_param_args_to_pyargv("tmp_param.cfg", "false", "")
            param = BotParam.BotParam(param_args)
            os.remove("tmp_param.cfg")
            break
    log.seek(0)
    return param
예제 #3
0
#rc ("font", size=14)

if __name__ == '__main__':
    if len(sys.argv) < 4:
        print 'usage: %s <iver31.pkl> <iver28.pkl> <iver_topside.pkl>' % sys.argv[
            0]
        sys.exit(0)

    with open(sys.argv[1], 'rb') as f:
        iver31 = pickle.load(f)
    with open(sys.argv[2], 'rb') as f:
        iver28 = pickle.load(f)
    with open(sys.argv[3], 'rb') as f:
        topside = pickle.load(f)

    param_args = BotParam.bot_param_args_to_pyargv(
        '/home/jeff/perls/config/iver28.cfg', 'false', '')
    param = BotParam.BotParam(param_args)
    orglatlon = param.get_double_array('site.orglatlon')
    llxy = BotCore.BotGPSLinearize(orglatlon[0], orglatlon[1])

    ## find lbl beacons
    #nbeacons, x_lbl, y_lbl = param.get_num_subkeys ('lbl.network'), [], []
    #for ii in range (nbeacons):
    #    latlon = param.get_double_array ('lbl.network.beacon%d.latlon'%ii)
    #    y,x = llxy.to_xy (latlon[0], latlon[1])
    #    x_lbl.append (x)
    #    y_lbl.append (y)

    xy_iver31 = iver31.state.position.xyzrph[:, :2]
    xy_iver28 = iver28.state.position.xyzrph[:, :2]
예제 #4
0
#!/usr/bin/env python
"""
convert xy coordinate to lat/lon
"""

import sys

from perls import BotCore
from perls import BotParam


if __name__ == '__main__':
    if len (sys.argv) < 3:
        print 'usage: %s <x> <y>' % sys.argv[0]
        sys.exit (0)

    x = float (sys.argv[1])
    y = float (sys.argv[2])

    param_args = BotParam.bot_param_args_to_pyargv ('/home/jeff/perls/config/topside.cfg', 'false', '')
    param = BotParam.BotParam (param_args)

    orglatlon = param.get_double_array ('site.orglatlon')
    llxy = BotCore.BotGPSLinearize (orglatlon[0],orglatlon[1])

    lat,lon = llxy.to_ll (y,x)
    print 'converted xy = %0.3f,%0.3f to ll = %0.8f,%0.8f' % (x,y,lat,lon)

    sys.exit (0)
예제 #5
0
    # load iver data
    if len(sys.argv) < 2:
        print "usage: %s <iver.pkl>" % sys.argv[0]
        sys.exit(0)

    if len(sys.argv) == 3:
        with open(sys.argv[2], "rb") as f:
            fix_pkl = pickle.load(f)
    else:
        fix_pkl = None

    with open(sys.argv[1], "rb") as f:
        iver = pickle.load(f)

    # load params
    param_args = BotParam.bot_param_args_to_pyargv("/home/jeff/perls/config/iver28.cfg", "false", "")
    param = BotParam.BotParam(param_args)

    orglatlon = param.get_double_array("site.orglatlon")
    llxy = BotCore.BotGPSLinearize(orglatlon[0], orglatlon[1])

    # initialize lbl beacons
    nbeacons, beacons = param.get_num_subkeys("lbl.network"), []
    for ii in range(nbeacons):
        latlon = param.get_double_array("lbl.network.beacon%d.latlon" % ii)
        y, x = llxy.to_xy(latlon[0], latlon[1])
        z = param.get_double("lbl.network.beacon%d.depth" % ii)
        xyz = np.array([x, y, z])
        beacons.append(Lbl_beacon(ii, xyz))

    ii_lbl = np.where(iver.acomms.type == iver.acomms.NARROWBAND_LBL)[0]