Example #1
0
    def test5_1(self):
        '''
        3 single unknowns
        '''
        m = Map(2)
        self.assertTrue(m.get_percent_cleared() == 0.0, m.get_percent_cleared())

        m = self.make_free_map()
        self.assertTrue(m.get_percent_cleared() == 1.0, m.get_percent_cleared())

        m.get_cell_by_index(3,4).set_unknown()
        self.assertTrue(m.get_percent_cleared() < 1.0, m.get_percent_cleared())
Example #2
0
 def _handle_scan_map(self, req):
     taskdata = req.taskdata
     rospy.loginfo('Scanning map')
     utils.map = Map(2)
     self._scan_map()
     return TaskDataServiceResponse(taskdata=taskdata,
                                    result=self.RETURN_VAL_MAP_SCANNED)
Example #3
0
 def _handle_add_point_cloud(self, req):
     if utils.map is None:
         utils.map = Map(2)
     if req.arm_origin is not None:
         print(req.arm_origin)
         utils.map.add_point_cloud(req.arm_origin, scene_cam=req.scenecam)
     else:
         utils.map.add_point_cloud(scene_cam=req.scenecam)
     return AddPointCloudResponse()
Example #4
0
    def test5_1(self):
        '''
        3 single unknowns
        '''
        m = Map(2)
        self.assertTrue(m.get_percent_cleared() == 0.0,
                        m.get_percent_cleared())

        m = self.make_free_map()
        self.assertTrue(m.get_percent_cleared() == 1.0,
                        m.get_percent_cleared())

        m.get_cell_by_index(3, 4).set_unknown()
        self.assertTrue(m.get_percent_cleared() < 1.0, m.get_percent_cleared())
Example #5
0
    def execute(self, userdata):
        rospy.loginfo('Executing state ScanMapMastCam')
        if utils.manipulation is None:
            utils.manipulation = Manipulation(userdata.yaml)
            rospy.sleep(2)

        utils.map = Map(2)
        # arm_base = utils.manipulation.get_base_origin()
        # rospy.sleep(4)

        utils.manipulation.pan_tilt(0.2, 0.5)
        rospy.sleep(utils.waiting_time_before_scan)
        utils.map.add_point_cloud(scene_cam=True)

        utils.manipulation.pan_tilt(0.2825, 0.775)
        rospy.sleep(utils.waiting_time_before_scan)
        utils.map.add_point_cloud(scene_cam=True)

        utils.manipulation.pan_tilt(0, 1.1)
        rospy.sleep(utils.waiting_time_before_scan)
        utils.map.add_point_cloud(scene_cam=True)

        utils.manipulation.pan_tilt(-0.2825, 0.775)
        rospy.sleep(utils.waiting_time_before_scan)
        utils.map.add_point_cloud(scene_cam=True)

        utils.manipulation.pan_tilt(-0.2, 0.5)
        rospy.sleep(utils.waiting_time_before_scan)
        utils.map.add_point_cloud(scene_cam=True)
        utils.manipulation.pan_tilt(0, 0.45)

        if not userdata.enable_movement:
            return 'mapScanned'

        co = utils.map.to_collision_object()
        utils.manipulation.get_planning_scene().add_object(co)
        # utils.manipulation.get_planning_scene().add_object(co)
        rospy.sleep(2)
        n = 8
        for i in range(0, n):
            a = 2 * pi * ((i + 0.0) / (n + 0.0))

            goal_base_pose = PoseStamped()
            goal_base_pose.header.frame_id = "/odom_combined"

            goal_base_pose.pose.position = Point(cos(a), sin(a), 0)
            if goal_base_pose.pose.position.x < 0 and goal_base_pose.pose.position.y < 0 or \
                                    goal_base_pose.pose.position.x > 0 and goal_base_pose.pose.position.y > 0:
                continue

            goal_base_pose.pose.position = set_vector_length(
                0.25, goal_base_pose.pose.position)

            goal_base_pose.pose.orientation.w = 1

            if utils.manipulation.move_base(goal_base_pose):
                rospy.sleep(utils.waiting_time_before_scan)
                utils.map.add_point_cloud(
                    arm_origin=utils.manipulation.get_base_origin().point,
                    scene_cam=True)
                break

        # utils.map.add_point_cloud(arm_origin=arm_base, scene_cam=True)
        # utils.map.add_point_cloud(arm_origin=arm_base, scene_cam=True)

        # utils.map.publish_as_marker()

        if userdata.yaml.task_type == Task.TASK_5:
            utils.map.all_unknowns_to_obstacle()
            #utils.map.remove_puzzle_fixture(userdata.yaml)

        co = utils.map.to_collision_object()
        utils.manipulation.get_planning_scene().add_object(co)
        return 'mapScanned'
Example #6
0
 def make_free_map(self):
     m = Map(2)
     for x in xrange(m.num_of_cells):
         for y in xrange(m.num_of_cells):
             m.get_cell_by_index(x,y).set_free()
     return m
Example #7
0
 def make_free_map(self):
     m = Map(2)
     for x in xrange(m.num_of_cells):
         for y in xrange(m.num_of_cells):
             m.get_cell_by_index(x, y).set_free()
     return m