sharksym's MSX World

sharksym.egloos.com

포토로그


구글 애드센스 (블로그 기본)


[안드로이드] 리얼 레이싱 3 - 오토파일럿 ?? by sharksym

BlueStacks를 아시나요?

BlueStacks는 안드로이드 앱을 구동해주는 윈도 용 프로그램인데요.
일반 안드로이드 기기 쓰는 것과 거의 동일한 환경을 제공합니다.
(마우스로 멀티 터치가 안되서 좀 불편하던데... 따로 방법이 있는지는 몰겠네요.)

암튼 이걸로 리얼 레이싱을 구동해서, 자동으로 서킷을 달리게 만들 수 있지않을까.. 뭐 그런 생각을 해봤습니다. ㅎ.ㅎㅋ

BlueStacks는 일반 안드로이드 기기처럼 adb 툴이 동작하는데요.
폰/태블릿 등의 실제 안드로이드 기기는 대게 USB를 연결해서 adb 사용하는데,
BlueStacks의 경우는 네트웍으로 adb 사용이 가능합니다. 만세~ ㅋ

아래처럼 adb connect 명령을 쓰면, device로 등록이 됩니다.

adb connect 127.0.0.1:5555


대충 서론을 접고, Visual Sudio Express 띄워서 바로 코딩으로 들어갔습니다.

리얼 레이싱 3에서 카메라 설정을 "본넷 뷰"로 하게 되면,
화면 왼쪽 상단에 미니맵이 표시되는데요.
요걸 프로그램이 인식하게 만드는 것이지요.

일단 인식률이 높이기 위해 아래처럼, 미니맵을 빨간색으로 표시하도록 해줍니다.


단순히 길만 인식해서 속도 조절까지 하려면 좀 버거울테니,
옵션의 어시스트 기능을 죄다 최대로 올렸습니다.

참고로 브레이크 지원 높음으로 설정하면, 대충 핸들만 돌려도 주행이 가능합니다.
물론 이렇게 하면, 다른 차를 추월하기는 힘듭니다만...
안전하게 트랙을 완주하는게 목적이라 일단 이대로 갑니다요! ㅎ.ㅎ

암튼, 아래처럼 드라이버 지원을 최대로 해줍니다.



현재 레이싱 상태를 인식하기 위해,
BlueStacks의 화면을 주기적으로 캡쳐해서 사용합니다.
주로 색을 인식해서 처리를 해주었습니다.
도로는 빨간색, 자기 차량은 노랑색, 속도 표시는 흰색 등으로 쉽게 가능합니다.

실제 프로그램에서는 아래처럼 나오게 됩니다. (가로, 세로 두배로 확대했어요.)


속도 인식은 숫자 표시가 1자리,2자리,3자리 정도만 해주었습니다.
프로그램 왼쪽 상단의 두개 이미지 부분입니다.
차가 벽에 부딛혀서 멈춰 있는지, 빠르게 달리는 중인지 정도만 알면 되는거죠 뭐..ㅋ

미니맵으로 인식된 위치를 이용해서, 스티어링 조작을 해줍니다.
프로그램 왼쪽 하단의 미니맵 부분입니다.

혹시 라인 트레이서라고 아시나요?
바닥에 검정색 라인을 그어 놓고, 조그만 자동차로 따라가게 만드는건데요.
20년 전 학교다닐 때, MCU 써서 만든적이 있었는데.
요즘엔 초딩 장난감으로도 나오더라구요. ㅎ.ㅎ

암튼, 도로가 왼쪽 커브인지 오른쪽 커브인지 빠르게 체크해서, BlueStacks에 커맨드를 보냅니다.
스피드웨이 원형 트랙에서 테스트해보니 잘 되네요.

레이스 종료 후 자동으로 재시작하게 만들면 좋겠죠?
가만히 두면, 혼자서 R$랑 명성치를 야금야금 모아주니까요. ㅎ.ㅎㅋ

그 외 무료 매니저, 엔지니어 등의 팝업 알림이 뜨거나, 레벨업 등의 알림 처리를 위해,
화면 몇 군데 인식 용 캡쳐를 했습니다. (사실 이게 젤 귀찮았어요.)
프로그램 오른쪽 상단/하단 부분의 이미지들입니다.

아래는 실제 프로그램이 동작하는 모습을 캡쳐한 것입니다.


혼자서 잘 달리네요. ㅎ.ㅎb
르망 서킷에서 몇번 테스트 해보니, 꽤 만족스러운 결과가 나왔습니다.

아래 스크린 샷 보셔요~

10바퀴 완주하는데에, 보통 35분에서 40분 사이로 소요됩니다.
이 때 명성치는 11000 이상 얻을 수 있구요.

아래 스크린 샷 처럼, 프로그램이 달려주는데도 14등까지 가능한걸 볼 수 있죠?
아주 만족스럽네요.


마지막으로 실제 주행 모습을 동영상으로 찍어보았습니다.
한번 감상해보셔요~
해상도 땜에 전체화면으로 보시는게 좀 나을꺼에요.


그럼, 오늘은 이만...



핑백

  • sharksym's MSX World : 2016년 내 이글루 결산 2017-03-22 20:33:39 #

    ... 목 조회수 1 형광등을 LED등으로 교체했습니다. 1720 2 Scanline eraser 1002 3 [안드로이드] 리얼 레이싱 3 - 오토파일럿 ?? 779 4 [안드로이드] 심시티 빌드잇 - 닥터 부 및 특성화 업뎃~ 428 5 [안드로이드] 심시 ... more

덧글

  • 진스맥 2015/07/22 10:30 # 삭제

    정말 서영만님의 응용력은 짱!

    로봇기술쪽을 바로 접목하시는군요..
    opencv로 라인트레이서같은건 똑딱 만드시겠습니다.
    또 하나 배우고 갑니다.
  • sharksym 2015/07/23 20:03 #

    흐흐... 소소한 재미가 있어요~ ㅎ.ㅎㅋ
  • rr3 2015/10/01 19:41 # 삭제

    어떻게하는지 자세히 알려주시면 안될까요 저도 접목시켜보고싶은데 프로그램없이 그냥 블루스탭만 다운받으면 가능하나요? adb connect 명령어는 어디서 넣어야하나요? 자세한 경로부탁드려봅니다
  • sharksym 2015/10/03 00:13 #

    전부 자세히 설명하려면, 몇 페이지 글이 필요할 것 같은데용..ㅎ.ㅎ;;
    일단 좀 더 설명 붙여보겠습니다.

    adb는 안드로이드 디버깅을 위한 프로그램입니다. 실제 안드로이드 기기 또는 블루스택 같은 에뮬레이터 모두 쓸 수 있습니다.
    블루스택을 쓰면, 휴대폰으로 계속 게임을 실행할 필요가 없겠죠?
    참고로, adb connect는 윈도 콘솔창에서 실행하면 됩니다. adb 설치는 구글링 하시거나 네이버 검색하시면 되겠구요.

    본문의 오토파일럿 프로그램은,
    블루스택의 화면을 인식해서 사용자 대신 키입력 또는 터치 입력을 해주게 됩니다.
    사용자 역할 -> 화면의 길 인식, 자동차 속도 조절, 스티어링 조작, 메뉴 선택 등등
    이걸 상황에 맞게 입력해주는거지요.

    adb 키/터치 이벤트 보내는 것부터 해보시면 쉽게 이해되실꺼에요.
  • 별일없는 얼음정령 2016/11/06 14:11 #

    리얼레이싱3 안에서 친구로 등록 되있던데 레벨도 높으시고
    저런 프로그램 기술도 갖고 계시네요
    오늘 처음 피시에 블루스텍 깔아보다가
    이런 것도 계정 정지 먹고 저런것도 프로그램으로 나와서 써봣음 좋겟는데
    스스로 프로그래밍 하셔서 쓰시기도 하는군요 부럽네요 ^^
    adb 는 전화기 해상도 조절 해보겠다고 설치 되어있어서
    블루스택과 연결은 되지만 프로그래밍을 몰라서 ㅋ
    정보를 알아 갈수있을까요?
  • sharksym 2016/11/06 16:11 #

    안녕하세요, ㅎ.ㅎ
    리레3는 버전 바뀌면 브레이크, 핸들 민감도가 조금씩 변하더라구요.
    프로그램 하나로 세팅 고정해서 쓰는게 쉽지 않아서... 저도 요즘엔 안쓰고 있습니다.
    블루스택도 업뎃하고나니, 해상도 문제도 있고해서 걍 포기했습니다. ㅎ.ㅎ;;

    그럼 즐거운 리레3 하셔요~



Title MSXrating email rss

CCL

크리에이티브 커먼즈 라이선스
Yeongman Seo에 의해 작성된 저작물은, 별도의 라이선스 조건이 없는 경우 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

ClusterMaps

구글 애드센스 (세로 큰직사각형)

통계 위젯 (화이트)

413
84
159324

이 이글루를 링크한 사람 (화이트)

27