Vision Sensor Idea/Request

With a Vision Sensor plugged into a V5, the “Device Info” screen allows you to see a real-time view of the objects it detects in Red/Green/Blue/Yellow. If you haven’t see this, it’s really very cool!

Would it be possible to add to the VEXcode Vision Utility the option to set SIG_1/SIG_2/SIG_3/SIG_4 to the same Red/Green/Blue/Yellow settings that “Device Info” uses? (please)

Around this time each year, I attempt to use the Vision Sensor with my ~90 Intro Computer Science students… Exploring Image Processing and creating algorithms based on visual data is exciting. However, this can be challenging, frustrating, and disheartening for students trying to endlessly tweak the color signatures. The complications increase with the vision sensor on a moving robot adding significant variation to what the camera sees.

If the color signatures matched the built-in ones, there would be an on-the-spot way to view what the camera is detecting. Plugging the camera in via USB and using the Vision Utility helps students understand what is being seen/detected, but the robot is not always within range of the USB-to-computer cord length.

you can always bring up the dashboard while the user program is running and then it will show what is being detected with signatures set by the program (the Signature ID button will be enabled to select between them) The defaults for the dashboard when code is not running I posted here

3 Likes

:star_struck: When the program is running the buttons change…

becomes…

The “Devices” button allows looking at the camera.

Thank you for pointing this out. I showed this to my students yesterday. Very nice!

Thanks, but without this, that isn’t usable in Blocks.

Yes I am Aware that this is a V5 Thread, But I thought It would be better to add to this thread then to create another, seeing the premise is in practice very similar.

Would it be possible to be able to broadcast the vision sensor’s view to a webpage similar to the V5 brain can in VexIQ? Seeing as Gen2 has Bluetooth that might be a way to access something like this, or if this is not possible, can we have a setting to give a downgraded view on the screen? I am tired of having to strap a V5 Brain to my robot and another vision sensor in order to view a similar perspective of what the Vision sensor sees, this would be while a script is running.

Thanks!

Turn on WiFi for the vision sensor from your code and then connect to it from a laptop.
for example,

Vision1.setWifiMode(vision::wifiMode::on);
4 Likes

I went to test it on my brain and it did not work, just clarifying this is a VexIQ Thing Right? I added to this post to not be as repetitive, so if that is the case I apologies. If you are referring to VexIQ are you using VexCodeIQ, or the VS Code extension?

Thanks!
Blaziumm

I just verified with IQ gen 1 brain, works fine here, connect to the new wifi network the vision sensor advertizes and then goto http://192.168.1.1 with web browser.

This was test code
#pragma region VEXcode Generated Robot Configuration
// Make sure all required headers are included.
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
#include <string.h>


#include "vex.h"

using namespace vex;

// Brain should be defined by default
brain Brain;


// START IQ MACROS
#define waitUntil(condition)                                                   \
  do {                                                                         \
    wait(5, msec);                                                             \
  } while (!(condition))

#define repeat(iterations)                                                     \
  for (int iterator = 0; iterator < iterations; iterator++)
// END IQ MACROS


// Robot configuration code.
/*vex-vision-config:begin*/
vision::signature Vision1__SIG_1 = vision::signature (1, 6695, 9305, 8000,-2073, -449, -1261,2.5, 0);
vision Vision1 = vision (PORT1, 50, Vision1__SIG_1);
/*vex-vision-config:end*/
#pragma endregion VEXcode Generated Robot Configuration

//----------------------------------------------------------------------------
//                                                                            
//    Module:       main.cpp                                                  
//    Author:       {author}                                                  
//    Created:      {date}                                                    
//    Description:  IQ project                                                
//                                                                            
//----------------------------------------------------------------------------

// Include the IQ Library
#include "iq_cpp.h"

// Allows for easier use of the VEX Library
using namespace vex;

int main() {
  // Begin project code
  Vision1.setWifiMode( vision::wifiMode::on );
  
  while(1) {
    this_thread::sleep_for(10);
  }
}

One thing to note, when wifi has been turned on it will stay on until turned off again. If you are attending worlds, please make sure it has been turned off. The V5 will do this automatically when it detects field control, but the IQ has no concept of a competition match, so cannot do that.

3 Likes