AI Vision#
Introduction#
The AI Vision Sensor enable robots to detect and track visual information in their environment. By identifying objects, colors, and patterns, the AI Vision Sensor allows robots to analyze their surroundings and respond to what they see.
For the examples below, the configured AI Vision Sensor will be named AIVision1
, and the configured Color Signature objects, such as redBox
, will be used in all subsequent examples throughout this API documentation when referring to aivision
class methods.
Below is a list of all methods:
Getters
takeSnapshot – Captures data for a specific Color Signature or Color Code.
objectCount – Returns the number of detected objects as an integer.
largestObject – Immediately select the largest object from the snapshot.
installed – Whether the AI Vision Sensor is connected to the V5 Brain.
Properties – Object data returned from takeSnapshot.
.exists – Whether the object exists in the current detection as a Boolean.
.width – Width of the detected object in pixels.
.height – Height of the detected object in pixels.
.centerX – X position of the object’s center in pixels.
.centerY – Y position of the object’s center in pixels.
.angle – Orientation of the Color Code in degrees.
.originX – X position of the object’s top-left corner in pixels.
.originY – Y position of the object’s top-left corner in pixels.
.id – Classification or tag ID of the object.
.score – Confidence score for AI Classifications (1–100).
Constructors – Manually initialize and configure the sensors.
aivision – Creates an AI Vision Sensor.
aivision::colordesc – Creates a Color Signature.
aivision::codedesc – Creates a Color Code.
takeSnapshot#
takeSnapshot
captures an image from the AI Vision Sensor, processes it based on the signature, and updates the objects
array. This method can also limit the amount of objects captured in the snapshot.
Color Signatures and Color Codes must be configured first in the Vision Utility before they can be used with this method.
The objects
array stores objects ordered from largest to smallest by width, starting at index 0. Each object’s properties can be accessed using its index. objects
is an empty array if no matching objects are detected.
Default Usage:
AIVision1.takeSnapshot(signature)
Overloads:
AIVision1.takeSnapshot(signature, count)
Parameters |
Description |
---|---|
|
What signature to get data of.
|
|
Optional. Sets the maximum number of objects that can be returned from 1 to 24 (default: 8). |
// Example coming soon
AI Classifications#
The AI Vision Sensor can detect different objects under certain AI Classifications. Depending on the AI Classification model selected when configuring the AI Vision Sensor in the Devices window, different objects can be detected. The currently available models are:
Classroom Elements
| ID Number | AI Classification |
| 0 | blueBall
|
| 1 | greenBall
|
| 2 | redBall
|
| 3 | blueRing
|
| 4 | greenRing
|
| 5 | redRing
|
| 6 | blueCube
|
| 7 | greenCube
|
| 8 | redCube
|
V5RC High Stakes
|:——————:|–|
| ID Number | AI Classification |
| 0 | mobileGoal
|
| 1 | redRing
|
| 2 | blueRing
|
V5RC Push Back
|:——————:|–|
| ID Number | AI Classification |
| 0 | blueBlock
|
| 1 | redBlock
|
// Example coming soon
Color Signatures#
A Color Signature is a unique color that the AI Vision Sensor can recognize. These signatures allow the AI Vision Sensor to detect and track objects based on their color. Once a Color Signature is configured, the sensor can identify objects with that specific color in its field of view. Color signatures are used with takeSnapshot to process and detect colored objects in real-time.
In order to use a configured Color Signature in a project, its name must be the name of the sensor, two underscores, and then the Color Signature’s name. For example: AIVision1__redBox
.
// Example coming soon
Color Codes#
A Color Code is a structured pattern made up of color signatures arranged in a specific order. These codes allow the Vision Sensor to recognize predefined patterns of colors. Color codes are useful for identifying complex objects or creating unique markers for autonomous navigation.
To use a configured Color Code in a project, its name must be passed as a string in the format: the Vision Sensor’s name, followed by two underscores, and then the Color Code’s name. For example: AIVision1__redBlue
.
// Example coming soon
objectCount#
objectCount
returns the number of items inside the objects
array as an integer.
Default Usage:
AIVision1.objectCount
Parameters |
Description |
---|---|
This method has no parameters. |
// Example coming soon
largestObject#
largestObject
retrieves the largest detected object from the objects
array.
This method can be used to always get the largest object from objects
without specifying an index.
Default Usage:
AIVision1.largestObject
Parameters |
Description |
---|---|
This method has no parameters. |
// Example coming soon
installed#
installed
returns an integer indicating whether the AI Vision Sensor is currently connected to the V5 Brain.
1
– The AI Vision Sensor is connected to the V5 Brain.0
– The AI Vision Sensor is not connected to the V5 Brain.
Parameters |
Description |
---|---|
This method has no parameters. |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Display a message if the AI Vision Sensor is detected
if (AIVision1.installed()){
Brain.Screen.print("Installed!");
}
}
objects#
objects
returns an array of detected object properties. Use the array to access specific property values of individual objects.
Default Usage:
AIVision1.objects
Properties#
There are ten properties that are included with each object stored in the objects
array after takeSnapshot
is used.
Some property values are based off of the detected object’s position in the Vision Sensor’s view at the time that takeSnapshot
was used. The AI Vision Sensor has a resolution of 320 by 240 pixels.
.exists#
.exists
returns an integer indicating if the index exists in the objects
array or not.
1
: The index exists.0
: The index does not exist.
// Example coming soon
.width#
.width
returns the width of the detected object in pixels, which is an integer between 1 and 320.
// Example coming soon
.height#
.height
returns the height of the detected object in pixels, which is an integer between 1 and 240.
// Example coming soon
.centerX#
.centerX
returns the x-coordinate of the detected object’s center in pixels, which is an integer between 0 and 320.
// Example coming soon
.centerY#
.centerY
returns the y-coordinate of the detected object’s center in pixels, which is an integer between 0 and 240.
// Example coming soon
.angle#
.angle
returns the orientation of the detected Color Code or AprilTag in degrees, which is a double between 0 and 360.
// Example coming soon
.originX#
.originX
returns the x-coordinate of the top-left corner of the detected object’s bounding box in pixels, which is an integer between 0 and 320.
// Example coming soon
.originY#
.originY
returns the y-coordinate of the top-left corner of the detected object’s bounding box in pixels, which is an integer between 0 and 240.
// Example coming soon
.id#
.id
returns the ID of the detected AI Classification or AprilTag as an integer.
For AI Classifications, see the AI Classification tables for the corresponding IDs.
For an AprilTag, the .id property represents the detected AprilTag’s ID number in the range of 0 to 36. For an AI Classification, the id corresponds to the predefined id as shown below.
// Example coming soon
.score#
.score
returns the confidence score of the detected AI Classification as an integer between 1 and 100.
// Example coming soon
Constructors#
Constructors are used to manually create aivision
, colordesc
, and codedesc
objects, which are necessary for configuring the AI Vision Sensor outside of VEXcode. If fewer arguments are provided, default arguments or function overloading should be used in the constructor definition.
AI Vision Sensor#
aivision
creates an AI Vision Sensor.
Default Usage:
aivision( int32_t index, uint8_t bright, Args &... sigs )
Parameters |
Description |
---|---|
|
Which Smart Port the AI Vision Sensor is connected to, from 1 to 12. |
|
Optional. The name of one or more signatures:
|
// Example coming soon
Color Signature#
colordesc
creates a Color Signature. Up to seven different Color Signatures can be stored on an AI Vision Sensor at once.
Default Usage:
colordesc(index, uMin, uMax, uMean, vMin, vMax, vMean, rgb, type)
Parameter |
Description |
---|---|
|
The |
|
The value from |
|
The value from |
|
The value from |
|
The value from |
|
The value from |
|
The value from |
|
The value from |
|
The value from |
In order to obtain the values to create a Color Signature, go to the Vision Utility. Once a Color Signature is configured, copy the parameter values from the Configuration window.
// Example coming soon
Color Code#
codedesc
creates a Color Code. It requires at least two already defined Color Signatures in order to be used. Up to eight different Color Codes can be stored on an AI Vision Sensor at once.
Default Usage:
codedesc(sig1, sig2)
Overloads:
codedesc(sig1, sig2, sig3)
codedesc(sig1, sig2, sig3, sig4)
codedesc(sig1, sig2, sig3, sig4, sig5)
Parameters |
Description |
---|---|
|
A previously created |
|
A previously created |
|
A previously created |
|
A previously created |
|
A previously created |
// Example coming soon