[자율주행] 자이카 ROS 패키지, 노드, 토픽 구성

zzwon1212·2023년 10월 9일

자율주행

목록 보기
3/6

1. 패키지

1.1. 디렉토리 구조

  • ~/xycar_ws
    • build
    • devel
    • src
      • xycar_device
        • usb_cam
        • xycar_imu
        • xycar_motor
        • xycar_lidar
        • xycar_ultrasonic
        • realsense2_camera

1.2. 노드&토픽 정보

장비노드 정보토픽 정보연결
카메라/usb_cam/usb_cam/image_raw발행
IMU 센서/xycar_imu/imu발행
라이다/xycar_lidar/scan발행
초음파 센서/xycar_ultrasonic/xycar_ultrasonic발행
Depth 카메라/camera/realsense2_camera/camera/color/image_raw발행
/camera/depth/image_rect_raw발행
모터제어기/xycar_motor/xycar_motor구독

2. 노드와 토픽 구성

2.1. 모터 제어

  • 구조

    • 프로세서 보드 → VESC 장치: 2개의 제어신호 생성
      • 구동 모터(Wheel Motor)
        • 전진/후진, 속도
        • 값 범위: 후진 MAX(-50) ~ 전진 MAX(50)
      • 조향 모터(Steering Motor)
        • 좌/우회전(최대 각도 20도)
        • 값 범위: left MAX(-50) ~ right MAX(50)
  • 토픽 정보 확인
    [header(seq, stamp, frame_id), angle, speed] 구조체를 담은 Custom 메시지이다.

    $ roscd xycar_motor # 패키지 확인
    
    # '장애물 회피 주행' 실행 후
    $ rostopic list # 토픽 리스트 확인
    $ rostopic info /xycar_motor # 토픽 정보 확인
    $ rostopic type /xycar_motor # 토픽 타입 확인
    $ rosmsg show xycar_msgs/xycar_motor # 메시지 정보 확인
    $ rostopic echo xycar_motor # 발행되고 있는 토픽을 실시간으로 출력
    $ rqt_graph # 메시지와 노드 연결을 시각화

  • 토픽 발행 주기: 0.7초 동안 도착하는 토픽이 없으면 속도와 조향각이 0으로 세팅된다.

2.2. 차선 추종 주행

# '자율 주행' 실행 후
$ rqt_graph

  • 실행된 영상에 표시되는 정보
    화면의 중앙을 차선 중앙에 맞추기 위해 조향각을 조정한다.
    • 파란색 선: 차선
    • 녹색 사각형 3개: 왼쪽 차선, 차선 중앙, 오른쪽 차선
    • 빨간색 사각형: 화면의 중앙

2.3. 장애물 회피 주행

# '장애물 회피 주행' 실행 후
$ rqt_graph

2.4. 사람 인식 주행

YOLO를 활용하여 영상에서 사람을 찾은 뒤, 장애물을 피하면서 찾은 사람 방향으로 운전한다.

# '사람 인식 주행' 실행 후
$ rqt_graph

2.5. 수동 조종 주행

# 자이카 '조이스틱 제어', 스마트폰 '자이카 조이스틱' 실행 후
$ rqt_graph

2.6. 센싱 데이터 시각화

그래픽으로 센싱 데이터를 표시하는 각종 데이터 뷰어를 실행한다.

# '뷰어 실행' 실행 후
$ rqt_graph


📙강의 - (주)자이트론 대표이사 허성민

profile
JUST DO IT.

0개의 댓글