|
Re: RobotBuilder
We beta tested RobotBuilder with the C++ environment so I'll offer my perspective of it's usefulness.
I'm not a programmer but I have written a lot of code in Assembly Language, Basic, C and Ladder Logic. When the cRIO came along in 2009, I started with the simplest program that would compile and crammed a lot of sequential C code into the environment. It worked but it wasn't very inspiring for future programmers. Then a young student committed to learn C++ properly and he started creating properly structured programs. Now he has graduated we could easily slip back to sloppy structure.
Enter Robotbuilder. Instead of starting with a minimal program and trying to adding things, Robotbuilder lets you list all of the subsystems that your team has decided are important for your robot. you can enter the motor controllers and solenoids for outputs and limit switches and potentiometers for feedback and the operator inputs necessary to operate it. All this is independent of program syntax or structure. Then Robotbuilder creates the proper structure for the program for both Java and C++ and allows you to pass the structure to either NetBeans or Windriver. At this point the program doesn't make anything move but the structure is all there. Then you can start adding the code connect outputs to inputs to make things happen.
Another advantage of using Robotbuilder is to aid in wiring and troubleshooting the robot. Most years with our team, the wiring gets done before the controls drawings are made and when the software people start to trying to make anything work many things are misplaced or just defective. PID loops are especially difficult to determine problems with motor and encoder direction etc. so troubleshooting takes hours.
To counter these problems, Robotbuilder lets you generate a wiring list so the wiring people have the right information to hook things up. Then, with Smartdashboard, the Livewindow screen is populated with controls for each device you configured. You can see each input and operate each motor independently to find all the physical problems before you have to write code. this has the potential of saving hours trying to isolate code problems from hardware problems.
How does it work? As with any completely new concept, we ran into lots of problems getting things to work. If all the bugs get worked out by kickoff this will be a great boon for new teams and teams that lost their programming expertise. If there are still bugs it could be worse than just creating a minimal program.
Back to the original question, we will use Robotbuilder as that is the only way it will get stressed and debugged. If I understand it I can help new teams that use it because their structure will be predictable. At this point the Java version of all this is more stable than the C++ version so all this should apply to both.
I hope enough competent programmers use these tools to help make them stable as quickly as possible.
|