Skip to content

kngyeol/TeamKAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TeamKAI - 자율주행 자작차 프로젝트

건국대학교 자율주행 자작차 동아리 팀카이(Team KAI) 의 ROS 기반 자율주행 시스템입니다. 콘(cone) 기반 트랙에서 LiDAR, 카메라, GPS, IMU를 활용하여 자율주행을 수행합니다.

시스템 아키텍처

┌─────────────┐     ┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│   Sensors    │     │   Perception     │     │    Planning      │     │    Control       │
│              │     │                  │     │                  │     │                  │
│ LiDAR ──────────▶ Cone Detection ──────▶ Cone Sorting ──────────▶ CAN Bridge (조향)  │
│ Camera ─────────▶ Traffic Light   ──────▶ Path Planning      │     │                  │
│              │     │ YOLO Detection   │     │ Stanley/PurePursuit────▶ ESP32 (속도/제동)│
│ GPS  ────────────▶                    │     │ Speed Planning   │     │                  │
│ IMU  ────────────▶                    │     │                  │     │ E-Stop 안전장치  │
│ Encoder ─────────────────────────────────────────────────────────▶ 속도 피드백        │
└─────────────┘     └──────────────────┘     └──────────────────┘     └──────────────────┘

디렉토리 구조

TeamKAI/
├── Sources/
│   ├── KAI_Control/           # 차량 하드웨어 제어
│   │   ├── control_setup/     #   CAN/ROS 초기화 스크립트
│   │   ├── integrated_controller/  #   ESP32 종방향 제어기 (PID, 제동, 모드전환)
│   │   └── ros_kai_ws/src/    #   ROS 패키지
│   │       ├── can_bridge_pkg/    #     CAN 브릿지 (조향 모터 통신)
│   │       └── custom_msg_pkg/    #     커스텀 메시지 + 테스트 스크립트
│   │
│   ├── KAI_Perception/        # 센서 인지 모듈
│   │   ├── cone_detection/    #   LiDAR 콘 검출 (RANSAC + 클러스터링)
│   │   ├── camera_traffic/    #   카메라 신호등 검출 (HSV)
│   │   ├── camera_acc/        #   카메라 차선 검출 (ACC 모드)
│   │   ├── yolo_cones/        #   YOLO 콘 검출 (YOLOv5/v8)
│   │   └── traffic_signal/    #   신호등 인식
│   │
│   └── KAI_Planning/          # 경로 계획 및 차량 제어
│       ├── test_/             #   메인 계획 노드 (모드별 주행 로직)
│       │   └── src/
│       │       ├── cone_sorting/      # 콘 정렬 알고리즘
│       │       ├── path_planning/     # 경로 생성 (Bezier, 보간)
│       │       ├── car_control/       # 조향 제어 (Stanley, Pure Pursuit)
│       │       ├── path_follower/     # 속도 계획 (곡률 기반)
│       │       └── main_calculation/  # 수학 유틸리티
│       ├── acc_mode_new/      #   ACC 모드 계획
│       └── coordinate_transform/  #   좌표 변환 모듈
│
├── References/                # AgOpenGPS 하드웨어 레퍼런스 (.gitignore)
├── docs/                      # 발표자료
└── CMakeLists.txt             # catkin 워크스페이스 설정

의존성

시스템

  • Ubuntu 20.04
  • ROS Noetic
  • CMake 3.0.2+

ROS 패키지

roscpp rospy std_msgs sensor_msgs geometry_msgs nav_msgs
tf2 tf2_ros rosserial_python
pcl_ros pcl_conversions
cv_bridge image_transport

라이브러리

  • PCL (Point Cloud Library) - LiDAR 포인트 클라우드 처리
  • OpenCV - 카메라 영상처리, 신호등/차선 검출
  • YOLOv5/v8 (PyTorch) - 콘 객체 검출
  • SocketCAN - CAN 버스 통신

하드웨어

  • LiDAR: Ouster OS 센서
  • Camera: USB 카메라
  • GPS: u-blox F9P (RTK)
  • IMU: BNO08x 시리즈
  • MCU: ESP32 (종방향 제어)
  • 조향 모터: CAN 버스 제어

빌드

# 1. 워크스페이스 설정
mkdir -p ~/catkin_ws/src
cp -r Sources/KAI_Control/ros_kai_ws/src/* ~/catkin_ws/src/
cp -r Sources/KAI_Perception/* ~/catkin_ws/src/
cp -r Sources/KAI_Planning/* ~/catkin_ws/src/

# 2. 의존성 설치
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y

# 3. 빌드
catkin_make
source devel/setup.bash

실행

하드웨어 초기화 (차량 연결 시)

# CAN 포트 → CAN 브릿지 → ROS Serial 순서대로 실행
cd Sources/KAI_Control/control_setup/
./1_open_can_port.sh
./2_activate_can_bridge.sh
./3_activate_rosserial.sh

주행 모드별 실행

# 코스 모드 (콘 트랙 자율주행)
roslaunch test course_mode_launcher.launch

# ACC 모드 (적응형 순항 제어)
roslaunch test acc_mode_launcher.launch

# 조향 테스트 모드
roslaunch test steer_mode_launcher.launch

# E-Stop 테스트 모드
roslaunch test estop_mode_launcher.launch

# ACC + 정지 모드
roslaunch test acc_stop_mode_launcher.launch

ROS 토픽 구조

커스텀 메시지

메시지 필드 설명
ControlMsg header, target_speed (float32), target_angle (float32) 계획 → 제어 명령
FeedbackMsg current_speed (float32), is_estop_activated (bool) 제어 → 피드백
TimeFloat64 header, data (Float32MultiArray) 콘 좌표 배열
TrafficMsg is_green (bool) 신호등 상태
AccMsg header, is_drive (bool), ref_steering (float32) ACC 차선 정보
BoundingBoxes bounding_boxes[] YOLO 검출 결과

주요 토픽

/sorted_cones          ← cone_detection    (콘 좌표)
/traffic_light_status  ← camera_traffic    (신호등)
/driving_state         ← camera_acc        (차선 검출)
/control_msg           ← test_node         (조향/속도 명령)
/feedback_msg          ← ESP32/rosserial   (속도/E-Stop 피드백)

주요 파라미터

파라미터 설명
최대 속도 3.0 km/h 안전 제한 속도
제어 주기 10 Hz 메인 루프 주기
콘 검출 거리 0 ~ 20 m LiDAR 검출 범위
콘 높이 필터 0.2 ~ 0.85 m 지면 기준 필터
클러스터 허용치 0.25 m 유클리디안 클러스터링
조향 범위 -45 ~ +45 deg 스티어링 각도 제한
휠베이스 1.35 m 차량 제원
PID (종방향) Kp=90, Ki=0.025, Kd=20 속도 제어 게인
메시지 타임아웃 1000 ms 안전 정지 트리거

서브시스템 상세

각 서브시스템의 상세 문서는 아래 링크를 참고하세요:

  • KAI_Control - 하드웨어 제어 (CAN, ESP32, 모드 전환)
  • KAI_Perception - 센서 인지 (LiDAR, 카메라, YOLO)
  • KAI_Planning - 경로 계획 (콘 정렬, 경로 생성, 차량 제어)

팀 정보

Team KAI - 건국대학교 자율주행 자작차 동아리

About

건국대학교 자율주행 자작차 동아리 Team KAI - ROS 기반 콘 트랙 자율주행 시스템 (LiDAR, Camera, GPS, IMU)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors