Difference between revisions of "DEWBOT VI Programming Team"

From DEW Robotics
Jump to: navigation, search
Line 1: Line 1:
Head Mentor: Foster Schucker
+
Head Mentor: Foster Schucker - Mentor: Jon Davis
  
 
Student Lead: Paul
 
Student Lead: Paul

Revision as of 15:14, 19 March 2010

Head Mentor: Foster Schucker - Mentor: Jon Davis

Student Lead: Paul

Team:

Kenneth
Nicole
Ben
Zain
DJ

PID Links

This section has some links from Chief Delphi and NI about PID functions and Labview.

There is a PID tutorial that comes with LABview.

Chief Delphi links

Article talk that the Labview function is the academic form, not the one we use normally
What the values in a standard PID do
A comment about the window steering motors and the backlash factor - There is also a reminder about deadbands in the motors as they move the worm gear around.
(Is the Jaguar deadband an issue? Are we using the brake functions on the Jags? - Foster questions)

A really good discussion about PID and how one team is using it.

National Instruments links

LABView Tutorial on PID and the Advanced PID This is a good place to start
Full set of LABView Tutorials on controls - There is a link to PID on the page (right hand side, a few from the top
FIRST Wiki article on PID, there is a PID tuning applet link at the bottom

Other links

Article from control engineering on how PID's work. All the math is there

Programming Goals

Programming goals to accomplish:

  1. Pivot Drive - Magnetic Encoder, Least Distance Turning (50%)
  2. Pivot Drive - Twist Capability (needs twist controller) (10%)

FRC Team 1640 Programming Team

Journal for the Programming Team
Build Season 2010 "Breakaway" If you are a programmer, please add/edit. Repeat above, I mean it. If you are a programmer, please, please add more. I'm sure programmers did stuff week of 1/18-1/22!

2010 DEWBOT VI Game Code

Link to 2010 DEWBOT VI Game Code Page: 2010 DEWBOT VI Game Code

Programming Ideas/Goals

  • Pivot Drive
    • Port to magnetic encoders
    • Recalculate math for all drives
    • Develop multi front chassis algorithm
    • Talk about innovative pivot drive usage
  • Vision
    • Develop target tracking using camera (needs to work with something else other than arcade drive)
    • Develop line tracking (done)
    • Develop ball tracking (Need to know the sensor)
  • Robot Safety
    • Develop anti flipping system
  • Robot Itself and Kicker
    • Autonomous system with customization (part way done, need to know ball traking sensor)
    • Program kicker
    • Final tower climbing system
    • LED for signaling
    • Develop camera to kicker relationship
  • Driver Station
    • Update Classmate PC
    • Design friendly control system with LEDs and toggle switches
  • Lessons/Etc.
    • Pivot Drive
    • LabVIEW
    • Algorithm development
    • Programming management
    • Camera System
  • Conclusive Paperwork
    • Detailed Documentation of Process and Code
    • Easy Driver's Manual
    • Nice demonstration PowerPoint

Ideas Discussed

Vision System

January 17, 2010

  • Caged Camera for safety and protection
  • Spring system that just knocks back or foward
    • Material and shape TBA
  • Located in middle of robot
  • Rotation and Altitude control
  • Recalibratible camera
  • Reuse of camera code instead of making more
  • 3 Goals:
    • Target Tracking
    • Driver's Aid
    • Field Watcher

Tasks In Progress

January 17, 2010

  • Vision system programming
  • Pivot Drive math recalculations
  • Remind Paul/Ken to update Classmate

January 29, 2010

Goals for January 30, 2010

  • Have all drive modes ported over to game code (Kenneth)
  • Work on XBOX Controller (Paul)
  • Use recalculated math from Clem in code
  • Develop theoretical algorithms for [Least Limit Movement Algorithm 2.0]
  • Develop theoretical algorithms for "Crab with a Twist of Snake" "Crab with a Twist of UFO"
  • Despite our mentors recommendation that we don't program the same code, we will be programming the same theoretical code. With that we will see which works best (survival of fittest) and compromise (natural selection)
  • Have a working drive code by night of January 30, 2010. We've moved deadline from January 31, 2010.
  • We need a twist control.

Tasks Accomplished

January 17, 2010

  • Assembled successful Control System
  • Tested out Control System
  • Tested out Cherry Magnetic encoders and various light sensors
  • Created power plug for camera
  • Worked out some math for pivot drive
  • Port most drive modes to 2010DEWBOTVI Code

Programmer's Journal

January 16, 2010

9pm-12am

  • Set up control system
  • Tore apart Pivot Bot Prototype
  • Reimaged cRIO
  • Installed drivers for Classmate
  • Checked out Cypress First touch
  • Talked about camera system (look above)
  • Broke into vision and pivot crew
  • Talked about drive math
  • Tested out Cherry sensors
  • LUNCH

1pm-5pm

  • Tested out more of cherry sensor
  • Tested out light sensors
  • Worked on camera
  • Went to RadioShack to buy H head for camera
  • Solder plug and plugged in into power distrabution
  • Realize need to update classmate

January 29, 2010

6:00 BPC (Before Paul Came)

  • Kenneth and DJ arrives.
  • Looked for power strips with Cole. There are none...
  • Tried to get LabVIEW on DJ's Mac. No success.
  • Started programming drive system.
  • Programmer's cookie break
  • Tried to get Max to come.
  • Asked Clem about math for pivot drive. Success.
  • Installed Cypress CD.

6:00 APC (After Paul Came)

  • Paul arrived
  • Discussed about status quo of code.
  • Compromised code (survival of the fittest)
  • Worked on XBOX Controller input .vi (Paul) Success
  • Port pivot drive system over to 2010 DEWBOTVI Code
  • Crab and Snake done. All other modes to be done (Kenneth) Success
  • Paul and Kenneth decided on angle degree as base unit for crab.
  • Discussed the [Least Limit Movement Algorithm] and seeing how to implement it
  • Proposed new additional "limit" to [Least Limit Movement Algorithm], therefore upgrading it to [Least Limit Movement Algorithm 2.0beta]
  • DJ still trying to install LabVIEW on Mac. Doesn't work.
  • Paul and Kenneth worked on "Crab with a Twist"
  • Departed ways

After Robotics

  • 12:15 AM - Paul completes theoretical test of Least movement algorithm ;) Success

January 30, 2010

Pre Arrival

  • Paul worked on update Least Movement Algorithm
  • Kenneth worked on finalization porting and redoing math.

Arrival to Lunch

  • ???


Lunch to Snack Break

  • Traded code, compromised
  • Talked about drive motors and rota motors
  • Have working code

Snack Break to Dinner

  • Talked about autonomous
  • Drafted some autonomous


Dinner to Departing

  • Worked on Math - Ben, Ken, Foster
  • Math is complete and fixed
  • Learned arrays to use for code

January 31, 2010

12 PM

  • Paul finished Shortest Angle Algorithm

3 PM

  • Kenneth and Ben finalized Snake and Auto array
  • Paul fixes SAM.vi

7 PM

  • Ben taught DJ LabVIEW
  • Zain worked on his first code
  • Paul finalizes Drive Motor.vi, Turn Target.vi, Crab Mode 3.vi, ShortestAngleMovement.vi
  • Kenneth compromises all code together
  • Waiting for the robot...

February 12, 2010

  • Crab mode works!
  • Ken is planning a snake mode.
  • Tested Autonomous for Teleop, couldn't get past acquiring target.
  • Regular Autonomous has yet to be tested (It is much different code than Autonomous for Teleop.)

February 13, 2010

Today we made great progress with the robot (Yesterday we made a lot too, programmers came in at 8:00 am and crab mode came to life)

  • After some mechanical fixing-up, crab mode worked!
  • Snake mode wasn't really tested, but it appeared to work up on blocks, so we need to test that tomorrow.
  • Carly decided that she preferred the XBOX 360 controller over the twisting joystick
    • The twisting joystick works fine when moving forward, but when going backwards or to the side, the natural twisting motion of a person's arm takes over
    • The twist portion of the joystick is so sensitive that when moving to the side or backwards, it sees it as a twist
    • The XBOX 360 controller is quite sensitive on the joystick part, but we can cut it down to half speed, and then set it so that holding down a button makes it full speed
  • We also found that the wheels sometimes align to 0 degrees, sometimes to 180 degrees
    • This can be explained by the chains always being on the inside, which would mean they flip, however, this doesn't mean too much since the magnets mounted for the magnetic encoders choose an arbitrary start position anyway.
      • This means calibration code - which we already have implemented
        • At the present moment, the code works like this: Take a reading when prompted to, and set that permanently as the calibration value
        • We need to change this so that it initially takes the value checks that forward is in fact 0, and then sets the value. If it is not 0, then it needs to correct for that. This should then fix the problems we've been having.
    • Though it is not a perfect explanation, I think it is at least part of the problem, especially since while we were testing today, we entered calibration mode while some of the wheels were reversed, and when we exited, some of the drive motors were spinning in the wrong direction.
  • Hmmm...I forgot what the other thing we were supposed to is. So I'll keep this here as a placeholder just in case I remember, or if any of the other members edit this page and know what it is.
  • On a final note, I'm planning (for fun) to bring in all my game controllers (DDR, Guitar Hero, XBOX 360 gamepad, Logitech Rumblepad 2 (generic gamepad), possibly the racing wheel) as well as to try to use my pen tablet to control the robot
    • This should be interesting!!