rwodonnell
20-09-2013, 18:16
I have been mentoring the last couple of seasons, and although I am a software engineer by profession, there are other mentors in our club with that skill as well, and they also have more experience with robotics type code (I am a web application developer.) As a result, I have found other ways to get involved, which has been a great learning experience.
However, in watching our programming team, it always sort of works out the same way. Though we have a few laptops capable of running the IDE (we are using Java), we end up with one kid on one of the laptops, and the others crowd around as he writes the code. As you can imagine, many of the kids that want to be engaged don't remain engaged, as well as the fact that the kid behind the wheel, so to speak, changes from meeting to meeting, and he doesn't always understand what changes the other kids made, and so on.
It seems to me that we are badly in need of using some sort of source control, and we are holding ourselves back by not using it more. (Technically, we check in and out of SVN, but really only about twice a season.) It would make sense to me, based on the kind of projects I have worked on professionally, to have one machine dedicated as a build machine, where nobody actually writes any code, and let the others do their work and check in, and so on.
I think there are several barriers to this, though. First, part of the reason they are operating the way they are now is that they have trouble having connecting to the robot and the internet at the same time. So the build machine can deploy to the robot and they update and deploy, and the cycle goes on like that, not really stopping until they're done, at which point they will check it in as a safety measure once in a blue moon. The second problem is that there is no way to test your code without deploying to the robot - the need for a simulator is huge, it seems to me, though I imagine with the variety of parts used in the robots, would be difficult.
So, because I am a noob to robotics programming, and really robotics in general, any help on these general questions would be great:
1. Do most teams use version control, and what do they use?
2. Do teams use a build machine, or build server, and what?
3. Is there a solution to this problem of connecting to the internet and to the robot network at the same time?
4. Is there a simulator that can help programmers?
Sorry so long... I guess I rambled. Thanks in advance for any answers.
Rick O'Donnell
However, in watching our programming team, it always sort of works out the same way. Though we have a few laptops capable of running the IDE (we are using Java), we end up with one kid on one of the laptops, and the others crowd around as he writes the code. As you can imagine, many of the kids that want to be engaged don't remain engaged, as well as the fact that the kid behind the wheel, so to speak, changes from meeting to meeting, and he doesn't always understand what changes the other kids made, and so on.
It seems to me that we are badly in need of using some sort of source control, and we are holding ourselves back by not using it more. (Technically, we check in and out of SVN, but really only about twice a season.) It would make sense to me, based on the kind of projects I have worked on professionally, to have one machine dedicated as a build machine, where nobody actually writes any code, and let the others do their work and check in, and so on.
I think there are several barriers to this, though. First, part of the reason they are operating the way they are now is that they have trouble having connecting to the robot and the internet at the same time. So the build machine can deploy to the robot and they update and deploy, and the cycle goes on like that, not really stopping until they're done, at which point they will check it in as a safety measure once in a blue moon. The second problem is that there is no way to test your code without deploying to the robot - the need for a simulator is huge, it seems to me, though I imagine with the variety of parts used in the robots, would be difficult.
So, because I am a noob to robotics programming, and really robotics in general, any help on these general questions would be great:
1. Do most teams use version control, and what do they use?
2. Do teams use a build machine, or build server, and what?
3. Is there a solution to this problem of connecting to the internet and to the robot network at the same time?
4. Is there a simulator that can help programmers?
Sorry so long... I guess I rambled. Thanks in advance for any answers.
Rick O'Donnell