@@ -108,3 +108,39 @@ TEST(TestSteeringOdometry, ackermann_back_kin_right)
108108 EXPECT_GT (std::abs (cmd1[0 ]), std::abs (cmd1[1 ])); // abs right (inner) > abs left (outer)
109109 EXPECT_LT (cmd1[0 ], 0 );
110110}
111+
112+ TEST (TestSteeringOdometry, bicycle_odometry)
113+ {
114+ steering_odometry::SteeringOdometry odom (1 );
115+ odom.set_wheel_params (1 ., 1 ., 1 .);
116+ odom.set_odometry_type (steering_odometry::BICYCLE_CONFIG);
117+ ASSERT_TRUE (odom.update_from_velocity (1 ., .1 , .1 ));
118+ EXPECT_NEAR (odom.get_linear (), 1.0 , 1e-3 );
119+ EXPECT_NEAR (odom.get_angular (), .1 , 1e-3 );
120+ EXPECT_NEAR (odom.get_x (), .1 , 1e-3 );
121+ EXPECT_NEAR (odom.get_heading (), .01 , 1e-3 );
122+ }
123+
124+ TEST (TestSteeringOdometry, tricycle_odometry)
125+ {
126+ steering_odometry::SteeringOdometry odom (1 );
127+ odom.set_wheel_params (1 ., 1 ., 1 .);
128+ odom.set_odometry_type (steering_odometry::TRICYCLE_CONFIG);
129+ ASSERT_TRUE (odom.update_from_velocity (1 ., 1 ., .1 , .1 ));
130+ EXPECT_NEAR (odom.get_linear (), 1.0 , 1e-3 );
131+ EXPECT_NEAR (odom.get_angular (), .1 , 1e-3 );
132+ EXPECT_NEAR (odom.get_x (), .1 , 1e-3 );
133+ EXPECT_NEAR (odom.get_heading (), .01 , 1e-3 );
134+ }
135+
136+ TEST (TestSteeringOdometry, ackermann_odometry)
137+ {
138+ steering_odometry::SteeringOdometry odom (1 );
139+ odom.set_wheel_params (1 ., 1 ., 1 .);
140+ odom.set_odometry_type (steering_odometry::ACKERMANN_CONFIG);
141+ ASSERT_TRUE (odom.update_from_velocity (1 ., 1 ., .1 , .1 , .1 ));
142+ EXPECT_NEAR (odom.get_linear (), 1.0 , 1e-3 );
143+ EXPECT_NEAR (odom.get_angular (), .1 , 1e-3 );
144+ EXPECT_NEAR (odom.get_x (), .1 , 1e-3 );
145+ EXPECT_NEAR (odom.get_heading (), .01 , 1e-3 );
146+ }
0 commit comments