I am a new SW mentor for this upcoming season. I bought the roboRIO control kit w/ two motors and built a software development station (Frankenbot) to learn all I can about the environment. In playing with various things I found something that seemed odd and wanted to understand if this is part of the environment. I have simplified what I was playing with down to this …
I created a very simple c++ Robot application using Eclipse. This application is just the template application created by the new project wizard. I compile and deploy the application and use the driver station to put the robot in test mode, and then enable the robot. From here, if I connect to the roboRIO in a browser via the web address, or ssh to the robot, or any other non-driver station network communications the robot is disabled. I can immediately enable it again via the driver station, but any further network connections disables the robot.
Is this normal behavior for the roboRIO runtime environment? Is there some type of watchdog looking for non-First sanctioned traffic between the driver station and the robot?
As quirky as the smart dashboard is, I wanted to play with a way to tune closed loop control by communicating from the robot application to an external application. No communications during competition, but during the build season. But from this it does not look possible.
Welcome to ChiefDelphi!
The FMS Whitepaper may have some guidance.
To clarify - you’re trying to connect to the various services on the robot which are available, but doing so disables the robot? I haven’t seen this behavior before, but I also don’t program robot code.
In the past I’ve programmed custom socket code over the allowed ports (5900-5910 iirc). I’ve done this with Java code (relatively straightforward if you say everything is an array of doubles). This year the kids setup a node server in the classroom on those ports. Then the robot wrote data to the node server, and clients could connect from any laptop on the robot’s subnet to that node server. This has worked live on the field in the past. In 2016 we had to use NetworkTables to get any custom data off of the robot during a match.
Any chance you are pressing the “Enter” key when making these other connections? The “Enter” key is a hotkey for robot disable that works regardless of window focus.
I thought that was spacebar?
Spacebar is the Estop, requiring the robot to be restarted before it can be enabled again. Enter is a normal disable.
Wow, the quick response was amazing. I quickly tried this out and the issue was the spacebar and enter key. I had read the article on the FMS in the past but had not ready about the driver station enter key or space key before. There is a lot of information to take in here to really understand everything.
Thanks again for the quick reply.