LUMOS MAXIMA
로그인
LUMOS MAXIMA
로그인
[Autonomous Ship] A* Algorithm 자체 개발(6) : 시뮬레이션 구현(2021.08.01.)
한은기
·
2021년 8월 1일
팔로우
0
Autonomous Ship
NAOE
0
Study) NAOE
목록 보기
10/11
Simulator 제작 with PyQt5
3단계 제작 목표
더 많은 파라미터를 직접 설정할 수 있도록 옵션 추가
그래픽 뿐만 아니라 상세한 값을 알 수 있도록 현황판(board) 추가
레이아웃 디자인 보충
Goal Range 표시 등 이전 단계에서 설정한 보완 내용 구현
개발 현황
g값 중 heading 회전각에 따른 가중치 값을 설정할 수 있도록 3개 파라미터 추가
h값에도 가중치 추가
분산된 초깃값 통일
조금씩 다르게 쓰인 변수명 통일
경계선을 사용자가 지정한 꼭짓점에 따라 설정할 수 있도록 변경
Start 버튼 누르기 전에 미리 장애물, 경계선, 출발지점, 도착지점 표시
Offset 사용하지 않음 (GraphicsView는 좌측 상단이 (0, 0)이기에 y값에 -를 붙여 배치함)
GroupBox, GridLayout을 섞어 사용하여 유연하고 균형있는 레이아웃 구현
Simulator & Algorithm Interaction
특정 상황에서 Stuck 되는 문제는 알고리즘적 문제가 있어 보임. goal cost를 0으로 설정하면 stuck은 되지 않지만 당연히 아예 목표점 쪽으로 이동하지 않음. 해결 급선무
h값에도 gain을 곱해주도록 변수 선언 및 수식 추가함
추후 계획
Simulator 수정 및 보완
Reset, Pause 기능 잘 안 되는 것 해결
초기 heading이 잘 들어가는지 확인
obstacle, 시작점, 도착점도 마우스로 찍어서 설정할 수 있게 하는 기능
닫기 버튼 누르면 전체 프로세스가 종료되게 하기
trajectory 그릴 때 마지막 점까지 그릴 수 있도록 하기
배 위치를 배 모양(오각형)으로 바꾸기
heading vector 방향 표시하기
Status Bar에 마우스 위치 표시하기
5/10단위로 그래픽뷰에 격자 그리기(추가)
search 포인트, 그 주변 f 계산중인 8방위 표시(추가)
board 좌표 표시할 때는 자릿수 맞추도록 문자열 formating(추가)
알고리즘 수정 및 보완
특정 조건에서 Stuck 되는 것 : 일정 시간/횟수 동안 Stuck 되었을 때 따로 처리하는 코드 추가
heading vector을 변경했을 때 normalize해야 함
넘파이 배열을 스마트하게 쓸 수 있는 방법 강구
선수 회전에서 각도가 마이너스로 잘 들어가는지, 180도 이상인 둔각에서는 잘 되는지 필시 확인
경계선 line out 체크하는 함수에서 오른쪽 벡터와 선이 아예 일치할 경우 등 예외처리 살피기
heading 방향으로 장애물 자동 할당 기능(실시간 장애물 탐지 위해)
Source Code
GitHub(실시간 업데이트) :
AutunomousShipAlgorithm/A_star
한은기
🏫Inha Univ. Naval Architecture and Ocean Engineering & Computer Engineering (Undergraduate) / 🚢Autonomous Vehicles, 💡Machine Learning
팔로우
이전 포스트
[Autonomous Ship] A* Algorithm 자체 개발(5) : 시뮬레이션 구현(2021.07.31.)
다음 포스트
[Autonomous Ship] A* Algorithm 자체 개발(7) : ROS용 패키지 개발(2021.08.05.)
0개의 댓글
댓글 작성