The Sensor Integration Suite is a comprehensive ROS package designed for integrating and processing data from multiple sensors. It leverages data from LiDAR devices and ZED stereo cameras to provide a fused point cloud, which can be utilized for various applications such as 3D mapping, navigation, and object detection. It is specifically designed to read data from LD06 LIDAR
- Publishing LiDAR data as ROS PointCloud2 messages.
- Fusion of point clouds from ZED cameras and LiDAR sensors.
- Integration with ROS tf2 for managing transformations between frames.
- Compatibility with the
cartographer_ros
for SLAM (Simultaneous Localization and Mapping).
- ROS 2 (tested on Foxy)
- PCL (Point Cloud Library)
- CUDA (for GPU-accelerated processing)
zed_ros2_wrapper
package
- Lidar (LD06 2D lidar)
- stereo camers (ZedMini)
- ubuntu 20.04
- ros2 foxy
- arm64
- Clone the repository into your ROS workspace's
src
directory:
cd ~/ros_workspace/src
git clone git@github.com:Abhishek-EE/sensor_integration_suite.git
- Navigate back to your ROS workspace and build the package
cd ~/ros_workspace
colcon build --packages-select sensor_integration_suite
- The
zed_ros2_wrapper
is required for integrating the ZED stereo cameras. Follow the instructions provided by the package repository to install it.
cd ~/ros_workspace/src
git clone <zed-ros-wrapper-repo-url> zed_ros2_wrapper
cd ~/ros_workspace
colcon build --packages-select zed_ros2_wrapper
source install/setup.bash
Ensure all necessary ROS packages are sourced before running any nodes. Then you can use the existing launch files to launch the system.
If all the required frames are being broadcasted independently of the system then you can simply launch the sensor_integration_suite.launch.py like this
ros2 launch sensor_integration_suite sensor_integration_suite.launch.py
Here first you need to edit the config/frame.yaml to add all the desired frames and then launch the frame_broadcaster.launch.py
ros2 launch sensor_integration_suite frame_broadcaster.launch.py
And then launch the sensor_integration_suite.launch.py
ros2 launch sensor_integration_suite sensor_integration_suite.launch.py
The system architecture is designed to allow easy integration and synchronization between different sensor inputs. The main components are:
zed/zed_node
: Provides the ZED camera data streams including stereo images, depth data, and point clouds.lidar_publisher_node_hz
andlidar_publisher_node_vt
: Publish LiDAR data from horizontal and vertical LiDARs, respectively.pointcloud_fusion_node
: Fuses point clouds from ZED and LiDAR sources into a single coherent point cloud.cartographer_node
: Consumes the fused point cloud for SLAM to create a map and estimate the robot's pose.tf
: The Transform Library in ROS, which keeps track of frame transformations and is critical for maintaining the spatial relations between different sensors.
Below is the topic diagram for cartographer integration
Please follow the standard GitHub pull request process to make contributions to the Sensor Integration Suite.
Please refer to the LICENSE file for information on the licensing of this package.
This suite is the result of collaborative efforts. We would like to thank the maintainers of the zed_ros2_wrapper, cartographer_ros, and PCL for their valuable contributions to the ROS ecosystem.