TORC was selected as a 2015 Beta tester for the C++ language. The odd thing about that statement is that we have never done C++ programming in the past, we are/were (too soon to tell) a Labview team. In our application to be a beta tester, I promoted the idea that this opportunity may be of value to the beta test program to get feedback from a “rookie” team perspective, but still have a commitment from a team that has been around a few years, and striving to improve.
Over the last 5 years, I have, and the team has, benefited from great support and sharing of code here on CD. I am not a programmer by trade, but a controls engineer, and typically program in PLC relay logic, as opposed to any formal language. I typically learn, by “reading” others code, understanding the logic, and then using that to explain the control algorithm, and ten have the students write the code and debug. In the Labview we have benefited most by the work shared by the Killer Bees.
Over the last two weeks, I have been trying to gain some the same understanding of the C++, language and environment, so that when we get are kits I can try to stay a couple steps ahead of the curve. I have two strong programmers, 1 in C++ (non-FRC) and one in Labview.
Our 2014 bot is fairly simple, so I think we will be able to get the teleop running on it in a few weeks after we are wired.
What I am asking for from the existing C++ FRC base, is the reference materials, best practices, code examples, documentation on coding a FRC robot. I have found somethings online, but many times, after spending time reading and getting into the information, I find out it does not apply.
So below is the list of things that we would want to implement on our 2015 bot in C++ to be competitive with our skills in labview.
Again, you don’t have to write, or explain the answer, but feel free to, just post a link, point to an article, etc., I will do the work, point me in the right direction.
-
Debugging C++ code on a bot, How to doc. I know this will change with going from windriver to eclispse, but we are trying to debug C++ code and I know there is small problem in the state machine for the ball pick arm, and shooter. Right now we are using the smart dash board to watch the states via a variable name. Is there a way to “see” the code running on the bot, from the IDE? I read something about “breakpoints” we have not tried that yet. Is there a C++ equivalent, to running the “robot main.vi” from the programming terminal in labview where you can probe “real” time data and see code running.
-
FRC base framework, is there a C++ equivalent, with the control “while” loops set up for auto, tele, and perodic tasks.
-
Some of the code online says it was built with robobuilder, what is that, and what is it’s function.
-
Loop timing, in labview parallel tasks, and loop timings are pretty easy, what is the structure, that insures as 20ms loop, runs in 20ms? Is there? In labview we shortcut pid gains without out the “delta t” variable, as we set the loop timings constant, is that not an option in c++
-
What are the good C++ teams, and where do they share their code?
-
Autonomous scripting, who has implemented a basic C++ scripting command set.
-
Vision example, We have never used vision on a production bot, we have played with it in labview. Is there a C++ tools set for vision, what is the best practices.
-
Data Logging, on our labview bot, we log a slew of status, and control states, to .CSV file on the cRio 10 times a second. This tool, has been a great help trying to figure out what is happening when things go bonkers. (tech term).
Thanks for the help with this, looking forward to be able to help the community as the C++ rookie team.