Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Control System (http://www.chiefdelphi.com/forums/forumdisplay.php?f=177)
-   -   Calibrating Victors (http://www.chiefdelphi.com/forums/showthread.php?t=31293)

Andy A. 17-11-2004 07:34

Re: Spikes
 
Quote:

Originally Posted by gwross
Apparently, you are now referring back to your earlier post:
That certainly wasn't apparent from the question I was trying to answer:

At any rate, I know of no reason why a Victor would reset itself. It seems unlikely that the procedure I cited from the Users Manual could have been executed inadvertently. Has anyone else witnessed a Victor inexplicably losing its calibration?

Yes, I have. It's a pretty subtle thing, and I suspect that it was more of a slow process. To describe the situation- at the start of the season, all the victors were calibrated with out a problem. Perhaps halfway through the season, I noticed that the bot was veering more to the one side then it had previously. Assuming that it was one of the motors/drive train deteriorating, I didn't mention it to the pit crew who had enough on their hands. I was able to deal with it on the field well enough, so I let it go. After a few match's, it worsened to the point that it was bad enough that I felt it was hurting our performance. So on a whim, I had the victors recalibrated while I waited for the pitcrew to finish work on something else. With out changing anything else, the problem disappeared.

So, it may have been the victor loosing calibration or just as likely, the joystick 'drifting' (it was not the trim). Perhaps a good jolt can cause the pots to 'slip'?

Regardless, there is no harm in calibrating, assuming you do it correctly, and no good reason not to. There is a significant difference between joysticks, and I see no reason why that should have to be compensated in programming or by the driver when the victor can be matched to each stick.

-Andy A.

Alan Anderson 17-11-2004 10:17

Re: Spikes
 
Quote:

Originally Posted by Andy A.
Regardless, there is no harm in calibrating, assuming you do it correctly, and no good reason not to. There is a significant difference between joysticks, and I see no reason why that should have to be compensated in programming or by the driver when the victor can be matched to each stick.

I can immediately think of three reasons not to.
  1. It's easier to replace a Victor if you don't have to recalibrate afterwards.
  2. Sometimes the joystick value isn't directly coupled to the motor output (i.e., one-stick control, or a holonomic drivebase).
  3. Autonomous control is seriously impaired if the Victors aren't consistent.

The only compelling reason I see for calibrating a Victor to a specific joystick is if your program is simply copying the input value to the output. For a basic robot under complete manual control, that is perfectly appropriate. As soon as the program gets at all fancy, however, it becomes important to separate the input calibrations from the output calibrations.

Andy A. 17-11-2004 15:52

Re: Spikes
 
Quote:

Originally Posted by Alan Anderson
I can immediately think of three reasons not to.

1. It's easier to replace a Victor if you don't have to recalibrate afterwards.

Recaliberting only takes 20 seconds, it seems easy enough to me, or am I forgetting something that makes it more complicated? It's one more thing to remember, but even forgetting wouldn't be catastophic. Or would it? I should preface this by saying that I've never really used a bot that had a great deal of autonoums programming going on, so I'm finding my self very much in the dark on an issue I thought I understood.

Quote:

Originally Posted by Alan Anderson
2. Sometimes the joystick value isn't directly coupled to the motor output (i.e., one-stick control, or a holonomic drivebase).

How is calibrating with a one joystick controller any diffrent then with a 2 stick system? It still seems to yields the same benifits, or am I missing something, again? I understand the point that sometimes the joystick and motor output arn't coupled and there is no benifit to calibrateing the victors then. But I thought that even in a one stick drive, the two still were coupled even though it was fed through software.

Quote:

Originally Posted by Alan Anderson
3. Autonomous control is seriously impaired if the Victors aren't consistent.

The only compelling reason I see for calibrating a Victor to a specific joystick is if your program is simply copying the input value to the output. For a basic robot under complete manual control, that is perfectly appropriate. As soon as the program gets at all fancy, however, it becomes important to separate the input calibrations from the output calibrations.


Well. You are right. I hadn't really considered that it would impair autonomous control that much, since I had just assumed that the program would be reading some sort of sensor feedback and make up the speed outputs on the fly. In that situation, it wouldn't matter what the victor calibration is, correct? Different calibrations are only an issue if the victors are being fed the numbers right from the controllers memory, correct?

Is there anyway that you could calibrate a victor, and have the program 'listen' in so that it could too could be calibrated and remember how the victor is scaling the input, and then use that its (the program) self? Would knowing exactly how much the victor is scaling the numbers help autonomous programming at all? I don't think I'm making my self very clear with this, but does anyone get it?

So, I spoke to soon. There are reasons not to calibrate. Don't I feel sheepish?

-Andy A.

SpaceOsc 17-11-2004 16:21

Re: Spikes
 
Quote:

Originally Posted by Andy A.
Recaliberting only takes 20 seconds, it seems easy enough to me, or am I forgetting something that makes it more complicated? It's one more thing to remember, but even forgetting wouldn't be catastophic. Or would it? I should preface this by saying that I've never really used a bot that had a great deal of autonoums programming going on, so I'm finding my self very much in the dark on an issue I thought I understood.



How is calibrating with a one joystick controller any diffrent then with a 2 stick system? It still seems to yields the same benifits, or am I missing something, again? I understand the point that sometimes the joystick and motor output arn't coupled and there is no benifit to calibrateing the victors then. But I thought that even in a one stick drive, the two still were coupled even though it was fed through software.




Well. You are right. I hadn't really considered that it would impair autonomous control that much, since I had just assumed that the program would be reading some sort of sensor feedback and make up the speed outputs on the fly. In that situation, it wouldn't matter what the victor calibration is, correct? Different calibrations are only an issue if the victors are being fed the numbers right from the controllers memory, correct?

Is there anyway that you could calibrate a victor, and have the program 'listen' in so that it could too could be calibrated and remember how the victor is scaling the input, and then use that its (the program) self? Would knowing exactly how much the victor is scaling the numbers help autonomous programming at all? I don't think I'm making my self very clear with this, but does anyone get it?

So, I spoke to soon. There are reasons not to calibrate. Don't I feel sheepish?

-Andy A.

I dont fully Comprehend why victor calibration would damage a working dead reckoning program. as in a previous post about saving the day with a paper clip. our programmers were having huge trouble just going foward straight, so they put in number that after trail in error comphensated for the issue. then i told them to stand back and give me 5 minutes (its amazing how hard it is to get a simple minute or two to fix a problem like this from an active pit team) and i calibrated, then i told them it should be fixed and discarded all the values for comphensation and went with the default numbers for neutral and full speed and half speed, as they were needed

The original program used these standard values for neutral and full speed but then they didnt work because of the calibration offset that i shoulda detected and fixed earlier in the season. so i suppose when a team isnt using sensor to drive in auton it would use a series of standard numbers for neutral and any other speeed it desired. if the victors are calibrated to begin with at the start of the season and someone actively takes care of that issue threw out the season ( maybe the pilots) then u can have your cake and eat it tooo, calibrated victors and a working auton.

-Osc-

Greg Ross 17-11-2004 20:44

Re: Spikes
 
Quote:

Originally Posted by Andy A.
Is there anyway that you could calibrate a victor, and have the program 'listen' in so that it could too could be calibrated and remember how the victor is scaling the input, and then use that its (the program) self? Would knowing exactly how much the victor is scaling the numbers help autonomous programming at all? I don't think I'm making my self very clear with this, but does anyone get it?

Yeah, I get it, and it's an interesting idea. Yes, you should be able to "listen in" as you calibrate the Victors, and yes you could use the calibration in your autonomous program.

When you have finished the calibration, you would want to save the max, min and neutral values to EEPROM so you don't have to recalibrate every time you power on your robot. (Or you might want to be be paranoid and force yourself to calibrate every time. :p )

Al Skierkiewicz 18-11-2004 07:41

Re: Calibrating Victors
 
Guys,
The calibration procedure gives you full range out of the Victor and sets the resting point for the values you feed it (whether absolute from auto mode or full travel on the joystick). Remember you are calibrating the Victor and not the RC. There are trade offs, calibrating will affect auto for dead reckoning robots as much as a weak battery, worn wheels or transmission or anything else that effects speed. The reality is that joysticks are CHEAP electrical components that drift (change value) like crazy especially when they are new. Calibrating the Victors just insures that with everything else being equal, you will be able to achieve full forward and full reverse out at the extremes of joystick travel. Setting the trim on the joystick is just an easy way to match the joystick's drift at center to where the Victor is currently calibrated regardless of whether the joystick can drive full forward or reverse. If you have ever thought that your robot should be able to go faster as per your design for top speed, then it is likely your Victors were not calibrated to your joysticks.
There is no way for the current Victors to feed data back to the RC but that would be pretty cool. I think that scaling joystick input at the RC to match full range and zero would be a big improvement IF the Victors were able to calibrate to full absolute PWM values.
It is important to calibrate at some point in time to insure that your controllers haven't lost their minds and match the control system you will be using for the majority of the match. I would rather have full range control while driving for 1:45 then to have a correct auto mode running for just :15.

Alan Anderson 18-11-2004 09:51

Re: Spikes
 
Quote:

Originally Posted by Andy A.
Is there anyway that you could calibrate a victor, and have the program 'listen' in so that it could too could be calibrated and remember how the victor is scaling the input, and then use that its (the program) self? Would knowing exactly how much the victor is scaling the numbers help autonomous programming at all? I don't think I'm making my self very clear with this, but does anyone get it?

If you're going to go to the trouble of programming a calibration, it would be both easier and simpler to do all the calibration inside the program. Consider that you're not really calibrating the Victor output to account for variance in the Victor; you're calibrating the joystick input to account for variance in the joystick.

Dave Flowerday 18-11-2004 10:48

Re: Calibrating Victors
 
Quote:

Originally Posted by Al Skierkiewicz
I think that scaling joystick input at the RC to match full range and zero would be a big improvement IF the Victors were able to calibrate to full absolute PWM values.

This is actually what we do with our software. When we receive joystick input data, the first thing we do is scale it to a full-range value (0-254) and then all subsequent processing is done on that value. So, regardless of our joysticks, we always output 0-254 to our speed controllers, and calibrate the speed controllers using that. This ensures no surprises with autonomous mode (however our closed-loop positioning system would take care of incorrectly calibrated speed controllers anyway).

MikeDubreuil 18-11-2004 11:46

Re: Calibrating Victors
 
I'm going to chime in here and say that calibrating the Victors is a very bad idea. You should consider it a design requirement in software to output the full values to the Victor. That means 127 is neutral, 0 is 100% power in reverse, and 254 is 100% power in the forward direction.

As Al Skierkiewicz said, the joysticks are basicly garbage. Your software should take into account their defects. I usually solve this by creating a deadband around the neutral point and also what you could call a "fullband" at the extremes (0 and 254). This makes sure we have a large enough deadband so hand jitters don't effect the robot and we are capable of sending full power to the motors.

Dave Scheck 18-11-2004 11:59

Re: Calibrating Victors
 
Quote:

Originally Posted by MikeDubreuil
I'm going to chime in here and say that calibrating the Victors is a very bad idea. You should consider it a design requirement in software to output the full values to the Victor. That means 127 is neutral, 0 is 100% power in reverse, and 254 is 100% power in the forward direction.

I agree that for most applications this is the case, but remember, there is always an exception. I think that it is better to say that for the FIRST robotics application, it is recommended that the Victors be calibrated as you outlined above.

However, I don't think it hurts to perform a callibration once a year. You never know what that Victor's been through. Better to be safe than sorry.

Mike Betts 18-11-2004 15:14

Re: Calibrating Victors
 
The Victors are digital input and digital output. To the best of my knowledge, no analog circuitry is involved. They will not ever change unless they are damaged and then they will either work as specified or not work at all.

I maintain my position. Always use the factory default calibration and it will work every time.

Ken Patton 18-11-2004 17:33

Re: Spikes
 
I'm in the don't-cal-em-if-you-don't-have-to camp. We have done it rarely over the years. That IFI stuff is pretty reliable imho.

One quick and dirty check to see that you are getting near full forward and full reverse PWMs to the speed controllers is to watch the green and red lights as indicators. I know, its not very exact, the manual probably says what the green/red thresholds are, but its a good sense check when you have a match in four minutes.....

Ken

Al Skierkiewicz 19-11-2004 07:59

Re: Calibrating Victors
 
Yes, you are all right except for one thing. If you are not absolutely sure that your RC outputs full range PWM for full motion on your joysticks then your systems are faulty. Whether you correct that flaw in software or if you correct it by calibration does not matter as long as you get full range. At extremes several conditions (of thousands) can exist without calibration...
1. Joysticks analog output is converted to a range of 50- 205 for full travel.
2. Joystick's analog output is converted to the range 0-255 for only 60% of it's travel.
3. Joystick's analog output is converted to the range 0-200 for full travel.

If you know for certain that pulling back on the joystick will always output 0 at it's limit and pushing forward will always output 255 at it's limit then you do not need to calibrate. For any other condition, calibrating the controller will insure your full range. As Ken indicated, the LED on the controller will tell you if you have achieved full range but it will not indicate if you achieved it with symmetrical motion, full travel, or software intervention or simply that you were lucky enough to get a set of joysticks that output an analog voltage that perfectly matches the ADC in the RC.
I am not saying you are wrong for not calibrating, just that you are not sure you are capable of full range and matched output charachteristics for all drive motors. More often than not, robots that can't drive straight or stable do not have matched drive signals, particularly for tank style driving and multi motor systems.
I would like to add that I think the IFI guys are very smart and doing a great job with these control systems. They gave us the calibration procedure at some production cost (per unit) because they thought it was needed. They knew what variables exist in the system and they allow us to compensate for them in software or hardware as we see fit.


All times are GMT -5. The time now is 20:49.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi