[Autonomous Ship] A* Algorithm 자체 개발(3) : 처음부터 다시 구조화(2021.07.29.)

한은기·2021년 7월 29일
0

Study) NAOE

목록 보기
7/11

문제점

  • 글로 정리한 뒤 개발에 착수했으나, 각 클래스의 변수/메서드 및 상호 관계, 특히 코드의 흐름을 먼저 잡고 코딩을 하지 않았음
  • 반복문이 많은 해당 알고리즘의 특성 상, 스스로도 헷갈리는 경우가 많았음
  • 특히 배의 현재 위치 / 8방위를 탐색할 중심점 / 탐색하고 있는 8방위 점들 이 구분이 머릿속에서 명확히 되지 않았음
  • Numpy Array의 형상과 메서드가 매우 헷갈림. 때문에 계속 형상 문제에서 오류가 발생

해결책

  • 처음부터 코드를 다시 작성함
    • 순서도를 먼저 그린 뒤 각 클래스의 변수와 메서드를 먼저 정하고 시작
    • 각 메서드나 클래스가 어디서 어떻게 불려지고, 무엇을 인수로 주고받는지 확실히 함
    • 변수명을 통일
  • 기존에 리스트였던 것들을 모두 Numpy Array로 통일함

피드백

  • 출발점부터 도착점까지 무난히 잘 도착하는 것을 터미널 출력으로 확인함
  • 완성된 코드는 그리 길지도 복잡하지도 않지만, 오류 수정하는 데 3-4시간을 소요함
  • 특히 Numpy Array의 형상 문제로 오류가 잦았음. np.array([[1, 3]])과 np.array([1, 3])의 형상 차이를 구분하는 것이 매우 중요하며, 브로드캐스팅 연산 등 배열끼리의 연산에서도 애를 먹음

추후 계획

  • GPS 기반으로 좌표 찍기
  • 시뮬레이션 돌려보도록 PyQt나 matplotlib 사용해 개발
  • ROS 용 제작
  • 기타 초기 계획했던 부분 점검
  • 알고리즘 개발 배경부터 구조가 담긴 자료 제작(PPT)

Source Code

GitHub(실시간 업데이트) : AutonomousShipAlgorithm/A_star

profile
🏫Inha Univ. Naval Architecture and Ocean Engineering & Computer Engineering (Undergraduate) / 🚢Autonomous Vehicles, 💡Machine Learning

0개의 댓글