As of today, all of the other software teams have been put on hold to work on Java, so we were able to get a lot done. All of the current changes are on the master branch. All of the lower level commands have also been placed into sub packages of the command package.
For the arm, we have begun using PID in order to keep the arm locked in position in order to counter gravity. Currently, this is done by a software PID, but our plan is to use a hardware PID with the CANTalons. We also implemented an arm default command for fine-tuning the arm, which was done by incrementing or decrementing this setpoint value. When testing, this appeared to work as expected, but the PID values will have to be tweaked for the real robot.
For the gripper/wrist, we implemented code to open and close the gripper. We also added and tested code that prevents it from opening or closing if the corresponding limit switch has been tripped. We also implemented similar code for raising and lowering wrist, but this has not been tested.
For the intake, we were able to finish the intake position toggling command, but the timeouts for these commands were not working as expected. We also have implemented the correct voltages for raising and lowering the intake, and also implemented current stalling. This is the only subsystem that currently uses current stalling, so we should begin to implement this into other places when possible.
For the drivetrain, we finally finished the drive mode toggling. However, there are a few things I would suggest changing with the current implementation, such as not having the swerve drive object as public, as well as adding back a set mode method.
For autonomous modes, we have implemented mode switching from the dashboard, as well as receiving the scale/switch positions. These modes are represented by an enum, which we use during the AutoAction command along with the scale/switch positions to figure out where the robot should travel to. This command then calls the corresponding commands that cause the robot to travel a defined path (not all of these commands have been implemented).