Continuing on with m experimentation in vision processing, I’m really liking RoboRealm a lot! The only problem is, I can’t seem to find any instruction on how to use the NetworkTables to give the data to the robot.
This is assuming that the driver station laptop is going to run RoboRealm and pass the data to the robot.
If you are going to do vision processing on the laptop, network tables provides a pretty simple way to transmit requests and results between the robot and the laptop. If you google roboRealm and Network Tables, you should see several articles explaining how to connect them.
My main issue is I’m not receiving the values for some reason. I got the program to work when I was plugged in via SB and used the USB IP address (172.22.11.2), but since the RoboRIO is given an IP address (DHCP), how do I know which IP to choose when configuring the network tables?
If RoboRealm supports it, I’d recommend using a device name such as roboRIO-TEAM-FRC.local. Once you are using DHCP, you really want the programs to do the IP lookup for you. This can be done via DNS or mDNS.
For Ultimate Ascent, we used a single board computer running Win 7 and RoboRealm on the robot to do our image processing. We also used network tables to transfer the data over ethernet to the cRIO.
I have seen people mention mounting a laptop on the robot for this purpose, but that approach uses more mass and volume than necessary. SBCs can be found that are about the size of the D-Link. When the match ended, the cRIO software sent a remote shutdown request via hardware relay to the power switch on the SBC so that it gracefully shutdown after each match. Having the image processor on-board enabled closed-loop control from the image processing. Communications lag between the robot and the driver station prevents close-loop control.
In Aerial Assist, we did the image processing on the driver station since it was a simple command back to the robot based on the hot goal status.