Log in

View Full Version : Talon SRX question


phargo#1018
26-12-2014, 13:20
I have been looking for data on the new Talon SRX motor drive.
Probably not news, but I have located some data on the VEX website:
http://www.vexrobotics.com/217-8080.html
specifically
http://content.vexrobotics.com/vexpro/pdf/217-8080-Talon-SRX-User-Guide-20141223.pdf

Despite the available datasheet, I am interested in more data about these devices.

In particular, I would like to understand what the set of CAN messages includes. From other posts, there appears to be an enable/disable, a set-point command message, and some set of parameter setup message(s).

I am also interested in more information regarding the internal control update rates through this device.

Is there more information available someplace? Thanks!

nixiebunny
28-12-2014, 23:43
According to the user guide, you have to read the software reference manual to get any more information. CTRE will have to provide that.

We all eagerly await this information!

JVN
28-12-2014, 23:59
More data will be posted, but probably not until kickoff. We'll get it out as soon as we can.

taichichuan
31-12-2014, 00:23
We have 4 CAN Talon SRXs on our current testing platform. What is it that you want to know?

Regards,

Mike

phargo#1018
31-12-2014, 06:47
I am primarily interested in the local loop closure aspects of the new Talon. When using the Talon to close a motor control loop locally, what are the loop(s) that are closed?
Is the loop closure the motor rate loop, or is there a motor current loop as well?
Can you provide a list of parameters that are settable within the Talon?
Are you able to clarify the auto-disable/auto-enable features that may be associated with the new Voltage brown-out protection?
Is there a master/slave feature such that a pair of Talons can operate a pair of motors on a common gearbox?
Are you able to comment upon the device time response? I have heard that the Talon provides a 1msec output update. This sounds faster than the basic PWM command input, so I am trying to track this down. Is the update rate faster/slower when using the CAN interface?

Appreciate any answers!! Thanks!!!

taichichuan
31-12-2014, 12:33
I am primarily interested in the local loop closure aspects of the new Talon. When using the Talon to close a motor control loop locally, what are the loop(s) that are closed?
Is the loop closure the motor rate loop, or is there a motor current loop as well?
Can you provide a list of parameters that are settable within the Talon?
Are you able to clarify the auto-disable/auto-enable features that may be associated with the new Voltage brown-out protection?
Is there a master/slave feature such that a pair of Talons can operate a pair of motors on a common gearbox?
Are you able to comment upon the device time response? I have heard that the Talon provides a 1msec output update. This sounds faster than the basic PWM command input, so I am trying to track this down. Is the update rate faster/slower when using the CAN interface?

Appreciate any answers!! Thanks!!!

Hmm... OK, let me see what I can answer... The Talon SRX is meant to provide all of the services from the CANJaguar class in WPILib. Therefore, you can close the loop on speed, current, position, voltage, etc. given the correct sensors. The parameters are similar to the CANJaguar class as well.

The brown-out protection will take you down to about 5-6V before the Talon resets. The motors will be dead likely before that happens.

In PWM mode, the talons can be tied to the same PWM output to slave them together. However, I don't see anything in the API that allows you to do that in CAN mode. We've simply been sending the same command to the different Talons via CAN. We haven't been able to detect much of a lag if any.

The update rate on the Talon SRX is indeed roughly 1ms. The bus is running at 1 Mbps which does make it faster than the PWM. However, your driver station is still running at 50ms refresh rate. So, in a totally closed loop mode, expect ~ 1ms response times. If you're taking commands from a DS, then the update rate is slaved to the refresh on the DS.

The docs on the Talon SRX API are still sketchy. Lots of things defined that the details are still a work-in-progress as far as the docs go. And, even the beta teams won't be able to see the implementation until after kick-off. Of course, I can only speak to the C++/Java WPILib implementation. What happens in LabView should be similar, but I can't say definitively.

HTH

RufflesRidge
31-12-2014, 13:00
The brown-out protection will take you down to about 5-6V before the Talon resets. The motors will be dead likely before that happens.,
The CANTalons will be sent an explicit disable at 6.8V per the Beta documentation.

However, I don't see anything in the API that allows you to do that in CAN mode.
This exists. It's called "Follower" mode in C++/Java.

taichichuan
31-12-2014, 14:26
The CANTalons will be sent an explicit disable at 6.8V per the Beta documentation.


This exists. It's called "Follower" mode in C++/Java.

Experimentally, we've seen a bit lower than that. However, you're best to stay with the docs and remember that YMMV.

Hmm... I don't find any reference to follower mode in any of the beta CAN documentation. Can you provide an API name so I can find this?

TIA.

RufflesRidge
31-12-2014, 14:41
Hmm... I don't find any reference to follower mode in any of the beta CAN documentation. Can you provide an API name so I can find this?

TIA.

As you mentioned, docs are a bit sparse at the moment.

Set the mode to CANSpeedController::ControlMode::kFollower
Then call Set() passing the ID of the TalonSRX you want to follow.

phargo#1018
31-12-2014, 16:06
Last year, we used two CIMs on a toughbox with a single encoder. the CIMs were driven by Jaguars, where the Jaguar PWM inputs were wyed between the digital sidecar and the Jaguars; motor rate loops closed in the cRio.

If we were to attempt to have local loops inteh Talon SRX, the encoder would connect to one Talon and that Talon would close (I am assuming) the rate loop about one CIM.

With the second Talon in follower mode, would the first Talon relay the Voltage command set-point to the second Talon? Or does this require dual encoders on the gearbox??

taichichuan
31-12-2014, 16:22
As you mentioned, docs are a bit sparse at the moment.

Set the mode to CANSpeedController::ControlMode::kFollower
Then call Set() passing the ID of the TalonSRX you want to follow.

Excellent. Thanks you very much for the pointer. I'll look into this option for future use.

jhersh
01-01-2015, 14:58
With the second Talon in follower mode, would the first Talon relay the Voltage command set-point to the second Talon? Or does this require dual encoders on the gearbox??

The slave simply follows the master. The slave needs no encoder.

phargo#1018
01-01-2015, 17:36
Could you please elaborate on how the slave follows the master?
The slave is able to monitor all CAN messages; however, the only message I am aware of is the rate set-point command into the master talon.
Does the master transmit the final motor command to the slave across CAN?
Thanks!

jhersh
01-01-2015, 17:40
Could you please elaborate on how the slave follows the master?
The slave is able to monitor all CAN messages; however, the only message I am aware of is the rate set-point command into the master talon.
Does the master transmit the final motor command to the slave across CAN?
Thanks!

Yes. The master is always sending out the percent vbus no matter what mode it's in. The slave just looks at it (when told which one to follow).

phargo#1018
01-01-2015, 18:16
Thank you, that makes sense.

Kevin Selavko
02-01-2015, 02:17
Is the slave directly getting it from the master, or is the master sending it to the roboRIO and back to the slave?

jhersh
02-01-2015, 09:44
Is the slave directly getting it from the master, or is the master sending it to the roboRIO and back to the slave?

Directly.

ozrien
02-01-2015, 15:18
Software ref manual is up at...
http://www.vexrobotics.com/217-8080.html
... look for "Talon SRX Software Reference Manual".

Should help answer any remaining questions.

Travis_Team2619
08-01-2015, 20:36
Hello!

I have been wondering how to implement the CAN Talon SRX into the any project, or more specifically, into the WPI example project SampleRobot.

Thank you!

cgmv123
08-01-2015, 20:54
The TalonSRX has a class CANTalon that is used to access all of its commands. The class implements the SpeedController interface, so it's able to be used with the RobotDrive and PIDController classes.

ozrien
08-01-2015, 21:23
Hello!

I have been wondering how to implement the CAN Talon SRX into the any project, or more specifically, into the WPI example project SampleRobot.

Thank you!
Was the software reference manual mentioned above helpful? It has examples for all three languages.