Skip to content

Commit 825b372

Browse files
committed
fix gaussian sampling
1 parent 0cea53c commit 825b372

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

mjpc/planners/sample_gradient/planner.cc

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ void SampleGradientPlanner::Initialize(mjModel* model, const Task& task) {
5757
num_trajectory_ = GetNumberOrDefault(10, model, "sampling_trajectories");
5858

5959
// set number of gradient trajectories to rollout
60-
num_gradient_ = GetNumberOrDefault(0, model, "gradient_trajectories");
60+
num_gradient_ = GetNumberOrDefault(0, model, "sample_gradient_trajectories");
6161

6262
// gradient filter
63-
gradient_filter_ = GetNumberOrDefault(1.0, model, "gradient_filter");
63+
gradient_filter_ = GetNumberOrDefault(1.0, model, "sample_gradient_filter");
6464

6565
if (num_trajectory_ > kMaxTrajectory) {
6666
mju_error_i("Too many trajectories, %d is the maximum allowed.",
@@ -219,8 +219,7 @@ void SampleGradientPlanner::OptimizePolicy(int horizon, ThreadPool& pool) {
219219
trajectory_order[i] = i;
220220
}
221221

222-
// sort so that the first ncandidates elements are the best candidates, and
223-
// the rest are in an unspecified order
222+
// sort lowest to highest total return
224223
std::partial_sort(
225224
trajectory_order.begin(), trajectory_order.begin() + num_trajectory,
226225
trajectory_order.begin() + num_trajectory,
@@ -354,12 +353,12 @@ void SampleGradientPlanner::AddNoiseToPolicy(int i) {
354353

355354
// sample noise
356355
for (int k = 0; k < num_parameters; k++) {
357-
noise[k + shift] = absl::Gaussian<double>(gen_, 0.0, noise_exploration);
356+
noise[k + shift] = absl::Gaussian<double>(gen_, 0.0, 1.0);
358357
}
359358

360359
// add noise
361-
mju_addTo(candidate_policy[i].parameters.data(), DataAt(noise, shift),
362-
num_parameters);
360+
mju_addToScl(candidate_policy[i].parameters.data(), DataAt(noise, shift),
361+
noise_exploration, num_parameters);
363362

364363
// clamp parameters
365364
for (int t = 0; t < num_spline_points; t++) {
@@ -449,7 +448,7 @@ void SampleGradientPlanner::GradientCandidates(int num_trajectory,
449448

450449
// normalize gradient
451450
// TODO(taylor): should we normalize?
452-
mju_normalize(gradient.data(), num_parameters);
451+
// mju_normalize(gradient.data(), num_parameters);
453452

454453
// compute step sizes along gradient
455454
std::vector<double> step_size(num_gradient);

mjpc/tasks/op3/task.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
<numeric name="agent_planner" data="0" />
99
<numeric name="agent_horizon" data="0.35" />
1010
<numeric name="agent_timestep" data="0.015" />
11-
<numeric name="sampling_trajectories" data="20"/>
11+
<numeric name="sampling_trajectories" data="32"/>
1212
<numeric name="sampling_spline_points" data="3" />
1313
<numeric name="sampling_exploration" data="0.1" />
1414
<numeric name="gradient_spline_points" data="5" />
15+
<numeric name="sample_gradient_trajectories" data="8"/>
1516
<numeric name="residual_Height Goal" data="0.38 0.0 0.75" />
1617
<text name="task_transition" data="Stand|Handstand" />
1718
</custom>

0 commit comments

Comments
 (0)