Beispiel #1
0
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}
Beispiel #3
0
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)
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #6
0
                    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:
Beispiel #7
0
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)
Beispiel #8
0
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: