ICB Robotics Internship Feedback Surveys
Q1: If you are in college, what school and what is your major? If not, where do you plan to apply, what major? Did your experience in the internship influence your decision on choosing that major?
- I plan to apply to UCLA, UCSB, UC Berkeley, USC, Stanford, and Vanderbilt pursuing a degree in either Computer Science or a related field. Before this internship I already enjoyed programming, but the experience I gained made me more confident in pursuing the field.
- My top choices are Caltech, MIT, Princeton and Stanford. I am thinking of majoring in Physics or Engineering. The internship experience made me seriously consider Engineering as a major, and possibly Computer Science as a minor.
- I plan to apply to a few schools in the UC system including UC Berkeley, UCLA, UCSB, and UCSD. In addition, I plan on applying to some private universities such as MIT, Carnegie Mellon, Georgia Tech, University of Texas at Austin, Michigan, and Caltech. I plan on majoring in Electrical Engineering and/or Computer Science. My experience in the internship didn't really affect my decision, I had planned on those two for a significant amount of time before it.
- I'm currently a senior in high school and plan to apply early action to MIT (among other places) as a CS major. The internship gave me a better sense of the kind of work and challenges I might face in such a field. I was already thinking of being a CS major, but the internship gave me useful information.
- I am applying to Stanford, Caltech, Harvey Mudd, and USC, and am considering majoring in applied mathematics, computer science, or chemical engineering. After the internship, I found that I was more interested in computer science and a much stronger programmer.
- I'm at UC Berkeley, double-majoring in Industrial Engineering and Anthropology. My experience was one of several that encouraged me to pursue a major in the field of engineering.
- I plan to apply to Brown, UC Berkeley, UCSB, UCSD, UCLA, Cal Tech, Carnegie Mellon, Columbia, Harvard, MIT, U Penn, Princeton, USC, Stanford, and Yale. Most likely I will be a CS major. I knew I wanted to do CS before my internship however the internship did help affirm my decision.
- I attend UC Berkeley. I'm majoring in electrical engineering and computer science. Yes. It helped me to realize just how interesting different software programming tasks could be.
- UCLA majoring in Computer Science and Engineering This internship helped convince me that computer science was something I was interested in pursuing even further and helped give me confidence to program the robot senior year.
- I am applying to UC, UCLA, UCSB, MIT, Stanford, Cal Poly, and Georgia Tech. At the moment I believe that I will major in mechanical engineering, but that is not set in stone. The internship helped convince me that programming is something I can pursue, but not something I am extremely passionate about in itself. I may minor in Computer Science if I'm feeling masochistic, though.
- UCSD Computer Science, a little
- UCLA Computer Science Engineering. Honestly I already knew what I was going to do but this experience just confirmed my love for programming.
- UC Berkeley - Engineering Undeclared. Without the internship, I would have gone into Mechanical Engineering, but doing the internship made me consider Computer Science as an alternative, prompting me to remain undeclared.
Q2: If you could go back in time, would you do this internship again?
- Not at all likely: 0 (0.00%)
- Slightly likely: 0 (0.00%)
- Moderately likely: 0 (0.00%)
- Very likely: 4 (30.77%)
- Completely likely: 9 (69.23%)
- Total: 13 (100%)
- Weighted Average: 4.69
Q3: Would you recommend this program to your friends?
- Not at all likely: 0 (0.00%)
- Slightly likely: 0 (0.00%)
- Moderately likely: 0 (0.00%)
- Very likely: 2 (15.38%)
- Completely likely: 11 (84.62%)
- Total: 13 (100%)
- Weighted Average: 4.85
Q4: Please rate your experience.
- Poor: 0 (0.00%)
- Fair: 0 (0.00%)
- Satisfactory: 0 (0.00%)
- Very: 5 (Good 38.46%)
- Excellent: 8 (61.54%)
- Total: 13 (100%)
- Weighted Average: 4.62
Q5: Do you plan to take a control systems class in college?
- Not at all likely: 0 (0.00%)
- Slightly likely: 2 (15.38%)
- Moderately likely: 4 (30.77%)
- Very likely: 3 (23.08%)
- Completely likely: 4 (30.77%)
- Total: 13 (100%)
- Weighted Average: 3.69
Q6: What did you enjoy most about the experience? and the least?
- I enjoyed the trials of codes and working out bugs, as well as tuning gains. I was less fond of the initial coding (i.e. the serial parser).
- Arguable the best part about the internship was the combination of competition and collaboration that went into all of the challenges. Sometimes, we would be competing against each other, other times, working together, and I thought that really added the enjoyment of the experience.
- I enjoyed learning new concepts such as PID as well as debugging and troubleshooting skills with regards to software and hardware "communication." What I enjoyed the least was the discrepancy in programming skills among the group. I fault no one for what appears to be a lack of communication between many different groups, but at the end of the day, I feel like the knowledge gap between programmers caused productivity problems as well as equal workload distribution problems.
- I really enjoyed the opportunity to develop advanced projects of our own design. There was great freedom and flexibility in what projects we worked on, particularly toward the end of the six weeks. There were times when I wished I could have asked for more help (I worked on vision). Sometimes we received unhelpful suggestions about how to solve a problem. Of course, sorting good ideas from shortsighted ones is important in research, so I suppose we learned something, but there were times when I wished I could explain a section of my code to someone and get help. This was often difficult, even with our own vision mentors.
- Working on algorithm design was the most interesting and complex part of the internship. My least favorite part were the Tuesday presentations.
- I enjoyed the variety of projects--it's much more interesting when projects have some element of creativity unrelated to the central crafting of code itself. I also really enjoyed giving presentations, as it made the projects feel worthwhile on another level.
- I loved the hands on learning experience. The vast majority of our time in school is spent reading textbooks and taking tests. Textbooks and tests have their time and place however I believe they are overdone in school so it's nice to get a break from that. The internship also showed me that learning really can be fun. There wasn't much about the internship that I didn't enjoy. Sometimes fixing bugs was frustrating, but that's just a fact of life and it's a good skill to practice.
- Working on a real project and looking at streaming in data. Dealing with the robots being different by small amounts.
- The most enjoyable part was when after hours and hours of tuning PID's the roombas would behave exactly as expected. Especially with the variances in encoders getting them to all dance and play without colliding. Least enjoyable was the first week spent fighting with the roomas to get them to connect using blue tooth.
- I particularly enjoyed the fact that I was able to work with physical, moving robots very early into the internship. Even so, the projects were very rewarding. I did not enjoy the bureaucracy involved in the internship; though it was fairly minor, writing essays was annoying and the key card process was silly.
- Most - Challenges involving the Vicon system. Least - When the Vicon system had technical difficulties
- I enjoyed the later controls stuff we did. The soccer goal and can challenge was fun! The song was frustrating but it would have been cool if we had gotten Van Halen's solo to play!
- I enjoyed the chance to work together with and compete against my fellow interns, but the occasional arguments we got into were stressful and frustrating.
Q7: What concept from the program did you understand the most? and the least?
- I felt I understood the way PID controls could be implemented to drive the Roombas in a circle the most. I understood the initial methods connecting to the Roombas the least.
- I had a small amount of prior knowledge about PIDs, so I felt the internship really helped he solidify my knowledge of that subject, and also pique my curiosity about the potential within control systems. One thing I wish I could've understood better was the math behind the control theory. Since I am really into math, I think it would have been great to learn about the differential equation which drive certain methods or solutions (although I understand it wouldn't have been practical, as most high schoolers don't have a base in diffy q's).
- I understood the need for feedback control the most. I understood nonlinear control systems the least.
- By the end of the program, I was fairly good at putting together vision algorithms and techniques to accomplish a task. We could take a complicated assignment and figure out what vision processing steps were needed to extract useful data from it. I gained a good sense of what output to expect from the vision algorithms and how to tune them well. What I didn't get was much understanding of how those algorithms worked. Some of them were certainly too complicated to explain in detail, but I left wishing I knew more about the functions we relied so heavily upon.
- I gained a solid understanding of PID loops. I am very glad that I was exposed to this concept, as I may not see it again.
- By the end of the internship I really understood PID loops. I felt that the way we were introduced almost completely through projects gave me a good intuitive understanding of how they work. I don't think there was anything we went over that I didn't understand. The one thing I would suggest is spending a little more time explaining block diagrams to students. This will help those who do their own control system research outside of the internship.
- I can't remember specifics, sorry :\
- I always understood the goal of each project but did not understand bit shifting at all.
- I was quite confident in the PID control theory by the end of the internship, and once the Vicon system worked, I found most of the tasks were fairly straightforward. The base level control was a little mysterious at times, and I never really understood how the computer got information from the robot.
- I get exactly how PID's work, but I'm not an expert tuner, especially when it comes to the D constant. I'm probably just not patient enough to sit there tuning
- PID control
- I had a good understanding of the concepts involved with communicating with the Roomba. I struggled the most with PIDs.
Q8: What did you learn (added skills) that may help you with the rest of high school and college? Please describe.
- PID feedback controls seem like they will be very useful in several aspects of our senior project for Engineering, and it appears that we are the only students who currently have a background working with them. Thus, we will probably be able to contribute to groups working with automation as they design their subsystems.
- I most definitely learned some skills that will be handy when I program DP's robot for the FIRST Robotics Competition. In addition, I think I learned how to work with others on large, extended group projects.
- I learned many important skills with regards to group programming project management ( version control and job distribution). As far as personal skills, I learned how PID control is beneficial in control systems.
- We hacked things together: interfaces to other people's libraries and code that spanned multiple computers and operating systems. I also became much better at working with other people's code. Both of those are useful skills. In addition, I gained an idea of the pitfalls associated with computer vision and how they can be mitigated.
- This internship was my first experience with programming in groups, and I learned how challenging yet rewarding this can be. My ability to explain myself and my ideas also improved.
- The practice with PID loops was fairly invaluable when it came to participating in FIRST Robotics my senior year of high school.
- I have a solid understanding of PID loops as well as general closed loop control theory. This will be super useful for robotics season. I can't imagine going into the craziness of robotics season without prior knowledge of closed loop control. If I end up working with robots after high school, which there is a good chance I will, my understanding of closed loop control will be very useful..
- The importance of version control. The value of a good team and cohesiveness.
- Learning about PID control loops was immensely useful for programming in high school but learning long term presentation skills has been helpful in high school and in college. Also being able to say I've participated in an internship program before entering college has made me stand out above the rest of my peers.
- Though it seems I will not be using my newfound knowledge on control systems as a programmer on the Robotics team, I suspect having gone through this experience will make me far more understanding of the programmers and what they are going through during build season. Learning what it takes to work with a group on technical projects like this, though, will be incredibly valuable to me, both during build season and going into college. I suspect that I will have to work in a group setting frequently, and this experience will help me transition into this mindset more easily.
- I learned how to problem solve, work as a team, commit code, and debug.
- In addition to all the programming concepts I learned, I learned how to work cooperatively with other programmers and how to meet deadlines. These skills will help me throughout college.
Q9: How much and in what way did the hands on projects help you understand the concept of feedback control?
- The trial and error process of tuning the gains in the competitions, as well as the plots obtained from each run, helped me understand the way each gain affected the control.
- Without the hands-on approach, I think lots of knowledge and understanding would have been lost. Seeing a first-hand response to the code I had written, whether it was adjusting gains, or improving logic, was most definitely a very important part or me understanding the concepts.
- Without the hands-on experience, I feel that many of the feedback control concepts would have been lost. Hands-on projects allow for visual diagnosis of problems and visual gratification of success. If I was just reading numbers off of the IDE console, I would have had a significantly harder time understanding the principles.
- Since I worked on vision, I didn't have much experience with feedback control. But it was interesting to see how our Kinect system limited the Roomba's mobility (not physically, but because of software delays).
- The projects were very effective in giving me an understanding of control systems and feedback control. By implementing PID loops in several different circumstances, I gained an intuitive feel for how and when to use them.
- Reading about feedback control can really only help fractionally in terms of actually understanding how the process operates--being able to tune the loops on different levels (with the "choreography" and especially the maze course) is extremely helpful in actually getting a feel for how it actually works--not just theoretically.
- The hands on projects helped a lot. Hands on projects tend to give much more of an intuitive understanding of concepts than reading textbooks does. By transitioning from projects which involved open loop control to proportional control to PID control we were able to easily understand each step.
- Fairly well. It helped me to see a hands-on way to see what these concepts and ideas were. It also showed me how tenuous feedback control can be sometimes.
- I always find hands on projects to be an easier way to visualize and understand concepts. Especially with feedback control watching the behavior of the robots based on what our input was made it extremely obvious how many different cases must be accounted for.
- The projects took me from having no idea how feedback control worked to having a fairly good, albeit basic, understanding of the concept. They helped clearly demonstrate the effect of control loop changes, and made it easy to visualize the fairly complex topic.
- Very much; the roomba is simple and unlike the real robot, we don't have to worry about it driving out of control or destroying itself, making it ideal for practicing tuning.
- You can visually see the difference between good control loops and bad ones. This allows me to learn through the experience.
- They helped a lot. I can't really remember specifics, though. I haven't done much of that since then.
Q10: What can we do to improve the program for students next year?
It would be useful to notify the students ahead of time to be prepared to program in Java because I had very little prior experience in Java, which made it more difficult for me to effectively contribute early on.
Incorporating more students would definitely be a plus, if lab space allows. More field trips (like the RoboSimian one) would also be cool.
Personally, I would require some programming experience because I would expect that a group of 4 intermediate programmers would be able to move through material more quickly and efficiently.
I think somewhat more active vision mentoring might be helpful. We definitely appreciated the freedom we had to experiment over several days and work independently. But our instructions were usually just "see if you can do x, y, and z soon," and we weren't quite sure whether those things were possible or simply time sinks. (I recognize, though, that the vision component was new and untested this summer, so our occasional aimless wandering in the jungles of vision may not be the experience of students in future years.) We vision interns certainly had a different experience from the control interns, who worked very closely with their mentors. Overall, though, I had a great experience, and I really appreciate all the effort our mentors put into making the program a success.
I think that the radio project would be more interesting if students implemented more complicated and powerful algorithms, although this would not be as good preparation for robotics.
It would be helpful if there were a little more structure in terms of instruction before embarking on a project--not an entire lecture, but just an intro to what's going on, for those of us who are working on being experts, but aren't quite there yet.
You did a great job last summer. Continue to make the primary emphasis closed loop control. A good understanding of closed loop control seems very useful, especially for robotics.
Not sure. Maybe have the students write less code that's not as related to actual control ideas?
I feel that the program could be improved by having more specific tasks for each member on the team. This way the stronger programmer can't entirely take over and leave those with less experience or confidence in the dust. I also feel like it would be more fair if students could be compensated based on how much effort they put in. The summer I participated one student spent half as much time in the lab as the rest of us and had almost no understanding of what was going on yet still got the same credit as the other students who understood the projects.
The first real project, antenna seeking, when on far longer than I thought it needed to. Though interesting in theory, I know that this project frustrated some of my group members greatly and at least two of them spent the entire first week developing drivers that were project-specific. This was not as constructive as it could have been. Besides this, everything was really quite beneficial. I think more time could have been spent on the kinect-robot integration, though.
In general, I think working on a few projects in parallel is better because it's not fun if you hit a brick wall and have nothing else to do.
More PID control just keep doing that. There are so many uses for sensors on the FIRST robot that I would challenge a team to use an unlikely sensor for data.
The Roombas were pretty frustrating to work with, although perhaps that teaches an important lesson. I don't know how you would change that anyway. I think it's fine as it is!