[임베디드 소프트웨어 대회] 지능형 휴머노이드 부문 - 팀명: 과제그만하고싶다

  • 주제
    영상 처리 및 휴머노이드 모션 제어로 코로나19 상황 대응

  • 팀원
    박범찬 이산 이상명 정우일 정의찬

  • 대회 설명
    2족 보행 로봇 하드웨어를 제어하기 위한 소프트웨어를 임베디드 환경에서 제작함으로써 임베디드 소프트웨어 기술의 습득과 능력을 배양한다. 코로나19 전염병으로 사람이 다니기 힘든 지역에 2족 보행 로봇을 이용해 사람 대신 활동하게 한다. 2족 보행 로봇을 움직일 수 있게 하는 제어 소프트웨어 및 영상 제어 기술, 통신기술 등과 관련된 소프트웨어를 개발하고, 주어진 미션을 안정적으로 수행한다.
    image

  • 개발 계획

    • 개발 환경: MF-RAPI4(휴머노이드), Python OpenCV, Robobasic

    • 타임라인:
      image

    • 본론:

    1. 개발 중 장애요인과 해결방안

      • 시간이 오래 걸림
        => 중간 점검 때 지적받은 사항을 반영하여 영상처리 부분에서는 이미지 크기를 대폭 낮춰 라즈베리파이 쪽 연산 부담을 대폭 줄였고, 로봇의 라인트레이싱 시 주행 속도를 올려
        유의미한 수행 시간 단축을 이룰 수 있었다.

      • 통신 시 모션 제어보드에서 중복으로 데이터를 요청하여 라파 파이썬 코드에서 카운트 변수를 중복 계산함
        => 송수신 속도에 비해 라즈베리파이의 처리 속도가 느려서 실시간으로 통신하기가 어려운 점 때문에 발생한 것으로, 라즈베리파이 측에서 리셋되지 않은 변수값에는 덮어씌우지 않는 식으로 중복 결과값 저장을 해결하였다. 리셋은 특정 분기에서 주기적으로 해주는 식으로 진행하였다.

      • 바닥 재질에 따른 경기장 내 불균일한 마찰력으로 모션 제어가 불규칙해짐
        => 전반적인 알고리즘을 구상하는 데 있어 로봇의 회전각이 잘못되어 특정 객체를 찾지 못한 경우에도 계속 한 방향으로 회전하면서 객체 여부 인식을 하여 문제가 없도록 하는 등 해당 요인을 염두에 두고 코드를 짰다.

    2. 개발의 차별성

      • 미션 수행 후 원래 있던 코너 자리로 돌아오는 알고리즘 고안
        => 미션 수행 후 원래 있던 자리로 복귀하는 경우 로봇의 걸음 수나 회전 각도를 저장했다가 그대로 돌아오는 알고리즘의 경우 오차율이 높은데, 영상 처리를 통해 코너를 찾아서 복귀하는 알고리즘을 썼으며, 이 때 화면상에서 잘못된 코너가 잡히지 않도록 T자형 코너가 잡히더라도 ㄱ자형 코너와 구분하여 제대로 복귀할 수 있도록 알고리즘을 짰다.

      • 다양한 환경에서도 문자인식률을 유지하기 위한 자체적인 이미지 처리 방식 고안
        => 알파벳 인식은 자체 알고리즘이 아닌 Tesseract 라이브러리를 사용했으나, 배경에 따른 노이즈를 최소화하기 위해 contour detection을 통해 분리된 객체들을 인식하여 불필요한 부분을 지우는 식으로 인식율을 증대시켰다. 또한, otsu threshold를 적용하여 다양한 조도에서도 안정적인 결과를 얻을 수 있었다. 이와 같은 방식으로 팩 인식이나 화살표 인식 등 객체 인식에서도 높은 인식율을 확인할 수 있었다.

      • 해리스 코너 검출기를 사용하지 않고 직접 두 직선의 교점을 계산하여 코너 검출
        => 해리스 코너 검출기를 사용했을 때 교차하는 두 직선이 어떤 각도로 틀어지게 보이느냐에 따라 코너가 검출되었다 안되기를 반복하였다. 따라서 해리스 코너 검출기를 사용하지 않고 직접 두 직선의 교점을 구하여 해리스 코너 검출기의 비일관성을 해결하였다. 화면 상의 모든 직선을 1차원 배열에 저장하고 배열의 두 번째 직선부터 마지막 직선까지 첫 번째 직선과 각도가 30도 이상 차이 나는지를 순서대로 확인한다. 그리고 첫 번째로 확인되는 직선과 배열의 첫 번째 직선의 교점을 행렬로 계산하여 코너의 좌표를 구한다.
        (c - Intersection of two lines defined in (rho/theta ) parameterization - Stack Overflow 참조)

  • 결과
    기술동영상: https://www.youtube.com/watch?v=p2Qduu-XhDU
    시연동영상: https://www.youtube.com/watch?v=iA-TCOKYVdk

    대회 당일 머리 부분 카메라 고장으로 끝내 완주하지 못한 게 한이었다…
    2021 임베디드 소프트웨어 경진대회 지능형 휴머노이드 부문 특선상

좋아요 1