RoboRealm not connecting to the RoboRio

So, we’re using RoboRealm for our offseason event, and we’re having some issues. Namely. the camera isn’t connecting to the Rio. The attached photo is what we get. It’s worth noting, that isn’t from our camera. Here is our code. If anyone who has used RoboRealm with C++ can help, that would be great. We don’t have a clue what we did wrong.

We had trouble with RoboRealm earlier in the year and it was a port problem…not sure if that was your issue. My understanding is that the field control system is persnickety about the ports used. That’s all I’ve got…good luck. We’re doing a lot with vision this off-season, trying to alleviate some of the issues we’ve contended with recently. We’re going to create a field control system to test our bot on so we won’t be surprised at competition when our video disappears…

Yes, the FMS will only allow you to use certain ports. These are in the manual, rule R60:

Communication between the ROBOT and the OPERATOR CONSOLE is restricted as follows:
A. Network Ports:
i. TCP 1180: Camera data from the roboRIO to the Driver Station (DS) when the camera is connected the roboRIO via USB, bi-directional.
ii. TCP 1735: SmartDashboard, bi-directional
iii. UDP 1130: Dashboard-to-ROBOT control data, uni-directional
iv. UDP 1140: ROBOT-to-Dashboard status data, uni-directional
v. HTTP 80: Camera connected via switch on the ROBOT, bi-directional
vi. HTTP 443: Camera connected via switch on the ROBOT, bi-directional
vii. UDP/TCP 554: Real-Time Streaming Protocol for h.264 camera streaming, bi- directional
viii. UDP/TCP 5800-5810: Team Use, bi-directional

Make sure the port you are using that is set up on both sides is one of these ports. I believe the home configured firmware also restricts these to these ports.

So, we have the camera connected through the Rio and all, but we can’t get RoboRealm to connect. We’ve never used it before, so we don’t know what we did wrong. I set up the NetworkTables and all that, but we can’t get RoboRealm to connect to the Rio. It works fine when the camera is connected to the Laptop.

In our experience last year we think we have had problems with Network tables on roborealm. The values were being updated but in the driver station we were frequently spammed with new clients connecting to the RIO, and behavior was often very difficult to predict.

We later changed transitioned to communicating to the RIO via a TCP socket, and I would recommend at least trying it out using one of the allowed ports above. It was a lot easier than I expected and the roborealm tcp tool was very helpful for debugging.

Afterwards behavior seemed better but we are still not completely sure if it solved our problem.

Tyler: how did your Network Tables problems manifest themselves?

We’re seeing that RoboRealm seems to keep disconnecting at what appears to be random times (we can see the messages in RoboRealm). A restart of the roboRIO fixes things for a while.

We also see some protocol error messages in RoboRealm.

We’re this close to following your lead, scrapping the Network Tables module, and running straight TCP.

Wish RoboRealm did UDP…

On the field our vision had seemingly undefined behavior and was very inconsistent overall. Often it would just pivot the robot in one only direction at full power until either the aim command was canceled or the robot was stopped. This looked a lot like a communication issue to us.

These problems seemed to happen at random which made them difficult to reproduce.