diff --git a/source/armarx/navigation/human/test/human_tracker_test.cpp b/source/armarx/navigation/human/test/human_tracker_test.cpp
index 29d64823d23d06d5961134109fb5a41c6d987b83..734243acc72002312cff8df21124e6532464f254 100644
--- a/source/armarx/navigation/human/test/human_tracker_test.cpp
+++ b/source/armarx/navigation/human/test/human_tracker_test.cpp
@@ -42,6 +42,7 @@ using armarx::navigation::core::Pose2D;
 using CamMm = armarx::navigation::human::HumanTracker::CameraMeasurement;
 using LaserMm = armarx::navigation::human::HumanTracker::LaserMeasurement;
 using Eigen::Vector2f;
+using Ellipsoid = armarx::armem::vision::Ellipsoid;
 
 namespace armarx::navigation::human
 {
@@ -53,10 +54,12 @@ namespace armarx::navigation::human
                Eigen::AngleAxisf(yaw, Eigen::Vector3f::UnitZ());
     }
 
-    BOOST_AUTO_TEST_CASE(testLaserTracking)
+    BOOST_AUTO_TEST_CASE(testLaserTrackingTwoFeetCluster)
     {
         HumanTracker tracker = HumanTracker();
 
+        // PARAMETERS
+
         Eigen::Vector3f initialPosition(0, 0, 2);
         float orientation = M_PI_2;
         Eigen::Quaternionf orientationQuat = quatFromEuler(0, 0, orientation);
@@ -65,6 +68,9 @@ namespace armarx::navigation::human
         Eigen::Vector3f movementSpeedMetPerSec(1, 0, 0);
         int cameraSteps = 10;
 
+
+        // CAMERA MEASUREMENTS
+
         Eigen::Vector3f posDelta =
             movementSpeedMetPerSec * (static_cast<float>(timestepMs) / 1000.0);
 
@@ -87,6 +93,7 @@ namespace armarx::navigation::human
             tracker.update(camMm);
         }
 
+        // LASER MEASUREMENT
 
         DateTime tLaser = DateTime(Duration::MilliSeconds(cameraSteps * timestepMs));
 
@@ -99,16 +106,42 @@ namespace armarx::navigation::human
                                          Point(0.002, 0.001)};
 
         Eigen::Vector3f laserPos = initialPosition + cameraSteps * posDelta;
-        //Eigen::Vector3f leftFootPos = laserPos
+        Eigen::Vector3f leftFootPos = laserPos + Point(0, 0.1);
+        Eigen::Vector3f rightFootPos = laserPos + Point(0, -0.1);
 
         std::vector<Point> leftFootPoints = std::vector<Point>();
+        std::vector<Point> rightFootPoints = std::vector<Point>();
         for (Point& offset : relOffsets)
         {
-            //leftFootPoints.emplace_back();
+            leftFootPoints.emplace_back(leftFootPos + offset);
+            rightFootPoints.emplace_back(rightFootPos + offset);
         }
 
-        std::vector<Cluster> clusters = std::vector<Cluster>();
-        LaserMm laserMm;
+        using Pose = Eigen::Isometry3f;
+        Pose leftFootPose = Pose::Identity();
+        leftFootPose.translation() = leftFootPos;
+        leftFootPose.linear() = Eigen::Rotation2Df(orientation).toRotationMatrix();
+
+        Pose rightFootPose = Pose::Identity();
+        rightFootPose.translation() = rightFootPos;
+        rightFootPose.linear() = Eigen::Rotation2Df(orientation).toRotationMatrix();
+
+        Ellipsoid leftFootEllipse = {.pose = leftFootPose, .radii = Point(0.05, 0.04)};
+        Ellipsoid rightFootEllipse = {.pose = rightFootPose, .radii = Point(0.05, 0.04)};
+
+        Cluster leftFootCluster = {.ellipsoid = leftFootEllipse, .points = leftFootPoints};
+        Cluster rightFootCluster = {.ellipsoid = rightFootEllipse, .points = rightFootPoints};
+
+        std::vector<Cluster> clusters = std::vector<Cluster>{leftFootCluster, rightFootCluster};
+
+        LaserMm laserMm = {.detectionTime = tLaser, .clusters = clusters};
         tracker.update(laserMm);
+
+        std::vector<Human> humans = tracker.getTrackedHumans();
+        BOOST_CHECK_EQUAL(humans.size(), 1); // should have detected the one human through laser
+        Human h = humans.at(0);
+        BOOST_CHECK_CLOSE(h.pose.translation().x(), 1.0, 0.05);
+        BOOST_CHECK(h.pose.translation().y() < 0.05);
+        BOOST_CHECK_CLOSE(h.linearVelocity.x(), 1.0, 0.2);
     }
 } // namespace armarx::navigation::human