Braiteoir Fís AI#
Réamhrá#
Úsáidtear an rang aivision chun sonraí a rialú agus rochtain a fháil orthu ón Braiteoir Fís AI V5. Is féidir leis an Braiteoir Fís AI na nithe seo a leanas a bhrath:
Aicmithe AI (amhail réada cluiche)
Aitheantóirí Clibeanna Aibreáin
Sínithe Dath Saincheaptha
Cóid Dath Saincheaptha
Soláthraíonn sé sonraí réada lena n-áirítear suíomh, méid, treoshuíomh, aitheantóir aicmithe, agus scór muiníne.
Próiseálann an braiteoir faisnéis amhairc ag baint úsáide as samhail AI ar bord atá roghnaithe san Fóntas Fís AI laistigh de VEXcode. Cinneann an tsamhail roghnaithe cé na hAicmithe AI is féidir leis an braiteoir a bhrath. Agus Cód VS á úsáid, ní mór an tsamhail AI a chumrú ar dtús i VEXcode sula bhféadfar í a úsáid i do chlár. Seoltar réada braite tríd an eagar objects tar éis takeSnapshot a ghlaoch.
Tógálaithe Ranga#
aivision(
int32_t index,
Args&... sigs );
Paraiméadair#
Paraiméadar |
Cineál |
Cur síos |
|---|---|---|
|
|
An Port Cliste a bhfuil an Braiteoir Fís AI ceangailte leis, scríofa mar |
|
|
Cineál braite amháin nó níos mó le clárú leis an braiteoir:
|
Samhlacha agus Aicmithe AI#
Is féidir leis an Braiteoir Fís AI rudaí éagsúla a bhrath le hAicmithe AI áirithe. Ag brath ar an tsamhail Aicmithe AI a roghnaítear agus an Braiteoir Fís AI á chumrú sa fhuinneog Gléasanna, is féidir rudaí éagsúla a bhrath. Is iad seo a leanas na samhlacha atá ar fáil faoi láthair:
Eilimintí an tSeomra Ranga
Uimhir Aitheantais |
Aicmiú AI |
|---|---|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
Comórtas Róbataice VEX V5 Ard-Geallta
Uimhir Aitheantais |
Aicmiú AI |
|---|---|
0 |
|
1 |
|
2 |
|
Brú Ar Ais ar Chomórtas Róbataice VEX V5
Uimhir Aitheantais |
Aicmiú AI |
|---|---|
0 |
|
1 |
|
Sárú Comórtais Róbataice VEX V5
Uimhir Aitheantais |
Aicmiú AI |
|---|---|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
Samplaí#
// Create Color Signatures
aivision::colordesc AIVision1__greenBox(
1, // index
85, // red
149, // green
46, // blue
23, // hangle
0.23 ); // hdsat
aivision::colordesc AIVision1__blueBox(
2, // index
77, // red
135, // green
125, // blue
27, // hangle
0.29 ); // hdsat
// Create a Color Code from two color signatures
aivision::codedesc AIVision1__greenBlue(
1, // code index
AIVision1__greenBox, // first color signature
AIVision1__blueBox ); // second color signature
// Create the AI Vision Sensor instance
aivision AIVision1(
PORT11, // Smart Port
AIVision1__greenBlue, // color code
aivision::ALL_AIOBJS ); // enable AI Classifications
Feidhmeanna na mBall#
Áirítear leis an rang aivision na feidhmeanna ball seo a leanas:
takeSnapshot— Gabhann sé sonraí le haghaidh Síniú Dath, Cód Dath, grúpa Aicmithe AI, nó grúpa ID AprilTag ar leith.installed— Tugann sé seo ar ais an bhfuil an Braiteoir Fís AI ceangailte leis an V5 Brain.
Chun rochtain a fháil ar shonraí réada braite tar éis glaoch ar takeSnapshot, bain úsáid as na Airíonna atá ar fáil.
Sula nglaotar ar aon fheidhmeanna aivision , ní mór sampla aivision a chruthú, mar a thaispeántar thíos:
/* This constructor is required when using VS Code.
AI Vision Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create Color Signatures
aivision::colordesc AIVision1__greenBox(
1, // index
85, // red
149, // green
46, // blue
23, // hangle
0.23 ); // hdsat
aivision::colordesc AIVision1__blueBox(
2, // index
77, // red
135, // green
125, // blue
27, // hangle
0.29 ); // hdsat
// Create a Color Code from two color signatures
aivision::codedesc AIVision1__greenBlue(
1, // code index
AIVision1__greenBox, // first color signature
AIVision1__blueBox ); // second color signature
// Create the AI Vision Sensor instance
aivision AIVision1(
PORT1, // Smart Port
AIVision1__greenBlue, // color code
aivision::ALL_AIOBJS ); // enable AI Classifications
takeSnapshot#
Gabhann sé íomhá ón Braiteoir Fís AI, próiseálann sé í ag baint úsáide as an tsamhail AI roghnaithe nó sínithe datha cumraithe, agus nuashonraíonn sé an eagar objects.
Athnuachanann gach glao an eagar objects leis na torthaí braite is déanaí. Ordaítear réada ón gceann is mó go dtí an ceann is lú (de réir leithead), ag tosú ag innéacs 0Mura mbraitear aon réada, beidh objectCount cothrom le 0 agus beidh objects[i].exists cothrom le false.
1 — Tógann sé pictiúr den íomhá ag baint úsáide as aitheantóir réada agus cineál réada.
int32_t takeSnapshot( uint32_t id, objectType type, uint32_t count );
2 — Glacann sé pictiúr pictiúrtha ag baint úsáide as Síniú Datha.
int32_t takeSnapshot( const colordesc &desc, int32_t count = 8 );
3 — Glacann sé pictiúr pictiúr ag baint úsáide as Cód Datha.
int32_t takeSnapshot( const codedesc &desc, int32_t count = 8 );
4 — Glacann sé pictiúr pictiúrtha ag baint úsáide as AprilTag ID.
int32_t takeSnapshot( const tagdesc &desc, int32_t count = 8 );
5 — Glacann sé pictiúr pictiúrtha ag baint úsáide as Aicmiú AI.
int32_t takeSnapshot( const aiobjdesc &desc, int32_t count = 8 );
Parameters6 — Tógann sé pictiúr den íomhá ag baint úsáide as Tuairisceoir Réada.
int32_t takeSnapshot( const objdesc &desc, int32_t count = 8 );
Paraiméadar |
Cineál |
Cur síos |
|---|---|---|
|
|
Aitheantóir an réada atá le braith agus an fheidhm
Nóta: I VEXcode, féadfar ainmneacha Aicmithe AI (mar shampla blueBall) a úsáid go díreach. I VS Code, ní mór an t-aitheantas uimhriúil a úsáid. |
|
|
Sonraíonn sé an chatagóir réada a bhaineann le
|
|
|
Descriptor used to detect a specific object. Passed directly to
|
|
|
Uasmhéid na n-ábhar atá stóráilte ón ngrianghraf. Is é 8 an réamhshocrú. |
Luachanna Fillte
Tugann sé int32_t a léiríonn líon na réad braite a mheaitseálann an síniú nó an cineál braite sonraithe.
Nótaí
Caithfidh an Braiteoir Fís AI pictiúr den réad a thógáil sula bhféadfar rochtain a fháil ar shonraí réada.
Déantar an t-eagar
objectsa athnuachan ar gach glao.Nuair a shonraítear
count, ní stóráiltear ach na réada braite is mó (suas go dtí an méid sonraithe).
Braitheann Aicmithe AI ar an tsamhail a roghnaítear san AI Vision Utility i VEXcode.
Samplaí
// Move forward if an object is detected
while (true) {
AIVision1.takeSnapshot(aivision::ALL_AIOBJS);
if (AIVision1.objects[0].exists) {
Drivetrain.driveFor(forward, 50, mm);
}
wait(50, msec);
}
installed#
Tugann sé seo ar ais an bhfuil an Braiteoir Fís AI ceangailte leis an V5 Brain.
Feidhmeanna atá ar Fáil
bool installed();
Paraiméadair
Ní ghlacann an fheidhm seo aon pharaiméadair.
Luachanna Fillte
Tugann sé seo luach Boolean ar ais a léiríonn an bhfuil an Braiteoir Fís AI ceangailte:
true— Tá an Braiteoir Fís AI ceangailte.false— Níl an Braiteoir Fís AI ceangailte.
// Display a message if the AI Vision Sensor is connected
if (AIVision1.installed()){
Brain.Screen.print("Installed!");
}
Airíonna#
Nuashonraítear torthaí braite Braiteoir Fís AI nuair a ghlaotar ar takeSnapshot. Athnuachanaítear an eagar objects le gach pictiúr, ina bhfuil réada braite don Aicmiú AI, don Síniú Dath, don Chód Dath, nó don Aitheantas AprilTag a iarradh.
Rochtainítear sonraí AI Vision trí airíonna réad atá stóráilte in AIVisionSensor.objects[index], áit a dtosaíonn index ag 0.
Tá rudaí in ord ón gceann is mó go dtí an ceann is lú (de réir achair).
Is é 320 × 240 picteilíntaifeach íomhá an Braiteora Fís AI. Tuairiscítear luachanna suíomh agus méid an réada in aonaid picteilín i gcoibhneas le radharc reatha an braiteora.
Tá na maoine seo a leanas ar fáil:
objectCount— Tugann sé seo líon na réad a braitheadh ón ngrianghraf is déanaí ar ais.largestObject— Roghnaíonn sé an réad is mó a braitheadh ón ngrianghraf is déanaí.objects— Eagar ina bhfuil réada braite nuashonraithe agtakeSnapshot..exists— Cibé acu an bhfuil sonraí bailí san iontráil réada..width— Leithead an réada braite i bpicteilíní..height— Airde an réada braite i bpicteilíní..centerX— Suíomh X lár an réada i bpicteilíní..centerY— Suíomh Y lár an réada i bpicteilíní..originX— Suíomh X chúinne uachtarach na láimhe clé den réada i bpicteilíní..originY— Suíomh Y chúinne uachtarach na láimhe clé den réada i bpicteilíní..angle— Treoshuíomh Cód Dathanna nó ID AprilTag i gcéimeanna..id— Classification ID or AprilTag ID..score— Scór muiníne le haghaidh Aicmithe AI.
objectCount#
objectCount tugann sé líon na míreanna laistigh den eagar objects ar ais mar shlánuimhir.
AIVisionSensor.objectCount
Comhpháirt |
Cur síos |
|---|---|
|
Ainm d’eispéireas Braiteora Fís AI. |
Samplaí
// Display the number of detected objects
while (true) {
Brain.Screen.setCursor(1, 1);
Brain.Screen.clearLine(1);
AIVision1.takeSnapshot(aivision::ALL_AIOBJS);
if (AIVision1.objects[0].exists) {
Brain.Screen.print("%d", AIVision1.objectCount);
}
wait(50, msec);
}
largestObject#
largestObject a aisghabhann an réad is mó a braitheadh ón eagar objects.
Is féidir an modh seo a úsáid chun an réad is mó a fháil i gcónaí ó objects gan innéacs a shonrú.
AIVisionSensor.largestObject
Comhpháirt |
Cur síos |
|---|---|
|
Ainm d’eispéireas Braiteora Fís AI. |
Samplaí
// Display the closest AprilTag ID
while (true) {
Brain.Screen.setCursor(1, 1);
Brain.Screen.clearLine(1);
AIVision1.takeSnapshot(aivision::ALL_TAGS);
if (AIVision1.objects[0].exists) {
Brain.Screen.print("%d", AIVision1.largestObject.id);
}
wait(50, msec);
}
objects#
objects tugann sé sraith d’airíonna réada braite ar ais. Úsáid an tsraith chun rochtain a fháil ar luachanna airíonna sonracha réada aonair.
Tá deich n-airíonna san áireamh le gach réad atá stóráilte san eagar objects tar éis takeSnapshot a úsáid.
Déanann gach luach maoine seachas id agus score cur síos ar shuíomh agus méid an réada braite i radharc Braiteoir Fís AI ag an nóiméad takeSnapshot Tomhaistear na luachanna seo i bpicteilíní, bunaithe ar réiteach 320 faoi 240 picteilín an braiteora.
AIVisionSensor.objects[index].property
Comhpháirt |
Cur síos |
|---|---|
|
Ainm d’eispéireas Braiteora Fís AI. |
|
Innéacs an réada san eagar. Tosaíonn an t-innéacs ag |
|
Ceann de na airíonna réada atá ar fáil. |
ann#
.exists tugann sé seo ar ais an bhfuil réad bailí braite san innéacs réada sonraithe.
Rochtain
SensorName.objects[index].exists
Luachanna Fillte
Tugann sé seo luach Booleánach ar ais a léiríonn an bhfuil réad bailí braite san innéacs réada sonraithe:
-
true— A valid object exists at the specified index. -
false— No object exists at the specified index.
Samplaí
// Move forward if an object is detected
while (true) {
AIVision1.takeSnapshot(aivision::ALL_AIOBJS);
if (AIVision1.objects[0].exists) {
Drivetrain.driveFor(forward, 50, mm);
}
wait(50, msec);
}
.leithead#
Tugann .width leithead an réada braite ar ais.
Rochtain
SensorName.objects[index].width
Luachanna Fillte
Tugann sé int16_t a léiríonn leithead an réada braite i bpicteilíní. Tá an luach idir 1 agus 320.
Samplaí
// Approach an object until it's at least 100 pixels wide
while (true) {
AIVision1.takeSnapshot(aivision::ALL_AIOBJS);
if (AIVision1.objects[0].exists) {
if (AIVision1.objects[0].width < 100) {
Drivetrain.drive(forward);
} else {
Drivetrain.stop();
}
} else {
Drivetrain.stop();
}
wait(50, msec);
}
airde#
.height tugann sé airde an réada braite ar ais.
Rochtain
SensorName.objects[index].height
Luachanna Fillte
Tugann sé int16_t a léiríonn airde an réada braite i bpicteilíní. Tá an luach idir 1 agus 240.
Samplaí
// Approach an object until it's at least 90 pixels tall
while (true) {
AIVision1.takeSnapshot(aivision::ALL_AIOBJS);
if (AIVision1.objects[0].exists) {
if (AIVision1.objects[0].height < 90) {
Drivetrain.drive(forward);
} else {
Drivetrain.stop();
}
} else {
Drivetrain.stop();
}
wait(50, msec);
}
.centerX#
.centerX tugann sé comhordanáid-x lár an réada braite ar ais.
Rochtain
SensorName.objects[index].centerX
Luachanna Fillte
Tugann sé int16_t ar ais a léiríonn comhordanáid-x lár an réada i bpicteilíní. Tá an luach idir 0 agus 320.
Samplaí
// Turn until an object is directly in front of the sensor
Drivetrain.setTurnVelocity(10, percent);
Drivetrain.turn(right);
while (true) {
AIVision1.takeSnapshot(aivision::ALL_AIOBJS);
if (AIVision1.objects[0].exists) {
if (AIVision1.objects[0].centerX > 140 && AIVision1.objects[0].centerX < 180) {
Drivetrain.stop();
}
}
wait(10, msec);
}
.centerY#
.centerY tugann sé comhordanáid-y lár an réada braite ar ais.
Rochtain
SensorName.objects[index].centerY
Luachanna Fillte
Tugann sé int16_t ar ais a léiríonn comhordanáid y lár an réada i bpicteilíní. Tá an luach idir 0 agus 240.
Samplaí
// Approach an object until it's close to the sensor
while (true) {
AIVision1.takeSnapshot(aivision::ALL_AIOBJS);
if (AIVision1.objects[0].exists) {
if (AIVision1.objects[0].centerY < 150) {
Drivetrain.drive(forward);
} else {
Drivetrain.stop();
}
} else {
Drivetrain.stop();
}
wait(50, msec);
}
.uillinn#
Tugann .angle treoshuíomh an Chóid Dathanna nó ID AprilTag braite ar ais.
Rochtain
SensorName.objects[index].angle
Luachanna Fillte
Returns a float representing the rotation of the detected Color Code or AprilTag ID in degrees. The value ranges from 0 to 359.9.
Samplaí
// Turn left or right depending on how a configured
// Color Code is rotated
while (true) {
AIVision1.takeSnapshot(AIVision1__redBlue);
if (AIVision1.objects[0].exists) {
if (AIVision1.objects[0].angle > 50 && AIVision1.objects[0].angle < 100) {
Drivetrain.turn(right);
}
else if (AIVision1.objects[0].angle > 270 && AIVision1.objects[0].angle < 330) {
Drivetrain.turn(left);
}
else {
Drivetrain.stop();
}
} else {
Drivetrain.stop();
}
wait(50, msec);
}
.originX#
.originX tugann sé comhordanáid-x chúinne uachtarach na láimhe clé de bhosca teorann an réada braite ar ais.
Rochtain
SensorName.objects[index].originX
Luachanna Fillte
Tugann sé int16_t ar ais a léiríonn comhordanáid-x bhunphointe bosca teorann an réada i bpicteilíní. Tá an luach idir 0 agus 320.
Samplaí
// Display if an object is to the left or the right
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
AIVision1.takeSnapshot(aivision::ALL_AIOBJS);
if (AIVision1.objects[0].exists) {
if (AIVision1.objects[0].originX < 120) {
Brain.Screen.print("To the left!");
} else {
Brain.Screen.print("To the right!");
}
} else {
Brain.Screen.print("No objects");
}
wait(100, msec);
}
.bunúsY#
.originY tugann sé comhordanáid-y chúinne uachtarach na láimhe clé de bhosca teorann an réada braite ar ais.
Rochtain
SensorName.objects[index].originY
Luachanna Fillte
Tugann sé int16_t ar ais a léiríonn comhordanáid-y bhunphointe bosca teorann an réada i bpicteilíní. Tá an luach idir 0 agus 240.
Samplaí
// Display if an object is close or far
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
AIVision1.takeSnapshot(aivision::ALL_AIOBJS);
if (AIVision1.objects[0].exists) {
if (AIVision1.objects[0].originY < 110) {
Brain.Screen.print("Close");
} else {
Brain.Screen.print("Far");
}
}
wait(100, msec);
}
.id#
Tugann .id an t-aitheantas AprilTag nó an t-aitheantas aicmithe AI a braitheadh ar ais.
Rochtain
SensorName.objects[index].id
Luachanna Fillte
Tugann sé int32_t a léiríonn aitheantóir an réada braite:
I gcás Aicmithe AI, comhfhreagraíonn sé seo don ID atá sainmhínithe ag an samhail AI roghnaithe.
I gcás aitheantóirí AprilTag, seasann sé seo don uimhir aitheantais AprilTag a braitheadh (0–36).
Samplaí
// Move forward when AprilTag ID 1 is detected
while (true) {
AIVision1.takeSnapshot(aivision::ALL_TAGS);
if (AIVision1.objects[0].exists) {
if (AIVision1.objects[0].id == 1) {
Drivetrain.drive(forward);
}
} else {
Drivetrain.stop();
}
wait(50, msec);
}
.scór#
.score tugann sé scór muiníne an Aicmithe AI a braitheadh ar ais.
Rochtain
SensorName.objects[index].score
Luachanna Fillte
Tugann sé int16_t ar ais a léiríonn scór muiníne an Aicmithe AI braite idir 1 agus 100.
Ciallaíonn scór níos ísle go bhfuil an braiteoir níos lú muiníne faoin réad a braitheadh, agus ciallaíonn scór níos airde go bhfuil an braiteoir níos muiníní.
Samplaí
// Display if a score is confident
while (true) {
AIVision1.takeSnapshot(aivision::ALL_AIOBJS);
if (AIVision1.objects[0].exists) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
if (AIVision1.objects[0].score > 95) {
Brain.Screen.print("Confident");
} else {
Brain.Screen.print("Not confident");
}
}
wait(50, msec);
}
