Example Usage of Isaac ROS Depth Segmentation

This example uses the Isaac ROS Depth Segmentation, which includes monitoring the forward zones of an autonomous mobile robot (AMR) using a HAWK stereo camera. Consider three zones in front of the robot (Zones 1-3), corresponding to different alerts and actions the robot must take if an object breaches the zone. Zone 3 generates a warning, Zone 2 sends a signal for the robot to slow, and Zone 1 results in the robot stopping immediately.

https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/concepts/stereo_depth/bi3d/safety_zones.png/

Depending on the velocity of the robot, the distances of the zones might change. For this example, the following distances from the front of the robot are used to define the zones:

Robot Velocity

Zone 1 (Stop - Red)

Zone 2 (Slow - Yellow)

Zone 3 (Warning - Blue)

1 m/s

0.5 m

0.7 m

4.0 m

2 m/s

2.0 m

4.0 m

6.0 m

3 m/s

3.5 m

6.0 m

9.0 m

The distances for each zone are converted to disparity values using the following formula:

https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_depth_segmentation/disparity_equation.png/

This example uses a HAWK stereo camera with a baseline of 15 cm and focal length of 933 px. And the following disparity values are calculated for each zone:

Robot Velocity

Zone 1 (Stop - Red)

Zone 2 (Slow - Yellow)

Zone 3 (Warning - Blue)

1 m/s

280 px

200 px

46 px

2 m/s

70 px

35 px

23 px

3 m/s

40 px

23 px

15 px

This example uses the Isaac ROS Bi3D package to detect when these zones are breached. An example is shown in the table below. Pixels in red indicate that Zone 1 has been breached, yellow indicates Zone 2 has been breached, and blue indicates Zone 3 has been breached.

Input Scene

1 m/s Zones

2 m/s Zones

3 m/s Zones

bi3d_left_png

bi3d_1mps_png

bi3d_2mps_png

bi3d_3mps_png