isaac_ros_owl
Source code on GitHub.
Overview
A camera provides images using an electronic image sensor as part of perception for understanding of the robot and its environment.
The isaac_ros_owl
driver provides support for the LI-AR0234CS-GMSL2-OWL
camera. This provides an ultra wide-angle (>200 degree) field of view with global shutter HD (1920x1200) color imager. Global shutter enables light sensing in the imager for all pixels simultaneously, reducing motion artifacts caused by rolling-shutter imagers which capture a row of pixels at a time. Color is used for AI-based perception functions. The ultra wide-angle lens provides a hemispherical image useful for perception of the environment near the robot, and for teleoperation applications to provide the remote robot operator with visibility near the robot. LI-AR0234CS-GMSL2-OWL
is jointly developed with Leopard Imaging and NVIDIA.
Quickstart
Set Up Development Environment
Set up your development environment by following the instructions in getting started.
Clone
isaac_ros_common
under${ISAAC_ROS_WS}/src
.cd ${ISAAC_ROS_WS}/src && \ git clone -b release-3.2 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git isaac_ros_common
(Optional) Install dependencies for any sensors you want to use by following the sensor-specific guides.
Note
We strongly recommend installing all sensor dependencies before starting any quickstarts. Some sensor dependencies require restarting the Isaac ROS Dev container during installation, which will interrupt the quickstart process.
Build isaac_ros_owl
Launch the Docker container using the
run_dev.sh
script:cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh
Install the prebuilt Debian package:
sudo apt-get update
sudo apt-get install -y ros-humble-isaac-ros-owl
Clone this repository under
${ISAAC_ROS_WS}/src
:cd ${ISAAC_ROS_WS}/src && \ git clone -b release-3.2 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nova.git isaac_ros_nova
Launch the Docker container using the
run_dev.sh
script:cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh
Use
rosdep
to install the package’s dependencies:sudo apt-get update
rosdep update && rosdep install --from-paths ${ISAAC_ROS_WS}/src/isaac_ros_nova/isaac_ros_owl --ignore-src -y
Build the package from source:
cd ${ISAAC_ROS_WS} && \ colcon build --symlink-install --packages-up-to isaac_ros_owl --base-paths ${ISAAC_ROS_WS}/src/isaac_ros_nova/isaac_ros_owl
Source the ROS workspace:
Note
Make sure to repeat this step in every terminal created inside the Docker container.
Because this package was built from source, the enclosing workspace must be sourced for ROS to be able to find the package’s contents.
source install/setup.bash
Run Launch File
Continuing inside the Docker container, launch the OWL driver:
ros2 launch isaac_ros_owl owl.launch.py
Visualize Results
Open a new terminal inside the Docker container:
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh
Use
image_saver
to save the output images:ros2 run image_view image_saver --ros-args -r image:=/fisheye_camera/left/image_raw -p filename_format:="image.jpg"
Troubleshooting
Isaac ROS Troubleshooting
For solutions to problems with Isaac ROS, see troubleshooting.
API
Usage
ros2 launch isaac_ros_owl owl.launch.py target_container:=<Target Container> namespace:=<Namespace> camera_id:=<System device numeral for the camera. For example select 0 for /dev/video0.> mode:=<Supported Resolution mode from the camera. For example, 0: 1920 x 1200> fsync_type:=<Specifies what kind of Frame Synchronization to use. Supported values are: 0 for internal, 1 for external.> nvpps_dev_file:=<NVPPS Dev Name> use_time_since_epoch:=<Use Time Since Epoch>
OwLNode
ROS Parameters
ROS Parameter |
Type |
Default |
Description |
---|---|---|---|
|
|
|
The video device index E.g. |
|
|
|
The camera module index in the device tree when there is more than one of the same camera module connected |
|
|
|
The resolution mode supported by the camera sensor and driver. |
|
|
|
Specifies what kind of Frame Synchronization to use, supported values are 0 for internal and 1 for external. For e3653 boards (carter 2.3) choose 0, for p3762 boards (carter 2.4) choose 1 |
|
|
|
The frame name associated with the origin of the camera body. |
|
|
|
The frame name associated with the imager inside camera body (for monocular camera). |
|
|
N/A |
Optional URL of a camera info |
ROS Topics Subscribed
ROS Topic |
Interface |
Description |
---|---|---|
|
Timestamp correlation data. |
ROS Topics Published
ROS Topic |
Interface |
Description |
---|---|---|
|
The OWL image. |
|
|
The OWL camera info. |