def loadMap(self, pointset):

        #pointset=str(sys.argv[1])
        host = rospy.get_param("datacentre_host")
        port = rospy.get_param("datacentre_port")
        client = pymongo.MongoClient(host, port)
        db=client.autonomous_patrolling
        points_db=db["waypoints"]
        available = points_db.find().distinct("meta.pointset")
        
        #print available
        if pointset not in available :
            rospy.logerr("Desired pointset '"+pointset+"' not in datacentre")
            rospy.logerr("Available pointsets: "+str(available))
            raise Exception("Can't find waypoints.")      

        #points = self._get_points(waypoints_name) 
        points = []
        search =  {"meta.pointset": pointset}
        for point in points_db.find(search) :
            a= point["meta"]["name"]
            b = topological_node(a)
            b.edges = point["meta"]["edges"]
            b.waypoint = point["meta"]["waypoint"]
            b._get_coords()
            b._insert_vertices(point["meta"]["vertices"])
            points.append(b)
        return points
Esempio n. 2
0
    def map_from_msg(self, nodes):
        #self.topol_map = msg.pointset
        points = []
        for i in nodes:
            self.map = i.map
            b = topological_node(i.name)
            edges = []
            for j in i.edges:
                data = {}
                data["node"] = j.node
                data["action"] = j.action
                edges.append(data)
            b.edges = edges
            verts = []
            for j in i.verts:
                data = [j.x, j.y]
                verts.append(data)
            b._insert_vertices(verts)
            c = i.pose
            waypoint = [
                str(c.position.x),
                str(c.position.y),
                str(c.position.z),
                str(c.orientation.x),
                str(c.orientation.y),
                str(c.orientation.z),
                str(c.orientation.w)
            ]
            b.waypoint = waypoint
            b._get_coords()
            points.append(b)

        return points
Esempio n. 3
0
    def loadMap(self, pointset):

        #pointset=str(sys.argv[1])
        host = rospy.get_param("datacentre_host")
        port = rospy.get_param("datacentre_port")
        client = pymongo.MongoClient(host, port)
        db = client.autonomous_patrolling
        points_db = db["waypoints"]
        available = points_db.find().distinct("meta.pointset")

        #print available
        if pointset not in available:
            rospy.logerr("Desired pointset '" + pointset +
                         "' not in datacentre")
            rospy.logerr("Available pointsets: " + str(available))
            raise Exception("Can't find waypoints.")

        #points = self._get_points(waypoints_name)
        points = []
        search = {"meta.pointset": pointset}
        for point in points_db.find(search):
            a = point["meta"]["name"]
            b = topological_node(a)
            b.edges = point["meta"]["edges"]
            b.waypoint = point["meta"]["waypoint"]
            b._get_coords()
            b._insert_vertices(point["meta"]["vertices"])
            points.append(b)
        return points
    def map_from_msg(self, nodes):
        #self.topol_map = msg.pointset
        points = []
        for i in nodes :
            self.map = i.map
            b = topological_node(i.name)
            edges = []
            for j in i.edges :
                data = {}
                data["node"]=j.node
                data["action"]=j.action
                edges.append(data)
            b.edges = edges
            verts = []
            for j in i.verts :
                data = [j.x,j.y]
                verts.append(data)
            b._insert_vertices(verts)
            c=i.pose
            waypoint=[str(c.position.x), str(c.position.y), str(c.position.z), str(c.orientation.x), str(c.orientation.y), str(c.orientation.z), str(c.orientation.w)]
            b.waypoint = waypoint
            b._get_coords()
            points.append(b)

        return points
Esempio n. 5
0
    def loadMap(self, point_set):
        msg_store = MessageStoreProxy(collection='topological_maps')

        query_meta = {}
        query_meta["pointset"] = point_set

        available = len(msg_store.query(TopologicalNode._type, {},
                                        query_meta)) > 0

        if available <= 0:
            rospy.logerr("Desired pointset '" + point_set +
                         "' not in datacentre")
            rospy.logerr("Available pointsets: " + str(available))
            raise Exception("Can't find waypoints.")

        else:
            query_meta = {}
            query_meta["pointset"] = point_set

            message_list = msg_store.query(TopologicalNode._type, {},
                                           query_meta)

            points = []
            for i in message_list:
                self.map = i[0].map
                b = topological_node(i[0].name)
                edges = []
                for j in i[0].edges:
                    data = {}
                    data["node"] = j.node
                    data["action"] = j.action
                    edges.append(data)
                b.edges = edges

                verts = []
                for j in i[0].verts:
                    data = [j.x, j.y]
                    verts.append(data)
                b._insert_vertices(verts)

                c = i[0].pose
                waypoint = [
                    str(c.position.x),
                    str(c.position.y),
                    str(c.position.z),
                    str(c.orientation.x),
                    str(c.orientation.y),
                    str(c.orientation.z),
                    str(c.orientation.w)
                ]
                b.waypoint = waypoint
                b._get_coords()

                points.append(b)

            return points
    def loadMap(self, point_set):

        point_set=str(sys.argv[1])
        #map_name=str(sys.argv[3])

        msg_store = MessageStoreProxy(collection='topological_maps')

        query_meta = {}
        query_meta["pointset"] = point_set

        available = len(msg_store.query(TopologicalNode._type, {}, query_meta)) > 0

        print available

        if available <= 0 :
            rospy.logerr("Desired pointset '"+point_set+"' not in datacentre")
            rospy.logerr("Available pointsets: "+str(available))
            raise Exception("Can't find waypoints.")

        else :
            query_meta = {}
            query_meta["pointset"] = point_set

            message_list = msg_store.query(TopologicalNode._type, {}, query_meta)

            points = []
            for i in message_list:
                #print i[0].name
                b = topological_node(i[0].name)
                edges = []
                for j in i[0].edges :
                    data = {}
                    data["node"]=j.node
                    data["action"]=j.action
                    edges.append(data)
                b.edges = edges

                verts = []
                for j in i[0].verts :
                    data = [j.x,j.y]
                    verts.append(data)
                b._insert_vertices(verts)

                c=i[0].pose
                waypoint=[str(c.position.x), str(c.position.y), str(c.position.z), str(c.orientation.x), str(c.orientation.y), str(c.orientation.z), str(c.orientation.w)]
                b.waypoint = waypoint
                b._get_coords()

                points.append(b)

            return points
Esempio n. 7
0
    def loadMap(self, pointset):

        pointset = str(sys.argv[1])
        host = rospy.get_param("datacentre_host")
        port = rospy.get_param("datacentre_port")
        print "Using datacentre  ", host, ":", port
        self.mongo_client = pymongo.MongoClient(host, port)
        db = self.mongo_client.autonomous_patrolling
        points_db = db["waypoints"]

        self._stats_collection = db.nav_stats

        available = points_db.find().distinct("meta.pointset")
        #print available

        if pointset not in available:
            rospy.logerr("Desired pointset '" + pointset +
                         "' not in datacentre")
            rospy.logerr("Available pointsets: " + str(available))
            raise Exception("Can't find waypoints.")

        points = []
        search = {"meta.pointset": pointset}
        for point in points_db.find(search):
            a = point["meta"]["name"]
            b = topological_node(a)
            b.edges = point["meta"]["edges"]
            b.waypoint = point["meta"]["waypoint"]
            points.append(b)

        #print "Actions Needed"
        for i in points:
            for k in i.edges:
                j = k['action']
                if j not in self.actions_needed:
                    self.actions_needed.append(j)
        return points
Esempio n. 8
0
    def loadMap(self, pointset):

        pointset=str(sys.argv[1])
        host = rospy.get_param("datacentre_host")
        port = rospy.get_param("datacentre_port")
        print "Using datacentre  ",host,":", port
        self.mongo_client = pymongo.MongoClient(host, port)
        db=self.mongo_client.autonomous_patrolling
        points_db=db["waypoints"]
        
        self._stats_collection = db.nav_stats
        
        available = points_db.find().distinct("meta.pointset")
        #print available
        
        if pointset not in available :
            rospy.logerr("Desired pointset '"+pointset+"' not in datacentre")
            rospy.logerr("Available pointsets: "+str(available))
            raise Exception("Can't find waypoints.")
        
        points = []
        search =  {"meta.pointset": pointset}
        for point in points_db.find(search) :
            a= point["meta"]["name"]
            b = topological_node(a)
            b.edges = point["meta"]["edges"]
            b.waypoint = point["meta"]["waypoint"]
            points.append(b)

        #print "Actions Needed"
        for i in points:
            for k in i.edges :
                j = k['action']
                if j not in self.actions_needed:
                    self.actions_needed.append(j)
        return points