# QRB-ROS-camera QRB-ROS-camera implements a camera ROS2 node to enable zero-copy performance when data is coming out of the camera-server. This sample greatly reduces the latency between ROS nodes. ## Pipeline flow for `qrb-ros-camera` The Qualcomm Camera-Server provides camera data that's obtained from the camera sensor. `qrb_ros_camera` uses this camera-server to get the latest camera data.
camera_info
/image
Camera server
Camera hardware
Camera
ROS node
(qrb_ros_camera)
ROS node
External module
Hardware
Topic
Camera info yaml
**Figure : qrb-ros-camera pipeline** ## ROS Nodes used in the `qrb-ros-camera` pipeline Table : ROS node used in qrb-ros-camera pipeline | ROS node | Description | | --- | --- | | CAMERA
Copy to clipboard | Publishes the `/image /camera_info` ROS topic. | ## ROS topics used in the `qrb-ros-camera` pipeline Table : ROS topics used in qrb-ros-camera pipeline | ROS topic | Type | Published by | | --- | --- | --- | | /image
Copy to clipboard |
Copy to clipboard | `CAMERA`node | | /camera_info
Copy to clipboard |
Copy to clipboard | `CAMERA`node | ## Prerequisites You have **Set up the device** according to [Set up the environment for running sample applications](https://docs.qualcomm.com/doc/80-70020-265/topic/quick_start.html#setup-demo-qs). ## Run out-of-the-box `qrb-ros-camera` **Steps** 1. In terminal 1, run the camera ROS node. 1. Set up camera. ssh root@[ip-addr] (ssh) touch /var/cache/camera/camxoverridesettings.txt (ssh) echo 'multiCameraLogicalXMLFile=kodiak_dc.xml' > /var/cache/camera/camxoverridesettings.txt (ssh) ps -ef|grep cam-server (ssh) kill the PID of cam-server Copy to clipboard 2. Set up the QIR SDK and ROS2 environment on the device. (ssh) mount -o remount,rw /usr (ssh) source /usr/share/qirp-setup.sh (ssh) export ROS_DOMAIN_ID=xx (Value range of ``ROS_DOMAIN_ID``: [0, 232]) Copy to clipboard 3. Run the `qrb_ros_camera` node. (ssh) ros2 launch qrb_ros_camera qrb_ros_camera_launch.py Copy to clipboard 2. In terminal 2, get the camera image data. 1. Set up the QIR SDK and ROS2 environment on the device. ssh root@[ip-addr] (ssh) source /usr/share/qirp-setup.sh (ssh) export ROS_DOMAIN_ID=xx Copy to clipboard 2. Verify the ROS topic. (ssh) ros2 topic echo /image Copy to clipboard ## Build and run `qrb-ros-camera` **Steps** 1. Build `qrb_ros_camera` provided by the QIR SDK on the host. cd source setup.sh cd qirp-samples/platform/qrb_ros_camera colcon build --merge-install --cmake-args ${CMAKE_ARGS} Copy to clipboard 2. Push `qrb_ros_camera` to the device. cd qirp-samples/nodes/platform/qrb_ros_camera/install tar czvf qrb_ros_camera.tar.gz lib share include scp qrb_ros_camera.tar.gz root@[ip-addr]:/opt/ ssh root@[ip-addr] (ssh) mount -o remount,rw /usr (ssh) tar -zxf /opt/qrb_ros_camera.tar.gz -C /usr/ Copy to clipboard 3. Run `qrb_ros_camera` on the device by referring to [Run out-of-the-box qrb-ros-camera](https://docs.qualcomm.com/doc/80-70020-265/topic/qrb-ros-camera.html#case1-ros-camera). ## Limitation The supported format is NV12 in camera ROS node. Currently, dynamic changes to the image size aren't supported. Last Published: Oct 10, 2025 [Previous Topic QRB-ROS-color-space-convert](https://docs.qualcomm.com/bundle/publicresource/80-70020-265/topics/qrb-ros-color-space-convert_5_2_9.md) [Next Topic QRB-ROS-battery](https://docs.qualcomm.com/bundle/publicresource/80-70020-265/topics/qrb-ros-battery.md)