Vision Sensor API to Disable Auto-Exposure

Adjusting the color & brightness values for a color signature has been very frustrating for my 120+ students (this year and the prior). Color signatures set while the sensor on their robot is by their workstation won’t work when the robot is placed in the test environment.

Steps to reproduce:

  1. Place an object on a dark wood benchtop and set a good color signature in the Vision Utility.
  2. Pick up the object and cover the benchtop with white papers (or vex iq field pieces) then place the object back in the same place.
  3. The sensor darkens everything and the object won’t be detected!

Can a checkbox be added to the vision utility for Auto-exposure to be enabled/disabled and a slider (like brightness) to set a consistent value?

Or, can set_auto_exposure(), get_exposure(), and set_exposure() be added to the VEXcode text APIs?

The above steps are contrived, but it happens day-in and day-out. Students set color signatures by their work station and then place their devices in the test field and color signatures fail to detect. The camera is making significant adjustments that are having a negative effect. A fixed brightness and exposure would allow students to notice the darkness of the video in the Vision Utility so they can adapt their environment.

set/get Exposure in ProS: Vision Sensor C++ API — PROS for V5 3.8.0 documentation

1 Like

As far as I remember, we have no control over the auto exposure setting inside the vision sensor.

set_exposure()
get_exposure()
in PROS coresponds to

setBrightness()
getBrightness()
in VEXcode (perhaps different scaling, looks like PROS adds an offset)

I see no set_auto_exposure() in the current PROS API, only set_auto_white_balance() which is different.
(and is setWhiteBalanceMode() in VEXcode.)

but I’ll do some more research when I get a chance.

7 Likes

Thanks! I would really appreciate it, and will keep my fingers crossed.

(Interesting about the PROS confluence of brightness and exposure.)

I don’t know if it helps any, but the original Pixy (v1) supported adjusting the exposure (diff from brightness): pixy.h File Reference

1 Like

sure, but only a limited subset of commands is available in the V5 and IQ communication protocol.

5 Likes

only a limited subset of commands is available in the V5 and IQ communication protocol

Even if the vision-brain communication protocol doesn’t have room for disabling/enabling the auto_exposure could the USB protocol modify it in the Vision Utility while plugged directly in to the vision sensor?

During development of a program that uses the vision sensor, students connect with USB to the vision sensor lots of times, especially when trying to understand why “it isn’t seeing something it used to see” :frowning:

1 Like