Added Mecanum drive sample program

Change-Id: I0538c21116cd6c8836f76b6d4446b83d8723a20f
This commit is contained in:
Brad Miller
2014-10-05 15:59:40 -04:00
parent 6089722c4f
commit 2f26361398
4 changed files with 139 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
#include "WPILib.h"
/**
* This is a demo program showing how to use Mecanum control with the RobotDrive class.
*/
class Robot: public SampleRobot
{
// Channels for the wheels
const static int frontLeftChannel = 2;
const static int rearLeftChannel = 3;
const static int frontRightChannel = 1;
const static int rearRightChannel = 0;
const static int joystickChannel = 0;
RobotDrive robotDrive; // robot drive system
Joystick stick; // only joystick
public:
Robot() :
robotDrive(frontLeftChannel, rearLeftChannel,
frontRightChannel, rearRightChannel), // these must be initialized in the same order
stick(joystickChannel) // as they are declared above.
{
robotDrive.SetExpiration(0.1);
robotDrive.SetInvertedMotor(RobotDrive::kFrontLeftMotor, true); // invert the left side motors
robotDrive.SetInvertedMotor(RobotDrive::kRearLeftMotor, true); // you may need to change or remove this to match your robot
}
/**
* Runs the motors with Mecanum drive.
*/
void OperatorControl()
{
robotDrive.SetSafetyEnabled(false);
while (IsOperatorControl())
{
// Use the joystick X axis for lateral movement, Y axis for forward movement, and Z axis for rotation.
// This sample does not use field-oriented drive, so the gyro input is set to zero.
robotDrive.MecanumDrive_Cartesian(stick.GetX(), stick.GetY(), stick.GetZ());
Wait(0.005); // wait 5ms to avoid hogging CPU cycles
}
}
};
START_ROBOT_CLASS(Robot);

View File

@@ -105,6 +105,24 @@
</example>
<example>
<name>Mecanum Drive</name>
<description>An example program which the use of Mecanum Drive with the RobotDrive class</description>
<tags>
<tag>Getting Started with C++</tag>
<tag>Robot and Motor</tag>
<tag>Joystick</tag>
<tag>Complete List</tag>
</tags>
<packages>
<package>src</package>
</packages>
<files>
<file source="examples/MecanumDrive/src/Robot.cpp" destination="src/Robot.cpp"></file>
</files>
</example>
<example>
<name>Getting Started</name>
<description>An example program which demonstrates the simplest autonomous and