Onboard Computer

Due to the bandwith limit this year, I was curious if it was possible to make a smart dashboard widget that used javacv to proccess and image and use smart dashboard to send the values back to the robot. But the twist is do this on the classmate, attached on the robot as an onboard computer, than have another computer with our normal smart dashboard components to control the robot?

thanks in Advance,
Dimitri

Yes, it is possible, and it is legal as long as your onboard computer does not control any power regulating devices (e.g. Jaguars, Victors, Relays, etc.)

Edit:
If you must do this, and you need the driverstation dashbaord to see the image then you might want to consider the following:

  • You only save a few bytes if both your onboard computer sends back data directly and your driverstation reads the image. (This assumes the Socket communication doesn’t pass through the field when you send it to the cRIO through your radio, if it does, you save nothing)
  • You could grab the image on your onboard computer, process it, send data to the cRIO, compress the image, and then host it as a MJPEG stream for the driverstation dashboard to see. (This would save you some bandwidth, as long as your drivers can deal with a more compressed image. Also, it would allow you to process higher quality images without eating up your bandwidth.)

You can have multiple Network Table clients. SmartDashboard on the robot classmate would be one and SmartDashboard on the driver station computer would be another.

Communication between items on the robot does not go through the field.

The axis camera supports multiple simultaneous streams. The robot classmate can request a stream at 640x480, and the dashboard can request a stream at a lower resolution.

Thanks for such fast replies. So what you are saying is I can have the highest quality image I want sent to the on board computer. Then send smaller images to the driverstation?

If so, how would the network setup work, in detail please I do not know that much about networking.

Thanks a ton,
Dimitri

The networking is pretty simple. The cRIO, Camera, and on-board computer should all connect to the radio. Give the on-board computer a static IP address of 10.xx.yy.12 (or another unused IP address).

Thanks for the reply, but how would you suggest I set this up:
Robot Camera takes the picture then sends it to the onboard computer, the onboard computer processes it, than sends values back to the robot. I know how to do these parts, but I am not sure how to communicate between driver stations. I want to be able to set which target to search for from the driver station to the onboard computer. Also how could I send coordinates from the onboard computer to the driver station, to draw on the driverstation feed?

thanks
Dimitri

Use SmartDashboard variables. If each of the devices you mention speaks the SmartDashboard protocol, the values are kept in shared and kept in sync. In what you describe, you have SmartDashboard on the dashboard, robot, and imaging card.

Greg McKaskle

What are smartdashboard variables, and does anyone have any experience with robotrealm?

thanks,
Dimitri