NAV2-Camera (Jetson)
Jetson ARM64 USB/V4L2 camera module for the LMS visualization camera panel.
The template folder remains [lms-nav2-camera-test]nav2-camera-test_v1.0.0_ws.
Runtime
- Image:
future-nav2-camera-test:humble-jetson_orin - Package:
camera_test_pkg - Launch:
camera.launch.py - Viewer topic:
/camera_test/image_jpeg(sensor_msgs/msg/CompressedImage, sensor-data QoS) - Only the selected
/dev/videoNdevice is passed into the container. - No vehicle commands, fabricated calibration, or fixed camera mounting TF are published.
Parameters
| Parameter | Default | Meaning |
|---|---|---|
video_device |
/dev/video0 |
V4L2 camera device |
width / height |
640 / 480 |
Capture resolution supported by the camera |
fps |
30 |
Capture frame rate |
publish_fps |
10 |
Maximum publication rate |
pixel_format |
auto |
auto, MJPEG, UYVY, or YUY2 |
jpeg_width |
640 |
Maximum preview width |
jpeg_topic |
/camera_test/image_jpeg |
Keep the default for the LMS viewer |
frame_id |
camera_test_link |
Image frame identifier |
publish_raw |
false |
Also publish /camera_test/image_raw |
auto negotiates raw/JPEG encoding, not resolution or frame rate. Use a mode
reported by v4l2-ctl --device /dev/video0 --list-formats-ext when defaults are unsupported.
This module provides a video preview, not calibrated visual SLAM input.
LMS Installation
The environment profile supplies the runtime image artifact; the module supplies the ARM64 build/install artifact. Installing these avoids an initial source build. The LMS app needs camera-test module routing support before running this template. ROS domain and DDS settings are supplied by the LMS workspace runtime.
Manual Development
Provision the image from its published artifact first. For image maintainers only:
docker build -t future-nav2-camera-test:humble-jetson_orin docker
./build.sh
ROS_DOMAIN_ID=77 ./run.sh video_device:=/dev/video0 pixel_format:=auto
The standalone script defaults to domain 77, host networking, and
ROS_LOCALHOST_ONLY=0. LMS execution uses workspace configuration instead.
Tests in tests/test_camera.py use synthetic video and never access a camera.