• Stars
    star
    120
  • Rank 295,983 (Top 6 %)
  • Language
    C++
  • Created over 11 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ROS Camera driver for GStreamer-based video streams.

GSCam Build Status

This is a ROS package originally developed by the Brown Robotics Lab for broadcasting any GStreamer-based video stream via the standard ROS Camera API. This fork has several fixes incorporated into it to make it broadcast correct sensor_msgs/Image messages with proper frames and timestamps. It also allows for more ROS-like configuration and more control over the GStreamer interface.

Note that this pacakge can be built both in a rosbuild and catkin workspaces.

GStreamer Library Support

gscam supports the following versions of GStreamer

0.1.x: Default

Install dependencies via rosdep.

1.0.x: Experimental

Dependencies:

  • gstreamer1.0-tools
  • libgstreamer1.0-dev
  • libgstreamer-plugins-base1.0-dev
  • libgstreamer-plugins-good1.0-dev

Ubuntu Install:

12.04
sudo add-apt-repository ppa:gstreamer-developers/ppa
sudo apt-get install gstreamer1.0-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev
14.04
sudo apt-get install gstreamer1.0-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev

Usage:

  • Use the CMake flag -DGSTREAMER_VERSION_1_x=On when building
  • See the Video4Linux2 launchfile example for an example of the differences in the GStreamer config lines

Notes:

  • This has been tested with v4l2src

ROS API (stable)

gscam

This can be run as both a node and a nodelet.

Nodes

  • gscam

Topics

  • camera/image_raw
  • camera/camera_info

Services

  • camera/set_camera_info

Parameters

  • ~camera_name: The name of the camera (corrsponding to the camera info)
  • ~camera_info_url: A url (file://path/to/file, package://pkg_name/path/to/file) to the camera calibration file.
  • ~gscam_config: The GStreamer configuration string.
  • ~frame_id: The TF frame ID.
  • ~reopen_on_eof: Re-open the stream if it ends (EOF).
  • ~sync_sink: Synchronize the app sink (sometimes setting this to false can resolve problems with sub-par framerates).

C++ API (unstable)

The gscam c++ library can be used, but it is not guaranteed to be stable.

Examples

See example launchfiles and configs in the examples directory. Currently there are examples for:

  • Video4Linux2: Standard video4linux-based cameras like USB webcams.
    • GST-1.0: Use the roslaunch argument GST10:=True for GStreamer 1.0 variant
  • Nodelet: Run a V4L-based camera in a nodelet
  • Video File: Any videofile readable by GStreamer
  • DeckLink: BlackMagic DeckLink SDI capture cards (note: this requires the gst-plugins-bad plugins)

More Repositories

1

velodyne

ROS support for Velodyne 3D LIDARs
C++
583
star
2

usb_cam

A ROS Driver for V4L2 USB Cameras
C++
542
star
3

rosserial

A ROS client library for small, embedded devices, such as Arduino. See: http://wiki.ros.org/rosserial
C++
473
star
4

nmea_navsat_driver

ROS package containing drivers for NMEA devices that can output satellite navigation data (e.g. GPS or GLONASS).
Python
211
star
5

video_stream_opencv

A package to open video streams and publish them in ROS using the opencv videocapture mechanism
C++
206
star
6

joystick_drivers

ROS drivers for joysticks
Python
173
star
7

flir_camera_driver

C++
160
star
8

ros2_ouster_drivers

ROS2 Drivers for the Ouster OS-0, OS-1, and OS-2 Lidars
C++
139
star
9

pointgrey_camera_driver

ROS driver for Pt. Grey cameras, based on the official FlyCapture2 SDK.
C++
127
star
10

transport_drivers

A set of ROS2 drivers for transport-layer protocols.
C++
92
star
11

odva_ethernetip

Library implementing ODVA EtherNet/IP (Industrial Protocol).
C++
91
star
12

urg_node

ROS wrapper for the Hokuyo urg_c library.
C++
87
star
13

mocap_optitrack

ROS nodes for working with the NaturalPoint Optitrack motion capture setup
C++
83
star
14

libuvc_ros

C++
81
star
15

audio_common

Common code for working with audio in ROS
Python
77
star
16

vrpn_client_ros

VRPN ROS Client
C++
55
star
17

axis_camera

Contains basic Python drivers for accessing an Axis camera's MJPG stream. Also provides control for PTZ cameras.
Python
52
star
18

openni2_camera

ROS wrapper for openni 2.0
C++
49
star
19

openni_camera

A ROS driver for OpenNI depth (+ RGB) cameras.
C++
48
star
20

zbar_ros

Lightweight ROS wrapper for zbar barcode/qrcode reader library (http://zbar.sourceforge.net/)
C++
46
star
21

novatel_span_driver

Work in progress driver for NovAtel SPAN devices. See: http://wiki.ros.org/novatel_span_driver
Python
39
star
22

camera_umd

C
38
star
23

ackermann_msgs

ROS messages for Ackermann steering
CMake
36
star
24

phidgets_drivers

ROS drivers for various Phidgets devices
C++
35
star
25

nmea_msgs

nmea_msgs is a ROS package containing messages related to the NMEA standard
CMake
29
star
26

microstrain_mips

C
26
star
27

gps_umd

C
25
star
28

hokuyo_node

A ROS node to provide access to SCIP 2.0-compliant Hokuyo laser range finders (including 04LX).
C++
24
star
29

openni_tracker

C++
24
star
30

linux_peripheral_interfaces

linux hardware utilities.
C++
21
star
31

advanced_navigation_driver

ROS driver for Advanced Navigation devices
C
19
star
32

omron

ROS driver for OMRON OS32C laser scanner.
C++
18
star
33

camera1394

ROS driver for devices supporting the IEEE 1394 Digital Camera (IIDC) protocol.
C++
17
star
34

rgbd_launch

Launchfiles for use with depth cameras.
Python
16
star
35

microstrain_3dmgx2_imu

A driver for IMUs compatible the microstrain 3DM-GX2 and 3DM-GX3 protoco
C++
15
star
36

um7

ROS driver for UM7 inertial measurement device.
C++
14
star
37

wifi_ddwrt

Python
14
star
38

flir_ptu

ROS driver for FLIR pan-tilt units
C++
14
star
39

sicktoolbox

This package contains the SICK LIDAR Matlab/C++ Toolbox, available from http://sicktoolbox.sourceforge.net/
C++
13
star
40

wge100_driver

Contains the ROS driver and firmware for the WGE100 camera used on the PR2 robot.
Forth
13
star
41

urg_c

This project introduces sample programs of the URG library. Applications using URG and URG library are also introduced here. URG is Scanning Laser Range Finder of Hokuyo Automatic Co., for robots, autonomous systems and security systems.
C
11
star
42

openni2_tracker

C++
8
star
43

korg_nanokontrol

ROS driver for the Korg NanoKontrol MIDI input device.
Python
8
star
44

openni2_launch

Launch files to open an OpenNI2 device and load all nodelets to convert raw depth/RGB/IR streams to depth images, disparity images, and (registered) point clouds.
CMake
8
star
45

four_wheel_steering_msgs

ROS messages for steering vehicles using front and rear wheels
CMake
7
star
46

rosserial-experimental

C++
6
star
47

nmea_comms

Generalized ROS interface to NMEA-speaking devices.
C++
6
star
48

joystick_drivers_tutorials

Tutorials for the joystick_drivers stack
Python
6
star
49

prosilica_driver

Contains the ROS driver and the SDK for AVT/Prosilica cameras.
C++
6
star
50

openni_launch

This repo is DEPRECATED but will be kept for backward compatibility. To stay up-to-date please visit openni_camera repo:
CMake
5
star
51

sicktoolbox_wrapper

sicktoolbox_wrapper is a ROS wrapper for the outstanding sicktoolbox library for interfacing with the SICK LMS2xx lasers.
C++
5
star
52

driver_common

Deprecated common resources for drivers in ROS.
C++
5
star
53

um6

ROS driver for UM6 inertial measurement device.
C++
4
star
54

smart_battery_msgs

CMake
3
star
55

prosilica_gige_sdk

C
2
star
56

nmea_gps_driver

Python
2
star
57

video_stream_opencv-release

2
star
58

kvh_drivers

ROS drivers for KVH sensing devices.
C++
2
star
59

ati_netft_ros_driver

C++
1
star