def create_spoofs(self):
        sg = SpoofGenerator()
        empty = PerceptionObjectArray()
        stc = PerceptionObjectArray()
        stc_shooter = PerceptionObjectArray()
        stc_obj = PerceptionObject()
        stc_obj.name = "scan_the_code"
        shooter_obj = PerceptionObject()
        shooter_obj.name = "shooter"
        empty.objects = []
        stc.objects = [stc_obj]
        stc_shooter.objects = [stc_obj, shooter_obj]
        empty_resp = ObjectDBQueryResponse()
        stc_resp = ObjectDBQueryResponse()
        stc_resp.objects = [stc_obj]
        stc_resp.found = True
        self.service = sg.spoof_service("/database/requests", ObjectDBQuery, [empty_resp])
        self.service_missing = sg.spoof_service("/database/requests", ObjectDBQuery,
                                                [stc_resp, empty_resp, empty_resp, stc_resp])

        self.pub_base_mission = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [empty, stc], [5, 1000])
        self.pub_normal_1 = sg.spoof_publisher("/database/objects", PerceptionObjectArray,
                                               [empty, stc, stc_shooter], [5, 5, 100])
        self.pub_normal_2 = sg.spoof_publisher("/database/objects", PerceptionObjectArray,
                                               [empty, stc, stc_shooter], [5, 5, 100])
        self.pub_fail_mission = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [], [])
        self.pub_missing_objects = sg.spoof_publisher(
            "/database/objects", PerceptionObjectArray, [stc, empty, stc], [4, 10, 100])
        self.timeout = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [], [])
        self.obj_appear = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [empty, stc], [3, 10000])
Esempio n. 2
0
    def position_to_object(self, position, color, id,  name="totem"):
        obj = PerceptionObject()
        obj.id = int(id)
        obj.header = navigator_tools.make_header(frame="enu")
        obj.name = name
        obj.position = navigator_tools.numpy_to_point(position)
        obj.color.r = color[0]
        obj.color.g = color[1]
        obj.color.b = color[2]
        obj.color.a = 1

        return obj
Esempio n. 3
0
    def create_spoofs(self):
        sg = SpoofGenerator()
        empty = PerceptionObjectArray()
        stc = PerceptionObjectArray()
        stc_shooter = PerceptionObjectArray()
        stc_obj = PerceptionObject()
        stc_obj.name = "scan_the_code"
        shooter_obj = PerceptionObject()
        shooter_obj.name = "shooter"
        empty.objects = []
        stc.objects = [stc_obj]
        stc_shooter.objects = [stc_obj, shooter_obj]
        empty_resp = ObjectDBQueryResponse()
        stc_resp = ObjectDBQueryResponse()
        stc_resp.objects = [stc_obj]
        service = sg.spoof_service("/database/requests", ObjectDBQuery, [empty_resp])
        yield service.start(self.nh)

        self.pub_base_mission = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [empty, stc], [5, 1000])
        self.pub_normal_1 = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [empty, stc, stc_shooter], [5, 5, 100])
        self.pub_normal_2 = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [empty, stc, stc_shooter], [5, 5, 100])
        self.pub_fail_mission = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [], [])
        self.pub_missing_objects = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [stc, empty, stc], [4, 10, 100])
        self.timeout = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [], [])
        self.obj_appear = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [empty, stc], [3, 10000])
Esempio n. 4
0
    def position_to_object(self, position, color, id, name="totem"):
        obj = PerceptionObject()
        obj.id = int(id)
        obj.header = navigator_tools.make_header(frame="enu")
        obj.name = name
        obj.position = navigator_tools.numpy_to_point(position)
        obj.color.r = color[0]
        obj.color.g = color[1]
        obj.color.b = color[2]
        obj.color.a = 1

        return obj
Esempio n. 5
0
    def create_spoofs(self):
        sg = SpoofGenerator()
        empty = PerceptionObjectArray()
        stc = PerceptionObjectArray()
        stc_shooter = PerceptionObjectArray()

        stc_obj = PerceptionObject()
        stc_obj.name = "ScanTheCode"
        stc_obj.position = Point(1, 1, 1)
        shooter_obj = PerceptionObject()
        shooter_obj.name = "Shooter"
        shooter_obj.position = Point(2, 2, 2)

        empty.objects = []
        stc.objects = [stc_obj]
        stc_shooter.objects = [stc_obj, shooter_obj]

        empty_resp = ObjectDBQueryResponse()
        all_marker = ObjectDBQueryResponse()
        stc_response = ObjectDBQueryResponse()
        shooter_response = ObjectDBQueryResponse()

        all_marker.found = True

        all_marker.objects = [stc_obj, shooter_obj]
        all_marker.found = True

        stc_response.objects = [stc_obj]
        stc_response.found = True

        shooter_response.objects = [shooter_obj]
        shooter_response.found = True

        odom = Odometry()
        odom.pose.pose.position = Point(0, 0, 0)

        self.pub_base_mission = sg.spoof_publisher("/odom", Odometry, [odom], [100000])

        self.serv_empty = sg.spoof_service("/database/requests", ObjectDBQuery, [empty_resp])

        self.serv_markers = sg.spoof_service("/database/requests", ObjectDBQuery, [all_marker])

        self.serv_normal_mission = sg.spoof_service(
            "/database/requests",
            ObjectDBQuery,
            [
                stc_response,
                shooter_response,
                stc_response,
                stc_response,
                shooter_response,
                shooter_response,
                stc_response,
            ],
        )

        self.serv_missing_marker = sg.spoof_service(
            "/database/requests",
            ObjectDBQuery,
            [
                empty_resp,
                stc_response,
                shooter_response,
                stc_response,
                stc_response,
                shooter_response,
                shooter_response,
                stc_response,
            ],
        )

        self.markers = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [stc_shooter], [1000])

        self.empty = sg.spoof_publisher("/database/objects", PerceptionObjectArray, [empty], [1000])
Esempio n. 6
0
    def create_spoofs(self):
        sg = SpoofGenerator()
        empty = PerceptionObjectArray()
        stc = PerceptionObjectArray()
        stc_shooter = PerceptionObjectArray()

        stc_marker_obj = PerceptionObject()
        stc_marker_obj.name = "Scan_The_Code"
        stc_marker_obj.position = Point(1, 1, 1)
        shooter_marker_obj = PerceptionObject()
        shooter_marker_obj.name = "Shooter"
        shooter_marker_obj.position = Point(2, 2, 2)

        stc_obj = PerceptionObject()
        stc_obj.name = "scan_the_code"
        stc_obj.position = Point(1, 1, 1)
        shooter_obj = PerceptionObject()
        shooter_obj.name = "shooter"
        shooter_obj.position = Point(2, 2, 2)

        empty.objects = []
        stc.objects = [stc_marker_obj]
        stc_shooter.objects = [stc_marker_obj, shooter_marker_obj]

        empty_resp = ObjectDBQueryResponse()
        all_marker = ObjectDBQueryResponse()
        stc_response = ObjectDBQueryResponse()
        shooter_response = ObjectDBQueryResponse()

        all_marker.found = True

        all_marker.objects = [stc_marker_obj, shooter_marker_obj]
        all_marker.found = True

        stc_response.objects = [stc_marker_obj]
        stc_response.found = True

        shooter_response.objects = [shooter_marker_obj]
        shooter_response.found = True

        odom = Odometry()
        odom.pose.pose.position = Point(0, 0, 0)

        self.pub_base_mission = sg.spoof_publisher("/odom", Odometry, [odom],
                                                   [100000])

        self.serv_empty = sg.spoof_service("/database/requests", ObjectDBQuery,
                                           [empty_resp])

        self.serv_markers = sg.spoof_service("/database/requests",
                                             ObjectDBQuery, [all_marker])
        self.serv_markers_empty = sg.spoof_service(
            "/database/requests", ObjectDBQuery, [
                empty_resp, all_marker, all_marker, all_marker, all_marker,
                all_marker, all_marker, all_marker, all_marker, all_marker,
                all_marker, all_marker, all_marker, all_marker, all_marker,
                all_marker, all_marker
            ])

        # self.missing_marker = sg.spoof_service("/database/requests", ObjectDBQuery, [stc_response,
        #                                                                                   shooter_response,
        #                                                                                   stc_response,
        #                                                                                   stc_response,
        #                                                                                   shooter_response,
        #                                                                                   shooter_response,
        #                                                                                   stc_response])

        # self.serv_missing_marker = sg.spoof_service("/database/requests", ObjectDBQuery, [empty_resp,
        #                                                                                   stc_response,
        #                                                                                   shooter_response,
        #                                                                                   stc_response,
        #                                                                                   stc_response,
        #                                                                                   shooter_response,
        #                                                                                   shooter_response,
        #                                                                                   stc_response])

        self.markers = sg.spoof_publisher("/database/objects",
                                          PerceptionObjectArray, [stc_shooter],
                                          [1000])

        self.empty = sg.spoof_publisher("/database/objects",
                                        PerceptionObjectArray, [empty], [1000])