|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools |
Rating:
|
Display Modes |
|
|
|
#1
|
|||
|
|||
|
Cannot get Talon SRX's close loop mode to work
Greetings fellow programmers,
We have been trying for a while to get this nice Talon SRX to work in closed loop without any success. Any help will be appreciated! We have a Talon SRX connected to a motor and magnetic analog encoder (thought a voltage divider). Here's what we got to work:
But when FeedbackDevice is set to AnalogPot or AnalogEncoder and...
public Robot() { motor = new CANTalon(1); // Initialize the CanTalonSRX on device 1. motor.changeControlMode(CANTalon.ControlMode.Posit ion); motor.setFeedbackDevice(CANTalon.FeedbackDevice.An alogPot); motor.setPID(0.1, 0.001, 1.0, 0.0001, 1024, 5, 0); motor.reverseSensor(true); motor.reverseOutput(false); motor.ClearIaccum(); //motor.clearStickyFaults(); motor.enableLimitSwitch(false, false); motor.enableControl(); } public void operatorControl() { while (isOperatorControl() && isEnabled()) { System.out.println("****************************** *********"); motor.set(10); waitAndPrintValues(10); System.out.println("****************************** *********"); motor.set(800); waitAndPrintValues(10); System.out.println("****************************** *********"); motor.set(400); waitAndPrintValues(10); } } And the output looks like: *************************************** Analog in position: 825 Analog raw: 825 Setpoint: 10.0 Position: -824.0 Encoder pos: 0 Error: 834 Analog in position: 743 Analog raw: 743 Setpoint: 10.0 Position: -734.0 Encoder pos: 0 Error: 742 Analog in position: 507 Analog raw: 507 Setpoint: 10.0 Position: -484.0 Encoder pos: 0 Error: 498 Analog in position: 154 Analog raw: 154 Setpoint: 10.0 Position: -133.0 Encoder pos: 0 Error: 147 Analog in position: 762 Analog raw: 762 Setpoint: 10.0 Position: -740.0 Encoder pos: 0 Error: 752 Analog in position: 333 Analog raw: 333 Setpoint: 10.0 Position: -311.0 Encoder pos: 0 Error: 321 Analog in position: 909 Analog raw: 909 Setpoint: 10.0 Position: -889.0 Encoder pos: 0 Error: 897 Analog in position: 484 Analog raw: 484 Setpoint: 10.0 Position: -464.0 Encoder pos: 0 Error: 481 Analog in position: 48 Analog raw: 48 Setpoint: 10.0 Position: -28.0 Encoder pos: 0 Error: 43 Analog in position: 633 Analog raw: 633 Setpoint: 10.0 Position: -614.0 Encoder pos: 0 Error: 627 Analog in position: 196 Analog raw: 196 Setpoint: 10.0 Position: -180.0 Encoder pos: 0 Error: 190 Analog in position: -249 Analog raw: 775 Setpoint: 10.0 Position: 264.0 Encoder pos: 0 Error: -254 Analog in position: -678 Analog raw: 346 Setpoint: 10.0 Position: 695.0 Encoder pos: 0 Error: -677 Analog in position: -103 Analog raw: 921 Setpoint: 10.0 Position: 119.0 Encoder pos: 0 Error: -103 Analog in position: -532 Analog raw: 492 Setpoint: 10.0 Position: 530.0 Encoder pos: 0 Error: -533 Analog in position: -970 Analog raw: 54 Setpoint: 10.0 Position: 984.0 Encoder pos: 0 Error: -972 Analog in position: -1011 Analog raw: 13 Setpoint: 10.0 Position: 1011.0 Encoder pos: 0 Error: -998 Analog in position: -835 Analog raw: 189 Setpoint: 10.0 Position: 838.0 Encoder pos: 0 Error: -823 Analog in position: -488 Analog raw: 536 Setpoint: 10.0 Position: 495.0 Encoder pos: 0 Error: -473 Analog in position: -70 Analog raw: 954 Setpoint: 10.0 Position: 78.0 Encoder pos: 0 Error: -55 *************************************** Analog in position: -648 Analog raw: 376 Setpoint: 800.0 Position: 656.0 Encoder pos: 0 Error: -630 Analog in position: -220 Analog raw: 804 Setpoint: 800.0 Position: 230.0 Encoder pos: 0 Error: 578 Analog in position: -802 Analog raw: 222 Setpoint: 800.0 Position: 813.0 Encoder pos: 0 Error: -4 Analog in position: -371 Analog raw: 653 Setpoint: 800.0 Position: 381.0 Encoder pos: 0 Error: 428 Analog in position: -91 Analog raw: 986 Setpoint: 800.0 Position: 44.0 Encoder pos: 0 Error: 762 Analog in position: -820 Analog raw: 204 Setpoint: 800.0 Position: 769.0 Encoder pos: 0 Error: 34 Analog in position: -538 Analog raw: 486 Setpoint: 800.0 Position: 496.0 Encoder pos: 0 Error: 308 Analog in position: -328 Analog raw: 696 Setpoint: 800.0 Position: 297.0 Encoder pos: 0 Error: 501 Analog in position: -218 Analog raw: 806 Setpoint: 800.0 Position: 220.0 Encoder pos: 0 Error: 582 Analog in position: -227 Analog raw: 797 Setpoint: 800.0 Position: 235.0 Encoder pos: 0 Error: 565 Analog in position: -331 Analog raw: 693 Setpoint: 800.0 Position: 358.0 Encoder pos: 0 Error: 440 Analog in position: -535 Analog raw: 489 Setpoint: 800.0 Position: 574.0 Encoder pos: 0 Error: 223 Analog in position: -793 Analog raw: 231 Setpoint: 800.0 Position: 833.0 Encoder pos: 0 Error: -31 Analog in position: -1058 Analog raw: 990 Setpoint: 800.0 Position: 1089.0 Encoder pos: 0 Error: -289 Analog in position: -1240 Analog raw: 808 Setpoint: 800.0 Position: 1260.0 Encoder pos: 0 Error: -455 Analog in position: -1324 Analog raw: 724 Setpoint: 800.0 Position: 1328.0 Encoder pos: 0 Error: -528 Analog in position: -1321 Analog raw: 727 Setpoint: 800.0 Position: 1313.0 Encoder pos: 0 Error: -513 Analog in position: -1219 Analog raw: 829 Setpoint: 800.0 Position: 1198.0 Encoder pos: 0 Error: -399 Analog in position: -2046 Analog raw: 2 Setpoint: 800.0 Position: 2032.0 Encoder pos: 0 Error: -1232 Analog in position: -2001 Analog raw: 47 Setpoint: 800.0 Position: 1996.0 Encoder pos: 0 Error: -1196 *************************************** Analog in position: -1966 Analog raw: 82 Setpoint: 400.0 Position: 1961.0 Encoder pos: 0 Error: -1161 Analog in position: -1918 Analog raw: 130 Setpoint: 400.0 Position: 1911.0 Encoder pos: 0 Error: -1511 Analog in position: -1870 Analog raw: 178 Setpoint: 400.0 Position: 1863.0 Encoder pos: 0 Error: -1463 Analog in position: -1824 Analog raw: 224 Setpoint: 400.0 Position: 1818.0 Encoder pos: 0 Error: -1418 Analog in position: -1779 Analog raw: 269 Setpoint: 400.0 Position: 1773.0 Encoder pos: 0 Error: -1374 Analog in position: -1737 Analog raw: 311 Setpoint: 400.0 Position: 1731.0 Encoder pos: 0 Error: -1329 Analog in position: -1696 Analog raw: 352 Setpoint: 400.0 Position: 1689.0 Encoder pos: 0 Error: -1290 Analog in position: -1656 Analog raw: 392 Setpoint: 400.0 Position: 1650.0 Encoder pos: 0 Error: -1250 Analog in position: -1617 Analog raw: 431 Setpoint: 400.0 Position: 1614.0 Encoder pos: 0 Error: -1213 Analog in position: -1606 Analog raw: 442 Setpoint: 400.0 Position: 1606.0 Encoder pos: 0 Error: -1207 Analog in position: -1605 Analog raw: 443 Setpoint: 400.0 Position: 1605.0 Encoder pos: 0 Error: -1207 Analog in position: -1605 Analog raw: 443 Setpoint: 400.0 Position: 1605.0 Encoder pos: 0 Error: -1207 Analog in position: -1605 Analog raw: 443 Setpoint: 400.0 Position: 1605.0 Encoder pos: 0 Error: -1207 Any idea someone? - Eric |
|
#2
|
||||
|
||||
|
Re: Cannot get Talon SRX's close loop mode to work
I'm spinning a new Talon SRX release with some fixes for analog encoder closed-loop. Should be up soon. The problem occurs when the analog encoder position exceeds 1023 (wrap around). The wrap around isn't always detected with firmware 1.1 and that messes with the sensor position and sensor velocity.
|
|
#3
|
|||
|
|||
|
Great! Do you have an ETA?
|
|
#4
|
||||
|
||||
|
Re: Cannot get Talon SRX's close loop mode to work
New Software Reference Manual and firmware crf 1.4 is up at...
http://www.crosstheroadelectronics.c...ol_system.html |
|
#5
|
|||
|
|||
|
Many thanks!!
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|