13TEST(NoSlipBicycleModelTest, TestCgVelocityToWheels) {
20 Eigen::Vector3d cg_velocities(10.0, 2.0, 0.1);
23 ASSERT_EQ(observations.size(), 6);
25 EXPECT_NEAR(observations(0), 325.584, 0.01);
26 EXPECT_NEAR(observations(1), 325.584, 0.01);
27 EXPECT_NEAR(observations(2), 324.004, 0.01);
28 EXPECT_NEAR(observations(3), 324.004, 0.01);
29 EXPECT_NEAR(observations(4), 0.02450, 0.001);
30 EXPECT_NEAR(observations(5), 1296.02, 0.01);
38TEST(NoSlipBicycleModelTest, TestCgVelocityToWheelsNegativeVx) {
45 Eigen::Vector3d cg_velocities(-10.0, 2.0, 0.1);
49 ASSERT_EQ(observations.size(), 6);
51 EXPECT_NEAR(observations(0), -325.584, 0.01);
52 EXPECT_NEAR(observations(1), -325.584, 0.01);
53 EXPECT_NEAR(observations(2), -324.004, 0.01);
54 EXPECT_NEAR(observations(3), -324.004, 0.01);
55 EXPECT_NEAR(observations(4), 0.02450, 0.001);
56 EXPECT_NEAR(observations(5), -1296.02, 0.01);
64TEST(NoSlipBicycleModelTest, TestCgVelocityToWheelsZeroVx) {
71 Eigen::Vector3d cg_velocities(0.0, -2.0, -0.1);
75 ASSERT_EQ(observations.size(), 6);
77 EXPECT_NEAR(observations(0), 68.4366, 0.01);
78 EXPECT_NEAR(observations(1), 68.4366, 0.01);
79 EXPECT_NEAR(observations(2), 60.47888, 0.01);
80 EXPECT_NEAR(observations(3), 60.47888, 0.01);
81 EXPECT_NEAR(observations(4), -0.1243, 0.001);
82 EXPECT_NEAR(observations(5), 241.91552, 0.01);
90TEST(NoSlipBicycleModelTest, TestCgVelocityToWheelsZeroVy) {
97 Eigen::Vector3d cg_velocities(0.0, 0.0, 0.0);
101 ASSERT_EQ(observations.size(), 6);
103 EXPECT_NEAR(observations(0), 0, 0.01);
104 EXPECT_NEAR(observations(1), 0, 0.01);
105 EXPECT_NEAR(observations(2), 0, 0.01);
106 EXPECT_NEAR(observations(3), 0, 0.01);
107 EXPECT_NEAR(observations(4), 0, 0.001);
108 EXPECT_NEAR(observations(5), 0, 0.01);
116TEST(NoSlipBicycleModelTest, TestJacobianCgVelocityToWheels) {
128 Eigen::Vector3d cg_velocities(10.0, 2.0, 0.1);
134 ASSERT_EQ(jacobian.rows(), 6);
135 ASSERT_EQ(jacobian.cols(), 3);
137 EXPECT_NEAR(jacobian(0, 0), 31.1199, 0.01);
138 EXPECT_NEAR(jacobian(0, 1), 6.69077, 0.01);
139 EXPECT_NEAR(jacobian(0, 2), 10.0362, 0.01);
140 EXPECT_NEAR(jacobian(1, 0), 31.1199, 0.01);
141 EXPECT_NEAR(jacobian(1, 1), 6.69077, 0.01);
142 EXPECT_NEAR(jacobian(1, 2), 10.0362, 0.01);
143 EXPECT_NEAR(jacobian(2, 0), 31.2715, 0.01);
144 EXPECT_NEAR(jacobian(2, 1), 5.94159, 0.01);
145 EXPECT_NEAR(jacobian(2, 2), -5.9416, 0.01);
146 EXPECT_NEAR(jacobian(3, 0), 31.2715, 0.01);
147 EXPECT_NEAR(jacobian(3, 1), 5.94159, 0.01);
148 EXPECT_NEAR(jacobian(3, 2), -5.9416, 0.01);
149 EXPECT_NEAR(jacobian(4, 0), -0.002355, 0.01);
150 EXPECT_NEAR(jacobian(4, 1), -0.00047, 0.01);
151 EXPECT_NEAR(jacobian(4, 2), 0.24499, 0.01);
152 EXPECT_NEAR(jacobian(5, 0), 125.086, 0.01);
153 EXPECT_NEAR(jacobian(5, 1), 23.7664, 0.01);
154 EXPECT_NEAR(jacobian(5, 2), -23.7664, 0.01);
163TEST(NoSlipBicycleModelTest, TestJacobianCgVelocityToWheelsZeroVy) {
175 Eigen::Vector3d cg_velocities(-10.0, 0, -0.1);
181 ASSERT_EQ(jacobian.rows(), 6);
182 ASSERT_EQ(jacobian.cols(), 3);
184 EXPECT_NEAR(jacobian(0, 0), 31.8274082, 0.01);
185 EXPECT_NEAR(jacobian(0, 1), 0.47741112, 0.01);
186 EXPECT_NEAR(jacobian(0, 2), 0.71611668, 0.01);
187 EXPECT_NEAR(jacobian(1, 0), 31.8274082, 0.01);
188 EXPECT_NEAR(jacobian(1, 1), 0.47741112, 0.01);
189 EXPECT_NEAR(jacobian(1, 2), 0.71611668, 0.01);
190 EXPECT_NEAR(jacobian(2, 0), 31.8293971, 0.01);
191 EXPECT_NEAR(jacobian(2, 1), -0.3182939, 0.01);
192 EXPECT_NEAR(jacobian(2, 2), 0.31829397, 0.01);
193 EXPECT_NEAR(jacobian(3, 0), 31.8293971, 0.01);
194 EXPECT_NEAR(jacobian(3, 1), -0.3182939, 0.01);
195 EXPECT_NEAR(jacobian(3, 2), 0.31829397, 0.01);
196 EXPECT_NEAR(jacobian(4, 0), -0.00149966, 0.01);
197 EXPECT_NEAR(jacobian(4, 1), 0.0, 0.01);
198 EXPECT_NEAR(jacobian(4, 2), 0.24984, 0.01);
199 EXPECT_NEAR(jacobian(5, 0), 127.3175884, 0.01);
200 EXPECT_NEAR(jacobian(5, 1), -1.27316, 0.01);
201 EXPECT_NEAR(jacobian(5, 2), 1.27316, 0.01);