fov_width = math.atan2(camera[0] / 2, camera[2]) * 360 / 3.1415926 fov_height = math.atan2(camera[1] / 2, camera[3]) * 360 / 3.1415926 mission_settings = { "mission_intra_number": args.intra_num, "mission_height": args.height, "fov_width": fov_width, "fov_height": fov_height, "mission_intra_overlap": args.intra_overlap, "mission_forward_overlap": args.forward_overlap, "mission_airline_direction": args.airline_direction / 3.1415926 * 180 } gimbal_planner = GimbalPlanner(mission_settings) # 2. play rtmv rtmv = svar.load('svar_rtmv') rtmv.set_gps_rad(False) dataset = rtmv.DatasetNetwork({ "ip": args.rtmv, "port": 1212, "skip": args.skip }) camera = json.loads(args.cam) taskjson = { "task": "offline_planar", "parameters": {}, "dataset": { "type": "images", "cameras": { "h20t_rtmv": camera
#! /usr/bin/python3 import svar import json import argparse import time parser = argparse.ArgumentParser() parser.add_argument("-gmap",default="./map.gmap",help="The input gmap file") parser.add_argument("-geojson",default='matching_graph.json',help="The output json file representing matches") args = parser.parse_args() # generate geojson from gmap svar_gmap=svar.load('svar_gmap') qglopm =svar.load('svar_qglopm') gmap=svar_gmap.load(args.gmap) frames=gmap.getFrames() features=[] # plot frame viewports camera=frames[0].getCamera() for fr in frames: tl=qglopm.from_pixel_to_lla(fr,(0,0)) tr=qglopm.from_pixel_to_lla(fr,(camera[0],0)) br=qglopm.from_pixel_to_lla(fr,(camera[0],camera[1])) bl=qglopm.from_pixel_to_lla(fr,(0,camera[1])) coordinates=[[tl.y,tl.x],[tr.y,tr.x],[br.y,br.x],[bl.y,bl.x]] geometry={"type": "Polygon","coordinates":[coordinates]} feature={"type": "Feature","properties": {},"geometry":geometry}
import svar import time svar_nsq = svar.load('svar_nsq') bridge = svar_nsq.BridgeNSQ({"server": "127.0.0.1:4150", "pattern": "^@(.+)$"}) def callback_msg(msg): print("received by messenger:", msg) sub = svar_nsq.messenger.subscribe('@test', 0, callback_msg) while True: time.sleep(1)
import json import os import argparse parser = argparse.ArgumentParser() parser.add_argument("-rtmv",default="./data/sample.rtmv",help="The rtmv file captured") parser.add_argument("-skip",default=1,type=int,help="Skip video frame to reduce cpu usage") parser.add_argument("-cam",default="[1920,1440,3350.778698,3350.778698,960,720]",help="The camera parameters in json array") parser.add_argument("-yaw_offset",default=0,type=float,help="Fix yaw") parser.add_argument("-not_follow",action="store_true",default=False,help="follow the uav or not") parser.add_argument("-plot",default=False,type=bool,help="plot cv2 or not") args = parser.parse_args() # 1. show base satellite layer qglopm=svar.load('svar_qglopm') qapp=qglopm.QApplication() vis2d= qglopm.Visualizer2D({"home":[108.,34.,0.]}) vis2d.show() ui=qglopm.UIThread() ui.translate('UI.output.curframe','ui_thread_frame') def gaode_url(x,y,z): return "https://webst01.is.autonavi.com/appmaptile?style=6&x=%d&y=%d&z=%d" % (x,y,z) base_des={"type":"livelayer","manager":gaode_url,"cache_folder":"/tmp"} base_layer=vis2d.addLayer("base",base_des) # 2. play rtmv rtmv=svar.load('svar_rtmv') rtmv.set_gps_rad(False)
import svar import time m = svar.load('svar_messenger') def say(msg): print("received:", msg) sub_no_thread = m.messenger.subscribe('example', 0, say) sub_new_thread = m.messenger.subscribe('example', 1, say) m.messenger.publish('example', 'hello world') pub = m.messenger.advertise('example', 1) pub.publish('hello publisher') time.sleep(10)
help="The input task json file") parser.add_argument("-out", default='dom.tif', help="The output ortho mosaic image file") parser.add_argument("-arg", nargs='+', action='append', default=[], help="the processing parameters") parser.add_argument("-with_pose", action="store_true", help="Use pose stitching instead of reconstruct") args = parser.parse_args() sibitu = svar.load('svar_highstitch') task = json.loads(open(args.task).read()) for it_args in args.arg: for arg in it_args: key, value = arg.split('=') task["parameters"][key] = value task["parameters"]["topdir"] = os.path.dirname(args.task) os.system('rm area.txt *.tile -f') if args.with_pose: success = sibitu.stitch_with_pose(task, args.out) else:
import svar basic = svar.load( "/data/zhaoyong/Program/Apps/Tests/JSVar/python/build/libbasic.so") pyobj = {"i": 1, "d": 1.2, "s": "hello world", "v": [1, 2, 3]} print("pyobj is:", pyobj) ret = basic.obtainInfo(pyobj) print("ret is:", ret) print("convert to py:", ret.py()) print(basic.dtos(100.423)) c = basic.add(34, 3) print(c) print(basic.add(c, 3)) #robj=basic.obtainInfo(pyobj) #print(robj)
def callback_buf(buf): mem = memoryview(buf) if height > args.h_min: rtmv.write(mem.tobytes()) # only record height above h_min def rad2degree(r): return 180 / 3.1415926 * r def degree2rad(d): return 3.1415926 / 180. * d osdk = svar.load('svar_osdk') env = osdk.LinuxSetup(True) vehicle = env.getVehicle() broadcast = vehicle.broadcast gimbalManager = vehicle.gimbalManager options = {} options["camera_position"] = osdk.OSDK_CAMERA_POSITION_NO_1 options["playload_index"] = osdk.PAYLOAD_INDEX_0 options["h264_source"] = osdk.OSDK_CAMERA_SOURCE_H20T_ZOOM options["enable_rtmv"] = True node = osdk.VehicleNode(vehicle, options) sub_rtmv = osdk.messenger.subscribe("rtmv", 0, callback_buf) # 3. control gimbal while True: