diff --git a/src/lookahead.c b/src/lookahead.c index e0b0254..b30be3f 100644 --- a/src/lookahead.c +++ b/src/lookahead.c @@ -69,7 +69,7 @@ void fit_parameter(telemetry* t1, telemetry* t2, telemetry* t3, map* m){ void radar_dgl(trial* t, timestamp ts){ timestamp step = ts- t->sim.tm.ts; if (step > 0){ - dgl(t,&t->sim.tm.vehicle,&t->sim.tm.vehicle,step,1); + dgl(t,&t->sim.tm.vehicle,&t->sim.tm.vehicle,1,step); t->sim.tm.ts += step; t->sim.steps++; } @@ -90,6 +90,7 @@ void sim_update(trial* t){ t->sim.tm.vehicle.y - t->vehicle.y, t->sim.tm.vehicle.dir - t->vehicle.dir, t->sim.steps); +// fprintf(stderr, "w = %f, dir = %f\n", t->sim.tm.vehicle.w, t->sim.tm.vehicle.dir); /*update simulation vehicle from telemetry: everything and calculate w*/ t->sim.tm.vehicle = tm->vehicle; @@ -100,6 +101,7 @@ void sim_update(trial* t){ tmp = (telemetry*) g_queue_peek_tail_link(&t->telemetry)->prev->data; t->sim.tm.vehicle.w = (tm->vehicle.dir - tmp->vehicle.dir)/(tm->ts - tmp->ts); } +// fprintf(stderr, "w = %f, dir = %f\n", t->sim.tm.vehicle.w, t->sim.tm.vehicle.dir); } int dgl(trial* t, vehicle* after, vehicle* before, timestamp h, timestamp deltat){ @@ -122,18 +124,20 @@ int dgl(trial* t, vehicle* after, vehicle* before, timestamp h, timestamp deltat aw *= (before->w > wsoll) ? -1 : 1; for(i = 0;i<=end;i++){ - if(i == end) dt = deltat - (end-1)*dt; + if(i == end) dt = deltat - end*dt; /*calculate derivative*/ diff.x = cos(tmp.dir)*tmp.speed/1000; diff.y = sin(tmp.dir)*tmp.speed/1000; - diff.speed = fmax(-tmp.speed,a - k*tmp.speed*tmp.speed*1e-6); + diff.speed = a - k*tmp.speed*tmp.speed*1e-6; +// diff.speed = fmax(-tmp.speed/1000,a - k*tmp.speed*tmp.speed*1e-6); diff.w = (tmp.w == wsoll) ? 0 : aw; diff.dir = tmp.w; /*Euler Step*/ tmp.x += dt*diff.x; tmp.y += dt*diff.y; - tmp.speed += (tmp.speed > 0) ? dt*diff.speed : 0; +// tmp.speed += (tmp.speed > 0) ? 1000*dt*diff.speed : 0; + tmp.speed = fmax(0, tmp.speed + dt*1000*diff.speed); tmp.w += dt*diff.w; tmp.dir += dt*diff.dir; @@ -141,10 +145,10 @@ int dgl(trial* t, vehicle* after, vehicle* before, timestamp h, timestamp deltat collision.x = tmp.x; collision.y = tmp.y; collision.collision = 0; - g_hash_table_foreach(t->map.solid_objects,check_coll,&collision); - if(collision.collision){ - return -1; - } +// g_hash_table_foreach(t->map.solid_objects,check_coll,&collision); +// if(collision.collision){ +// return -1; +// } } diff --git a/src/radar_main.c b/src/radar_main.c index 8484dbb..dd01177 100644 --- a/src/radar_main.c +++ b/src/radar_main.c @@ -33,9 +33,9 @@ void trial_loop(trial *t) { } while (t->alive) { radar_dgl(t, getcurts(t) + LATENCY); -// goradar(t); - vehicle_break(t); - vehicle_hard_right(t); + goradar(t); +// vehicle_break(t); +// vehicle_hard_right(t); if (-1 == trial_check_input(t)) return; // if (-1 == trial_wait_for_input(t)) return; }