Knowledge Base for Current Control?

Over the past month, we (234) have learned a lot more about the control system, data processing and communications and some of the DS capabilities (data recording, etc.) based on some challenges we had at SMR.

Since FIRST has already announced the contract with NI goes through 2014, what types of information, documentation and user guides would help all teams be more knowledgeable and successful with the existing system?

Some examples we had are:

  • Single location that has the latest versions of all software versions (or at least a link to the site).

  • Single location with photos of latest versions of hardware.

  • Requirements for PC’s if something other than the KOP Classmate is used.

Other ideas?

(PS - This is not a thread to debate NI / not NI. Please focus on what information would help teams with the existing system. )

A collection of simple example projects in multiple languages would be great.

  • tank drive
  • arcade drive
  • simple position control with a jaguar/victor and a resistive feedback element in a PID
  • encoder projects
  • gyro projects
  • accelerometer
  • vision

Then more complex combined projects that integrate multiple elements of the above.

If you want to set up a repository we can provide projects since we spent a ton of time working on this issue.!!!

Need better examples ( which may already exist ) of dashboard code and usage of DS cypress I/O.

Need a facility to determine processor load / idle time and get that back to the DS or via telnet/ssh.

Need an area for advanced topics such as datalogging both at the DS via the dashboard and onboard the robot either on a local file system or dumped via serial port to an offboard processor.

I liked the frc/kitofparts link on last year usfirst.org website last year a lot better than this years. I wish it would come back.

In LabVIEW, at least, all of these examples (and more) already exist. If you go under Help->Find Examples, the NI Example finder will appear, which contains sample code for almost anything you can do in LV, including many FIRST functions. It’s a great resource, but I don’t think many people know about it.

As for the other stuff, I’d be happy to write some example code in other areas and contribute to a Knowledge Base. I think it sounds like a great idea.

In the documents section of the WPIlib project, you can find info on computer vision. You will also find many examples of tank/arcade drive and sensor usage in the Java/C++ documents, specifically the Cookbook and “Getting Started” guides, as well as the WPIlib users guide. WPIlibj (for Java) also comes with multiple sample projects that implement nearly everything on your list.

I believe the Driver Station reports cRIO CPU load in the “Charts” tab on the far right (I forget the actual name).

The SmartDashboard makes data logging trivial. See our Java usage here. This data is sent to a SmartDashboard .jar that can be downloaded here, and in settings in that .jar you can save to a .csv. File writing on the cRIO is also standard I/O; google Java 2 ME File I/O.

In sum, documentation for the items you seek exists, but is not perfectly centralized or communicated. The wpilib project on firstforge.wpi.edu is a good starting point, though.

Bingo !! - It is not small undertaking trying to explain all of this to a group of semi-veteran or rookie teams.

We just tried to train about a dozen rookie and semi-vets. Extremely challenging. Telling them to just go to usfirst.org or firstforge.wpi.edu or just google around isn’t sufficient.

Personally I know and our team knows where all of this stuff is and how to do it. The problem is centralizing it and organizing it into a friendly easy to approach fashion.

The java and windriver examples are a little random and not really progressive. It isn’t such a problem if you have plenty of software mentors (adult or student) but a lot of teams struggle to see the big picture.

Our students have held a lot of workshops teaching java and windriver where they have the pupils learn how to add controls and sensors in a progressive fashion. But it is in our head and not “out there” on the net for people to see.

I don’t think we need something as fancy as CMU’s robotC curriculum but that would be nice. If we can just have a central landing site that hosts or points to all the useful stuff that would be great. It would best be managed by someone and not just an upload site. Otherwise it turns into a morass of stuff that a lot of people are not going to dig through.

And we probably need a pages with a bunch of title/links to “how do I …”.

In summary we probably need:

  1. centralized information map pointing or linking to everything you every wanted to know
  2. HOWTO’s
  3. cirriculum

The curriculum may never get done. Big project, should look like CMU’s stuff

I don’t know if they still exist but there use to be a ton of HOWTO documents for linux app and linux kernel developers that was a compendium of probably answered questions, sitting in a central location.

Supporting a ton of teams is very tough and we a trying to hold them off until after the Championship and then we can spend from here to kickoff getting them up to speed.

Too much of it tends to be a verbal “here is where to do and how to find it”. It almost reminds me of pre-history before the written word was invented and societies were oral and all history and knowledge was transmitted orally. I used to work with someone that grew up in Côte d’Ivoire under that type of knowledge transfer. In America when someone tells you a story it takes three minutes. Onetime this guy started a story at 2:30 pm on day and was still telling it at 11pm that night. But that is typical in Côte d’Ivoire. But I digress.

If you go to the bottom left corner of ChiefDelphis’s home page there is “Useful Links” section. That is good news ! It is also bad news !

A lot of stuff, not really cataloged by sections. Plus big stuff like WPI isn’t even there. And there are pages that just copy someone elses page instead of linking to it. The problem with copying instead of linking is the owner of the data cannot propagate changes locally.

Back before most of you were born we had something called a card catalog. You could look up information by author, title, or subject.

Instead of the marginally useful “Useful Links” section, If you could tree down starting with the subject of robot–>programming–>C or Java, or Labview–>then whatever you needed, like dashboard…

That would be useful…
.