Skip to content

Commit f2b4b91

Browse files
erez-tomcopybara-github
authored andcommitted
Use mj_resetDataKeyframe to ensure all keyframe fields are used, remove redundant test file.
PiperOrigin-RevId: 607644409 Change-Id: I0528f9ba2c014141e1c7d5d55fa438b418c9fc3d
1 parent 73b9e19 commit f2b4b91

File tree

5 files changed

+19
-389
lines changed

5 files changed

+19
-389
lines changed

mjpc/simulate.cc

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1163,10 +1163,7 @@ void UiEvent(mjuiState* state) {
11631163
sim->screenshotrequest.store(true);
11641164
break;
11651165
}
1166-
}
1167-
1168-
// option section
1169-
else if (it && it->sectionid==SECT_OPTION) {
1166+
} else if (it && it->sectionid == SECT_OPTION) {
11701167
if (it->pdata == &sim->spacing) {
11711168
sim->ui0.spacing = mjui_themeSpacing(sim->spacing);
11721169
sim->ui1.spacing = mjui_themeSpacing(sim->spacing);
@@ -1184,37 +1181,16 @@ void UiEvent(mjuiState* state) {
11841181
// modify UI
11851182
UiModify(&sim->ui0, state, &sim->platform_ui->mjr_context());
11861183
UiModify(&sim->ui1, state, &sim->platform_ui->mjr_context());
1187-
}
11881184

1189-
// simulation section
1190-
else if (it && it->sectionid==SECT_SIMULATION) {
1185+
} else if (it && it->sectionid == SECT_SIMULATION) {
11911186
switch (it->itemid) {
11921187
case 1: // Reset
11931188
if (m) {
1194-
mj_resetData(m, d);
1189+
mj_resetDataKeyframe(m, d, mj_name2id(m, mjOBJ_KEY, "home"));
11951190
mj_forward(m, d);
11961191
UpdateProfiler(sim);
11971192
UpdateSensor(sim);
11981193
UpdateSettings(sim);
1199-
// set initial qpos via keyframe
1200-
double* key_qpos = mjpc::KeyQPosByName(sim->mnew, sim->dnew,
1201-
"home");
1202-
if (key_qpos) {
1203-
mju_copy(sim->dnew->qpos, key_qpos, sim->mnew->nq);
1204-
}
1205-
// set initial qvel via keyframe
1206-
double* key_qvel = mjpc::KeyQVelByName(sim->mnew, sim->dnew,
1207-
"home");
1208-
if (key_qvel) {
1209-
mju_copy(sim->dnew->qvel, key_qvel, sim->mnew->nv);
1210-
}
1211-
// set initial act via keyframe
1212-
double* act = mjpc::KeyActByName(sim->mnew, sim->dnew,
1213-
"home");
1214-
if (act) {
1215-
mju_copy(sim->dnew->act, act, sim->mnew->na);
1216-
}
1217-
12181194
sim->agent->PlotReset();
12191195
}
12201196
break;

mjpc/test/agent/agent_utilities_test.cc

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -201,20 +201,6 @@ TEST(AgentUtilitiesTest, ByName) {
201201
EXPECT_NEAR(qpos_home[0], 1.0, 1.0e-5);
202202
EXPECT_NEAR(qpos_home[1], 2.0, 1.0e-5);
203203

204-
// get invalid key qvel
205-
double* qvel_invalid;
206-
qvel_invalid = KeyQVelByName(model, data, "invalid");
207-
208-
EXPECT_EQ(qvel_invalid, nullptr);
209-
210-
// get "home" key qvel
211-
double* qvel_home;
212-
qvel_home = KeyQVelByName(model, data, "home");
213-
214-
EXPECT_NEAR(qvel_home[0], -1.0, 1.0e-5);
215-
EXPECT_NEAR(qvel_home[1], -2.0, 1.0e-5);
216-
217-
// delete model + data
218204
mj_deleteData(data);
219205
mj_deleteModel(model);
220206
}
@@ -234,7 +220,21 @@ TEST(AgentUtilitiesTest, Clamp) {
234220
EXPECT_NEAR(x[2], 0.0, 1.0e-5);
235221
}
236222

237-
TEST(AgentUtilitiesTest, FindInterval) {
223+
TEST(UtilitiesTest, LinearRange) {
224+
double linear_sequence[4] = {0.2, 0.0, 0.0, 0.0};
225+
int length = 4;
226+
double step = 0.1;
227+
228+
LinearRange(linear_sequence, step, linear_sequence[0], length);
229+
230+
// test
231+
EXPECT_NEAR(linear_sequence[0], 0.2, 1.0e-5);
232+
EXPECT_NEAR(linear_sequence[1], 0.3, 1.0e-5);
233+
EXPECT_NEAR(linear_sequence[2], 0.4, 1.0e-5);
234+
EXPECT_NEAR(linear_sequence[3], 0.5, 1.0e-5);
235+
}
236+
237+
TEST(UtilitiesTest, FindInterval) {
238238
// sequence
239239
std::vector<double> sequence{-1.0, 0.0, 1.0, 2.0};
240240
int length = 4;

0 commit comments

Comments
 (0)