Accessing Chameleon Vision network table data within LabView

At the suggestion of @Orion.DeYoe, I and a couple other team members have been attempting to run our vision processing on a Raspberry Pi 4 using @agranight’s Chameleon Vision software and a Microsoft LifeCam. Unfortunately, we haven’t been able to access the network table data from the RPi within LabView. Any suggestions or examples would be greatly appreciated! I will have physical access to the setup tomorrow evening to attempt any suggested fixes.

Relevant Information about the problem:

The Pi was an out-of-the box V4 with (I believe) 1G of RAM. I downloaded the “Raspbian Buster with Desktop” image from the Raspberry Pi Foundation and flashed a brand new microSD card with it using Etcher.

After setting up the Pi, I installed Chameleon Vision using the instructions at Chameleon’s Read the Docs entry and was able to view the local server at 127.0.0.1:5800 (from within chromium, the RPi’s browser). We were also able to view the camera feed and modify the threshold and output settings. We also renamed the camera to “Camera” since we were just testing it and it’s the only camera connected to the RPi.

After fiddling around with the settings for a while, we completed the steps for building a 2D pipeline laid out in Chameleon’s Read the Docs entry using a static ip of 10.54.13.11. After this point, things started getting hazy. The Read the Docs entry doesn’t specify what the netmask or gateway should be set to (or if they should be set), so I looked at the Limelight Read the Docs entry for instructions on setting up the networking. Maybe this was the issue? We had tried accessing the network table data without doing this and had no success, so I assumed that since the two programs were similar, maybe the Limelight settings would work with Chameleon. As a result, we set the netmask to 255.255.255.0 and the gateway to 10.54.13.1.

When I unplugged the RoboRIO from the radio and plugged in my computer instead, I was able to access the Chameleon server at 10.54.13.11:5800, so it seemed like the previous settings had worked to set up the network.

Although the Chameleon Read the Docs entry has example code for accessing network table data, it’s in Java so I couldn’t just steal their code :frowning_face: :laughing:
I’m very unfamiliar with network tables, so once again I grabbed an example from Limelight (it’s at the bottom of the page) to figure it out. Using that example (among others) from Limelight, and this network table tree from Chameleon, it looked like I should be able to use /Chameleon-vision/Camera/pitch to access the pitch, for instance; since “Chameleon-vision” was the listed hostname in the web server and we renamed the camera to “Camera”.

We also tried including the ip and port of the RPi, and reading the entire “Camera” folder (if it’s called a folder) with no luck, pictured below.

Sorry for the excessive detail, but I know how annoying it is if someone asks for help and doesn’t provide important information. If there’s anything else I need to include, just let me know and I’ll find out! Thanks!

1 Like

I think the problem might be that you wrote “Chameleon-vision” with a capital ‘C’ and not “chameleon-vision” like the docs show.
Can you read the data with OutlineViewer?
OutlineViewer is a simple java program that comes with WPI and it can show all of the networktable data. Just seach it on your Driver Station computer

You can join our Discord server to get even faster support from the developers and chameleon vision users

Right, sorry I forgot to mention that earlier; we tried both capitalizations but neither worked. However, that may have been before we set up the netmask and gateway (I can’t remember now), so I’ll try again once I have access to it. I didn’t realize OutlineViewer came with the driver station, I’ll try it and send a picture.

The reason we moved to a capital C is because the “Hostname” field on the Chameleon webserver also used one.

I would also add that you can see all the network tables data in the FRC LabVIEW Dashboard, and I would check there first if the names you are trying to fetch do exist:

Upon further research, it appears OutlineViewer is only included in C++ and Java installs, which explains why I wasn’t able to find it. According to WPI, the “Variables” tab of the LabView dashboard has the same functionality, so I used that:

(Also thanks to @oscarfonloz who suggested the same)

I tried changing the path to use a lowercase C, with no success. This is what the LabView code looks like now:

The terminal window I ran the Chameleon server on spit out some errors which appeared to be related to the network tables as well:

I also tried shutting down the chameleon server, running code on and enabling the robot, and starting the server again, which added a network table (I assume) at 10.54.13.2, but we still weren’t able to access any data (pictured below).

Based on what you are describing and the screenshots you publish, I agree that the RPi is not connecting to the NT Tables, and therefore we cannot read them from LabVIEW or from the LabVIEW Dashboard’s variables tab.

I recommend you focus first in having a successful NT connection in your Chameleon server, and then adding the LabVIEW portion to read from them.

Hey, I just saw that you joined our Discord, so I sent you a message there, but I’ll reiterate here as well.

That NT Connection Failed message means it couldn’t connect to your roboRIO’s NT server. You do have to have the Raspberry Pi on the robot network, with some user code loaded on the roboRIO. That will make the NT server available. Be sure you have set your team number correctly in the Settings tab, and then restart the program.

if you have any more questions, please feel free to ask in our Discord. It’s easier to get to me there :slight_smile:

Ahh, that solved it, thanks! I talked to @agranight on the Chameleon discord server, and was able to get it working. I didn’t realize how important it is to have code runninng on the robot before starting the Chameleon server on the RPi. I didn’t notice anything about this in the documentation, so I’ll make a suggestion about it.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.