- Introduction
- Mechanical Design and Manufacturing
- System Architecture
- Installation
- Usage
- Visualization
- Results
- Contact
The 3D LiDAR Rotation System enhances the capabilities of a limited-angle 3D LiDAR sensor by incorporating a servo motor-based electromechanical system. This setup enables data acquisition from previously unreachable angles, producing high-resolution point cloud data for environmental modeling and mapping.The scanning angle of the MRS 1000 3D LiDAR sensor from SICK is not sufficient to generate a high-resolution point cloud map. Therefore, I designed an electromechanical system that rotates the LiDAR around the y-axis using a servo motor. After that step, i developed a ROS package for that system. The ROS package includes software for LiDAR data transformation, mapping, modelling, visualization, motor control via rosserial, and integration with an IMU sensor. As a result, the system was able to obtain different point clouds from various areas of the environment. An external IMU was used to track the orientation of the platform. There is a real-time digital twin on RViz.
![]() |
![]() |
---|---|
3D LiDAR Rotation System | Visualization on Rviz |
The electromechanical system was designed using Autodesk Fusion 360 and features a robust frame constructed from aluminum profiles. The design incorporates several components manufactured with a 3D printer, ensuring the system’s mechanical integrity and adaptability.
![]() |
![]() |
![]() |
---|---|---|
CAD File | CAD File | Physical system and Rviz |
This ROS graph represents the integration of a 3D LiDAR rotation system, combining data from a SICK MRS 1000 LiDAR sensor, an IMU, and a servo motor. The /mcu_imu_gps_servo node handles servo motor positions and IMU data, while the /sick_mrs_1xxx node publishes raw LiDAR point cloud data on /cloud. The servo position data is processed through /nt16_to_servo_pos and broadcasted to /servo_pos_header. Both the IMU and LiDAR transformations are published to the /tf topic using /imu_tf_broadcaster and /LIDAR_tf_broadcaster, ensuring the alignment of frames in real-time. The raw point cloud is transformed into a global reference frame by /pointCloud_transformer, producing /transformed_cloud for mapping and visualization, with the system visualized in RViz.
![]() |
---|
RQT GRAPH |
![]() |
![]() |
---|---|
TF Tree | Frames on Rviz |
# Create a ROS workspace
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
# Clone the repository
git clone https://github.com/omerdurmus61/3D-LiDAR-Rotation-System-Design.git
# Navigate to the workspace and build the project
cd ~/catkin_ws
catkin_make
# Source the workspace
source devel/setup.bash
This setup represents a complete pipeline for the 3D LiDAR rotation system. By running these launch files together, the system integrates servo control, IMU data fusion, LiDAR scanning, and visualization, creating a functional and real-time 3D mapping platform.
- imu_gps_servo.launch handles servo control, IMU and GPS data via rosserial.
roslaunch lidar_rotation imu_gps_servo.launch
- tf_imu_lidar.launch manages the frame transformations.
roslaunch lidar_rotation tf_imu_lidar.launch
- visualization.launch provides custom Rviz setup for monitoring the system in real-time using markers and PointCloud.
roslaunch lidar_rotation visualization.launch
- sick_mrs_1xxx.launch handles raw LiDAR data collection and streaming.
roslaunch sick_scan sick_mrs_1xxx.launch
For more details or to download the official SICK drivers, visit the sic_scan and sic_scan_xd repositories.
Bag File
This project includes a ROS bag file containing recorded data from the LiDAR rotation system. The bag file provides synchronized 3D point cloud data and servo motor position information, which can be used to analyze and visualize the LiDAR's performance in capturing the environment. By replaying this bag file in a ROS environment, users can simulate the system's functionality and test algorithms for 3D mapping, environment perception, and data processing without requiring the physical setup. This allows for a better understanding of the LiDAR's rotational capabilities and its application in real-world scenarios.
Use rosbag terminal tool to replaying the bag file
rosbag play tf_transformation_visualization.bag
Using visualization launch file you can visualize movements and sensor readings
roslaunch lidar_rotation visualization.launch
![]() |
---|
Terminal Setup |
![]() |
![]() |
---|---|
![]() |
![]() |
![]() |
![]() |
---|---|
![]() |
![]() |
For any questions or feedback, please contact:
- Email: [[email protected]]