we’re looking at doing vision for the first time, probably on the driver’s station.
I know in years past, people have done it in the dashboard, then UDPd information back to the cRIO, or otherwise done custom communications (I’m not sure of the details yet)…
But now we have NetTables: would this be an easier way to get the information from the vision processing in the dashboard back to the cRIO, or is there a downside to this?
UDP is still an option, but you are correct, Network Tables, which is really the same as SmartDashboard, are built in.
I’d encourage you to work through the tutorial on customizing the dashboard and post any questions.
thanks. I’ve fiddled with the customization already, and have read the postings (many from you) on doing the processing in dashboard and reusing the image that is already there, so I’m comfortable there.
I am a little concerned about some apparent latency in the Network Tables, hence the question about using that vs UDP…
Good question. I’ve been waiting for someone to ask about that.
The SmartDashboard Server VI that is started in Robot Main and the SmartDashboard Client and Binding VI that is started in the Dashboard Main both support a parameter called Update Time. By default this is 100ms. That means that every 100ms, the code will notify the other side about any locally changed variables. The primary purpose is to batch the updates to avoid a jillion small TCP transactions. 100ms is relatively fast and low overhead, but you may want to shrink the number if using it for vision processing values.
The other option is to use the Flush Updates VI located in the Network Tables Extra palette. This will allow you to keep the time slower, but force an update whenever you choose, such as when you have aiming data from a processed image.
Let me know if you have any issues using them.
ooooo! that helps lots. Will experiment.