Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added clearing pointcloud #18

Merged
merged 12 commits into from
Jun 22, 2017
Merged

Conversation

ZacharyTaylor
Copy link
Contributor

@ZacharyTaylor ZacharyTaylor commented Jun 8, 2017

Stereo pipeline now generates two pointclouds:

  1. standard pointcloud that shows the location of points
  2. pointcloud that gives an estimate of the furthest point from the camera that is still in freespace.

This second pointcloud is calculated in areas where there is too much uncertainty for a point to be located in the first cloud. It operates assuming any large change in depth will have a change in intensity that the stereo algorithm could detect. This means that if an unknown region A has a point to its right B, and a point to its left C then it can be assumed that the distance to A >= min(B,C).
The second pointcloud also adds points with a disparity of 0.0625 (1/16) where ever a disparity of 0 was detected.

While overly simple this extra processing requires minimal additional computation and improves freespace detection significantly

An image of the regular cloud (in grayscale) and the clearing pointcloud (in red) is shown in the image below.

screenshot from 2017-06-08 18-45-49

@helenol

Copy link
Collaborator

@helenol helenol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

<param name="first_camera_namespace" value="$(arg first_camera_name)"/>
<param name="second_camera_namespace" value="$(arg second_camera_name)"/>
<param name="scale" value="$(arg scale)"/>
<param name="scale" value="0.75"/>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Back to arg scale?

<node name="dense_stereo" pkg="image_undistort" type="dense_stereo_node">
<param name="input_camera_info_from_ros_params" value = "false"/>
<param name="input_camera_info_from_ros_params" value = "true"/>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe dangerous default?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah I need to rewrite and clean up the example launch files and some of the docs

src/depth.cpp Outdated
// the 16* is needed as opencv stores disparity maps as 16 * the true
// values
point.z =
(16 * focal_length * baseline) / static_cast<double>(filled_value);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any checks for filled_value being above 0?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants