# 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/videoN` device 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: ```sh docker build -t future-nav2-camera-test:humble-jetson_orin docker ``` ```sh ./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.