|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
CANJaguar and Encoders
How do I set a Jaguar, using CAN, to read the encoders and to rotate to a certain position?
I'm assuming I can set the ControlMode to PositionControl, but after that I am not sure what to do. |
|
#2
|
|||
|
|||
|
Re: CANJaguar and Encoders
set the control mode:
Code:
void ChangeControlMode(ControlMode controlMode); Code:
void SetPID(double p, double i, double d); set the position feedback device to encoder: Code:
void SetPositionReference(PositionReference reference); Code:
void EnableControl(double encoderInitialPosition = 0.0); Code:
virtual void Set(float value, UINT8 syncGroup=0); |
|
#3
|
|||||
|
|||||
|
Re: CANJaguar and Encoders
You also need to SetPositionReference, SetPID, and ConfigEncoderCodesPerRev.
Once you do all that, you EnableControl, and then Set the position you want. The trickiest part is setting the PID values to useful numbers. You'll need to experiment here, and you'll want to start with small number and work your way up. Sadly, you HAVE to do this with your system completely together. You can't tune a PID unloaded and then add a load and expect it to work well or at all. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|