컨트롤러 사용법

1번 : 전후진 관련 조이스틱

2번 : 조향 관련 조이스틱

3번 : 꾹 누르면 키고 끄는

4번 : 0 - 전진, 1 - 중립, 2 - 후진

Untitled

Untitled

1번 : e-stop - 제일 중요한 키, 항상 손 데고있기

2번 : 올리면 자율주행 모드로 변경

차량 관련

ERP42 메뉴얼북 전달해드리겠습니다.

코드 설명

우선 멀티쓰레드 방식으로 코드가 운용되기 때문에 master.py를 보시면 어떤 코드들이 돌아가는지 볼 수 있습니다.

TEAM-GIGACHA/src/final_pkg(semi_pkg)/scripts 내부에 대부분의 판단제어 코드는 들어있습니다.

src 하단의 final_pkg와 semi_pkg 그리고 track_pkg는 대회에서 각 부문별 코드입니다. final_pkg 코드가 본선 미션주행 코드, semi_pkg가 예선 미션주행 코드, track_pkg가 예선 콘주행 코드 입니다.

scripts 폴더로 들어가시면 controller, localizer, maps, planner, shared, utils 6개의 폴더가 존재합니다. 각각이 제어, 로컬, 맵, 판단에 대한 코드들이 들어있습니다. 로컬에 대한 코드는 판단 코드에서 사용되는 로컬관련 맵정보들에 대한 코드로, 외부에 있는 local_pkg와 다른 코드입니다.

우선 scripts 폴더 내에 있는 master.py부터 보시면 다섯개의 스레드가 병렬적으로 돌아갑니다.

Untitled

코드를 참고하셔서 쓰레드로 돌아가는 클레스들이 어떤것인지 확인하시면 됩니다.

판단의 경우 여러분들도 들어보신 3계층 플레너 사용하였습니다. lattice기반의 lpp주행 하였고, motion_planner에서 추종할 경로가 몇번째 레인인지에 따라 controller에서 해당 레인을 추종합니다.

제어의 경우 여러분들도 잘 아시는 퓨어퍼슛을 사용했습니다. 속도에 대한 제어는 하지 않았습니다.

위 코드에서 가장 중요하게 보셔야 하는 부분이, 공유되는 shared항 입니다. shared를 보시면 아시겠지만, 차량의 현재 정보를 담고있는 ego와 인지컴으로 부터 받은 다양한 인지정보들을이 담긴 perception, 맵의 경로들, lattice_path등 여러 정보가 공유변수로 업데이트 됩니다.

controller.py에서 업데이트 시키는 lat_controller.py를 보시면 판단에서의 상태에 따라 run되는걸 보실 수 있는데, parking.on이 off인 상태가 평소 주행 상태입니다. 추종하는 path를 공유된 lattice_path에 선택한 레인의 정보를 넣어주는 방식으로 결정합니다. 그 후는 여러분들이 아시는 pp 그대로 입니다.

주차에서 후진할때 heading이 문제가 되었었는데, 이는 heading = heading + 180을 해주고, heading = heading % 360을 해주면 정상적인 후진 시 heading을 나타내는 것을 확인하였습니다.

대회 영상 및 메뉴얼

예선 콘 주행 :