BlazingForests / realsense_camera

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

camera info #8

Open wu-xiaochang opened 8 years ago

wu-xiaochang commented 8 years ago

Hi,

The project is very helpful. Thanks! One question, I didn't find published /camera_info which is needed by depthimage_to_laserscan to convert depth to laserscan. Is there any plan to add this?

BlazingForests commented 8 years ago

Thanks for you like this project. Ok, add this to todolist.

BlazingForests commented 8 years ago

@Paullon Hi, We have camera_info now. Is it you want? :)

NCharabaruk commented 8 years ago

Hi,

I tried using camera_calibration to calibrate the rgb camera but it wouldn't let me commit. I saved the data in a yaml file and entered the location into the rgb_camera_info_url field, but it keeps telling me that it is an invalid camera calibration url. Do you have any idea why it wouldn't let me commit the calibration?

Thanks

sthoduka commented 8 years ago

What are you writing in the url field?

NCharabaruk commented 8 years ago

I've adapted the line in the launch file to <arg name="rgb_camera_info_url" default="~/catkin_ws/src/realsense_camera/config/018150165706.yaml" />

sthoduka commented 8 years ago

since it's a url and not a file path, it should be something like this: <arg name="rgb_camera_info_url" default="pkg://realsense_camera/config/018150165706.yaml" />

NCharabaruk commented 8 years ago

Yup, that did it. Thanks! I hate missing stuff like that.

fw-timku commented 7 years ago

@NCharabaruk Hi, do you mind posting your working launch file content here as I have problem loading the calibration data into the camera_info topic.

sthoduka commented 7 years ago

The relevant lines from the launch file are:

<arg name="rgb_camera_info_url" default="package://realsense_camera/config/sr300_rgb_calibration.yaml" />
<node name="realsense_node" pkg="realsense_camera" type="realsense_camera_node" output="screen">
        <param name="rgb_camera_info_url" value="$(arg rgb_camera_info_url)" />
        <param name="ir_camera_info_url" value="$(arg ir_camera_info_url)" />
</node>

and attached is a sample calibration file sr300_rgb_calibration.yaml.txt

fw-timku commented 7 years ago

@sthoduka Thanks for the information. After setting of the relevant camera info url, do I need to write any code in the main code to pass the url to the camera info topic?

sthoduka commented 7 years ago

nope, it's already done in realsense_camera.cpp

fw-timku commented 7 years ago

@sthoduka Can I check is the R200 camera factory calibrated for the rgb and ir camera? And Would like to check what is the difference between the RealSense_ros integration in this repository and the official realsense_ros integration repository?

sthoduka commented 7 years ago

To get the factory calibration, you'd have to use the official ros node.

The official ros version uses librealsense. I haven't really looked at it in detail. I guess the basic functionality is the same.

fw-timku commented 7 years ago

You mean if I use the launch file from the official ros node, the publish topic for the rgb and ir stream is already calibrated? While if I use the launch file from this repo, I need to perform the calibration manually?

teknotus commented 7 years ago

On Nov 22, 2016 5:36 AM, "fw-timku" notifications@github.com wrote:

You mean if I use the launch file from the official ros node, the publish topic for the rgb and ir stream is already calibrated? While if I use the launch file from this repo, I need to perform the calibration manually?

The R200 has factory calibration. I was working on how to extract it in December, and January before Intel released open source code to do it, and I dropped the project. The R200 has a camera control that functions very strangely in that instead of adjusting something like brightness it accesses blocks of flash memory on the camera. The beginning of the flash memory is the camera firmware. It also has two copies of the factory calibration. There are headers for the functions needed to extract the calibration in librealsense if you want to just grab a copy. I think it might be in a format inverted from what ROS wants but I'm pretty sure OpenCV has a function to convert it. Most of what you want is in the R200 "private" files. The code is documented reasonably well considering they are calling it a private interface. My perspective might be a little off though since I started with USB packet captures.