def create_basic_mp_position_request(
        planning_frame,
        link_name,
        target_point_offset,
        planner_id):
    motion_plan_request = MotionPlanRequest()
    motion_plan_request.group_name = move_group
    motion_plan_request.num_planning_attempts = 1
    motion_plan_request.allowed_planning_time = 5.0
    motion_plan_request.workspace_parameters = WorkspaceParameters()
    motion_plan_request.max_velocity_scaling_factor = 0.5
    motion_plan_request.max_acceleration_scaling_factor = 0.5
    motion_plan_request.planner_id = planner_id

    position_constraints = []
    position_constraint = PositionConstraint()
    header = std_msgs.msg.Header()
    header.frame_id = planning_frame
    position_constraint.header = header
    position_constraint.link_name = link_name
    position_constraint.target_point_offset = target_point_offset
    position_constraints = [position_constraint]
    constraint = Constraints()
    constraint.position_constraints = position_constraints
    constraints = [constraint]
    motion_plan_request.goal_constraints = constraints
    return motion_plan_request
예제 #2
0
    def get_constraints(self, move_group):
        '''
        Creates a Constraints structure for the specified move_group based on
        current stored information.

        @param move_group   : string specifying a particular move group
        '''

        constraints = Constraints()
        constraints.joint_constraints        = self.get_joint_constraints(move_group)
        constraints.position_constraints     = self.get_position_constraints(move_group)
        constraints.orientation_constraints  = self.get_orientation_constraints(move_group)
        constraints.visibility_constraints   = self.get_visibility_constraints(move_group)
        return constraints