Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
Initial commit.
  • Loading branch information
GoodarzMehr authored Jul 12, 2021
1 parent 531f609 commit 20b9739
Showing 1 changed file with 20 additions and 59 deletions.
79 changes: 20 additions & 59 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,56 +1,31 @@
GSCam [![Build Status](https://travis-ci.org/ros-drivers/gscam.svg?branch=master)](https://travis-ci.org/ros-drivers/gscam)
CARMA GStreamer Camera Driver
===========================================================================================================================

This is a ROS package originally developed by the [Brown Robotics
Lab](http://robotics.cs.brown.edu/) for broadcasting any
[GStreamer](http://gstreamer.freedesktop.org/)-based video stream via the
standard [ROS Camera API](http://ros.org/wiki/camera_drivers). 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.
This is a fork of the [ROS GSCam](https://github.com/ros-drivers/gscam) package
that is used for broadcasting any [GStreamer](http://gstreamer.freedesktop.org/)-based
video stream via the standard [ROS Camera API](http://ros.org/wiki/camera_drivers).
This fork has been modified to build a Docker image that can serve as a camera driver
for the [CARMA Platform](https://github.com/usdot-fhwa-stol/carma-platform).

GStreamer Library Support
-------------------------

gscam supports the following versions of GStreamer

### 0.1.x: _Default_

Install dependencies via `rosdep`.
This driver supports the following versions of GStreamer:

### 1.0.x: Experimental
#### 0.1.x: _Default_

#### Dependencies:

* gstreamer1.0-tools
* libgstreamer1.0-dev
* libgstreamer-plugins-base1.0-dev
* libgstreamer-plugins-good1.0-dev
#### 1.0.x: Experimental

Ubuntu Install:

##### 12.04

```sh
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
Ubuntu Installation
------------------------
Assuming the CARMA Platform is installed under `~\carma_ws\carma\src`,
```

##### 14.04

```sh
sudo apt-get install gstreamer1.0-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev
cd ~\carma_ws\carma\src
git clone https://github.com/VT-ASIM-LAB/gstreamer_camera_driver.git
cd gstreamer_camera_driver/docker
sudo ./build-image.sh -d
```

#### Usage:
* Use the CMake flag `-DGSTREAMER_VERSION_1_x=On` when building
* See the [Video4Linux2 launchfile example](examples/v4l.launch) for
an example of the differences in the GStreamer config lines

#### Notes:
* This has been tested with `v4l2src`
After the Docker image is built, add it to the appropriate `docker-compose.yml` file in the `carma-config` directory.

ROS API (stable)
----------------
Expand All @@ -76,24 +51,10 @@ This can be run as both a node and a nodelet.
* `~frame_id`: The [TF](http://www.ros.org/wiki/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.
* `~publish_timestamp`: Publish the timestamp of received image frames.

Examples
--------

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

* [Video4Linux2](examples/v4l.launch): Standard
[video4linux](http://en.wikipedia.org/wiki/Video4Linux)-based cameras like
USB webcams.
* ***GST-1.0:*** Use the roslaunch argument `GST10:=True` for GStreamer 1.0 variant
* [Nodelet](examples/gscam_nodelet.launch): Run a V4L-based camera in a nodelet
* [Video File](examples/videofile.launch): Any videofile readable by GStreamer
* [DeckLink](examples/decklink.launch):
[BlackMagic](http://www.blackmagicdesign.com/products/decklink/models)
DeckLink SDI capture cards (note: this requires the `gst-plugins-bad` plugins)
See the example launchfiles in the launch directory. Each launch file launches
a Leopard Imaging LI-IMX390 camera connected via a TCP/IP connection.

0 comments on commit 20b9739

Please sign in to comment.