This was forked from our teams' FRC 2014 repository just for public release. It is different from what we competed with last weekend (it removed some team-specific features, streamlined some quick hacks, and added a ton of comments). Mentors went over the code with a fine-toothed comb before making it public. This was deliberate.
While our students are intricately involved in our teams' software (more on this below), we are talking about releasing code to the entire FIRST community DURING the competition season. A fairly high bar is required for teams to be able to understand, use, and trust the code in time for their next competition - we certainly don't want to be breaking other teams' robots. I personally made (and stand behind) the decision to go mentor heavy on this particular project for this reason. (To be clear, I fully believe that our students could have made just as polished a product, but I thought that an expedient release would be ultimately more important.)
It might be software, but this is just another COTS module that you can choose to use (or ignore). Like an AM Shifter or a VEXpro VersaPlanetary, I believe that putting a high quality component in the hands of a student is a vehicle for inspiration.
Quote:
Originally Posted by TravSatEE
However, I don't see any obvious indicators for the CheesyVision that students were involved. The workmanship makes it apparent to a casual observer as to who did the work.
|
This is a dangerous line of thinking for two reasons.
First, never judge a book by its cover. Every year I am amazed at what students are capable of. This year, there are some very gifted programmers on 254. They wrote a RESTful webserver on our cRIO (that ultimately provided the TCP server part of CheesyVision). One of them - and this still absolutely blows my mind to think about - designed and implemented a quintic spline trajectory planner for our autonomous driving routine. I explained the basic concept, then sat back as he did the math, derived the differential equations, and gave me working code. Just awesome.
Second reason: An anecdote. One of my earliest posts on Chief Delphi was in
this thread. It was 2003, and WildStang had just posted about StangPS, a really sophisticated navigation system that I was sure had to be engineer-built (just look at my posts!). I was a senior in high school at the time. I thought my gyro-based autonomous mode was pretty nifty, but was blown away by StangPS. I watched their video dozens of times, enthusiastically emailed it to my programming mentor at the time, and was just totally fascinated with it. I ended up reading about odometry and dead reckoning, using interrupts to read optical encoders, Kalman filters, and all sorts of other concepts that I didn't fully understand as a high schooler, but found really, really cool.
While at the time I was a little peeved that here I was, a high school student writing all of 341's code while these other teams had teams of engineers, in hindsight I cannot thank 111 enough for raising the bar and for sharing what they did. I was inspired and in some permanent and positive way, my life was shaped by it. While a little Python script for processing a webcam image is by no means as impressive as complete robot navigation system, my hope is that at least a few students will give it a look and see something they think is cool and want to learn more about later.