Here is a copy of a message I sent to Woodie Flowers and the rest of the FIRST crew regarding an idea to simplify control system programming for FIRST teams. Tell me if you think its a good idea and whether or not you think your team could benefit from it.
Thanks,
Doug
//BEGIN COPIED MESSAGE//
Professor Flowers,
My name is Douglas McClean, I am a sophomore Systems and Control Engineering student at Case Western Reserve University. I have participated in the FIRST competition for the past two years in concert with my former high school in Norwell, Massachusetts and my employer in the same town, Mass Bay Engineering, Inc.
A few days ago while in class I had an idea for a possible way to improve the FIRST experience for many team members (especially younger ones), speed development times for robot control systems, and raise the level of competition at FIRST events, and I would like your opinion as to whether you feel it is worthwhile.
The PBasic language used to program the robot controller hardware is at a fairly low level compared with most languages with which high school students are likely to be familiar (C++, Java, Pascal, and various TI calculator dialectics are probably the most common, along with the usual web markup and scripting languages), and a great number of FIRST participants don't know any programming at all. I have heard complaints in my discussions with a number of teams (including my own, for which I have supervised control system design and construction) that the PBasic language is confusing, prone to difficult to debug logic errors, and difficult to explain to students. This is only compounded by the limited resources available to the robot controller processor (26 bytes of RAM, plus 6 reserved for special purposes, and an additional 63 + 1 which must be accessed by a different method and placed into one of the main 26 before gaining utility). In general, the process of developing, testing, and refining software for FIRST control systems is dicey at best, and this leads many teams to stick with the default program which comes with the kits.
The situation is still very good, of course, the control system hardware supplied with the kit is extremely powerful and has solutions to most problems which teams with the resources and people to tackle can harness to build customized software, teach their students, and improve the end product.
My idea is to write a graphical development environment (along the lines of a Simulink- or Vensim- type user interface) and associated compiler / assembler to streamline the entire process and make it easier to explain and tinker with. Teams working on control system design could then think about software design on a functional block level instead of on an assembly-language instruction level. (e.g. Apply a low-pass filter to the x and y channel inputs from joystick one, then send the results to a single-joystick -> tank drive converter and create a dead-zone in the output to remove low-speed drive efforts in the pits, or some similar application).
I believe such a project could be completed by myself and one or two of my associates here within one or two hundred man hours, probably using visual basic or a combination of visual basic and C++, and obviously provided free of charge to all teams. It might be possible instead to develop this as a web-based interface allowing teams to utilize it regardless of their computing platform, although I am not sure what utility that would have since they would still need to pass the output to the final Parallax-supplied tokenizer and download it to the robot controller, and to my knowledge Parallax does not supply a Macintosh version of the software used to do that.
I am wondering, however, if you think this would be a desirable goal or if you think this would be wasted effort? Also, I am wondering if you have any knowledge of planned changes to the FIRST supplied hardware which would render such an effort obsolete, or anything of that nature?
I thank you for your time, and applaud your efforts in creating and continuing the FIRST competition.
Sincerely,
J. Douglas McClean
jxm156@po.cwru.edu
216/754-1995
//END COPIED MESSAGE//