diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f57984ef1597eb94604dbebebb978fe2e50fc703..97344770e94c213592962f0ecfbc9cfb2b538bc5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -27,6 +27,7 @@ stages:
   - build_and_test
   - deploy_plugins
   - deploy_ros
+  - deploy_ros2
 
 variables:
   BUILD_TYPE: debug
@@ -307,7 +308,7 @@ deploy_bodydynamics_main:
     branch: main
     strategy: depend
 
-############ DEPLOY WOLF_ROS_NODE EXCEPT FOR main ############
+############ DEPLOY wolf_ros_node EXCEPT FOR main ############
 deploy_wolf_ros_node:
   stage: deploy_ros
   rules: 
@@ -332,7 +333,7 @@ deploy_wolf_ros_node:
     project: mobile_robotics/wolf_projects/wolf_ros/wolf_ros_node
     branch: $WOLF_ROS_NODE_BRANCH
 
-############ DEPLOY WOLF_ROS_NODE FOR main ############
+############ DEPLOY wolf_ros_node FOR main ############
 deploy_wolf_ros_node_main:
   stage: deploy_ros
   rules: 
@@ -357,10 +358,68 @@ deploy_wolf_ros_node_main:
     project: mobile_robotics/wolf_projects/wolf_ros/wolf_ros_node
     branch: main
 
-############ NO DEPLOY WOLF_ROS_NODE ############
+############ NO DEPLOY wolf_ros_node ############
 no_deploy_wolf_ros_node:
   stage: deploy_ros
   script: 
     - echo "NOT deploying CI for wolf_ros_node, since DEPLOY_CI_ROS is $DEPLOY_CI_ROS (not true)"
   rules: 
     - if: $DEPLOY_CI_ROS != "true"
+
+############ DEPLOY wolf_ros2_node EXCEPT FOR main ############
+deploy_wolf_ros2_node:
+  stage: deploy_ros2
+  rules: 
+    - if: $CI_COMMIT_REF_NAME != "main" && $DEPLOY_CI_ROS == "true"
+  variables:
+    WOLF_CORE_BRANCH: $CI_COMMIT_REF_NAME
+    WOLF_IMU_BRANCH: $WOLF_IMU_BRANCH
+    WOLF_GNSS_BRANCH: $WOLF_GNSS_BRANCH
+    WOLF_LASER_BRANCH: $WOLF_LASER_BRANCH
+    WOLF_VISION_BRANCH: $WOLF_VISION_BRANCH
+    WOLF_APRILTAG_BRANCH: $WOLF_APRILTAG_BRANCH
+    WOLF_BODYDYNAMICS_BRANCH: $WOLF_BODYDYNAMICS_BRANCH
+    WOLF_ROS2_IMU_BRANCH: $WOLF_ROS2_IMU_BRANCH
+    WOLF_ROS2_GNSS_BRANCH: $WOLF_ROS2_GNSS_BRANCH
+    WOLF_ROS2_LASER_BRANCH: $WOLF_ROS2_LASER_BRANCH
+    WOLF_ROS2_VISION_BRANCH: $WOLF_ROS2_VISION_BRANCH
+    WOLF_ROS2_APRILTAG_BRANCH: $WOLF_ROS2_APRILTAG_BRANCH
+    WOLF_ROS2_BODYDYNAMICS_BRANCH: $WOLF_ROS2_BODYDYNAMICS_BRANCH
+    GNSSUTILS_BRANCH: $GNSSUTILS_BRANCH
+    LASERSCANUTILS_BRANCH: $LASERSCANUTILS_BRANCH
+  trigger: 
+    project: mobile_robotics/wolf_projects/wolf_ros2/wolf_ros2_node
+    branch: $WOLF_ROS2_NODE_BRANCH
+
+############ DEPLOY wolf_ros2_node FOR main ############
+deploy_wolf_ros2_node_main:
+  stage: deploy_ros2
+  rules: 
+    - if: $CI_COMMIT_REF_NAME == "main" && $DEPLOY_CI_ROS == "true"
+  variables:
+    WOLF_CORE_BRANCH: $CI_COMMIT_REF_NAME
+    WOLF_IMU_BRANCH: main
+    WOLF_GNSS_BRANCH: main
+    WOLF_LASER_BRANCH: main
+    WOLF_VISION_BRANCH: main
+    WOLF_APRILTAG_BRANCH: main
+    WOLF_BODYDYNAMICS_BRANCH: main
+    WOLF_ROS2_IMU_BRANCH: main
+    WOLF_ROS2_GNSS_BRANCH: main
+    WOLF_ROS2_LASER_BRANCH: main
+    WOLF_ROS2_VISION_BRANCH: main
+    WOLF_ROS2_APRILTAG_BRANCH: main
+    WOLF_ROS2_BODYDYNAMICS_BRANCH: main
+    GNSSUTILS_BRANCH: $GNSSUTILS_BRANCH
+    LASERSCANUTILS_BRANCH: $LASERSCANUTILS_BRANCH
+  trigger: 
+    project: mobile_robotics/wolf_projects/wolf_ros2/wolf_ros2_node
+    branch: main
+
+############ NO DEPLOY wolf_ros2_node ############
+no_deploy_wolf_ros2_node:
+  stage: deploy_ros2
+  script: 
+    - echo "NOT deploying CI for wolf_ros2_node, since DEPLOY_CI_ROS is $DEPLOY_CI_ROS (not true)"
+  rules: 
+    - if: $DEPLOY_CI_ROS != "true"