TimedBase Robot Code Simulation Error

Hello guys. I’m using TimedBase template and I tried to make a cleaner code so that I created some files under the “java/frc/robot” with the “.java”. At the end I finished organising all the parts and when I clicked build, it builded it without any error. However when I tried to simulate robot code in order to test some methods. It gives this error:
Error at frc.robot.Vision.(Vision.java:30): Unhandled exception instantiating robot frc.robot.Vision java.lang.NullPointerException
at frc.robot.Vision.(Vision.java:30)
at frc.robot.Robot.(Robot.java:35)
at edu.wpi.first.wpilibj.RobotBase.runRobot(RobotBase.java:322)
at edu.wpi.first.wpilibj.RobotBase.lambda$startRobot$0(RobotBase.java:443)

I checked if there was any syntax error but I couldn’t find any. So what should I do? Or can’t I create other classes with “Robot.java”? Thank you in advance.

In Vision.java, you are trying to use an object without first having created the object. The problem is on line 30. That’s the best that I can say without seeing your code.

For example this is the code in the Vision.java file:
package frc.robot;

import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;

import edu.wpi.first.networktables.NetworkTable;

import edu.wpi.first.networktables.NetworkTableEntry;

import edu.wpi.first.networktables.NetworkTableInstance;

import edu.wpi.first.math.controller.PIDController;

import edu.wpi.first.math.util.Units;

import org.photonvision.PhotonCamera;

import org.photonvision.PhotonUtils;

import org.photonvision.targeting.PhotonTrackedTarget;

public class Vision {

MotorControl motorControl = new MotorControl();

final double CAMERA_HEIGHT_METERS = Units.inchesToMeters(24);

final double TARGET_HEIGHT_METERS = Units.feetToMeters(5);

final double CAMERA_PITCH_RADIANS = Units.degreesToRadians(0);

final double GOAL_RANGE_METERS = Units.feetToMeters(3);

final double LINEAR_P = 0.1;

final double LINEAR_D = 0.0;

PIDController forwardController = new PIDController(LINEAR_P, 0, LINEAR_D);

final double ANGULAR_P = 0.1;

final double ANGULAR_D = 0.0;

PIDController turnController = new PIDController(ANGULAR_P, 0, ANGULAR_D);

NetworkTableInstance mainTable = NetworkTableInstance.create();

NetworkTable RootTable;

double targetarea = RootTable.getEntry(“targetArea”).getDouble(0.0d);

double yaw = RootTable.getEntry(“targetYaw”).getDouble(0.0d);

double pitch = RootTable.getEntry(“targetPitch”).getDouble(0.0d);

//PhotonCamera camera;

//NetworkTables

//public static NetworkTable sycavision = NetworkTable.getTable(“Vision”);

public void Hizala_OP(){

    double xloc = RootTable.getEntry("targetYaw").getDouble(0.0d); //x ekseni

    //double yloc = RootTable.getEntry("targetPitch").getDouble(0.0d); // y ekseni

    double deneme = 0;

    if((xloc < 3 && xloc > 0) || (xloc >= -3 && xloc < 0)){

      motorControl.Stop();

      deneme = 1;

    }

    else if (xloc > 3){

      motorControl.Right(0.2);

      deneme = 2;

    }

    else if (xloc < -3){

      motorControl.Left(0.2);

      deneme = 3;

    }

    SmartDashboard.putNumber("Try", deneme);

  }

}

However when I put Vision class at the comment line at the Robot.java file and build it, it gives another error:
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)
at frc.robot.Robot.(Robot.java:36)
at frc.robot.Autonomous.(Autonomous.java:4)

Error at edu.wpi.first.wpilibj.RobotBase.runRobot(RobotBase.java:336): The robot program quit unexpectedly. This is usually due to a code error.
The above stacktrace can help determine where the error occurred.
See https://wpilib.org/stacktrace for more information.

Error at edu.wpi.first.wpilibj.RobotBase.runRobot(RobotBase.java:342): Could not instantiate robot edu.wpi.first.wpilibj.RobotBase!

Hmm. You would likewise have to post your Autonomous.java code, where there appears to be a problem on line 4. It almost looks like your Autonomous code is trying to create a Robot object, which is trying to create An Autonomous object, which… until you run out of memory.

You declare RootTable, but don’t initialize it. Then on the next line, you try to call RootTable.getEntry(...) which throws a NullPointerException because RootTable is null (uninitialized)

Be sure to read and understand this: https://docs.wpilib.org/en/stable/docs/software/basic-programming/reading-stacktraces.html

Guys I solved it thank you. Like you said I didn’t entirely passed the code correctly so that there were some mistakes that blocks the code to work. And also I guess I can’t create Robot class object at another classes like in Vision.java because of it is a part of TimedBase ? However I’m not sure. But in the end it solved thanks

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.