BlazingForests / realsense_camera

use realsense camera in ROS
Other
36 stars 26 forks source link

Note

Thank you for your concern.

Since i don't have time to update this repo, also intel has release their own official version.

So if you want to support all the types of RealSense camera please visit

https://github.com/intel-ros/realsense

https://github.com/IntelRealSense/librealsense

This repo will change to research.

THX

DD

realsense_camera

use realsense camera in ROS

New

0) sudo apt-get install libusb-1.0-0-dev  
1) sudo cp config/80-realsense-usb.rules /etc/udev/rules.d  
2) reboot to reload the rule  
3) rebuild realsense_camera  
4) roslaunch realsense_camera realsense_rviz.launch debug_depth_unit:=true

If everything is OK, in terminal you will see  

getRealsenseUSBHandle OK!  
average center z value = 0.388359    temp = 31    depth_unit = 33.099998

Notes

This package do not contains uvmap data(use to register RGB data)

So it is only publish point cloud without RGB

If you want RGB data for point cloud

Please visit realsense_camera_tools

You can copy the uvmap files by realsense's serial number to data/uvmap/

realsense_camera
├── data
│   └── uvmap
│       ├── 039140070906
│       │   ├── uvmap_0000.bin
│       │   ├── uvmap_0001.bin
│       │   ├── ...
│       │   ├── ...
│       │   ├── uvmap_2047.bin

039140070906 is realsense's serial number

Dependencies

sudo apt-get install libudev-dev libv4l-dev libusb-1.0-0-dev

To make sure the dynamic reconfigure works, Please visit

https://github.com/teknotus/depthview/tree/udev

Usage

Publish topics

default

sensor_msgs::PointCloud2
/camera/depth/points                point cloud without RGB
/camera/depth_registered/points     point cloud with RGB

sensor_msgs::Image
/camera/rgb/image_raw               raw image for RGB sensor
/camera/depth/image_raw             raw image for depth sensor
/camera/ir/image_raw                raw image for infrared sensor

you can custom topic in file realsense_camera.launch

<arg name="topic_depth_points_id" default="$(arg camera)/depth/points" />
<arg name="topic_depth_registered_points_id" default="$(arg camera)/depth_registered/points" />

<arg name="topic_image_rgb_raw_id" default="$(arg camera)/rgb/image_raw" />
<arg name="topic_image_depth_raw_id" default="$(arg camera)/depth/image_raw" />
<arg name="topic_image_infrared_raw_id" default="$(arg camera)/ir/image_raw" />

Camera Info

To specify a yaml file with intrinsic calibration parameters for the RGB & IR camera (for example generated using this tool), modify the value in the realsense(r200)camera.launch to your calibration file (eg. package://package_name/path_to_yaml_file/calibration_file.yaml )

<!-- camera calibration file url -->
<arg name="rgb_camera_info_url" default="" />
<arg name="ir_camera_info_url" default="" />

Make sure the image width and height specified in the calibration file is the same as that specified in launch file.

The calibration info will be published under the topic /camera/rgb/camera_info /camera/depth/camera_info /camera/ir/camera_info

Q&A

uvmap help

TODO

Issues

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >' what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument
//fill point cloud data time: [0.035777 s]     <----  need optimize