<주행 영상 bag파일로 저장하기>
1. 실제 주행용 코드 실행
ex. $ roslaunch {패키지 이름} hough.launch
2. rosbag record 명령어 실행
디렉토리로 이동 : ~/catkin_ws/src/bagfile
터미널 명령어 실행 : $rosbag record -O {bag 파일 이름} /usb_cam/image_raw -> 저장될 토픽 이름 : /usb_cam/image_raw
이렇게 하면, 현재 디렉토리(~/catkin_ws/src/bagfile) 에 bag파일이 생성될 것임.
bag파일이 제대로 생성되었는지 확인하는 방법 : 터미널 명령어 실행 : $rosbag info {bag 파일 이름}
3. bag파일영상확인용 py파일 작성
디렉토리로 이동 : ~/catkin_ws/src/bagfile/src
터미널 명령어 실행 : $gedit edge_cam.py
메모장 열리면, 아래 내용 작성
---
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cv2
import rospy
import numpy as np
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
bridge = CvBridge()
cv_image = np.empty(shape=[0])
#cv_image = np.empty((640,480))
def img_callback(data):
global cv_image
cv_image = bridge.imgmsg_to_cv2(data, "bgr8")
rospy.init_node('cam_tune', anonymous=True)
rospy.Subscriber("/usb_cam/image_raw/", Image, img_callback)
while not rospy.is_shutdown():
if cv_image.size != (640*480*3):
continue
gray = cv2.cvtColor(cv_image, cv2.COLOR_BGR2GRAY)
blur_gray = cv2.GaussianBlur(gray,(5,5),0)
edge_img = cv2.Canny(np.uint8(blur_gray),60,70)
cv2.imshow("original", cv_image)
cv2.imshow("gray", gray)
cv2.imshow("gaussian blur", blur_gray)
cv2.imshow("edge", edge_img)
cv2.waitKey(1)
작성후,
터미널 명령어 실행 : $chmod u+x edge_cam.py
4. "위 3번에서 만든 py파일" 실행용 launch 파일 작성
디렉토리로 이동 : ~/catkin_ws/src/bagfile/launch
터미널 명령어 실행 : $gedit edge_cam.launch
메모장 열리면, 아래 내용 작성
---
<launch>
<node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
<param name="video_device" value="/dev/video0" />
<param name="image_width" value="640" />
<param name="image_height" value="480" />
<param name="pixel_format" value="yuyv" />
<param name="camera_frame_id" value="usb_cam" />
<param name="io_method" value="mmap"/>
</node>
<node name="edge_cam_node" pkg="bagfile"
type="edge_cam.py" output="screen" />
</launch>
작성후,
터미널 명령어 실행 : $chmod u+x edge_cam.launch
5. 코드 실행
터미널 명령어 실행 : $roslaunch bagfile edge_cam.launch
디렉토리로 이동 : ~/catkin_ws/src/bagfile/src
터미널 명령어 실행 : $rosbag play {bag 파일 이름}
'기술' 카테고리의 다른 글
[ROS] line_drive.py (0) | 2021.10.14 |
---|---|
[ROS] hough_drive.py (0) | 2021.10.14 |
ros 비디오 녹화 또는 rosbag 관련 (0) | 2021.10.12 |
[참고할만한 블로그나 github] (0) | 2021.09.27 |
[논문구현 참고사이트] (0) | 2021.09.26 |