robotpy-cscore
is a great solution for running image processing on a coprocessor such as the Raspberry Pi or on the Driver Station. However, we do not provide precompiled packages at this time and you will need to compile binary packages for your platform.
See installing robotpy-cscore <install_cscore>
.
If you do not wish to modify or process the images from your camera, and only wish to stream a single camera via HTTP to a dashboard, then you can use the cscore __main__
module to start a CameraServer automatically:
$ python3 -m cscore
That's it! You can point your browser to that host at port 1181, and you should see the cscore default webpage.
vision_code
The easiest way to launch a cscore program is via the cscore __main__
module helper. It will automatically configure python logging for you, and also provides useful exception handling and NetworkTables configuration for you automatically.
You can instruct the __main__
module to run your custom code via a command line parameter. The parameter is of the form FILENAME:FUNCTION
. For example, if your code was located in a file called targeting.py
, and your function was called run
, then you would do:
$ python3 -m cscore targeting.py:run
See the intermediate_cameraserver.py example in the robotpy-cscore examples folder
TODO: Add section about launching your script at coprocessor startup
The LabVIEW dashboard and Shuffleboard both retrieve information about the camera stream via NetworkTables. If you use the cscore.CameraServer
class to manage your streams (which you should!) it will automatically publish the correct information to NetworkTables. In order for the dashboard program to receive the NetworkTables information, you need to tell your cscore program to connect to a NetworkTables server (your robot), and the robot code must be actually running.
If you're using the cscore __main__
module to launch your code you can tell it configure NetworkTables to connect to your robot. Use the --robot
or --team
options:
$ python3 -m cscore --team XXXX
Or if running custom code:
$ python3 -m cscore --team XXXX vision.py:run
If you're writing your own custom code/launcher, at some point you should initialize NetworkTables and point it at your robot:
import networktables
networktables.startClientTeam(1234)
- The
WPILib documentation for cscore <frc:docs/software/vision-processing/introduction/cameraserver-class>
may be useful to explain concepts (though some details are different) CSCore Troubleshooting <troubleshooting_cscore>