Only released in EOL distros:
Package Summary
RealSense Camera package allowing access to Intel 3D cameras and advanced modules
- Maintainer status: maintained
- Maintainer: Sergey Dorodnicov <sergey.dorodnicov AT intel DOT com>, Itay Carpis <itay.carpis AT intel DOT com>
- Author: Rajvi Jingar <rajvi.jingar AT intel DOT com>, Reagan Lopez <reagan.lopez AT intel DOT com>, Matt Hansen <matthew.k.hansen AT intel DOT com>, Mark Horn <mark.d.horn AT intel DOT com>
- License: BSD 3-clause. See license attached
- Bug / feature tracker: https://github.com/intel-ros/realsense/issues
- Source: git https://github.com/intel-ros/realsense.git (branch: indigo-devel)
Package Summary
RealSense Camera package allowing access to Intel 3D cameras and advanced modules
- Maintainer status: maintained
- Maintainer: Sergey Dorodnicov <sergey.dorodnicov AT intel DOT com>, Itay Carpis <itay.carpis AT intel DOT com>
- Author: Rajvi Jingar <rajvi.jingar AT intel DOT com>, Reagan Lopez <reagan.lopez AT intel DOT com>, Matt Hansen <matthew.k.hansen AT intel DOT com>, Mark Horn <mark.d.horn AT intel DOT com>
- License: BSD 3-clause. See license attached
- Bug / feature tracker: https://github.com/intel-ros/realsense/issues
- Source: git https://github.com/intel-ros/realsense.git (branch: indigo-devel)
Contents
Overview
This package provides ROS node(s) for using the Intel® RealSense™ R200, F200 and SR300 cameras.
Installation
Installation Prerequisites
This package requires the librealsense package as the underlying camera drivers for all Intel® RealSense™ cameras. BEFORE installing the realsense-camera package, follow the Install Prerequisites for librealsense.
ROS Debian Package
Most users should only need to install the prebuilt ROS Debian packages.
sudo apt-get install 'ros-*-realsense-camera'
This will also install the required ros-<*distro*>-librealsense library on your system.
Build from Source (rare usage)
If a user needs to debug this package or contribute changes/bug fixes to the package, only then should the package need to be built from source. Please closely follow the directions provided on the Building from sources page.
Intel® RealSense™ Camera Firmware
To ensure you camera has the most current, supported firmware, please review the librealsense compatible device information. If the camera requires a firmware upgrade, please refer to the Intel® RealSense™ Camera software support page. Note: Currently there is no native Linux tool for FW updates; all updates require a system with Microsoft Windows.
Supported Camera Types
Support / Feature Requests
Please submit requests or report bugs concerning this package to the realsense_camera GitHub Issues.
ROS API
realsense_camera_nodelet
The Intel® RealSense™ camera driver.Note: By default, the driver uses a preset mode for each camera. To change the stream width, height, or FPS, see the Changing Camera Parameters from the Default Presets tutorial.
Published Topics
Color camera
- Camera calibration and metadata.
- Color rectified image. RGB format.
Depth camera
- Camera calibration and metadata.
- Raw image from device. Contains uint16 depths in mm.
- Registered XYZRGB point cloud. By default, pointcloud is disabled.
IR camera
Infra Red camera image- Camera calibration and metadata.
- Raw uint16 IR image.
IR2 camera
Infra Red secondary camera image. Available only for R200 and ZR300 cameras.- Camera calibration and metadata.
- Raw uint16 IR image.
Fisheye camera
Available only for ZR300 cameras.- Camera calibration and metadata.
- Raw uint16 fisheye view image.
IMU
Available only for ZR300 cameras.- Each IMU topic message will either contain angular velocity or linear acceleration data. The element 0 of the associated covariance matrix will be set to -1 to indicate the absence of data. E.g. If the topic message does not contain angular velocity data, then the element 0 of the angular velocity covariance matrix will be set to -1.This topic message does not contain orientation data and hence the element 0 of the orientation covariance matrix will always be -1.
Services
get_settings (std_srvs/Empty)- Gets the current value of the supported camera options in "options:value" format separated by semicolon returned as std_msgs/String.
- Set to true power on the camera, false to power off the camera. It turns off the camera only if camera has no subscribers and returns 'true'; otherwise it returns false.
- Set to true power on the camera, false to forcefully power off the camera. It turns off the camera regardless of number of subscribers. Returns 'true' if the service call is successfully; otherwise it returns false.
- Gets current state of camera power returned as std_msgs/Bool. It checks whether camera is on or off and returns true or false respectively.
- Available only for ZR300 cameras. Gets the IMU intrinsic data. Returns realsense_camera/IMUInfo with the header.frame_id set to either "imu_accel" or "imu_gyro" to distinguish between "accel" and "gyro" info.
Parameters
Static Parameters
- Specify the mode to start camera streams. Mode comprises of height, width and fps. Preset mode enables default values whereas Manual mode enables the specified parameter values.
- Specify the serial_no to uniquely connect to a camera, especially if multiple cameras are detected by the nodelet. You may get the serial_no from the info stream by launching the default launch file.
- Alternatively to serial_no, this can be used to connect to a camera by its USB Port ID, which is a Bus Number-Port Number in the format "Bus#-Port#". If used with serial_no, both must match correctly for camera to be connected.
- Specify the type of the camera - "R200", "F200", "SR300" or "ZR300".
- Specify if to enable or not the infrared camera(s). Note: On cameras with two Infrared streams, both will be enabled or disabled together.
- Specify if to enable or not the depth camera.
- Specify the depth camera width resolution.
- Specify the depth camera height resolution.
- Specify the depth camera FPS.
- Specify if to enable or not the color camera.
- Specify the color camera width resolution.
- Specify the color camera height resolution.
- Specify the color camera FPS.
- Available only for ZR300 cameras. Specify if to enable or not the fisheye camera.
- Available only for ZR300 cameras. Specify the fisheye camera width resolution.
- Available only for ZR300 cameras. Specify the fisheye camera height resolution.
- Available only for ZR300 cameras. Specify the fisheye camera FPS.
- Available only for ZR300 cameras. Specify if to enable or not the IMU sensor.
- Specify if to enable or not the native pointcloud. By default, it is set to false due to performance issues. This option is depreciated in favor of the rgbd_launch pointcloud and will be removed in the near future.
- Specify if to enable or not the transform frames publication.
- Publish transform frames as dynamic; default is false = Static, true = Dynamic.
- Specify the base frame id of the camera.
- Specify the depth frame id of the camera.
- Specify the depth optical frame id of the camera.
- Specify the color frame id of the camera.
- Specify the color optical frame id of the camera.
- Specify the IR frame id of the camera.
- Specify the IR optical frame id of the camera.
- Available only for R200 and ZR300 cameras. Specify the IR2 frame id of the camera.
- Available only for R200 and ZR300 cameras. Specify the IR2 optical frame id of the camera.
- Available only for ZR300 camera. Specify the fisheye frame id of the camera.
- Available only for ZR300 camera. Specify the fisheye optical frame id of the camera.
- Available only for ZR300 camera. Specify the IMU frame id of the camera.
- Available only for ZR300 camera. Specify the IMU optical frame id of the camera.
R200 Dynamically Reconfigurable Parameters
R200 camera See the dynamic_reconfigure package for details on dynamically reconfigurable parameters.- Enable Depth
- Backlight Compensation Range: 0 to 4
- Brightness Range: 0 to 255
- Contrast Range: 16 to 64
- Gain Range: 0 to 256
- Gamma Range: 100 to 280
- Hue Range: -2200 to 2200
- Saturation Range: 0 to 255
- Sharpness Range: 0 to 7
- White Balance Range: 2000 to 8000
- Exposure Range: 39 to 10000
- LR Gain Range: 100 to 6399
- LR Exposure Range: 1 to 164
- Enable Auto White Balance Range: 0 to 1
- Enable Auto Exposure Range: 0 to 1
- Enable LR Auto Exposure Range: 0 to 1
- Auto Exposure Top Edge Range: 0 to 479
- Auto Exposure Bottom Edge Range: 0 to 479
- Auto Exposure Left Edge Range: 0 to 639
- Auto Exposure Right Edge Range: 0 to 639
- Emitter Enabled Range: 0 to 1
- R200 Depth Control Preset Possible values are: UNUSED (-1): Individual Depth Control was changed, Default (0): Default settings on chip. Similar to Medium. Best for Outdoors., Off (1): Disable almost all hardware-based outlier removal., Low (2): Lower number of outliers removed. Minimal false negatives., Medium (3): Medium number of outliers removed. Balanced approach., Optimized (4): Medium-High number of outliers removed. Derived optimization function., High (5): Higher number of outliers removed. Minimal false positives.
- Estimate Median Decrement Range: 0 to 255
- Estimate Median Increment Range: 0 to 255
- Median Threshold Range: 0 to 1023
- Score Minimum Threshold Range: 0 to 1023
- Score Maximum Threshold Range: 0 to 1023
- Texture Count Threshold Range: 0 to 31
- Texture Difference Threshold Range: 0 to 1023
- Second Peak Threshold Range: 0 to 1023
- Neighbor Threshold Range: 0 to 1023
- LR Threshold Range: 0 to 2047
F200 Dynamically Reconfigurable Parameters
F200 camera See the dynamic_reconfigure package for details on dynamically reconfigurable parameters.- Enable Depth
- Backlight Compensation Range: 0 to 4
- Brightness Range: 0 to 255
- Contrast Range: 16 to 64
- Gain Range: 64 to 2540
- Gamma Range: 100 to 280
- Hue Range: -22 to 22
- Saturation Range: 0 to 255
- Sharpness Range: 0 to 7
- White Balance Range: 2500 to 6500
- Exposure Range: 39 to 10000
- Enable Auto White Balance Range: 0 to 1
- Enable Auto Exposure Range: 0 to 1
- Laser Power Range: 0 to 16
- Accuracy Range: 1 to 3
- Motion Range Range: 0 to 100
- Filter Option Range: 0 to 7
- Confidence Threshold Range: 0 to 15
SR300 Dynamically Reconfigurable Parameters
SR300 camera See the dynamic_reconfigure package for details on dynamically reconfigurable parameters.- Enable Depth
- Backlight Compensation Range: 0 to 4
- Brightness Range: -64 to 64
- Contrast Range: 0 to 100
- Gain Range: 0 to 128
- Gamma Range: 100 to 500
- Hue Range: -180 to 180
- Saturation Range: 0 to 100
- Sharpness Range: 0 to 100
- White Balance Range: 2800 to 6500
- Enable Auto White Balance Range: 0 to 1
- Exposure Range: 39 to 10000
- Enable Auto Exposure Range: 0 to 1
- Laser Power Range: 0 to 16
- Accuracy Range: 1 to 3
- Motion Range Range: 0 to 100
- Filter Option Range: 0 to 7
- Confidence Threshold Range: 0 to 15
- Enable Motion Versus Range Range: 0 to 2
- Enable Laser Range: 0 to 1
- Min Motion Versus Range Range: -32767 to 32767
- Max Motion Versus Range Range: -32767 to 32767
- Start Motion Versus Range Range: -32767 to 32767
- Min Laser Range: -32767 to 32767
- Max Laser Range: -32767 to 32767
- Start Laser Range: -32767 to 32767
- Upper Threshold Range: 0 to 65535
- Lower Threshold Range: 0 to 65535
ZR300 Dynamically Reconfigurable Parameters
ZR300 camera See the dynamic_reconfigure package for details on dynamically reconfigurable parameters.- Enable Depth
- Backlight Compensation Range: 0 to 4
- Brightness Range: 0 to 255
- Contrast Range: 16 to 64
- Exposure Range: 50 to 666
- Gain Range: 0 to 256
- Gamma Range: 100 to 280
- Hue Range: -2200 to 2200
- Saturation Range: 0 to 255
- Sharpness Range: 0 to 7
- White Balance Range: 2000 to 8000
- LR Gain Range: 100 to 6399
- LR Exposure Range: 1 to 164
- Enable Auto Exposure Range: 0 to 1
- Enable Auto White Balance Range: 0 to 1
- Enable LR Auto Exposure Range: 0 to 1
- Emitter Enabled Range: 0 to 1
- Depth Clamp Min Range: 0 to 65535
- Depth Clamp Max Range: 0 to 65535
- Fisheye Exposure Range: 40 to 331
- Fisheye Gain Range: 0 to 2047
- Fisheye Enable Auto Exposure Range: 0 to 1
- Fisheye Auto Exposure Mode Range: 0 to 2
- Fisheye Auto Exposure Antiflicker Rate Range: 50 to 60
- Fisheye Auto Exposure Pixel Sample Rate Range: 1 to 3
- Fisheye Auto Exposure Skip Frames Range: 0 to 3
- Frames Queue Size Range: 1 to 20
- Hardware Logger Enabled Range: 0 to 1
- R200 Depth Control Preset Possible values are: UNUSED (-1): Individual Depth Control was changed, Default (0): Default settings on chip. Similar to Medium. Best for Outdoors., Off (1): Disable almost all hardware-based outlier removal., Low (2): Lower number of outliers removed. Minimal false negatives., Medium (3): Medium number of outliers removed. Balanced approach., Optimized (4): Medium-High number of outliers removed. Derived optimization function., High (5): Higher number of outliers removed. Minimal false positives.
- Estimate Median Decrement Range: 0 to 255
- Estimate Median Increment Range: 0 to 255
- Median Threshold Range: 0 to 1023
- Score Minimum Threshold Range: 0 to 1023
- Score Maximum Threshold Range: 0 to 1023
- Texture Count Threshold Range: 0 to 31
- Texture Difference Threshold Range: 0 to 1023
- Second Peak Threshold Range: 0 to 1023
- Neighbor Threshold Range: 0 to 1023
- LR Threshold Range: 0 to 2047
Provided tf Transforms
Transform Restrictions
By default, transforms will be published as static as the camera transform data does not change. Due to a ROS bug which prevents publishing more than one static transform in separate processes, the same data can be published as a dynamic transform by setting enable_tf_dynamic=true. If two (or more) cameras will be run under the same Nodelet manager, then Dynamic Transforms should be used. Due to a bug in the driver for the F200/SR300 cameras, multiple F200/SR300 must be run under the same Nodelet manager implying the need for dynamic transforms to be used.- Static Transform base frame to color frame.
- Static Transform color frame to color optical frame.
- Static Transform base frame to depth frame.
- Static Transform depth frame to depth optical frame.
- Static Transform base frame to infrared frame.
- Static Transform infrared frame to infrared optical frame.
- Available only for R200/ZR300 cameras. Static Transform base frame to infrared2 frame.
- Available only for R200/ZR300 cameras. Static Transform infrared frame to infrared2 optical frame.
- Available only for ZR300 camera. Static Transform base frame to fisheye frame.
- Available only for ZR300 camera. Static Transform fisheye frame to fisheye optical frame.
- Available only for ZR300 camera. Static Transform base frame to imu frame. NOTE: The transform has been hardcoded until fully calibrated cameras are available to the public.
- Available only for ZR300 camera. Static Transform imu frame to imu optical frame.
Running the Nodelet
R200 Cameras
$ roslaunch realsense_camera r200_nodelet_default.launch
F200 Cameras
$ roslaunch realsense_camera f200_nodelet_default.launch
SR300 Cameras
$ roslaunch realsense_camera sr300_nodelet_default.launch
ZR300 Cameras
$ roslaunch realsense_camera zr300_nodelet_default.launch
Sample launch files are available in launch directory. Make sure the correct "camera_type" is specified to launch the desired camera.
Launching Multiple Cameras
Note: The following example is based on R200 cameras. Similar options are applicable to F200, SR300 and ZR300 cameras too, just by updating the "camera_type".
For running multiple cameras simultaneously: Option 1: Using single nodelet manager for all the cameras
Use "r200_nodelet_multiple_cameras.launch". Option 2: Using separate nodelet manager for each camera
Create ".launch" files similar to "r200_nodelet_rgbd.launch" for each camera. You may choose to include (or not) the "processing.launch.xml" based on your requirement. Launch the ".launch" files for each camera in separate terminals. For either option you must:
Update the "camera" and either the "serial_no" or "usb_port_id" argument with unique values for each camera. "camera" should be a user friendly string that follows the ROS Names convention. (E.g. "camera1") "serial_no" is the camera serial number and can be found by running the nodelet and viewing the terminal output "usb_port_id" is Bus Number-Port Number in "Bus#-Port#" format, and can be found by using lsusb -t if both "serial_no" and "usb_port_id" are set, both much match the same camera
Limitations
- Currently, the camera nodelet only supports the following formats:
- Color stream: "RGB8"
- Depth stream: "Z16"
- Infrared stream(s): "Y8" for R200, F200 and ZR300. "Y16" for SR300.
- Fisheye stream: "RAW8"
- Generating a Depth Registered Point Cloud is very memory intensive. E.g. The topic /camera/depth_registered/points, generated by launch file "r200_nodelet_rgbd.launch", works best at 30 fps using 640x480 resolution on a system with 16GB of RAM.
- The camera does not provide hardware based depth registration/projector data. Hence the launch file "r200_nodelet_rgbd.launch" will not generate data for the following topics:
/camera/depth_registered/hw_registered/image_rect_raw /camera/depth_registered/hw_registered/image_rect /camera/depth_registered/image /camera/depth/disparity /camera/depth_registered/disparity
- The performance benchmark for multiple cameras launched at the same time has not been defined yet.
- For ZR300 cameras, the transform between base frame and IMU frame has been hardcoded until librealsense supports fetching this data during runtime.
Errata
See the GitHub Issues Bugs for a complete list.
F200/SR300 cameras: Multiple cameras can only be started from a single launch file for F200 and SR300 camera types.
F200/SR300 cameras: Native pointcloud is not generated even after enabling pointcloud. This is unlikely to be fixed as current plan is to remove native point cloud generation from the node.