def __init__(self, soma_map, soma_conf, config_file=None): self.soma_map = soma_map self.soma_conf = soma_conf if config_file: self._config_file = config_file else: # default file rp = RosPack() path = rp.get_path('soma_objects') + '/config/' filename = 'default.json' self._config_file=path+filename self._soma_obj_ids = dict() self._soma_obj_msg = dict() self._interactive = True self._msg_store=MessageStoreProxy(collection="soma") self._gs_store=GeoSpatialStoreProxy(db="geospatial_store", collection="soma") self._server = InteractiveMarkerServer("soma") self._init_types() self._init_menu() self.load_objects() rospy.spin()
def __init__(self, name, soma_map, soma_config, minute_interval, window_interval, collection="occurrence_rates"): self.topo_map = None self.soma_map = soma_map self.soma_config = soma_config self.minute_interval = minute_interval self.window_interval = window_interval self.rotm = RegionObservationTimeManager(soma_map, soma_config) self.tre = TrajectoryRegionEstimate(soma_map, soma_config, minute_interval) self.tof = TrajectoryOccurrenceFrequencies( soma_map, soma_config, minute_interval=minute_interval, window_interval=window_interval) self.gs = GeoSpatialStoreProxy('geospatial_store', 'soma') rospy.loginfo("Connect to database collection %s..." % collection) self._ms = MessageStoreProxy(collection=collection) self._soma_db = MessageStoreProxy(collection="soma_roi") rospy.loginfo("Create a service %s/service..." % name) self.service = rospy.Service(name + '/service', TrajectoryOccurrenceRate, self.srv_cb) rospy.loginfo("Create an action server %s..." % name) self._as = actionlib.SimpleActionServer(name, OccurrenceRateLearningAction, execute_cb=self.execute, auto_start=False) self._as.start()
def __init__(self): self.gs = GeoSpatialStoreProxy('geospatial_store', 'soma') self.ms = MessageStoreProxy(collection="people_trajectory") # setting up the service self.ser = rospy.Service('/trajectory_query', TrajectoryQuery, self.service_cb) self.topic = 'trajectory_query' self.vis = TrajectoryVisualizer(self.topic)
def __init__(self, soma_map, soma_config, minute_interval=60): self.soma_map = soma_map self.soma_config = soma_config self.minute_interval = minute_interval self.region_knowledge = RegionObservationTimeManager( soma_map, soma_config) # Service and Proxy rospy.loginfo("Connecting to geospatial_store and roslog database...") self.gs = GeoSpatialStoreProxy('geospatial_store', 'soma')
def __init__(self, soma_map, soma_config): self.soma_map = soma_map self.soma_config = soma_config self.ms = MessageStoreProxy(collection="region_observation_time") self.gs = GeoSpatialStoreProxy('geospatial_store', 'soma') self.roslog = pymongo.MongoClient( rospy.get_param("mongodb_host", "localhost"), rospy.get_param("mongodb_port", 62345) ).roslog.robot_pose self.reinit()
def __init__(self, online): self._traj = dict() rospy.loginfo("Connecting to mongodb...") self.gs = GeoSpatialStoreProxy('geospatial_store', 'soma') if not online: # self._client = pymongo.MongoClient(rospy.get_param("mongodb_host"), # rospy.get_param("mongodb_port")) # self._store_client = MessageStoreProxy( # collection="people_trajectory" # ) self._traj = dict() trajs = OfflineTrajectories() for uuid, traj in trajs.traj.iteritems(): self._traj[uuid] = traj.get_trajectory_message() else: rospy.loginfo("Subscribing to /human_trajectories/trajectories...") rospy.Subscriber("/human_trajectories/trajectories/complete", Trajectories, self.traj_callback, None, queue_size=10)
"""Recursively converts dictionary keys to strings.""" if isinstance(dictionary, unicode): return str(dictionary) elif isinstance(dictionary, list): return dictionary return dict( (str(k), convert_keys_to_string(v)) for k, v in dictionary.items()) if __name__ == "__main__": global __out __out = True rospy.init_node("trajectory_obtainer") rospy.loginfo("Running trajectoy/ROI query ") gs = GeoSpatialStoreProxy('geospatial_store', 'soma') soma_map = 'uob_library' soma_config = 'uob_lib_conf' cnt = 0 for roi in gs.roi_ids(soma_map, soma_config): cnt += 1 print 'ROI: ', gs.type_of_roi(roi, soma_map, soma_config), roi geom = gs.geom_of_roi(roi, soma_map, soma_config) res = gs.objs_within_roi(geom, soma_map, soma_config) if res == None: print "No Objects in this Region" continue objects_in_roi = {} for i in res: key = i['type'] + '_' + i['soma_id']