Recent Updates
-
Updated on: Jan 20, 2023
The RobotBuilder user interface
Manual RobotBuilder -
Updated on: Jan 20, 2023
Setting robot preferences from SmartDashboard
The Robot Preferences class is used to store values in the flash memory on the cRIO. The values might be for remembering preferences on the robot such as calibration settings for potentiometers, PID values, etc. that you would like to change without having to rebuild the program. The values can be viewed on the SmartDashboard and read and written by the robot program.
Manual SmartDashboard -
Updated on: Jan 20, 2023
PID Tuning with SmartDashboard
The PID (Proportional, Integral, Differential) is an algorithm for determining the motor speed based on sensor feedback to reach a setpoint as quickly as possible. For example, a robot with an elevator that moves to a predetermined position should move there as fast as possible then stop without excessive overshoot leading to oscillation. Getting the PID controller to behave this way is called "tuning". The idea is to compute an error value that is the difference between the current value of the mechanismfeedback element and the desired (setpoint) value. In the case of the arm, there might be a potentiometer connected to an analog channel that provides a voltage that is proportional to the position of the arm. The desired value is the voltage that is predetermined for the position the arm should move to, and the current value is the voltage for the actual position of the arm.
Manual SmartDashboard -
Updated on: Jan 20, 2023
Choosing an autonomous program from SmartDashboard
Often teams have more than one autonomous program, either for competitive reasons or for testing new software. Programs often vary by adding things like time delays, different strategies, etc. The methods to choose the strategy to run usually involves switches, joystick buttons, knobs or other hardware based inputs.
With the SmartDashboard you can simply display a widget on the screen to choose the autonomous program that you would like to run. And with command based programs, that program is encapsulated in one of several commands. This article shows how to select an autonomous program with only a few lines of code and a nice looking user interface.
Manual SmartDashboard -
Updated on: Jan 20, 2023
Changing the display widget type for a value
You can change the type of widget that displays values with the SmartDashboard. The allowable widgets depend on the type of the value being displayed.
Manual SmartDashboard -
Updated on: Jan 20, 2023
Changing the display properties of a value
Each value displayed with SmartDashboard has a a set of properties that effect the way it's displayed.
Manual SmartDashboard -
Updated on: Jan 20, 2023
Displaying Expressions from Within the Robot Program
Often debugging or monitoring the status of a robot envolves writing a number of values to the console and watching them stream by. With SmartDashboard you can put values to a GUI that is automatically constructed based on your program. As values are updated, the corresponding GUI element changes value - there is no need to try to catch numbers streaming by on the screen.
Manual SmartDashboard -
Updated on: Jan 20, 2023
Testing commands
Commands represent robot behaviors such as moving an elevator to a position, collecting balls, shooting, or other tasks. It is desirable to test commands on the robot as they are written before combining them into more complex commands or incorporating them into other parts of the robot program. With a single line of code you can display commands on the SmartDashboard that appear as buttons that run the commands when pressed. This makes robot debugging a much simpler process than before.
Manual SmartDashboard -
Updated on: Jan 20, 2023
Starting RobotBuilder
RobotBuilder is a Java program and as such should be able to run on any platform that is supported by Java. We have been running RobotBuilder on Mac OS X, Windows 7, and various versions of Linux successfully.
Manual RobotBuilder -
Updated on: Jan 20, 2023
Writing the C++ code for a subsystem
Manual RobotBuilder