자이카 카메라 토픽과 패키지

10710 단어 XycarXycar

1. 카메라 패키지와 토픽

패키지

패키지명: usb/cam

패지키 위치: xycar_ws/src/usb_cam

토픽

토픽명:

  • /usb_cam/image_raw
  • /usb_cam/image_raw/compressed

토픽 타입: sensor_msgs/image

구성:

  • std_msgs/Header header
    • unit32 seq
    • time stamp
    • string frame_id
  • unit32 height
  • unit32 width
  • unit8[] data

카메라 노드 실행 런치

<launch>
    <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
	<param name="video_device" value="/dev/video0" />
	<param name="autoexposure" value="false" />
	<param name="exposure" value="48" />
	<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>

세팅 값:

  • <param name="exposure" value="48"/>
  • <param name="video_device" value="/dev/video0" />

카메라 토픽과 OpenCV 브릿지

카메라 토픽 OpenCV로 보기

#!/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])

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
    
	cv2.imshow("original", cv_image)
	cv2. waitkey(1)

2. ROS rosbag 사용법

.bag 파일로 저장하기

$ rosbag record -a$: 발행되고 있는 모든 토픽을 저장

$ rosbag record -O camera /usb_cam/image_raw$: 카메라 토픽을 camera.bag 파일로 저장

$ rosbag info camera.bag$: camera.bag 파일의 각종 정보들을 보여줌

bag 파일의 토픽 재생하기

$ rosbag play camera.bag: 저장한 토픽 재생

$ rosbag play -r 2 camera.bag: 2배속으로 재생하기

저장된 bag 파일에서 카메라 토픽만 꺼내기

$ rosbag record -O cam_topic /usb_cam/image_raw

$ rosbag play full_topic.bag

동영상 파일로 저장하기

$ rosrun image_view video_recorder image:='/usb_cam/image_raw' _filename:='track2.avi' _fps:=30
$ rosbag play cam_topic.bag

좋은 웹페이지 즐겨찾기