Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   C/C++ (http://www.chiefdelphi.com/forums/forumdisplay.php?f=183)
-   -   Robot seems to be Disabled when using Jaguars (http://www.chiefdelphi.com/forums/showthread.php?t=74181)

Thxe 11-02-2009 18:20

Robot seems to be Disabled when using Jaguars
 
ok, I am writing my first basic program for the robot. I know the robot is in functioning order because i can load and run the Simple Template and that works. Unfortunatly when I run my program, nothing happens. I know that values are being read in from the joystick because I have some printfs and the console. Here is the weird thing, even while the robot is enabled, the signal light continues to blink like its in disabled mode. When I use the Simple Template, the light works correctly.

Here is the relevant code:
Code:

class Robot : public IterativeRobot
{
    Jaguar *leftDrive;
    Jaguar *rightDrive;
    Joystick *stick;

public:
  void RobotInit(void)
  {
    printf("RobotInit:\n");
    leftDrive = new Jaguar(4, 1);
    rightDrive = new Jaguar(4, 2);
    GetWatchdog().SetExpiration(0.1);
  }

  void TeleopPeriodic()
  {
    printf("TeleopPeriodic:\n");
    drive();
  }

  void drive()
  {
    float joyX = stick->GetX();
    float joyY = stick->GetY();
    float leftPower;
    float rightPower;

    printf("joyX: %f\n", joyX);
    printf("joyY: %f\n", joyY);
    rightPower = joyY;
    leftPower = joyY;
    printf("rightPower: %f\n", rightPower);
    printf("leftPower: %f\n", leftPower);
    rightDrive->Set(rightPower);
    leftDrive->Set(leftPower);
    printf("rightDrive: %f\n", rightDrive->Get());
    printf("leftDrive: %f\n", leftDrive->Get());
  }
};

START_ROBOT_CLASS(Robot);

Here is a relevant section from the console:
Code:

TeleopPeriodic:
joyX: 0.000000
joyY: -0.476563
rightPower: -0.476563
leftPower: -0.476563
rightDrive: -0.476563
leftDrive: -0.476563

It seems to me that the code is working correctly, has anybody seen this business with the signal light showing disabled while the robot is enabled? I believe that this is the problem. Any ideas are welcome.

Thxe

Thxe 11-02-2009 21:59

Re: Robot seems to be Disabled when using Jaguars
 
Ok, I found the problem myself. I wasn't feeding the watch dog! It should be noted that the watch dog does not stop your code from executing, it only prevents commands to motors and such from going through, with no error messages at all! So if you see your signal light doing the disabled blink while your robot is enabled, it may be because the watch dog timed out.

Thxe

MattD 11-02-2009 22:01

Re: Robot seems to be Disabled when using Jaguars
 
It looks like this is because the watchdog is not being fed, so the motor outputs are disabled. Add in GetWatchdog().Feed() to your teleop function and it should work.


All times are GMT -5. The time now is 02:50.

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