def Execute_Mission():
    global GetInfoFlag, GetKeyFlag, ExecuteFlag, MotionKey, MotionStep, MotionSerialKey, MissionEndFlag, CurrentMissionType, Strategy_flag, Arm_state_flag
    # print("strategy :" ,Strategy_flag)
    # print("state  :" ,Arm_state_flag)
    # if Arm_state_flag == 0 and Strategy_flag == 1:
    #     Strategy_flag = 0
    if ArmTask.Arm_state_flag.Arm_feedback == 0 and ArmTask.Strategy_state_flag.Strategy_feedback == 1:
        print(11111)
        ArmTask.Strategy_state_flag(0)
        if MotionKey[MotionStep] == ArmMotionCommand.Arm_Stop:
            if MissionEndFlag == True:
                CurrentMissionType = MissionType.Mission_End
                GetInfoFlag = False
                GetKeyFlag = False
                ExecuteFlag = False
                print("Mission_End")
            elif CurrentMissionType == MissionType.PushBall:
                GetInfoFlag = False
                GetKeyFlag = True
                ExecuteFlag = False
                MotionStep = 0
                print("PushBall")
            else:
                GetInfoFlag = True
                GetKeyFlag = False
                ExecuteFlag = False
                MotionStep = 0
        else:
            MotionItem(MotionSerialKey[MotionStep])
            MotionStep += 1
def MotionItem(ItemNo):
    global angle_SubCue, SpeedValue, PushFlag, LinePtpFlag, MissionEndFlag
    SpeedValue = 5
    for case in switch(ItemNo):  #傳送指令給socket選擇手臂動作
        if case(ArmMotionCommand.Arm_Stop):
            MoveFlag = False
            print("Arm_Stop")
            break
        if case(ArmMotionCommand.Arm_StopPush):
            MoveFlag = False
            PushFlag = True  #重新掃描物件
            print("Arm_StopPush")
            break
        if case(ArmMotionCommand.Arm_MoveToTargetUpside):
            pos.x = 10
            pos.y = 36.8
            pos.z = 11.35
            pos.pitch = -90
            pos.roll = 0
            pos.yaw = 10
            MoveFlag = True
            LinePtpFlag = False
            SpeedValue = 10
            print("Arm_MoveToTargetUpside")
            break
        if case(ArmMotionCommand.Arm_LineUp):
            pos.z = ObjAboveHeight
            MoveFlag = True
            LinePtpFlag = True
            SpeedValue = 5
            print("Arm_LineUp")
            break
        if case(ArmMotionCommand.Arm_LineDown):
            pos.z = PushBallHeight
            MoveFlag = True
            LinePtpFlag = True
            SpeedValue = 5
            print("Arm_LineDown")
            break
        if case(ArmMotionCommand.Arm_PushBall):
            pos.x = -10
            pos.y = 36.8
            pos.z = 11.35
            pos.pitch = -90
            pos.roll = 0
            pos.yaw = -10
            SpeedValue = 10  ##待測試up
            MoveFlag = True
            LinePtpFlag = False
            print("Arm_PushBall")
            break
        if case(ArmMotionCommand.Arm_MoveVision):
            pos.x = 0
            pos.y = 36.8
            pos.z = 11.35
            pos.pitch = -90
            pos.roll = 0
            pos.yaw = 0
            SpeedValue = 10
            MoveFlag = True
            LinePtpFlag = False
            ##任務結束旗標
            MissionEndFlag = True
            print("Arm_MoveVision")
            break
        if case(ArmMotionCommand.Arm_MoveFowardDown):
            pos.x = 0
            pos.y = 36.8
            pos.z = 11.35
            pos.pitch = -90
            pos.roll = 0
            pos.yaw = 0
            MoveFlag = True
            LinePtpFlag = False
            print("Arm_MoveFowardDown")
            break
        if case():  # default, could also just omit condition or 'if True'
            print("something else!")
            # No need to break here, it'll stop anyway
    if MoveFlag == True:
        if LinePtpFlag == False:
            print('x: ', pos.x, ' y: ', pos.y, ' z: ', pos.z, ' pitch: ',
                  pos.pitch, ' roll: ', pos.roll, ' yaw: ', pos.yaw)
            #strategy_client_Arm_Mode(0,1,0,30,2)#action,ra,grip,vel,both
            ArmTask.strategy_client_Arm_Mode(2, 1, 0, SpeedValue,
                                             2)  #action,ra,grip,vel,both
            ArmTask.strategy_client_pos_move(pos.x, pos.y, pos.z, pos.pitch,
                                             pos.roll, pos.yaw)
        elif LinePtpFlag == True:
            #strategy_client_Arm_Mode(0,1,0,40,2)#action,ra,grip,vel,both
            print('x: ', pos.x, ' y: ', pos.y, ' z: ', pos.z, ' pitch: ',
                  pos.pitch, ' roll: ', pos.roll, ' yaw: ', pos.yaw)
            ArmTask.strategy_client_Arm_Mode(3, 1, 0, SpeedValue,
                                             2)  #action,ra,grip,vel,both
            ArmTask.strategy_client_pos_move(pos.x, pos.y, pos.z, pos.pitch,
                                             pos.roll, pos.yaw)
            print('x: ', pos.x, ' y: ', pos.y, ' z: ', pos.z, ' pitch: ',
                  pos.pitch, ' roll: ', pos.roll, ' yaw: ', pos.yaw)
            ArmTask.strategy_client_Arm_Mode(3, 1, 0, SpeedValue,
                                             2)  #action,ra,grip,vel,both
            ArmTask.strategy_client_pos_move(pos.x, pos.y, pos.z, pos.pitch,
                                             pos.roll, pos.yaw)
    #action: ptp line
    #ra : abs rel
    #grip 夾爪
    #vel speed
    #both : Ctrl_Mode


##-------------strategy end ------------
def myhook():
    print("shutdown time!")


if __name__ == '__main__':
    argv = rospy.myargv()
    rospy.init_node('strategy', anonymous=True)
    GetInfoFlag = True  #Test no data
    arm_state_server()
    ArmTask.strategy_client_Arm_Mode(0, 1, 0, 20, 2)  #action,ra,grip,vel,both
    while 1:
        Mission_Trigger()
        if CurrentMissionType == MissionType.Mission_End:
            ArmTask.rospy.on_shutdown(myhook)
            ArmTask.rospy.spin()
    rospy.spin()
Пример #4
0
            strategy.strategy_client_Arm_Mode(3, 1, 0, SpeedValue,
                                              2)  #action,ra,grip,vel,both
            strategy.strategy_client_pos_move(pos.x, pos.y, pos.z, pos.pitch,
                                              pos.roll, pos.yaw)
    #action: ptp line
    #ra : abs rel
    #grip 夾爪
    #vel speed
    #both : Ctrl_Mode


##-------------strategy end ------------
def myhook():
    print("shutdown time!")


if __name__ == '__main__':
    argv = rospy.myargv()
    rospy.init_node('strategy', anonymous=True)
    GetInfoFlag = True  #Test no data
    strategy.strategy_client_Arm_Mode(0, 1, 0, 20, 2)  #action,ra,grip,vel,both
    strategy.strategy_client_Speed_Mode(1)
    strategy.strategy_client_Arm_Mode(4, 1, 0, SpeedValue,
                                      2)  #action,ra,grip,vel,both
    while 1:
        Mission_Trigger()
        if CurrentMissionType == MissionType.Mission_End:
            strategy.rospy.on_shutdown(myhook)
            strategy.rospy.spin()
    rospy.spin()
                  pos.pitch, ' roll: ', pos.roll, ' yaw: ', pos.yaw)
            strategy.strategy_client_Arm_Mode(3, 1, 0, SpeedValue,
                                              2)  #action,ra,grip,vel,both
            strategy.strategy_client_pos_move(pos.x, pos.y, pos.z, pos.pitch,
                                              pos.roll, pos.yaw)
    #action: ptp line
    #ra : abs rel
    #grip 夾爪
    #vel speed
    #both : Ctrl_Mode


##-------------strategy end ------------
def myhook():
    print("shutdown time!")


if __name__ == '__main__':
    argv = rospy.myargv()
    rospy.init_node('ros_socket', anonymous=True)
    strategy.strategy_server()

    GetInfoFlag = True  #Test no data
    strategy.strategy_client_Arm_Mode(0, 1, 0, 20, 2)  #action,ra,grip,vel,both
    while 1:
        Mission_Trigger()
        if CurrentMissionType == MissionType.Mission_End:
            rospy.on_shutdown(myhook)
            #rospy.spin()
    rospy.spin()
                  pos.pitch, ' roll: ', pos.roll, ' yaw: ', pos.yaw)
            strategy.strategy_client_Arm_Mode(3, 1, 0, SpeedValue,
                                              2)  #action,ra,grip,vel,both
            strategy.strategy_client_pos_move(pos.x, pos.y, pos.z, pos.pitch,
                                              pos.roll, pos.yaw)
    #action: ptp line
    #ra : abs rel
    #grip 夾爪
    #vel speed
    #both : Ctrl_Mode


##-------------strategy end ------------
def myhook():
    print("shutdown time!")


if __name__ == '__main__':
    argv = rospy.myargv()
    rospy.init_node('ros_socket', anonymous=True)
    strategy.strategy_server()

    GetInfoFlag = True  #Test no data
    strategy_client_Arm_Mode(0, 1, 0, 20, 2)  #action,ra,grip,vel,both
    while 1:
        Mission_Trigger()
        if CurrentMissionType == MissionType.Mission_End:
            rospy.on_shutdown(myhook)
            #rospy.spin()
    rospy.spin()