|
Re: Need Help With Robot Jumpyness
Quote:
Originally Posted by weaversam8
Hey guys!
(First post on CD, yay!  )
I need some help making our robot less sensitive to the joystick, or some relative acceleration. I am using the basic tutorial code and an arcade drive.
Code:
RobotDrive chassis = new RobotDrive(1,2);
Joystick main = new Joystick(1);
Code:
public void operatorControl() {
chassis.setSafetyEnabled(true);
while(isOperatorControl() && isEnabled()) {
double y = main.getY();
//scale down the max y
y = y * .6;
double x = main.getX();
//scale down the max x
x = x * .6;
//dynamically scale x
if(x > 0){
x = 1.0057*x*x - 0.0537*x + 0.0237;
}else if (y < 0){
x = -1.0057*x*x - 0.0537*x - 0.0237;
}
//dynamically scale y
if(y > 0){
y = 1.0057*y*y - 0.0537*y + 0.0237;
}else if (y < 0){
y = -1.0057*y*y - 0.0537*y - 0.0237;
}
chassis.arcadeDrive(y,x);
Timer.delay(0.01);
}
}
|
I've updated your code with a simple scalar function.
I just used excel and plotted a 2 order polynomial trendline.
Here are the scalars I used:
for less than 0:
in : out
-1 -1
-0.75 -0.5
-0.5 -0.25
-0.25 -0.12
0 0
for greater than 0:
in : out
0.25 0.12
0.5 0.25
0.75 0.5
1 1
If its still too fast I would start by reducing the starting scalar.
__________________
"Never let your schooling interfere with your education" -Mark Twain
Last edited by mwtidd : 17-01-2014 at 20:56.
|