diff --git a/main.ts b/main.ts index 2f1b4f7..8a61cd4 100644 --- a/main.ts +++ b/main.ts @@ -1,4 +1,4 @@ // chassis.setSeparatelyChassisMotors(motors.mediumB, motors.mediumC, true, false); // Установка моторов шасси и установка им реверсов // chassis.setWheelRadius(62.4); // Диаметр колёс в мм // chassis.setBaseLength(180); // Расстояние между центрами колёс в мм -// custom.FunctionsTune(0, true); \ No newline at end of file +// custom.FunctionsTune(0); \ No newline at end of file diff --git a/tune.ts b/tune.ts index f8b582e..602d01e 100644 --- a/tune.ts +++ b/tune.ts @@ -55,18 +55,36 @@ namespace custom { }, SYNC_RAMP_DIST_MOVE: { params: { - dist: { - val: 500, + minSpeed: { + val: 10, changeStep: 5, - min: 0, - max: 5000 + min: -100, + max: 100 }, - speed: { - val: motions.lineFollow2SensorSpeed, + maxSpeed: { + val: 50, changeStep: 5, - min: 5, + min: -100, max: 100 }, + totalDist: { + val: 300, + changeStep: 5, + min: 100, + max: 10000 + }, + accelDist: { + val: 100, + changeStep: 5, + min: 0, + max: 10000 + }, + decelDist: { + val: 100, + changeStep: 5, + min: 0, + max: 10000 + }, Kp: { val: 0.02, changeStep: 0.01 @@ -85,7 +103,7 @@ namespace custom { } }, showStepsReg: true, - hrStrings: [2], + hrStrings: [5], }, LW_2S_TO_INTERSECTION: { params: { @@ -578,6 +596,20 @@ namespace custom { }; chassis.setSyncRegulatorGains(params.Kp, params.Ki, params.Kd); chassis.LinearDistMove(dist, speed, Braking.Hold); + } else if (screenName == "SYNC_RAMP_DIST_MOVE") { + const minSpeed = methodScreens[screenName].params.minSpeed.val; + const maxSpeed = methodScreens[screenName].params.maxSpeed.val; + const totalDist = methodScreens[screenName].params.totalDist.val; + const accelDist = methodScreens[screenName].params.accelDist.val; + const decelDist = methodScreens[screenName].params.totalDist.val; + const params = { + Kp: methodScreens[screenName].params.Kp.val, + Ki: methodScreens[screenName].params.Ki.val, + Kd: methodScreens[screenName].params.Kd.val, + N: methodScreens[screenName].params.N.val + }; + chassis.setSyncRegulatorGains(params.Kp, params.Ki, params.Kd); + chassis.RampLinearDistMove(minSpeed, maxSpeed, totalDist, accelDist, decelDist); } else if (screenName == "LW_2S_TO_INTERSECTION") { const debug = methodScreens[screenName].params.debug.val; const params = {