일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 데이터베이스 #정규화 #이상현상 #함수종속
- ubuntu
- ROS
- control
- turtlebot4
- Gazebo
- rviz
- 자율주행 #opencv #perception #control #제어 #인지
- morai #자율주행 #데브코스 #planning&control #ros #ubuntu
- planning
- 프로그래머스
- Slam
- turtlebot
- ros #rviz #onedayproject #Lane Keeping #Lane Changing #차선 변경
- 프로그래머스 #데브코스 #자율주행
- 자윯주행
- MORAI
- 운영체제 #working set #working set algorithm #file system
- 운영체제 #page replacement algorithm
- Raspberry Pi
- ROS2
- pathplanning
- python
- 디지털시스템설계 #verilog #module #port #구조문
- Linux
- 인턴
- create3
- TOF
- 데브코스
- 자율주행
쓰레기 개발자
20240417 데브코스 자율주행 one day project 본문
버전이 다른 데이터가 들어있었나보다... 어쩐지 백날 수정해도 안되더라ㅋㅋㅋㅋㅋㅋㅋ 결국 멘토님이 새 버전 올려주셨고 해야할게 명확해졌다.
i번째 veh history data인 veh_data를 활용하여 LC_intention에 대한 pred 수행이다.
아마 callback_result 안에 있는 주석처리된 To do 부분만 채우면 될거 같다.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
20240417 08:40
밥먹고 오느라 로그아웃 돼버려서 다시 쓰는중.. 우선 코드는 작성 완료했다.
https://github.com/gksma/OneDayProject_LC
GitHub - gksma/OneDayProject_LC: This repo is about prediction of vehicles which changing lane or keeping lane.
This repo is about prediction of vehicles which changing lane or keeping lane. - gksma/OneDayProject_LC
github.com
다음은 수정한 부분이다.
########################## HMM ###############################
# with open("/home/mmc_ubuntu/Work/system-infra/Simulation/log/model_LC.pickle", 'rb') as f:
# self.hmm_lc = pickle.load(f)
# with open("/home/mmc_ubuntu/Work/system-infra/Simulation/log/model_LK.pickle", 'rb') as f:
# self.hmm_lk = pickle.load(f)
위 코드는 아마 Lane Change와 Lane keeping에 대한 pickle 파일로 예상되는데 저거 모델을 따로 만들진 않았기 때문에 쓸일이 없어 주석 처리 해줬다.
veh_data = np.array(self.vehicles[i][self.time-10:self.time+1])
# 위치(d값)의 변화 계산
d_changes = np.diff(veh_data[:, 3])
pred = "LC" if np.mean(np.abs(d_changes)) > 0.5 else "LK"
gt = "LC" if self.vehicles[i][self.time][9] == 1 else "LK"
위 코드는 callback_result 함수에서 프로젝트를 위해 코드를 짠 부분이다. veh_data는 i번째 vehicle의 최근 11개의 시간 데이터를 저장한 변수이다. d_changes는 위 veh_data의 3번 인덱스(차량의 횡방향)의 데이터의 차이를 numpy diff 함수를 사용하여 저장해줬다. 그리고 pred의 기본값을 LK(Lane Keeping)로 설정하여 직진 구간에서는 차선을 따라 직선 주행을 한다는 뜻이고, d_changes의 절댓값의 평균이 0.5를 넘어갈때, 즉 차선을 옮길때 LC로 변경해주어 차선 변경을 한다는 뜻으로 출력되게 했다.
다음은 결과에 대한 영상이다.
OneDayProject 회고 : 처음에 맵도 안뜨고 차량 데이터도 안떠서 하나하나 다 해결하는줄 알고 끙끙대면서 맵 데이터는 잘 복구했는데 차량 데이터는 끝까지 복구가 안되길래 멘탈이 약간 나갔었다. 근데 알고보니 파일 중에 버전 오류가 있어서 안된다길래 진짜 한숨 돌렸다. 코드 받고 처음에 돌려봤을때 내가 손본 LC, LK에 대한 부분 말고는 다 정상 작동해서 다행이었다... 그 후에 LC,LK 상태 변화에 대한 코드는 나름 쉽게 짠거 같다. 위 코드에서 차량끼리 충돌해서 사고가 난다든지 하는 특별 케이스는 없었기 때문에 차선에서 횡방향으로 움직인다는건 단순히 차선 변경을 의미하는것이기 때문이다. 버전 오류 이슈가 있었지만 callback_result 함수 수정 자체는 한시간..? 정도밖에 안걸린거 같다ㅎㅎ 이제 남은 프로젝트는 One week와 최종 프로젝트만이 남아있다. One week는 오래 걸리려나... 약간 무섭다
'데브코스 자율주행 planning & control 2기' 카테고리의 다른 글
20240426 One Week Project (0) | 2024.05.02 |
---|---|
20240422 one day & one week project (0) | 2024.04.22 |
20240415 데브코스 자율주행 one day project (0) | 2024.04.15 |
차선인식 자율주행 프로젝트 후기 (240325~240329) (0) | 2024.04.03 |
240319 MORAI 프로젝트 중간 점검 (2) | 2024.03.19 |