コード例 #1
0
ファイル: soma.py プロジェクト: seaun163/soma
    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()
コード例 #2
0
    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()
コード例 #3
0
    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)
コード例 #4
0
 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')
コード例 #5
0
 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()
コード例 #6
0
    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)
コード例 #7
0
    """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']