A framework to work with Industrial AMRs and perform SLAM using various sensors in challenging environments
In this repository, I have combined different frameworks to create a functional AMR that performs Robust SLAM in smart factories and similar environments:
For my AMR development, I’ve selected the following Open-Source Repositories:
- Linorobot2 as the base repository for creating my AMR,
- RTAB-Map as the main framework for sensor fusion and SLAM,
- Kinematic-ICP for future work on enhancing ICP-based odometry,
Additionally, there are two more packages I created:
- amr_main as the base package for running everything together,
- laser_fusion which contains the necessary 2D-LiDAR fusion node (to fuse measurements from different 2D LiDARs).
- I’m still working on enhancing this project. It works well, but still needs some improvements to incorporate additional features (e.g., using Kinematic-ICP alongside RTAB-Map).
-
RTAB-Map parameter file: In this file, you can change the RTAB-Map parameters. You can also set which 2D LiDAR you want to use (front, back, all) and which Stereo Camera (front, back, both -> (Not available yet)).
code ~/Multi_Sensor_SLAM/src/rtabmap_ros/rtabmap_launch/launch/rtabmap.launch.py -
Change the Robot and Sensors' parameters or Add/Remove them:
code ~/Multi_Sensor_SLAM/src/linorobot2/linorobot2_description/urdf/4wd_properties.urdf.xacro code ~/Multi_Sensor_SLAM/src/linorobot2/linorobot2_description/urdf/robots/4wd.urdf.xacro code ~/Multi_Sensor_SLAM/src/linorobot2/linorobot2_description/urdf/sensors/laser_new.urdf.xacro code ~/Multi_Sensor_SLAM/src/linorobot2/linorobot2_description/urdf/sensors/stereo_camera.urdf.xacro code ~/Multi_Sensor_SLAM/src/linorobot2/linorobot2_description/urdf/sensors/imu.urdf.xacro
-
2D-LiDAR fusion algorithm:
code ~/Multi_Sensor_SLAM/src/laser_fusion/laser_fusion/combine_laser_measurements.py
- In this demo, I have used only the front LiDAR (not both). I have also used the front stereo camera. Here, I'm performing VIO and ICP odometry, as well as visual and laser loop closures to create a 2D map. Additionally, RTAB-Map uses graph-based SLAM.
- This project requires ROS 2 (Recommended: ROS 2 Humble):
- Clone the Repository:
git https://github.com/ali-pahlevani/Multi_Sensor_SLAM.git cd Multi_Sensor_SLAM - Install the required Dependencies:
rosdep update && rosdep install --from-path src --ignore-src -y - Build the Workspace:
colcon build source install/setup.bash - Launch the Simulation:
ros2 launch amr_main launch_all.launch.py