എഐ വിഷൻ#
ആമുഖം#
വസ്തുക്കൾ, നിറങ്ങൾ, ഏപ്രിൽടാഗ് ഐഡികൾ എന്നിവ കണ്ടെത്താനും ട്രാക്ക് ചെയ്യാനും AI വിഷൻ സെൻസറിന് കഴിയും. ഇത് റോബോട്ടിനെ അതിന്റെ ചുറ്റുപാടുകൾ വിശകലനം ചെയ്യാനും, വസ്തുക്കളെ പിന്തുടരാനും, കണ്ടെത്തിയ ദൃശ്യ ഡാറ്റയെ അടിസ്ഥാനമാക്കി പ്രതികരിക്കാനും അനുവദിക്കുന്നു.
ഈ പേജിൽ AI വിഷൻ സെൻസർ, കളർ സിഗ്നേച്ചർ, കളർ കോഡ് പേരുകൾ എന്നിവയ്ക്ക് യഥാക്രമം ai_vision_1, RED_BOX, BOX_CODE എന്നിവ ഉപയോഗിക്കുന്നു. ആവശ്യാനുസരണം അവ നിങ്ങളുടെ സ്വന്തം കോൺഫിഗർ ചെയ്ത പേരുകൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക.
എല്ലാ രീതികളുടെയും ഒരു ലിസ്റ്റ് താഴെ കൊടുക്കുന്നു:
ഗെറ്ററുകൾ – AI വിഷൻ സെൻസറിൽ നിന്ന് ഡാറ്റ നേടുക.
take_snapshot– ഒരു പ്രത്യേക ഒപ്പിനായി ഡാറ്റ പിടിച്ചെടുക്കുന്നു.installed– AI വിഷൻ സെൻസർ EXP ബ്രെയിനുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന്.
പ്രോപ്പർട്ടികൾ – take_snapshot ൽ നിന്ന് ലഭിച്ച ഒബ്ജക്റ്റ് ഡാറ്റ.
.exists– നിലവിലെ ഡിറ്റക്ഷനിൽ വസ്തു നിലവിലുണ്ടോ എന്ന്..width– കണ്ടെത്തിയ വസ്തുവിന്റെ വീതി..height– കണ്ടെത്തിയ വസ്തുവിന്റെ ഉയരം..centerX– വസ്തുവിന്റെ കേന്ദ്രത്തിന്റെ X സ്ഥാനം..centerY– വസ്തുവിന്റെ കേന്ദ്രത്തിന്റെ Y സ്ഥാനം..angle– Orientation of the Color Code..originX– വസ്തുവിന്റെ മുകളിൽ ഇടത് മൂലയുടെ X സ്ഥാനം..originY– വസ്തുവിന്റെ മുകളിൽ ഇടത് മൂലയുടെ Y സ്ഥാനം..id– വസ്തുവിന്റെ വർഗ്ഗീകരണം അല്ലെങ്കിൽ ടാഗ് ഐഡി..score– AI ക്ലാസിഫിക്കേഷനുകൾക്കുള്ള കോൺഫിഡൻസ് സ്കോർ.
കൺസ്ട്രക്ടർമാർ - AI വിഷൻ സെൻസറും അതിന്റെ ഒപ്പുകളും സ്വമേധയാ ഇനീഷ്യലൈസ് ചെയ്ത് കോൺഫിഗർ ചെയ്യുക.
ഗെറ്ററുകൾ#
take_snapshot#
take_snapshot , AI വിഷൻ സെൻസറിന്റെ ഫ്രെയിമിൽ നിന്ന് ഡാറ്റ ഒരു സിംഗിൾ സിഗ്നേച്ചറിലേക്ക് ഫിൽട്ടർ ചെയ്യുന്നു — മുൻകൂട്ടി പരിശീലിപ്പിച്ച ഒബ്ജക്റ്റ്, ഒരു AprilTag ID, അല്ലെങ്കിൽ കോൺഫിഗർ ചെയ്ത കളർ സിഗ്നേച്ചർ അല്ലെങ്കിൽ കളർ കോഡ് പോലുള്ള സെൻസറിന് തിരിച്ചറിയാൻ കഴിയുന്ന ഒന്നിന്റെ സംരക്ഷിച്ച വിവരണം — ഒരു tuple തിരികെ നൽകുന്നു.
കളർ സിഗ്നേച്ചറുകൾ ഉം കളർ കോഡുകൾ ഉം ഈ രീതി ഉപയോഗിച്ച് ഉപയോഗിക്കുന്നതിന് മുമ്പ് വിഷൻ യൂട്ടിലിറ്റിയിൽ ആദ്യം കോൺഫിഗർ ചെയ്യണം.
സൂചിക 0 മുതൽ വീതി അനുസരിച്ച് ഏറ്റവും വലുത് മുതൽ ചെറുത് വരെ ക്രമീകരിച്ച വസ്തുക്കളെ ട്യൂപ്പിൾ സംഭരിക്കുന്നു. ഓരോ വസ്തുവിന്റെയും പ്രോപ്പർട്ടികൾ അതിന്റെ സൂചിക ഉപയോഗിച്ച് ആക്സസ് ചെയ്യാൻ കഴിയും. പൊരുത്തപ്പെടുന്ന വസ്തുക്കളൊന്നും കണ്ടെത്തിയില്ലെങ്കിൽ ഒരു ശൂന്യമായ ട്യൂപ്പിൾ തിരികെ നൽകും.
Usage:
ai_vision_1.take_snapshot(SIGNATURE)
പാരാമീറ്ററുകൾ |
വിവരണം |
|---|---|
|
നൽകിയിരിക്കുന്ന ഒപ്പിന്റെ ഡാറ്റ മാത്രം ഉൾപ്പെടുത്തുന്നതിനായി ഡാറ്റാസെറ്റ് ഫിൽട്ടർ ചെയ്യുന്നു. ലഭ്യമായ ഒപ്പുകൾ ഇവയാണ്:
|
|
ഓപ്ഷണൽ. 1 മുതൽ 24 വരെ തിരികെ നൽകാവുന്ന പരമാവധി ഒബ്ജക്റ്റുകളുടെ എണ്ണം സജ്ജമാക്കുന്നു. സ്ഥിരസ്ഥിതി 8 ആണ്. |
# Drive forward if an object is detected
while True:
objects = ai_vision_1.take_snapshot(AiVision.ALL_AIOBJS)
if objects[0].exists:
drivetrain.drive_for(FORWARD, 50, MM)
wait(50, MSEC)
കുറിപ്പ്: റിട്ടേൺ ചെയ്ത ട്യൂപ്പിൾ, പൈത്തണിന്റെ sorted ഫംഗ്ഷൻ ഉപയോഗിച്ച് വീതി മാത്രമല്ല, ഏതൊരു പ്രോപ്പർട്ടി ഉപയോഗിച്ചും അടുക്കാൻ കഴിയും. ഉദാഹരണത്തിന്, ഏപ്രിൽ ടാഗ് ഐഡി ഉപയോഗിച്ച് അടുക്കുക:
# Print each detected AprilTag ID in ascending order by ID
while True:
apriltags = sorted(ai_vision_1.take_snapshot(AiVision.ALL_TAGS), key=id)
for tag in apriltags:
print(tag.id)
wait(1, SECONDS)
അല്ലെങ്കിൽ പകരം ഉയരം അനുസരിച്ച് അടുക്കുക:
# Print each detected AprilTag ID in ascending order by height
while True:
apriltags_by_height = sorted(ai_vision_1.take_snapshot(AiVision.ALL_TAGS), key=lambda tag: tag.height)
for tag in apriltags_by_height:
print(tag.height)
wait(1, SECONDS)
AI വർഗ്ഗീകരണങ്ങൾ#
ചില AI ക്ലാസിഫിക്കേഷനുകൾക്ക് കീഴിൽ വ്യത്യസ്ത വസ്തുക്കളെ AI വിഷൻ സെൻസറിന് കണ്ടെത്താൻ കഴിയും. ഡിവൈസസ് വിൻഡോയിൽ AI വിഷൻ സെൻസർ കോൺഫിഗർ ചെയ്യുമ്പോൾ തിരഞ്ഞെടുത്ത AI ക്ലാസിഫിക്കേഷൻ മോഡലിനെ ആശ്രയിച്ച്, വ്യത്യസ്ത വസ്തുക്കൾ കണ്ടെത്തപ്പെടും. നിലവിൽ ലഭ്യമായ മോഡലുകൾ ഇവയാണ്:
ക്ലാസ്റൂം ഘടകങ്ങൾ
ഐഡി നമ്പർ |
AI വർഗ്ഗീകരണം |
|---|---|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
VEX V5 റോബോട്ടിക്സ് മത്സരത്തിൽ വൻ വെല്ലുവിളികൾ
ഐഡി നമ്പർ |
AI വർഗ്ഗീകരണം |
|---|---|
0 |
|
1 |
|
2 |
|
VEX V5 റോബോട്ടിക്സ് മത്സരം പുഷ് ബാക്ക്
ഐഡി നമ്പർ |
AI വർഗ്ഗീകരണം |
|---|---|
0 |
|
1 |
|
VEX V5 റോബോട്ടിക്സ് മത്സര ഓവർറൈഡ്
ഐഡി നമ്പർ |
AI വർഗ്ഗീകരണം |
|---|---|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
വർണ്ണ ഒപ്പുകൾ#
AI വിഷൻ സെൻസറിന് തിരിച്ചറിയാൻ കഴിയുന്ന ഒരു സവിശേഷ നിറമാണ് കളർ സിഗ്നേച്ചർ. ഈ സിഗ്നേച്ചറുകൾ AI വിഷൻ സെൻസറിനെ അവയുടെ നിറത്തെ അടിസ്ഥാനമാക്കി വസ്തുക്കളെ കണ്ടെത്താനും ട്രാക്ക് ചെയ്യാനും അനുവദിക്കുന്നു. ഒരു കളർ സിഗ്നേച്ചർ കോൺഫിഗർ ചെയ്തുകഴിഞ്ഞാൽ, സെൻസറിന് അതിന്റെ വ്യൂ ഫീൽഡിൽ ആ പ്രത്യേക നിറമുള്ള വസ്തുക്കളെ തിരിച്ചറിയാൻ കഴിയും. നിറമുള്ള വസ്തുക്കളെ തത്സമയം പ്രോസസ്സ് ചെയ്യുന്നതിനും കണ്ടെത്തുന്നതിനും take_snapshot ഉപയോഗിച്ച് കളർ സിഗ്നേച്ചറുകൾ ഉപയോഗിക്കുന്നു.
ഒരു പ്രോജക്റ്റിൽ കോൺഫിഗർ ചെയ്ത കളർ സിഗ്നേച്ചർ ഉപയോഗിക്കുന്നതിന്, അതിന്റെ പേര് സെൻസറിന്റെ പേരും, രണ്ട് അണ്ടർസ്കോറുകളും, തുടർന്ന് കളർ സിഗ്നേച്ചറിന്റെ പേരും ആയിരിക്കണം. ഉദാഹരണത്തിന്: ai_vision_1__RED_BOX.
# Display if any objects match the RED_BOX signature
while True:
brain.screen.set_cursor(1, 1)
brain.screen.clear_row(1)
# Change to any configured Color Signature
red_box = ai_vision_1.take_snapshot(ai_vision_1__RED_BOX)
if red_box[0].exists:
brain.screen.print("Color detected!")
wait(100, MSEC)
കളർ കോഡുകൾ#
ഒരു പ്രത്യേക ക്രമത്തിൽ ക്രമീകരിച്ചിരിക്കുന്ന വർണ്ണ സിഗ്നേച്ചറുകൾ കൊണ്ട് നിർമ്മിച്ച ഒരു ഘടനാപരമായ പാറ്റേണാണ് കളർ കോഡ്. ഈ കോഡുകൾ AI വിഷൻ സെൻസറിനെ മുൻകൂട്ടി നിശ്ചയിച്ച നിറങ്ങളുടെ പാറ്റേണുകൾ തിരിച്ചറിയാൻ അനുവദിക്കുന്നു. സങ്കീർണ്ണമായ വസ്തുക്കളെ തിരിച്ചറിയുന്നതിനോ സ്വയംഭരണ നാവിഗേഷനായി അതുല്യമായ മാർക്കറുകൾ സൃഷ്ടിക്കുന്നതിനോ കളർ കോഡുകൾ ഉപയോഗപ്രദമാണ്.
ഒരു പ്രോജക്റ്റിൽ കോൺഫിഗർ ചെയ്ത കളർ കോഡ് ഉപയോഗിക്കുന്നതിന്, അതിന്റെ പേര് സെൻസറിന്റെ പേരും, രണ്ട് അണ്ടർസ്കോറുകളും, തുടർന്ന് കളർ കോഡിന്റെ പേരും ആയിരിക്കണം. ഉദാഹരണത്തിന്: ai_vision_1__BOX_CODE.
# Display if any objects match the BOX_CODE code
while True:
brain.screen.set_cursor(1, 1)
brain.screen.clear_row(1)
# Change to any configured Color Code
box_code = ai_vision_1.take_snapshot(ai_vision_1__BOX_CODE)
if box_code[0].exists:
brain.screen.print("Code detected!")
wait(100, MSEC)
installed#
installed , AI വിഷൻ സെൻസർ നിലവിൽ EXP ബ്രെയിനുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന് സൂചിപ്പിക്കുന്ന ഒരു ബൂളിയൻ നൽകുന്നു.
True– AI വിഷൻ സെൻസർ EXP ബ്രെയിനുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു.False– AI വിഷൻ സെൻസർ EXP ബ്രെയിനുമായി ബന്ധിപ്പിച്ചിട്ടില്ല.
Usage:
ai_vision_1.installed()
പാരാമീറ്ററുകൾ |
വിവരണം |
|---|---|
ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല. |
# Display a message if the AI Vision Sensor is connected
if ai_vision_1.installed():
brain.screen.print("Installed!")
പ്രോപ്പർട്ടികൾ#
take_snapshot ഉപയോഗിച്ചതിനുശേഷം tuple ൽ സംഭരിച്ചിരിക്കുന്ന ഓരോ ഒബ്ജക്റ്റിലും പത്ത് പ്രോപ്പർട്ടികൾ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്.
.id ഉം .score ഉം ഒഴികെയുള്ള എല്ലാ പ്രോപ്പർട്ടി മൂല്യങ്ങളും take_snapshot ഉപയോഗിച്ച സമയത്ത് AI വിഷൻ സെൻസറിന്റെ വ്യൂവിൽ കണ്ടെത്തിയ വസ്തുവിന്റെ സ്ഥാനവും വലുപ്പവും വിവരിക്കുന്നു. സെൻസറിന്റെ 320 ബൈ 240 പിക്സൽ റെസല്യൂഷനെ അടിസ്ഥാനമാക്കി ഈ മൂല്യങ്ങൾ പിക്സലുകളിലാണ് അളക്കുന്നത്.
.exists#
ട്യൂപ്പിളിൽ സൂചിക നിലവിലുണ്ടോ ഇല്ലയോ എന്ന് സൂചിപ്പിക്കുന്ന ഒരു ബൂളിയൻ .exists നൽകുന്നു.
True– സൂചിക നിലവിലുണ്ട്.False– സൂചിക നിലവിലില്ല.
# Check if at least two objects are detected
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
objects = ai_vision_1.take_snapshot(AiVision.ALL_AIOBJS)
if objects[0].exists:
if objects[1].exists:
brain.screen.print("At least 2")
else:
brain.screen.print("Less than 2")
wait(50, MSEC)
.width#
.width കണ്ടെത്തിയ വസ്തുവിന്റെ വീതി പിക്സലുകളിൽ നൽകുന്നു, ഇത് 1 നും 320 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.
# Approach an object until it's at least 100 pixels wide
while True:
objects = ai_vision_1.take_snapshot(AiVision.ALL_AIOBJS)
if objects[0].exists:
if objects[0].width < 100:
drivetrain.drive(FORWARD)
else:
drivetrain.stop()
wait(50, MSEC)
.height#
.height കണ്ടെത്തിയ വസ്തുവിന്റെ ഉയരം പിക്സലുകളിൽ നൽകുന്നു, ഇത് 1 നും 240 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.
# Approach an object until it's at least 90 pixels tall
while True:
objects = ai_vision_1.take_snapshot(AiVision.ALL_AIOBJS)
if objects[0].exists:
if objects[0].height < 90:
drivetrain.drive(FORWARD)
else:
drivetrain.stop()
wait(50, MSEC)
.centerX#
.centerX കണ്ടെത്തിയ വസ്തുവിന്റെ കേന്ദ്രത്തിന്റെ x-കോർഡിനേറ്റ് പിക്സലുകളിൽ നൽകുന്നു, ഇത് 0 നും 320 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.
# Turn until an object is directly in front of the sensor
drivetrain.set_turn_velocity(10, PERCENT)
drivetrain.turn(RIGHT)
while True:
objects = ai_vision_1.take_snapshot(AiVision.ALL_AIOBJS)
if objects[0].exists:
if 140 < objects[0].centerX < 180:
drivetrain.stop()
wait(10,MSEC)
.centerY#
.centerY കണ്ടെത്തിയ വസ്തുവിന്റെ കേന്ദ്രത്തിന്റെ y-കോർഡിനേറ്റ് പിക്സലുകളിൽ നൽകുന്നു, ഇത് 0 നും 240 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.
# Approach an object until the object's center is
# high enough in the field of view
while True:
objects = ai_vision_1.take_snapshot(AiVision.ALL_AIOBJS)
if objects[0].exists:
if objects[0].centerY < 150:
drivetrain.drive(FORWARD)
else:
drivetrain.stop()
wait(50, MSEC)
.angle#
.angle കണ്ടെത്തിയ കളർ കോഡിന്റെയോ ഏപ്രിൽ ടാഗ് ഐഡിയുടെയോ ഓറിയന്റേഷൻ ഡിഗ്രികളിൽ നൽകുന്നു, ഇത് 0 നും 359 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.
# Turn left or right depending on how a
# configured Color Code is rotated
while True:
box_code = ai_vision_1.take_snapshot(ai_vision_1__BOX_CODE)
if box_code[0].exists:
if 50 < box_code[0].angle < 100:
drivetrain.turn(RIGHT)
elif 270 < box_code[0].angle < 330:
drivetrain.turn(LEFT)
else:
drivetrain.stop()
else:
drivetrain.stop()
wait(50, MSEC)
.originX#
.originX കണ്ടെത്തിയ വസ്തുവിന്റെ ബൗണ്ടിംഗ് ബോക്സിന്റെ മുകളിൽ ഇടത് കോണിലുള്ള x-കോർഡിനേറ്റ് പിക്സലുകളിൽ നൽകുന്നു, ഇത് 0 നും 320 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.
# Display if an object is to the left or the right
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1,1)
objects = ai_vision_1.take_snapshot(AiVision.ALL_AIOBJS)
if objects[0].exists:
if 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)
.originY#
.originY കണ്ടെത്തിയ വസ്തുവിന്റെ ബൗണ്ടിംഗ് ബോക്സിന്റെ മുകളിൽ ഇടത് കോണിലുള്ള y-കോർഡിനേറ്റ് പിക്സലുകളിൽ നൽകുന്നു, ഇത് 0 നും 240 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയാണ്.
# Display if an object is close or far
while True:
brain.screen.clear_screen()
brain.screen.set_cursor(1,1)
objects = ai_vision_1.take_snapshot(AiVision.ALL_AIOBJS)
if objects[0].exists:
if objects[0].originY < 110:
brain.screen.print("Close")
else:
brain.screen.print("Far")
.id#
.id കണ്ടെത്തിയ AI ക്ലാസിഫിക്കേഷന്റെയോ AprilTag ഐഡിയുടെയോ ഐഡി ഒരു പൂർണ്ണസംഖ്യയായി നൽകുന്നു.
ഒരു AprilTag ഐഡിക്ക്, 0 മുതൽ 36 വരെയുള്ള ശ്രേണിയിലുള്ള കണ്ടെത്തിയ AprilTag ഐഡി നമ്പറിനെ .id പ്രോപ്പർട്ടി പ്രതിനിധീകരിക്കുന്നു. ഒരു AI ക്ലാസിഫിക്കേഷന്, .id പ്രോപ്പർട്ടി AI ക്ലാസിഫിക്കേഷനുകൾ വിഭാഗത്തിലെ മുൻനിർവചിച്ച ഐഡിയുമായി യോജിക്കുന്നു.
# Move forward when AprilTag ID 1 is detected
while True:
apriltags = ai_vision_1.take_snapshot(AiVision.ALL_TAGS)
if apriltags[0].exists:
if apriltags[0].id == 1:
robot.drive(FORWARD)
else:
drivetrain.stop()
wait(50, MSEC)
.score#
.score കണ്ടെത്തിയ AI വർഗ്ഗീകരണത്തിന്റെ കോൺഫിഡൻസ് സ്കോർ 1 നും 100 നും ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യയായി നൽകുന്നു.
കുറഞ്ഞ സ്കോർ എന്നാൽ കണ്ടെത്തിയ വസ്തുവിനെക്കുറിച്ച് സെൻസറിന് ആത്മവിശ്വാസം കുറവാണെന്നാണ് അർത്ഥമാക്കുന്നത്, അതേസമയം ഉയർന്ന സ്കോർ എന്നാൽ സെൻസറിന് കൂടുതൽ ആത്മവിശ്വാസമുണ്ടെന്നാണ് അർത്ഥമാക്കുന്നത്.
കൺസ്ട്രക്ടർമാർ#
കൺസ്ട്രക്ടറുകൾ ഉപയോഗിച്ച് AiVision, Colordesc, Codedesc ഒബ്ജക്റ്റുകൾ സ്വമേധയാ സൃഷ്ടിക്കാൻ കഴിയും, ഇവ VEXcode-ന് പുറത്ത് AI വിഷൻ സെൻസർ കോൺഫിഗർ ചെയ്യുന്നതിന് ആവശ്യമാണ്.
AiVision#
AiVision ഒരു എഐ വിഷൻ സെൻസർ സൃഷ്ടിക്കുന്നു.
ഉപയോഗം
Vision(smartport, sigs)
പാരാമീറ്ററുകൾ |
വിവരണം |
|---|---|
|
AI വിഷൻ സെൻസർ ബന്ധിപ്പിച്ചിരിക്കുന്ന സ്മാർട്ട് പോർട്ട്, |
|
ഓപ്ഷണൽ. കോമകളാൽ വേർതിരിച്ച ഒന്നോ അതിലധികമോ ഒപ്പുകളുടെ പേര് (
|
# Create the Color Signatures
RED_BOX = Colordesc(1, 255, 0, 0, 20, 0.9)
BLUE_BOX = Colordesc(0, 26, 255, 0, 20, 0.9)
# Create the Color Code
RED_BLUE = Codedesc(RED_BOX, BLUE_BOX)
"""
Create an AI Vision Sensor with the following signatures:
- RED_BLUE
- AiVision.ALL_TAGS - for AprilTag IDs
"""
ai_vision_1 = AiVision(Ports.PORT1, RED_BLUE, AiVision.ALL_TAGS)
Colordesc#
Colordesc ഒരു കളർ സിഗ്നേച്ചർ സൃഷ്ടിക്കുന്നു. ഒരു AI വിഷൻ സെൻസറിൽ ഒരേസമയം ഏഴ് വ്യത്യസ്ത കളർ സിഗ്നേച്ചറുകൾ വരെ സംഭരിക്കാൻ കഴിയും.
Usage:
Colordesc(index, red, green, blue, hangle, hdsat)
പാരാമീറ്റർ |
വിവരണം |
|---|---|
|
|
|
നിറത്തിന്റെ ചുവപ്പ് മൂല്യം 0 മുതൽ 255 വരെയാണ്. |
|
നിറത്തിന്റെ പച്ച മൂല്യം 0 മുതൽ 255 വരെയാണ്. |
|
നീല നിറത്തിന്റെ മൂല്യം 0 മുതൽ 255 വരെയാണ്. |
|
വർണ്ണചക്രത്തിലെ ഡിഗ്രികളുടെ ഒരു പരിധിയായി അനുവദനീയമായ വർണ്ണവ്യത്യാസം (1–40). ഉയർന്ന മൂല്യങ്ങൾ അടിസ്ഥാന വർണ്ണത്തിൽ നിന്ന് കൂടുതൽ വിശാലമായ ഭ്രമണ വ്യതിയാനം അനുവദിക്കുന്നു. |
|
അനുവദനീയമായ സാച്ചുറേഷൻ വ്യതിയാനം, 0.10 മുതൽ 1.00 വരെ. ഈ മൂല്യം നിറം മാറാൻ സാധ്യതയുള്ള പൂർണ്ണ സാച്ചുറേഷൻ ശ്രേണിയുടെ അംശത്തെ പ്രതിനിധീകരിക്കുന്നു (ഉദാ. 0.10 = ±10% സാച്ചുറേഷൻ) |

"""
Create a Color Signature with the following values:
- index: 1
- red: 255
- green: 0
- blue: 0
- hangle: 20
- hdsat: 0.9
"""
# Create a red Color Signature
RED_BOX = Colordesc(1, 255, 0, 0, 20, 0.9)
Codedesc#
Codedesc ഒരു കളർ കോഡ് സൃഷ്ടിക്കുന്നു. ഇത് ഉപയോഗിക്കുന്നതിന് കുറഞ്ഞത് രണ്ട് കളർ സിഗ്നേച്ചറുകൾ എങ്കിലും ആവശ്യമാണ്. ഒരു വിഷൻ സെൻസറിൽ ഒരേസമയം എട്ട് വ്യത്യസ്ത കളർ കോഡുകൾ വരെ സംഭരിക്കാൻ കഴിയും.
Usage:
Codedesc(sig1, sig2, sig3, sig4, sig5)
പാരാമീറ്റർ |
വിവരണം |
|---|---|
|
മുമ്പ് സൃഷ്ടിച്ച ഒരു കളർ സിഗ്നേച്ചർ. |
|
മുമ്പ് സൃഷ്ടിച്ച ഒരു കളർ സിഗ്നേച്ചർ. |
|
ഓപ്ഷണൽ. മുമ്പ് സൃഷ്ടിച്ച കളർ സിഗ്നേച്ചർ. |
|
ഓപ്ഷണൽ. മുമ്പ് സൃഷ്ടിച്ച കളർ സിഗ്നേച്ചർ. |
|
ഓപ്ഷണൽ. മുമ്പ് സൃഷ്ടിച്ച കളർ സിഗ്നേച്ചർ. |
# Create the Color Signatures
RED_BOX = Colordesc(1, 255, 0, 0, 20, 0.9)
BLUE_BOX = Colordesc(0, 26, 255, 0, 20, 0.9)
# Create a Color Code with the Color Signatures
BOX_CODE = Codedesc(RED_BOX, BLUE_BOX)
Tagdesc#
Tagdesc ഒരു AprilTag ID സൃഷ്ടിക്കുന്നു. തിരിച്ചറിയാവുന്ന AprilTag ID-കൾ നിർവചിക്കാൻ നിങ്ങൾക്ക് ഇത് ഉപയോഗിക്കാം, ഇത് നിങ്ങളുടെ കോഡ് കൂടുതൽ വ്യക്തവും വായിക്കാൻ എളുപ്പവുമാക്കുന്നു.
Usage:
Tagdesc(id)
പാരാമീറ്റർ |
വിവരണം |
|---|---|
|
ഉപയോഗിക്കേണ്ട ഏപ്രിൽ ടാഗ് ഐഡി. |
# Set AprilTag ID 7 to be the "goal"
goal = Tagdesc(7)