![]() |
A plea for roboticists
I would like to start by saying that I am shooting for a Mechanical Engineering major, but I consider myself a roboticist at all times.
I officially stopped competing in FIRST the year before last, but I've been keeping up with the competitions. Drawing from the past 5 years of robot history that I've witnessed, I am of the opinion that Dave Lavery will come on stage this year, set down a big cardboard box, and say: "This year, we've built the robot for you. Rule #1: you may not modify the kit robot. Now, for the next 6 weeks, would you please, please, PLEASE program it?!" I now recall all of my previous years, and it seems like all I was doing was building big, glorified RC cars with arms poking out of their midsections. I worked in Olin's Intelligent Vehicles Laboratory over this summer as a motion control engineer (read: designed and built stuff that moved), and I honestly spent two months out of the three programming. We, in fact, programmed so much that we ran out of time to build the robot :yikes: - we're going to finish during the school year. Meanwhile, in the robotics lab next door, three of my friends were working on a robotic biped named M2 that was built in 1998. The motion control hardware (motor controllers and amplifiers) has been through 3 revisions simply because the robot is so old! After 7 years of programming (4 of which were at MIT), we still can't get it to walk. Ever since Autonomous mode debuted, FIRST has wanted us to make real robots, the likes of which are active in every university with a systems engineering major. Every year, however, I see a majority of robots either dead for 15 seconds or giving the double "254nownownow!" signal to both sides of their drive train. It took a year of college for me to realize how sad that is, given the massive amounts of tools the kit provides you (a fully tuned PID loop for the most powerful motors in the kit, an IR beacon, pressure transducers, current sensors...). My faculty advisor at Olin used to be the vice president of engineering at iRobot, and he told me that iRobot's had around 40 job openings go unfilled for the past year or two, simply because of a lack of skilled roboticists. What is a roboticist, you say? A roboticist is the uber-engineer, the systems engineer on steroids. A roboticist can create mechanical designs as effectively as any MechE, that factor in those pesky things like wires, sensors, and effects like EMF. A roboticist is envisioning the control algorithm for their design while the design is still in Inventor or Solidworks. A roboticist selects the appropriate servomotor and control hardware for their design before any solid model is ever touched. I'll stop rambling on now, and just submit this plea: please, be roboticists! I know it's really hard learning everything at once, which is why many teams default to just working on the mechanical structure of their robots. I promise you though - if you make the extra studying and programming effort early on, if you learn your sensors well, and if you take the time to research PID (proportional-integral-derivative) control loops, higher and lower brain functionalities, and even a little SLAM (simultaneous-localization-and-mapping), your robot will balance on its two rear wheels and thank you at the end of the season. More importantly, if you pick up enough along the way, you can go to any college you want, and any corresponding career. |
Re: A plea for roboticists
Great point... there really is a profession out there for those of you who like to do a little bit of all of it!! And even if you cant get the dream job as a roboticist (is that now an official title you can job search for?!?! lol), you can become a systems engineer (what I am/was)!! You do a little bit of all of it... end up a jack of all trades (sometimes master of none), but it s NEVER boring!
|
Re: A plea for roboticists
This aspect of FIRST drove me nuts this year. I was one of two programmers on the team, and after we ditched the camera (with 3 days to ship), we immediately started work on autonomous mode coding. We finished at 10 PM the night before ship, but as anyone who was at VCU this year can probably remember, (I'm not trying to brag at this point) , we had the killer autonomous mode that capped the side goal every time in the qualifying and finals round except once. I also think we that we had one of the very few useful autonomous modes (at least at the beginning of the qualifying matches) That said, we were using dead reckoning, but it goes to show how much a (not even that well-coded) autonomous mode can go. I believe that upon watching a few of our rounds, several teams promptly copied our technique and adapted it for their robot, as a couple teams I was watching that originally had no useful autonomous mode suddenly were attempting to cap the side goals.
Just imagine if this year at kickoff, Dave's robot not only followed him and his shirt, but also capped the center goal on the demo field, not just in the animation. This would have been greatly inspirational to all teams (as all had to watch the kickoff), and might have resulted in the center goal being capped at least once this year. However, I can see why they didn't have the robot do anything except follow Dave: it would have been copied by teams so they could skimp on days and nights of intensive design. That being said, I did notice more than one team at both VCU and Atlanta that copied a design from the animation anyways.(forklift with a single bar in the center). But please, I would really like to see at least something other than playing dead or the double-254gogogo from 80% of the teams. It's more interesting than watching both sides of the field park in place or ram each other head on. And remember: a good autonomous mode is a good bargaining chip when trying to get picked for finals! :] Of course, if you have a good autonomous mode, it's quite likely that you've made it into the top 8 and are doing the picking. :p |
Re: A plea for roboticists
As you've said, there's a large lack of programming going into all of our bots. I think this is primarily because it's just so hard to do anything useful in 6 weeks. You said you and a team of others spent two months programming a robot this summer. Full time. FIRST has 6 weeks of working after school. I personally am amazed that any teams out of the 1000 managed to do anything useful with the very finicky CMU Cam.
That said, there's obviously still room for some programming on the robots. I wanted to introduce my team to the wonders of feedback control, but I was sorely needed for just getting a robot built. As you also noted, it's very easy to spend lots of time programming. Having a well programmed robot that's not built is a bit of a problem, obviously. And many teams are hurting just for mechanical mentors and getting a robot built, period. I suppose I'm sounding like a bit of a downer. I really like programming and digital controls and all, but I think there's only so much that can be done with a team of high school students and 6 weeks, short of mentors writing the the entire program themselves and just showing it to the kids. Expecting teams to design, build, and program a highly adaptable machine vision system in 6 weeks seems a bit much to me. |
Re: A plea for roboticists
You have no idea how much this pains me!
I love programming so much, but in the two years I've done FIRST, I've never been able to do anything really interesting because I had to help with the more pressing need of building the robot. This year however, things will change. ;) Oh, and my CMU cam arrived dead! |
Re: A plea for roboticists
As for coding for two months, this our labs' first year. Starting from scrach, we're putting 3 3.2 GHz processor, 2 GB RAM computers in one box, distributing computing between the three of them, talking to an ethernet based 8-axis coordinated motor controller, grabbing data from a firewire stereo vision camera, grabbing data from a RS232 GPS unit, and grabbing data from a RS422 laser ranging sensor. Just about all we had to write from scratch (transparent open and closed-loop motor control, data collection algorithms from our sensors, and lower-level communications protocols) has already been done for FIRST. It literally took 6 of us coding for two months to get to the point where the FIRST controller has been for the past 3 years.
Quote:
|
Re: A plea for roboticists
Quote:
|
Re: A plea for roboticists
Quote:
|
Re: A plea for roboticists
No offence people, but i think this conversation is the slightest bit slanted, as to how mostly programmers are on CD in the off-season :D. That being said, I've really wondered what it is like to be one of the programmers, I'm just glad I'm not one of them, as our team is very evil to them and gives them about 3- days to program the thing. Most of the programing done while we're building is "preparation code" that they run on past year's bot to test their programming with. And I'm pretty certain we're not the only team...
Eventually we hope to be like one of those teams that manage to build their bot in the first 3 weeks and spend the last half tweaking, but a lot is going to have to happen for us to get into that position. On the note of programmers getting more time. Like any other aspect of the bot, all of the parts are vital to get it to work but when it comes down to it, teams need to decide which aspects get that bit of extra time and energy to improve. And this year, since the main challenge of the game was a pushing match, and a very difficult arm design, most teams spent a lot of time on that instead of on the autonomous code which many teams thought was just too much effort for the payoff (two more tetras? In finals the bots could do that in about 12 seconds I think FIRST could encourage more autonomous programming, or time spent on creating it, by making it more central to the game. In '04 knocking the ball off was an incredibly useful auto code, that gave teams a killer advantage. But this season, we all know that wasn't quite the case :). If FIRST would come out with a game that gave a difficult challenge in autonomous programming, one that would make a team considerably more powerful in a game (moreso than this year, it wasn't impossible, just very very difficult, for a very small payoff) a lot more teams would be giving more time to the programmers. Anyway that's my $0.02 |
Re: A plea for roboticists
I personally think that FIRST simply does not give us enough time to program for all the sensors. Add to this the fact that we get a new sensor every year, and you get frantic programmers. 330 tried both IR sensors in 2004 and the camera this year, and we ran out of time (and weight) on both.
Let's look at various games, staring with 2003, when auto mode started. '03 had (I think) the largest proportion of teams with an auto mode. There were no IR sensors or cameras, nothing terribly complex. 2004 had the IR sensors introduced. I personally don't know of a single team that used them. 2005 had the CMU Cam. As far as I know, no one used it with any large degree of success. I personally think that the only thing wrong with more sensors/more complex processors is that they need to be released early, perhaps at the same time as the game clue. Yes, let's have more autonomous robots, but can we have EIGHT weeks to get our sensor and autonomous programming done into the bargain? I think that if this is not done, few, if any, teams will have a sensor-driven auto mode in the future. More complex sensors+same time=more mars rocks because programmers have less time to do anything about moving the robot according to the feedback. Oh, and some teams don't have very many programmers or can't spare students to learn programming because they are needed to build the robot. So they are already at a programming disadvantage, then you add something that even veterans have a hard time doing, and what do you get? |
Re: A plea for roboticists
WPI offers first undergraduate "robotics engineering" major...
http://www.chiefdelphi.com/forums/sh...ad.php?t=50361 |
Re: A plea for roboticists
Quote:
I will echo Gui's argument: FIRST's control package is incredible. Spend some time with it in the offseason. Build a Segway, or an arm that can balance a cup of water 5' out while your robot goes over a speed bump. And teach your HS students how to do it; you don't need transfer functions and pole-zero plots to understand the idea of a virtual spring and damper. This will prepare them to take it on during the very short FIRST season. And, when they go to college, they will demand an education for roboticists. |
Re: A plea for roboticists
Quote:
Quote:
|
Re: A plea for roboticists
Reading this thread this year makes me realise again how far teams have come in 2006 for autonomous mode. Thinking of alliances scoring 50 points in autonomous would have been unheard of even a year ago.
Hopefully programming can continue to improve. I think FIRST made their point last year with it's importance. |
Re: A plea for roboticists
Quote:
|
Re: A plea for roboticists
Quote:
|
Re: A plea for roboticists
Quote:
I was an intern at iRobot last year in Home Robots; while there, I made some friends on the G&I side and my senior project is in G&I... and get this, I'm not a Mechanical/Electrical/Software engineering student either! I'm Industrial Engineering (who wants a Mechanical Masters, but I'm not qualified to do hard-core design analysis work yet). My senior project is all mechanical, I learned how to machine/prototype/hack-design in FIRST... so that's enough for this round of project prototyping. My mechanical project partner is doing the hard-core analysis, but I'm coming up with the effective material-handling methodologies because, well, my frame of reference from FIRST and working at HSES, HSSI, DEKA, PW, Gillette, and iRobot has giving me a well-rounded view (of course, well rounded people are pointless). Actually, the reason why I'm a roboticist for a respectable company at such a young age is because I'm interested in the field, I have a hunch on where it will go in the next few years, and I'm crazy passionate about doing anything I can to push that field further into new products and development. iRobot has an intern-to-full hire program to it where if you're right out of college and they don't know you, they'll hire you on as temporary for a few months (intern/contractor) then put you on full time if they like you. It's worth a try; if you want the recruiter's information: PM me. He's always looking for talented/passionate people no matter what your academic/experience level is. The way they hire is: if you're smart and they like you're personality; they'll enjoy working with you and teach you what you need to know. Act like a passionate roboticist, and you'll get paid to be one :) . |
Re: A plea for roboticists
Adam Y --
Another vote for being hired right out of college. Look for the right companies. Be in the right location, too -- California, Pittsburgh, and Boston are the big areas in the US for roboticists. If you search them out, and you're good/passionate, they're wicked excited to have you. Also (for everyone!), don't underestimate the power of FIRST. Two of my three job offers out of college, all absolute dream offers from wonderful robotics-based organizations, were due to my FIRST involvement and the networking that happened here on the forum and in the organizational stuff I do. Leverage everyone in this community! |
Re: A plea for roboticists
Quote:
Quote:
|
Re: A plea for roboticists
Quote:
Yes, they have job descriptions online, but they also have job descriptions they'll create if they have the right person sitting in front of them saying they want to work there. Send an email with a resume, you might get lucky. Its worth a phone call with a recruiter - so start selling yourself! |
Re: A plea for roboticists
I know this thread is a solid year old, but since it has been bumped and people are reading it...
Quote:
At the very least, try to plan so that the programming team has access to the RC, OI, sensors, batteries, and other electronic kit right up until they are installed on the robot. At the very least that enables the programmers to make sure that their outputs make SOME sense given certain inputs, but there is really no substitute for on-robot testing. Most of the components the programmers need to test with are mutually exclusive from the mechanical components of the robot, so they can have their own special box. If the programming team is already using the robot testing something and you have something to do, ask them what they're doing. If they are testing or implementing something vital (arm control, autonomous modes, drivetrain) and you're there to tighten bolts or something, ask yourself "do I want to sacrifice an autonomous mode for $TASK?". If the answer is no, then let them do their thing. For some reason or other, programmers always seem to at the bottom of the robot-access priority list. I've been delayed from autonomous coding and camera testing because bumpers needed their bolts tightened. Without fail, every year since stack attack (2003) I've been asked/told both as a student or a mentor "Why wasn't that tested?" "Why don't WE have a killer autonomous mode" "What was that bug?" "It was the programmer's fault" "Why was the old version still on the robot?". Programmers cannot program correct programs without testing. Testing doesn't mean turning the robot on 5 minutes before a match (at that point, you're already doomed, especially with the slowness of IFI Loader). Whether at a competition or during the build period, programmers need time with the robot to make sure everything works. There aren't many ways the robot software can fail that DON'T doom you in a match. Your robot might be uncontrollable, it might not move, it might ram into a wall real hard. Motors might turn in ways that software safeties were supposed to stop them from turn. Autonomous mode might not work. Your scoring thingy (arm/shooter/capper) might not work or break itself. So, reader, if you're in a situation where you have to decide whether to build for one more day or give the programmers the robot for a day, please give that day to the programmers. If that is impossible: At the very least, make a set schedule and say that "builders build from 8:00 - 11:00, then programmers get it all lunch with no-one bugging them". You won't believe how much more productive everyone is when there aren't builders coming in every 5 minutes tightening, measuring, mounting, and moving things. Every time someone comes in, we've potentially got to shut the robot down, move computers, unplug cables, and then put everything back. That is wasted time for the builder, and wasted time for the programmers. If people are coming in all the time, then that scarce minute/hour/day you've given the programmers to get things done is being wasted. |
Re: A plea for roboticists
A couple of comments based on the previous posts:
1. I was told not to worry about how many years experience a company says they want for a job applicant. They will fill it with anyone who is "qualified" to suit their needs. If you look through classifieds, it will often say a BS in EE or X years equivalent experience. 2. Use your FIRST connections. Chances are they can get you information about recruitment opportunities at companies you're interested in, if not try to get you hired themselves. 3. Don't think that your first job will be your last job. I was explicity told by a professor that company loyalty is unheard of these days. Most people will move on after 5 years or so. 4. The broader your background, the better off you will be when dealing with robots, especially industrial robots which I'm beginning to believe are all but completely ignored around these forums. I work with several types on a daily basis. One I have to be the mechanical/electrical eyes and ears to relay information about crashes to the programmer. This robot is a "one-off" machine, so there is no precedent for any of the issues that come up. The other robot I have to not only be the mechanical/electrical eyes and ears, but I also have to be the programmer since they are 15-20 years old and nobody else is around for coding anymore. 5. Re: Programming the Bots If you're not a rookie team, then consider using an older robot or removing required components and using those to work on your code. Bongle alluded to people having to come and tighten screws when the programmers were trying to get stuff done. My question in response to this is: Has it occurred to you that this might be an issue of safety? What happens if the bolts come out due to vibration? What seems insignificant to programmers may actually be very significant to the mechanicals and vice-versa. indieFan |
Re: A plea for roboticists
I'm glad this thread has been brought back up as many of the points Gui has made a still very valid. In addition to many of the things he has said, I definitely would encourage everyone in FIRST to walk out of your comfort zone and learn another aspect of the robot, just to know it. I have done this and been very happy about it. When I joined I started as mechanical because thats the way my team usually works, and I had a large amount of experience doing the mechanical side of things. Then last year i decided to make a switch over the electronics and programming to see how that part of the robot is built. Once you know a good amount about how everything works, you can design soo much better.
|
Re: A plea for roboticists
Sorry to hijack this thread... :o
Quote:
Getting back onto the topic at hand, over the past year I've become much more involved in the three areas (mechanical, electrical, programming) of robotics than in past years. And I can say that I love being able to do all three fields. Whether I'm programming an absolute-positioning, gyro-based holonomic code for my Vex robot in EasyC or innovating such things as variable-diameter wheels (both of which are ongoing projects of mine), I really love robotics. Earlier today I received my acceptance letter from WPI; I'm glad that they now offer a degree in robotics, as well as the fact that their campus location is less than an hour away from the Boston hot-spot of robotics/high-tech companies. While a degree in robotics may seem too specialized at the moment, I foresee a very bright future for robotics in the 21st century, and I would love to be a part of it. :D |
Re: A plea for roboticists
Quote:
Quote:
If worst comes to worst, they can test the drivetrain with it propped up on blocks while you screw on a few bolts to the arm. Everything needs to get finished, so compromises need to be made on both sides. And yes, all parts are important and very interesting; I love thinking of mechanical designs though I mainly program for the robot. Try investigating something new for a new idea on how everything really works. |
Re: A plea for roboticists
I'm doing some "create your own mechanical engineering major in robotics" at MIT, and I've gotta say, I think it's pretty lame that getting a mechanical engineering degree at MIT barely requires that you know how to turn on a computer. Of all the undergrads here who must be seriously interested in robotics, I know of exactly one other who is getting a degree in MechE- they are all strictly EECS people.
I didn't know the first thing about computer science until I took an introductory class in it this semester, and I'm STILL intimidated by it. I remember wiring the control panel for my team's robot in high school and passing the project off to our programmer guy. I was utterly amazed when the thing actually worked. The programming was quite literally a black box for me- I had NO IDEA how it worked. Part of that is because computer science is so abstract- I had no idea how to do it, I couldn't literally see it, and from what I heard it was supposed to be really hard- like only really smart, hardcore hackers could do it or something. Anyone who's been programming for years is probably laughing at me right now, but it's the honest truth. I think a lot of people feel that way- so teams with limited programming skills are unlikely to obtain more and even those that have skilled programmers are unlikely to give them a whole lot of support if the other members don't understand what kinds of pressure they're under. I completely agree with you- programming is much more important in robotics than is reflected in FIRST, and that should change. But quite honestly, I think there's a problem with computing in general- there's a pretty big speed bump between the utterly clueless and the novice programmer, and that's more than half the battle. This is a big concern of mine, so excuse me if this gets a bit preachy, but I think it's our responsibility as mentors, engineers, and technological innovators to make computing, programming, and computer science more accessible to the average person before we start expecting rookie teams of high school students to build entire robots from scratch and program them with autonomous state estimation and mapping algorithms. |
Re: A plea for roboticists
sigh.
For two years out 'autonomous mode' has consisted of 'tuen on this motor for X seconds, then that motor for X seconds, then do this.' In other words, pure dead reckoning. We're going to try a new design approach this year, and in that approach there are 4 weeks for programming. Not sure if we can pull it off, but will try. Don |
Robotics concentration
I've switched majors to a Robotics Concentration under the General Engineering degree at Olin. It's working fairly well, and I just wanted to let other interested college students know what the coursework looks like:
Core Engineering Requirements: Solids and Structures Dynamics Mechanical Design Software Design Controls Core Math Requirements: Nonlinear Dynamics and Chaos Partial Differential Equations Electives: Robotics Artificial Intelligence Related General-Requirement Olin Courses: Materials Science Vector Calculus Linear Algebra General Mechanics & Calculus I've also done a few independent studies in controlling brushless servomotors, building snake robots, and building a compliant biped. Feel free to drop me a line if you have any questions about designing your own robotics major - my approach is fairly mechanically heavy, and don't think that's a requirement by any means. |
Re: A plea for roboticists
My son is taking ME and I just can't see how one could take all the required courses and also take courses that would apply to robotics. At least in a 4 year program. In 4 years he will only have 2 elective slots that could be applied and that is with 18 credits per semester. Now if you extended the undergraduate program to 5 years then there would be time for robotics subjects or like others said get your ME in 4 and a graduate degree in automation for six years of study. Don't skimp on the core base in your base curriculum.
|
| All times are GMT -5. The time now is 04:55. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi