스윙트래커

스윙체크 하는 방법 : 쿼터니언 or 자이로값

ZEROWIN.TECH 2020. 5. 25. 18:07
728x90

스윙을 체크하는 방법을 자이로값으로 라켓의 속도로 하는 방법과 쿼터니언으로 백스윙/전진스윙을 인식하는 방법을 옵션으로 설정하려고 합니다.

 

단일 스윙 판단

스윙 하나를 백스윙과 전진스윙을 체크하는데에는 쿼터니언을 이용한 스윙체크가 좋을것 같습니다.

 

연속 스윙 판단

연속으로 빠르게 스윙을 판단해야 하는 상황에는 자이로/가속도 값을 이용하여 일정 속도가 넘으면 스윙으로 판단하는 것이 나을것 같습니다.

 

 

옵션 설정

옵션 설정메뉴에 자이로 또는 쿼터니언 변경할수 있게 추가한다.

 

 

스윙 판단 함수

쿼터니언 모드일경우 전진스윙 판단합니다.

 private boolean CheckSideByQuarternion() {

       

        if (MainActivity_tab.howToCheckSwing == M_BLUETOOTH_CHECK_ACCELGYRO) {
            return true;

        }
        else if (MainActivity_tab.howToCheckSwing == M_BLUETOOTH_CHECK_QUARTERNION) {

            if (30 < sbSide.getProgress() && sbSide.getProgress() < 70) {// zwin 백스윙후 전진 스윙이 왔을 때를 체크함.

                return true;
            }
        }


        return false;
    }

자이로/가속도 모드일경우 일정 속도를 넘었는지 판단합니다.

 

    void checkSwingReady(int ax, int ay)
    {

        if( abs(ay) < 500) {
            iSwingReady += 1;
            if(3 < iSwingReady) {

                if(bSwingReady == false)
                {
                    bSwingReady = true;
                    //beepSound();
                }

                m_tvRating.setBackgroundColor(Color.rgb(0, 0, 0xdd));

                // iSwingReady = 0;
            }
        }

        else {
            iSwingReady = 0;

            if(bSwingData == true) {
                m_tvRating.setBackgroundColor(Color.rgb(0, 0xdd, 0));
            }
            else {
                m_tvRating.setBackgroundColor(Color.rgb(0xdd, 0, 0));
            }
        }

    }
    Boolean isSwingReady()
    {
        if(MainActivity_tab.howToCheckSwing == M_BLUETOOTH_CHECK_ACCELGYRO)
        {
            return bSwingReady;
        }
        else {
            return true;
        }
    }

테스트 동영상

시합모드입니다.

스윙체크를 가속도/자이로를 이용하여 속도로 체크합니다.

 

 

기초 연습모드입니다.

쿼터니언을 이용하여 스윙을 체크합니다.

백스윙을 체크하여 유효한 스윙에서 제외합니다.

 

 

'스윙트래커' 카테고리의 다른 글

스윙연습 유니티 프로그래밍  (0) 2020.06.06
DTW 비교데이터 상한선 설정  (0) 2020.05.29
Android + Unity - Scene 변경시 데이터 전달 오류  (0) 2020.05.21
Chorei Activity 구현  (0) 2020.05.17
Chorei 앱 개발  (0) 2020.05.16