2023.10.12 데브코스 17일차😆
어제에 이어 오늘도 자이카 실습을 진행했다!!
그래도 어제 자이카와 인사해서 오늘은 조금 수월했던 것 같다. 하지만 여전히 전원을 켜는게 어렵다...ㅎㅎ 내일 다시 시도해봐야징!
오늘은 어제 집에서 작성해 온 라이더 센서값 확인, 센서 데이터를 통해 모터를 구동하고 멈추는 코드를 실행시켜서 확인했다. 어제 미리 작성해서 오니 조금 수월했다! 오늘도 여러 오류들이 발생하고 자이카가 내가 원하는 방향으로 가지 않기도 했지만 너무 재밌다😁
그리고 자이카가 끼익끼익 움직이는데 너무 귀엽다...😍
🚗실습 과정 및 어려웠던 점
LiDAR 방향 찾기
- 라이다 센서를 실행시키고 값을 받아와서 프린트하며 자이카의 앞 방향의 라이다 각도가 몇도인지, 인덱스는 몇인지 확인
- 일일히 이걸 확인해야한다니... 처음에는 라이다 센서를 아에 가려서 확인하고 했는데 벽 앞에 라이다 센서를 두고 어디가 가운데인지 찾는 것이 좋은 방법인 것 같다.
- 왜인지 모르겠지만 강의에서 자이카의 값을 360개라고 들은 것 같아서 당연히 360개인 줄 알았으나 알고보니
505개
였다!! 데이터 크기를 미리미리 잘 확인해야겠다...
- 인덱스 값이 15일때가 가운데라고 생각하고 구현했으나 알고보니
0°([0])
였다. (505중에 인덱스 15면 거의 가깝게 찾은 거긴하다.)
- 각도 -> 인덱스 :
int(round(각도 * 1.4))
LiDAR 장애물 인식
- 거리가 너무 가까우면 0, 너무 멀어도 0...(이걸 처리할 방법을 생각해야한다)
0 < data <= 0.4
로 정했다
- 라이다 각도는
-20° ~ 20°
- 0.3으로 하니 너무 장애물과 가까워서 0.4가 적당한 것 같다.
- 0.4 이내인 값이
3개
이상이면 stop
LiDAR 장애물 인식 후 회피
- 장애물 인식 -> stop -> back -> turn -> go
- 길이 뚫려있는지 확인한 후 그 방향으로 간다 (오른쪽 우선)
- 이 부분은 아직 해결중...
- 1초 정도 후진
- 7도 정도 간격에서의 평균이 0.5 이상이면 길이 있다고 판단하여 그 방향으로 가고 아니라면 정지
- 주행길을 만들어놓고 실험했을 때 우회전으로 가야하는데 좌회전을 한다!
- 아마 앞에 장애물이 없어서 거리가 먼 경우도 0.0으로 인식되어서 갈 수 없다고 판단한 것 같다
- 이걸 어떻게 걸러낼지 생각해야한다...
🗂️Today's 실습 결과
- 장애물 확인 라이다 범위 설정 : -20° ~ 20°
- 장애물과의 거리 threshole : 0.4
- 거리 개수 : 3개
- 길 존재 여부 라이다 범위(수정해야할지도) : -20° ~ 20°
- 길 존재 여부 확인 거리 threshold : 0.5
- 길 존재 여부 확인 시 우회전 우선
- 길 존재 여부 확인 시 7도 구간별 평균값으로 판단 (수정해야함!!)
- 차량 속도 : 5 (후진 시 -5)
- 차량 회전 각도 : 50(20°) 또는 -50(-20°)