Skip to content

Dong-Uri/SaFy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

🚗SaFy

사고 및 돌발 상황에 대해 성능이 탁월한 자율주행 시스템

SSAFY 8기 특화 프로젝트


👨‍👩‍👧‍👦팀원 소개

[장재현] : 팀장 / 인지 / 라이다 센서 코드 구현

[김지선] : 인지 / 카메라 센서 코드 구현

[채민기] : 부팀장 / 판단 / 상황별 알고리즘 구현

[이동우] : 판단 / 인지,판단,제어 통합

[박균탁] : 발표 / 제어 / YOLO 알고리즘 구현

[임상빈] : 제어 / 데이터 송수신 구현


📆 프로젝트 소개

⚙​ 개발 환경

자율주행

협업

  • 진행 기간: 2023.2.27 ~ 2023.4.7

✨ 기획 배경


도로교통공단 | 사고유형별 교통사고

crush_graph

도로교통공단에서 분석한 교통사고 통계에 따르면 차대차 사고가 월등히 높음
→ 주행 중 발생할 수 있는 차대차 사고에 대한 충돌 방지 알고리즘을 고도화
→ → 안정성 증대


🙌 주요 기능

  • 서비스 설명 : 사고 및 돌발 상황에 대해 성능이 탁월한 자율주행 시스템

  • 주요 기능 :

    • [ROS]
      • 노드 간의 Publisher와 Subscriber를 통한 통신 및 rviz와 rqt를 통한 시각화
    • [인지 알고리즘]
      • GPS, IMU를 통한 Localization 인식, Odometry 생성
      • Dijkstra를 통한 전역경로 및 지역경로 계획
      • 카메라 센서를 통한 차선 인지 및 YOLO를 통한 객체 탐지
      • 라이다 센서를 통한 Point cloud clustering
    • [판단&제어 알고리즘]
      • Pure pursuit 알고리즘을 통한 조향각 계획
      • 경로기반 속도 계획 및 PID 제어를 통한 속도 제어
      • ACC 알고리즘
      • 경로(차선)변경 및 Lattice planner 충돌 회피 알고리즘

경로계획

  • GPS 센서와 IMU 센서로부터 데이터를 받은 후 WGS84 좌표기반 데이터를 UTM 좌표로 변환 후 MGeo 데이터와 통합하여 정밀도로 지도를 제작하고 Odometry를 생성하였습니다.
  • 이를 통해 전역 경로 계획과 지역 경로 계획을 진행하였습니다.

dijkstra

  • Dijkstra
    • MGeo 데이터를 통해 시작점과 도착점을 찍으면 dijstra를 통한 전역 경로 계획을 실시합니다.
    • 이 전역 경로를 통해 지역 경로 계획을 실시하게 됩니다.

Lidar

  • Lidar 센서를 통해 받아온 pointcloud 데이터를 scikit-learn의 DBSCAN을 통해 clusting하여 주변 객체들을 파악할 수 있습니다.

ACC

  • ACC
    • Pure pursuit 알고리즘을 통해 조향각 계획을 진행하였습니다.
    • 곡률 계산을 통한 경로기반 속도 계획 및 PID 제어를 통해 속도 제어를 진행하였습니다.
    • ACC 알고리즘을 통해 Lidar로 인식된 앞 차에 대해 안전거리를 유지하며 주행하도록 진행하였습니다.

lane_change

  • Lane Change
    • 자연스러운 차선 변경을 위해 현재 차선 내의 시작점과 변경할 차선 내의 도착점에 대해 3차곡선을 계획하여 보다 부드러운 차선 변경이 가능하도록 진행하였습니다.

lattice_planner

  • Lattice Planner
    • Lidar로 장애물을 인식했을 때 피할 수 있는 회피경로를 Lattice Path Planner를 통해 생성하여 충돌을 회피할 수 있도록 진행하였습니다.

Camera

  • Camera 센서를 통해 받아온 데이터를 openCV를 통해 이진화, RoI, BEV 등을 진행하여 주행에 도움이 되는 정보를 얻을 수 있습니다.

lane_detection

  • Lane Detection
    • 전방 도로 이미지를 처리한 후 scikit-learn의 linear 모델인 RANSAC을 이용하여 curve fitting을 통해 차선을 인지하여 GPS정보가 없을때도 차선 인식을 통한 주행이 가능하도록 진행하였습니다.

color_detection

  • 도로 인식
    • 전방 도로 이미지를 처리한 후 색상 인지를 통해 어린이 보호구역, 요금소 진입 구간 등을 인식했을 때 속도를 조절할 수 있도록 진행하였습니다.

YOLO

  • YOLOv5를 통해 카메라에서 차량, 사람, 신호등 등을 인식할 수 있도록 하였습니다.

pedestrian_detection

  • 보행자 인식
    • 인식된 보행자가 차량에 가까워지는 경우 긴급 정지가 되도록 진행하였습니다.

traffic_stop traffic_go

  • 신호 인식
    • 인식된 신호등에 대해 어떤 신호인지 파악하는 알고리즘을 통해 빨간 불이라면 멈추고, 파란 불이라면 주행하도록 진행하였습니다.

P.S.

  • 모든 기능에 대한 통합을 진행하였지만 제공되는 시스템 사양의 한계로 인해 통신이 느리고, 시뮬레이터가 끊기는 등 진행이 불가능하게 되었기에 각 탐지기능에 따른 시나리오를 나누고 이를 고도화하는 방향으로 진행하였습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published