12.31.12-Dial F for the Right Function

Attendance


  • Fletcher
  • Hunter
  • Evan

Journal


Tasks

  • Assemble field
  • Test New Features on Robot
  • Driver Practice
  • Autonomous Testing

Reflections

New year’s eve, we built the field in Hunter’s garage so that we could test autonomouses and do driver practice. We found that the rack ends are 7.875″ from a perpendicular on the base board [illustrated]

BaseBoard

Once Evan came, we turned the robot on and started driving it.  Once it was verified that everything that had worked worked, Fletcher uploaded some new software to account for the new hardware additions, like the servo that makes the hand go up and down, the fork lift peg, and the new hand.

We turned the TeleOp on, and the robot didn’t move an inch.  Based on past experience, we told Evan to check all wiring on the robot.

All wiring on the robot was checked, even to the point that the entire wiring setup was disassembled.  The robot was still not working.  A new mini-TeleOp was written that only used one motor controller, as one the things thought to be the cause of our problem was the series configuration.  Each time we had things running on the mini-TeleOp, it worked.  We were baffled, why wasn’t our TeleOp working?

Hunter went into the code for TeleOpHR.c (our TeleOp) to comb through and see what was causing the problem.

He found the problem.  It was this:

//the_problem.c
int J2Y2 = joystick.joy2_y2;

This creates a variable J2Ys that holds the current value the joystick is returning, or so we thought. It actually only held the first thing the joystick read when the program is turned on, usually 0.  This is because this function is only called once, since it isn’t a function and rather a variable.  The correct way to do it is this:

//the_solution.c
int J2Y2() { return joystick.joy2_y2; }

This can be called many times, unlike the problem.

After we solved our problems, we shot footage for our Promote award video.

Leave a Reply

Your email address will not be published.