INTRODUCTION
Overview
Download and Install
Quick Start
Documentation
Publications

NONFRAMEWORK CODE
Driver Interfaces
Drivers
Libraries
Utilities

FRAMEWORK CODE
Interfaces
Components
Libraries
Utilities

Full Software Listings

DEVELOPER
Tutorials
Examples
Dev Guide
Dashboard

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         

CameraServer
[ComponentsStand-Alone ComponentsIceBox ServicesC++LinuxQNXWindows]

A hardware abstraction component for Camera's. More...

A hardware abstraction component for Camera's.

Provides
  • orca_interface_home
  • orca_interface_camera [CameraServer.Provides.Camera]
  • orca_interface_status
Requires
  • none
cameraserver.png
Drivers

This component dynamically loads an implementation of a Hydro hardware interface hydrointerfaces::Image. You can also load your own implementation as long as the shared library is in the path. See Hydro documentation for the list of available drivers.

  • hydro_drivers_camera
Configuration
  • CameraServer.Config.DriverLib (string)
    • Name of shared library containing the hardware driver
    • Valid values are at least: { 'libHydroImageFake.so', 'libHydroImageFile.so', 'libHydroImageDC1394.so' }
    • Default: "libHydroImageFake.so"

CameraServer Settings

  • CameraServer.Config.Offset (Frame3d) [m, deg]
    • Position of the camera sensor plane with respect to the robot's local coordinate system.
    • Format: x y z roll pitch yaw (space separated)
    • Example: a camera mounted upside down with now translation: "0.0 0.0 0.0 180.0 0.0 0.0"
    • Default: 0.0 0.0 0.0 0.0 0.0 0.0
  • CameraServer.Config.FocalLength (double) [pixel]
    • Focal lengths of attached lense for X,Y axis in pixels. Useful to other components.
    • Default: 0.0 0.0
  • CameraServer.Config.PrinciplePoint (double) [pixel]
    • The exact images centre on X,Y axis in pixels. Useful to other components.
    • Default: 0.0 0.0
  • CameraServer.Config.DistortionParameters (double) [pixel]
    • A series of four distortion parameter coefficients k1, k2 are radial distortion and p1, p2 are tangential distortion coefficients. Useful to other components.
    • Default: 0.0 0.0 0.0 0.0
  • CameraServer.Config.SensorSize (Size2d) [cm,cm]
    • Physical dimensions of the CCD or CMOS sensor.
    • Format: width height (space separated)
    • Default: 0.846 0.846 (1/3" 1/3", a typical sensor size)
  • CameraServer.Config.ImageWidth (int) [pixels]
    • Width of desired image in pixels
    • Default: 320
  • CameraServer.Config.ImageHeight (int) [pixels]
    • Height of desired image in pixels
    • Default: 240
  • CameraServer.Config.ImageFormat (string)
    • The format of the image that the camera produces. This is what is sent over the wire.
    • The viewer and logger support any format so long as there is a conversion plugin for your format to 'BGR8' or 'GRAY8'
    • Valid Values: {'BGR8', 'GRAY8' Any other format you choose!}
    • Default: 'BGR8'
      See also:
      Individual drivers may have additional configuration parameters which are specified as Camera.Config.XXX. See driver documentation.
      An example configuration file is installed into [ORCA-INSTALL-DIR]/share/orca/cfg/ directory.

Notes

ImageFormat is a string. This means that you can easily send your data in whatever format you choose. It is assumed the default opencv driver is good enough in most cases and in special cases a custom driver can be written.

ImageWidth and ImageHeight are sanity checked and an exception is thrown if they do not match the default capture values OpenCV gets with the cvcamera driver.

Individual cameras have different options, different formats, and sometimes even their own unusual requirements. It was therefore thought by the author of this interface that it would be more beneficial to have the very basic framework and interface for sending data defined with maximum flexibility in mind given to driver writters. The cvcamera, image, and fake drivers should suffice for most robotics needs in all other cases.

In order for the logger and viewer to properly show your custom image format (should you have one) you need to write a conversion plugin if one doesn't exist already. It should convert to a common variation of RGBA such as BGR8, BGRA8, RGBA8, RGB8 for color logging/viewing or GRAY8 for grayscale logging and viewing.

The camera intrinsic parameters are assumed to use so-called pinhole camera model. As such the camera is modelled with a x,y focal lengths the x,y principle point and 4 distortion parameters (k1, k2 are radial distortion coefficients, p1, p2 are tangential distortion coefficients). These coefficients are explained in detail in the OpenCV reference guide for camera camlibration and Matlab Camera Calibration Toolbox.

Troubleshooting

1. First check the ImageServer Troubleshooting guide.

Authors

Alex Brooks, Tom Burdick, Tobias Kaupp, Alex Makarenko

 

Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)


Generated for Orca Robotics by  doxygen 1.4.5