# 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.
**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)