Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   C/C++ (http://www.chiefdelphi.com/forums/forumdisplay.php?f=183)
-   -   Reverse polarity of a victor at declaration? (http://www.chiefdelphi.com/forums/showthread.php?t=103394)

frdrake 20-02-2012 13:21

Reverse polarity of a victor at declaration?
 
So I searched but couldn't find this question answered anywhere else.

Is there a way to inverse the victor commands at declaration of the motor? By which I mean as the motors go on there's a possibility that a motor command of 1 makes it go backward when it comes to driving the robot. Am I stuck modifying the motorcommand during processing or is there an overloaded way during declaration to tell the robot that motor is backwards?

DjScribbles 20-02-2012 14:00

Re: Reverse polarity of a victor at declaration?
 
If your using the robotDrive yes theres a method for reversing the motors:
Code:

myRobot.SetInvertedMotor(myRobot.kRearLeftMotor, true);
If you want to do the same to a single jaguar/victor, there is no way I know of to do it (outside of logic in your own code to switch the direction)

frdrake 20-02-2012 16:21

Re: Reverse polarity of a victor at declaration?
 
Yea, I'm referring to an individual basis. Right now we're just doing Motor->Set(-MotorCommand) for the ones that are backwards. Just seems like there should be a more elegant solution.

mikets 20-02-2012 16:46

Re: Reverse polarity of a victor at declaration?
 
Quote:

Originally Posted by frdrake (Post 1131067)
Yea, I'm referring to an individual basis. Right now we're just doing Motor->Set(-MotorCommand) for the ones that are backwards. Just seems like there should be a more elegant solution.

Yes unfortunately, the myRobot.SetInvertedMotor(myRobot.kRearLeftMotor, true) function only handles all the motors for the RobotDrive class. If you have an individual motor for an arm or shooter, for example, I can't find an equivalent "Inverse" function in the WPI library. In our code, we have encapsulated individual motors into a PIDMotor class and provided our own "Inverse" function. There are many quick and dirty ways to do this. One of them is:

When calling the SetSpeed(speed) of a motor, you can do SetSpeed(speed*ARM_MOTOR_INVERSE) where ARM_MOTOR_INVERSE is defined as either -1.0 or 1.0.


All times are GMT -5. The time now is 17:39.

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