|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Hi,
I want to create a Halo Drive for our six wheel robot with 4 jag motor controllers. The idea is that one stick would be for the speed and the other would turn the bot. I honestly don't know where to even start. I don't know what sort of algorithm to use or what function would be aproprate. What algorithm should I use? What function should I use? Thanks, inform880 |
|
#2
|
||||
|
||||
|
Re: Halo Drive
Quote:
WPILib: Code:
/** * Drive the motors at "speed" and "curve". * * The speed and curve are -1.0 to +1.0 values where 0.0 represents stopped and * not turning. The algorithm for adding in the direction attempts to provide a constant * turn radius for differing speeds. * * This function will most likely be used in an autonomous routine. * * @param outputMagnitude The forward component of the output magnitude to send to the motors. * @param curve The rate of turn, constant for different forward speeds. */ void RobotDrive::Drive(float outputMagnitude, float curve) Last edited by Ether : 18-01-2014 at 16:18. |
|
#3
|
|||||
|
|||||
|
Re: Halo Drive
If your six-wheel drive has normal traction wheels, with three driven together on one side and three driven together on the other side, it doesn't have the ability to move sideways. I would usually reserve the term "Halo drive" for a robot that can travel in any direction without first having to rotate to face that direction.
It sounds like what you're looking for is a typical Arcade drive, but with the speed and spin on separate joysticks. The usual Arcade drive uses the Y axis of a joystick for the speed, and the X axis of the same joystick for the spin. For your application, simply use the X axis of the other stick instead. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|