|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Problems using CAN with PID
Hello,
I've been trying to use the CANJaguar class with PID control, but due to a lack of examples and documentation it has been a lot of guess and check work. I have successfully created a CANJaguar object and correctly configured it to the point where I could get encoder feed back. However I have run into a bit of trouble trying to use PID Control with the robot. Here is some sample test code I created for a CANJaguar based driveTrain: http://code.google.com/p/iraiders-fr...riveTrain.java My problem is that even after setting a setpoint value using setX(x), the driveTrain wheel fail to move. Testing shows that the method getX() returns a value of zero. What's wrong? If anyone knows anything about the topic any information would be very helpful. |
|
#2
|
|||
|
|||
|
Re: Problems using CAN with PID
Try with kSpeed instead of kPosition for ControlMode. Unit is Rotations/Minute.
You can also use bdc-comm to adjust the CAN jaguars directly through serial cable. |
|
#3
|
|||
|
|||
|
Re: Problems using CAN with PID
Agreed you must switch to kSpeed. You will need different P I D numbers when you switch to kSpeed. For tuning speed mode, start with the I number (not P as you would for kPosition). Once you have an I you like, you can ramp up P to tame minor oscillations. Always set D to zero in speed mode. There are several posts which give more details on tuning CANJaguar kSpeed controllers.
|
|
#4
|
|||
|
|||
|
Re: Problems using CAN with PID
Quote:
|
|
#5
|
|||
|
|||
|
Re: Problems using CAN with PID
It varies, there are different strategies. This year I've had good luck with speed control using the Ziegler-Nichols method (search it) with P and I (no D).
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|