PREPARE

  1. cfg 파일 넣기

xycar_ws/src/darknet_ros/darknet_ros/yolo_network_config/cfg 안에 본인이 학습에 사용한 cfg파일 넣기

  1. 가중치 파일 넣기

xycar_ws/src/darknet_ros/darknet_ros/yolo_network_config/weights 안에 가중치 파일 넣기

  1. yaml 파일 생성 ‼파일 내에 한글은 없어야 함

xycar_ws/src/darknet_ros/darknet_ros/config/monday.yaml

yolo_model:

  config_file:
    name: monday.cfg #cfg파일 이름
  weight_file:
    name: monday.weights #가중치 파일 이름
  threshold:
    value: 0.3
  detection_classes:
    names: #클래스 이름 ‼순서대로 쓰기
      - person
      - bicycle
      - car
  1. launch파일 만들기

xycar_ws/src/darknet_ros/darknet_ros/launch/monday.launch

<?xml version="1.0" encoding="utf-8"?>

<launch>
  <!-- Console launch prefix -->
  <arg name="launch_prefix" default=""/>
  <arg name="image" default="/usb_cam/image_raw" />

  <!-- Config and weights folder. -->
  <arg name="yolo_weights_path"          default="$(find darknet_ros)/yolo_network_config/weights"/>
  <arg name="yolo_config_path"           default="$(find darknet_ros)/yolo_network_config/cfg"/>

  <!-- ROS and network parameter files -->
  <arg name="ros_param_file"             default="$(find darknet_ros)/config/ros.yaml"/>
  <arg name="network_param_file"         default="$(find darknet_ros)/config/monday.yaml"/> #생성한 yaml파일

  <!-- Load parameters -->
  <rosparam command="load" ns="darknet_ros" file="$(arg ros_param_file)"/>
  <rosparam command="load" ns="darknet_ros" file="$(arg network_param_file)"/>

  <!-- Start darknet and ros wrapper -->
  <node pkg="darknet_ros" type="darknet_ros" name="darknet_ros" launch-prefix="$(arg launch_prefix)">
    <param name="weights_path"          value="$(arg yolo_weights_path)" />
    <param name="config_path"           value="$(arg yolo_config_path)" />
    <remap from="camera/rgb/image_raw"  to="$(arg image)" />
  </node>

 <!--node name="republish" type="republish" pkg="image_transport" output="screen" 	args="compressed in:=/front_camera/image_raw raw out:=/usb_cam/image_raw" /-->
</launch>

❗객체 인식 화면 자동으로 뜨게 하기 or 끄게 하기

xycar_ws/src/darknet_ros/darknet_ros/config/ros.yaml

subscribers:

  camera_reading:
    topic: /usb_cam/image_raw
    queue_size: 1

actions:

  camera_reading:
    name: /darknet_ros/check_for_objects

publishers:

  object_detector:
    topic: /darknet_ros/found_object
    queue_size: 1
    latch: false

  bounding_boxes:
    topic: /darknet_ros/bounding_boxes
    queue_size: 1
    latch: false

  detection_image:
    topic: /darknet_ros/detection_image
    queue_size: 1
    latch: true

image_view:

  enable_opencv: false #true - 인식 화면 켜기/false - 인식 화면 끄기
  wait_key_delay: 1
  enable_console_output: true