So, honestly, who's still programming?

Hey Everyone,

I had several conversations yesterday with mentors from teams who are either:

  • withholding their controller and a few sensors and actuators from shipment to do further programming work between now and competition
  • planning to program blind (without hardware) and cross their fingers that they can tweak it on compliance day

Being a rookie mentor (though LONGtime LabVIEW programmer) I didn’t honestly consider these options as viable.

However, if I can help by producing one or two more LVMastery TipJar videos in the meantime, I would be happy to.

Please reply to this thread if you have a topic in mind.

Thanks,
Ben

www.LVMastery.com/FRCTipJar

1629 is still tweaking. Something that annoys me about our code is that I run a pid loop for the wheels (in periodic tasks) and during the disabled period, any latent movement causes the pid to burp when restarted.

Wondering the best way to reset the pids and ramp functions during disable.

Oh, please do one on how to program the other buttons on the Joystick. We have our robot moving forward and back and it turns, using 2 joysticks, but we cannot for the life of us get how to do a trigger (using the KOP joysticks). We want to do the following:

  1. Right hand joystick trigger - make the globe motor move the chain forward.
  2. Left hand joystick trigger - make the globe motor move the chain backwards. This only is used if something gets stuck.
  3. Button that thumb rests on (right hand) make the keyang motor move the dumper forward.
  4. Button that thumb rests on (left hand) make the keyang motor move the dumper back. This is only used if a ball gets stuck

I found out that the dumper is using the Keyang motor and the chain is using the globe motor and the drive motors are the CIMS.

I really have no idea how to continue. I have watched all the TipJar videos, but not understanding the engineering part makes programming difficult. This is the first year the mechanical has been done before the code.

Please, can you help??? We go to Traverse City next Thursday (26th)

Thanks.

One thing I would consider is using the reinitialize input of the PID Control Input Filter.vi and PID.VI itself. You could use a global to send an enabled boolean from the main loop which is true when teleop is enabled and false when disabled. Or,

As an aside, and for all of the people asking about Joystick Functions: there is a fantastic function inside the OpenG Library called Boolean Trigger. It will output a momentary boolean high when the input value has a rising (and/or falling edge) which makes trapping a change of state a lot easier.

Naturally (:wink: ) I have a TipJar entry discussing the OpenG library and how to install it: http://www.lvmastery.com/TipJar2008-03-13

Ben

Please see the attached snippet. Basically this shows how to extract the button values, and also shows using the OpenG Boolean Trigger function (see my other reply below) Hope that helps!

Ben





Thanks, I will try that.

Carolyn

How about an intro to the pid library?
We haven’t looked into it yet, and some examples of what it’s good for would help us figure out if we should apply it in our code.

Where do I check the version of the WPI Library we have?

If you are programming in Labview then you don’t need to worry about WPI Library version. You only need to worry about Labview version, cRIO image version and Driver’s Station image version.

We are using Labview (or at least trying to) so we will not worry about that.

At least one less thing to do.

Carolyn

Another option is to take the “Robot Mode” from the Robot Basic Mode.vi and add it as a global. Then put your PID(s) inside a state machine(s), controlled by the “Robot Mode” global, that only allows it to run during the enabled modes.

Now as for the original question by the OP; We are!

We will be working blind, but we have a copy of the code we “finalized” before shipping, that we are satisfied with for now.

We will be adding a few minor modifications to copies of the code to: refine our autonomous, add “Alliance Color” lights on the operator control panel and lights that indicate “Tracking” to the control panel as well. We may also add a switch to the control panel to indicate to the robot what alliance we are on in the case the FMS does not provide it to us. Without knowing which alliance we are on, our robot will always track BLUE. (A little insurance is always a good thing.)

I would also like to see this.

We are programming, blindly. The rest of the team is making me and my fellow programming another kitbot for testing and from there we hope to get everything working before competition. Sadly, our design team’s decision to finish the robot the day before ship wasn’t exactly what we had planned for.

were still fine tuning our sonar, which is also our autonomous, oh and the driver station, were slaving over that.

Still programming, we have a programming bug where we temporary stop the robot for 3 seconds when we combined our joystick control with 2 button control speed drive. Should I email my code to you for debug?

We are still working on adding features and awaiting the time when we can test our first program.

We had hoped to have made changes, but couldn’t (smarter autonomous, traction control, LED dashboard). Today, we are going to be done with the San Diego regional, but are still going to the Las Vegas regional and would love to see a video on some of the following:

  • Utilizing camera tracking

  • Adding useful LEDs and Buttons to our physical dashboards

  • Simple traction control

  • Toggle buttons, feedback loops, etc

Thank you sooo much though, your videos have been the only really useful material out there as anything FIRST provides has been unhelpful. Our mentor knows labview, but it takes a fellow FIRST programmer to fix the labview issues we’ve all had and are having. Thank you again for the videos we meant to get a sticker for you guys on our robot and I intend to for our next regional.
I <3 LV Mastery

151 is still programming as well. Blindly for the moment, but we have another bot we can test with to tweak the variables, eventually.

The things we’re still working on is traction control with encoders and autonomous. We tried using the camera, but we had hardware errors with that.