Skip to content

Commit b95acf3

Browse files
committed
update unit test open_loop option for optimizer
Signed-off-by: Chanh Hoang <[email protected]>
1 parent e15847d commit b95acf3

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

nav2_mppi_controller/test/optimizer_unit_tests.cpp

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,44 @@ class OptimizerTester : public Optimizer
217217
{
218218
return integrateStateVelocities(traj, state);
219219
}
220+
221+
void testCloseLoop()
222+
{
223+
settings_.open_loop = false;
224+
225+
mppi::models::State s;
226+
s.reset(1000,50);
227+
s.speed.linear.x = 0.25;
228+
s.speed.angular.z = -0.7;
229+
s.speed.linear.y = 0.1;
230+
231+
updateInitialStateVelocities(s);
232+
233+
EXPECT_FLOAT_EQ(s.vx(0,0), 0.25f);
234+
EXPECT_FLOAT_EQ(s.wz(0,0), -0.7f);
235+
EXPECT_FLOAT_EQ(s.vy(0,0), 0.1f);
236+
}
237+
238+
void testOpenLoop()
239+
{
240+
settings_.open_loop = true;
241+
242+
last_command_vel_.linear.x = 0.6;
243+
last_command_vel_.angular.z = 0.3;
244+
last_command_vel_.linear.y = 0.1;
245+
246+
mppi::models::State s;
247+
s.reset(1000, 50);
248+
s.speed.linear.x = 0.11;
249+
s.speed.angular.z = -0.22;
250+
s.speed.linear.y = -0.05;
251+
252+
updateInitialStateVelocities(s);
253+
254+
EXPECT_FLOAT_EQ(s.vx(0,0), 0.6f);
255+
EXPECT_FLOAT_EQ(s.wz(0,0), 0.3f);
256+
EXPECT_FLOAT_EQ(s.vy(0,0), 0.1f);
257+
}
220258
};
221259

222260
TEST(OptimizerTests, BasicInitializedFunctions)
@@ -697,6 +735,20 @@ TEST(OptimizerTests, TestGetters)
697735
EXPECT_EQ(optimizer_tester.getSettings().model_dt, 0.05f);
698736
}
699737

738+
TEST(OptimizerTests, DiffDrive_ClosedLoop_usesStateSpeed)
739+
{
740+
OptimizerTester optimizer_tester;
741+
optimizer_tester.testSetOmniModel();
742+
optimizer_tester.testCloseLoop();
743+
}
744+
745+
TEST(OptimizerTests, DiffDrive_OpenLoop_usesLastCmd)
746+
{
747+
OptimizerTester optimizer_tester;
748+
optimizer_tester.testSetOmniModel();
749+
optimizer_tester.testOpenLoop();
750+
}
751+
700752
int main(int argc, char **argv)
701753
{
702754
::testing::InitGoogleTest(&argc, argv);

0 commit comments

Comments
 (0)