# adi-3dtof-image-stitching **Repository Path**: agiros/adi-3dtof-image-stitching ## Basic Information - **Project Name**: adi-3dtof-image-stitching - **Description**: No description available - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-12 - **Last Updated**: 2025-09-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
$cd ~/ros2_ws/
$source /opt/ros/humble/setup.bash
$source install/setup.bash
$ros2 launch adi_3dtof_image_stitching adi_3dtof_image_stitching_launch.py | #### Monitor the Output on Rviz2 Window 1. Open a Rviz2 instance 2. in Rviz2 window add display for "/adi_3dtof_image_stitching/depth_image" to monitor the Stitched Depth output. 3. Add display for "/adi_3dtof_image_stitching/ir_image" to monitor the Stitched IR output. 4. Add display for "/adi_3dtof_image_stitching/point_cloud" to display the 3D point CLoud. ### Real-Time Mode To test the Stitching Algorithm on a real-time setup the adi_3dtof_image_stitching node needs to be launched in Host-Only mode Idea is, the individual sensors connected to the host computer(Jetson NX host or Laptop) will publish their respective Depth and IR data independently in real-time: 1. Sensors will publish their respective Depth and IR frames of size 512X512 independently 2. The adi_3dtof_image_stitching node will subscribe to the incomming data from all sensors, synchronize them and run image stitching. 3. The stitched output is then published as ROS messages which can be viewed on the Rviz2 window. 4. Stitched output can also be saved into a video file by enabling the "enable_video_out" parameter. To proceed with the test, first execute these following commands on four (4) different terminals (in sequence) to start image capture in the EVAL-ADTF3175D Modules: :memo: >- This is assuming that we are testing a 4-camera setup to get a 278 degrees FOV. Reduce the number of terminals accordingly for 2 or 3 camera setup. >- Please ensure the below mentioned launch files are available inside the launch folder for the adi_3dtof_adtf31xx code present inside the devices. If not please follow the following steps:- >> 1. Copy the respective launch files from the launch folder of the adi_3dtof_image_stitching repository to the launch folder of the adi_3dtof_adtf31xx code inside the devices. >> 2. Change the 'arg_input_sensor_mode' paameter value to 0 to help run the node in real-time capture mode. >> 3. Build the adi_3dtof_adtf31xx node again on the device, so it can access these new launch files. | Terminal 1 | Terminal 2 | Terminal 3| Terminal 4| --- | --- | ---| --| |~$ ssh analog@[ip of cam1]
>cd ~/ros2_ws/
>source /opt/ros/humble/install/setup.bash
>source install/setup.bash
>ros2 launch adi_3dtof_adtf31xx adi_3dtof_adtf31xx_cam1_launch.py |~$ ssh analog@[ip of cam2]
>cd ~/ros2_ws/
>source /opt/ros/humble/install/setup.bash
>source install/setup.bash
>ros2 launch adi_3dtof_adtf31xx adi_3dtof_adtf31xx_cam2_launch.py |~$ ssh analog@[ip of cam3]
>cd ~/ros2_ws/
>source /opt/ros/humble/install/setup.bash
>source install/setup.bash
>ros2 launch adi_3dtof_adtf31xx adi_3dtof_adtf31xx_cam3_launch.py |~$ ssh analog@[ip of cam4]
>cd ~/ros2_ws/
>source /opt/ros/humble/install/setup.bash
>source install/setup.bash
>ros2 launch adi_3dtof_adtf31xx adi_3dtof_adtf31xx_cam4_launch.py | > :memo: _Notes: >- Its assumed that the adi_3dtof_adtf31xx nodes are already built within the EVAL-ADTF3175D Modules. It is also assumed that adi_3dtof_adtf31xx node are built in the location "~/ros2_ws/" within the sensor modules. >- It is assumed that the respective sensor launch files from the adi_3dtfo_image_stitching package are copied to the launch folder of adi_3dtof_adtf31xx package within the respective sensors and the input mode is changed to 0.(it is 2 by default)_ >- The credentials to login to the devices is given below > ``` > username: analog > password: analog > ``` Next run the adi_3dtof_image_stitching node on Host in the Host-Only mode, by executing the following command: | Terminal 5 | --- | |$cd ~/ros2_ws/
$source /opt/ros/humble/setup.bash
$source install/setup.bash
$ros2 launch adi_3dtof_image_stitching adi_3dtof_image_stitching_host_only_launch.py | :memo: >- It is assumed that both adi_3dtof_image_stitching node is built in the location "~/ros2_ws/". >- **Make sure that the Date/Time is correctly set for all the devices, this application makes use of the topic Timestamp for synchronization. Hence, if the time is not set properly the application will not run.** >- If the Image Stitching Node is not subscribing/processing the depth and IR Data published by the connected sensors, please ensure the following points are checked:- > 1. Ensure that the camera name prefixes for the sensor topics, match the names listed in **param_camera_prefixes** parameter of the image stitching launch file. > 2. If the topics published by the sensors are uncompressed, please ensure to change the **param_enable_depth_ir_compression** parameter to **False** too in the launch file of Image Stitching Node. **Monitor the Output on Rviz2 Window** 1. Open a Rviz2 Instance 2. in Rviz2 window add display for "/adi_3dtof_image_stitching/depth_image" to monitor the Stitched Depth output. 3. Add display for "/adi_3dtof_image_stitching/ir_image" to monitor the Stitched IR output. 4. Add display for "/adi_3dtof_image_stitching/point_cloud" to display the 3D point CLoud. # Limitations 1. Currently a maximum of 4 sensors and a minimum of 2 sensors are supported for stitching, in the horizontal setup proposed. 2. Real-time Operation is not currently supported on WSL2 setups. 3. [AAEON BOXER-8250AI](https://www.aaeon.com/en/p/ai-edge-solutions-nvidia-jetson-xavier-nx-boxer-8250ai) slows dows as the device heats up, hence proper cooling mechanism is necessary. 4. Subscribing to stitched point cloud for real-time display might slow down the algorithm operation. # Known Issues 1. While using WSL2 on a Windows system to run the [simulation mode demo](#simulation-mode) the auto-spawned Rviz2 window may stop in some cases. In such instances please open Rviz2 again from a new terminal and subscribe to the necessary topics to continue. Steps are mentioned [here](#monitor-the-output-on-rviz2-window). # Support Please contact the `Maintainers` if you want to evaluate the algorithm for your own setup/configuration. Any other inquiries are also welcome.