നിഷ്ക്രിയത്വം#

ആമുഖം#

VEX AIM കോഡിംഗ് റോബോട്ടിൽ ഒരു ബിൽറ്റ്-ഇൻ ഇനേർഷ്യൽ സെൻസർ ഉണ്ട്. റോബോട്ട് എങ്ങനെ ചലിക്കുന്നുവെന്നും തിരിയുന്നുവെന്നും ഈ സെൻസർ അളക്കുന്നു.

ഇത് ചെയ്യുന്നതിന് ഇനേർഷ്യൽ സെൻസർ രണ്ട് ഭാഗങ്ങൾ ഉപയോഗിക്കുന്നു. റോബോട്ടിന്റെ ഹെഡിംഗ്, റൊട്ടേഷൻ, യാവ്, റോൾ, പിച്ച്, ടേൺ റേറ്റ് എന്നിങ്ങനെയുള്ള ടേണിംഗ് ഗൈറോസ്കോപ്പ് അളക്കുന്നു. വേഗത കൂട്ടുക, വേഗത കുറയ്ക്കുക, അല്ലെങ്കിൽ ഒരു ക്രാഷ് സമയത്ത് പെട്ടെന്ന് നിർത്തുക തുടങ്ങിയ ചലനത്തിലെ മാറ്റങ്ങൾ ആക്സിലറോമീറ്റർ അളക്കുന്നു.

തിരിവുകൾ ട്രാക്ക് ചെയ്യുന്നതിനും, ത്വരണം അളക്കുന്നതിനും, ക്രാഷുകൾ കണ്ടെത്തുന്നതിനും, ഹെഡിംഗ് അല്ലെങ്കിൽ റൊട്ടേഷൻ മൂല്യങ്ങൾ പുനഃസജ്ജമാക്കുന്നതിനും, സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നതിനും ഇനേർഷ്യൽ രീതികൾ ഉപയോഗിക്കാം.

എല്ലാ രീതികളുടെയും ഒരു ലിസ്റ്റ് താഴെ കൊടുക്കുന്നു:

ഓറിയന്റേഷൻ — റോബോട്ട് എങ്ങനെ അഭിമുഖീകരിക്കുന്നു, തിരിയുന്നു, അല്ലെങ്കിൽ ചരിഞ്ഞുകൊണ്ടിരിക്കുന്നു എന്ന് മനസ്സിലാക്കി പുനഃസജ്ജമാക്കുക.

  • get_rotation — റോബോട്ട് എത്ര ദൂരം തിരിഞ്ഞുവെന്ന് നൽകുന്നു.

  • get_heading — റോബോട്ട് അഭിമുഖീകരിക്കുന്ന ദിശ 0 മുതൽ 359.99 ഡിഗ്രി വരെ തിരികെ നൽകുന്നു.

  • get_yaw — റോബോട്ടിന്റെ യാവ് ആംഗിൾ തിരികെ നൽകുന്നു.

  • get_roll — റോബോട്ടിന്റെ റോൾ ആംഗിൾ തിരികെ നൽകുന്നു.

  • get_pitch — റോബോട്ടിന്റെ പിച്ച് ആംഗിൾ തിരികെ നൽകുന്നു.

  • reset_rotation — റോബോട്ടിന്റെ നിലവിലെ ഭ്രമണം 0 ഡിഗ്രിയിലേക്ക് പുനഃസജ്ജമാക്കുന്നു.

  • reset_heading — റോബോട്ടിന്റെ നിലവിലെ ഹെഡിംഗ് 0 ഡിഗ്രിയിലേക്ക് പുനഃസജ്ജമാക്കുന്നു.

  • set_heading — റോബോട്ടിന്റെ നിലവിലെ തലക്കെട്ട് ഒരു പുതിയ തലക്കെട്ട് മൂല്യത്തിലേക്ക് സജ്ജമാക്കുന്നു.

ക്രാഷ് — കൂട്ടിയിടികൾ കണ്ടെത്തുക.

  • crashed — ഒരു ക്രാഷ് കണ്ടെത്തുമ്പോൾ പ്രവർത്തിപ്പിക്കുന്നതിനായി ഒരു ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.

  • set_crash_sensitivity — ക്രാഷ് ഡിറ്റക്ഷൻ ആഘാതങ്ങളോട് എത്രത്തോളം സെൻസിറ്റീവ് ആണെന്ന് സജ്ജമാക്കുന്നു.

ചലനം — ത്വരണവും തിരിവിന്റെ വേഗതയും അളക്കുക.

  • get_acceleration — തിരഞ്ഞെടുത്ത അക്ഷത്തിൽ റോബോട്ട് എത്ര വേഗത്തിൽ വേഗത കൂട്ടുകയോ കുറയ്ക്കുകയോ ചെയ്യുന്നുവെന്ന് നൽകുന്നു.

  • get_turn_rate — തിരഞ്ഞെടുത്ത അക്ഷത്തിൽ റോബോട്ട് എത്ര വേഗത്തിൽ കറങ്ങുന്നുവെന്ന് നൽകുന്നു.

കാലിബ്രേഷൻ — സെൻസർ കാലിബ്രേഷൻ കൈകാര്യം ചെയ്യുക.

  • calibrate — ഇനേർഷ്യൽ സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നു.

  • is_calibrating — ഇനേർഷ്യൽ സെൻസർ നിലവിൽ കാലിബ്രേറ്റ് ചെയ്യുന്നുണ്ടോ എന്ന് നൽകുന്നു.

ഓറിയന്റേഷൻ#

get_rotation#

റോബോട്ട് എത്ര തിരിഞ്ഞിരിക്കുന്നു എന്നതാണ് ഭ്രമണം, ഡിഗ്രിയിൽ അളക്കുന്നു. ഹെഡിംഗിൽ നിന്ന് വ്യത്യസ്തമായി, ഭ്രമണം 359.99 ഡിഗ്രിയിൽ കൂടുതൽ വർദ്ധിക്കുകയോ 0 ഡിഗ്രിയിൽ താഴെ കുറയുകയോ ചെയ്യാം. ഒരു പ്രോജക്റ്റിന്റെ തുടക്കത്തിൽ, ഭ്രമണ മൂല്യം 0 ഡിഗ്രിയായി സജ്ജീകരിച്ചിരിക്കുന്നു. get_rotation റോബോട്ടിന്റെ നിലവിലെ ഭ്രമണം ഒരു ഫ്ലോട്ടായി നൽകുന്നു.

വലത്തേക്ക് തിരിയുന്നത് ഭ്രമണം വർദ്ധിപ്പിക്കുന്നു, ഇടത്തേക്ക് തിരിയുന്നത് ഭ്രമണം കുറയ്ക്കുന്നു. ഉദാഹരണത്തിന്, വലത്തേക്ക് രണ്ട് പൂർണ്ണ തിരിവുകൾ നടത്തുന്നത് 720 ഡിഗ്രി ഭ്രമണം തിരികെ നൽകും. 0 ഡിഗ്രിയിൽ നിന്ന് ഇടത്തേക്ക് ഒരു പൂർണ്ണ തിരിവ് തിരിയുന്നത് -360 ഡിഗ്രി ഭ്രമണം തിരികെ നൽകും.

Usage:
robot.inertial.get_rotation()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Display the robot's rotation as it rotates
while True:
    robot.screen.clear_screen()
    robot.screen.set_cursor(1, 1)
    robot.screen.print(f"Rotation: {robot.inertial.get_rotation():.2f}")
    wait(50, MSEC)

get_heading#

റോബോട്ട് അഭിമുഖീകരിക്കുന്ന ദിശയാണ് ഒരു ഹെഡിംഗ്, 0 മുതൽ 359.99 വരെയുള്ള ഡിഗ്രികളിൽ ഇത് അളക്കുന്നു. get_heading റോബോട്ടിന്റെ നിലവിലെ ഹെഡിംഗ് ഒരു ഫ്ലോട്ട് ആയി തിരികെ നൽകുന്നു.

ആരംഭ തലക്കെട്ട് 0 ഡിഗ്രിയാണ്. റോബോട്ട് 359.99 ഡിഗ്രിക്ക് മുകളിൽ തിരിഞ്ഞാൽ, തലക്കെട്ട് 0 ഡിഗ്രിയിലേക്ക് തിരികെ പൊതിയുന്നു.

Usage:
robot.inertial.get_heading()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Turn right until the heading reaches 90 degrees
robot.turn(RIGHT)
while robot.inertial.get_heading() < 90:
    wait(50, MSEC)
robot.stop_all_movement()

# Display the robot's heading as it is rotated by hand
while True:
    robot.screen.clear_screen()
    robot.screen.set_cursor(1, 1)
    robot.screen.print(f"Heading: {robot.inertial.get_heading()} degrees")
    wait(50, MSEC)

get_yaw#

ലംബ അച്ചുതണ്ടിന് ചുറ്റും ഇടത്തോട്ടോ വലത്തോട്ടോ തിരിയുന്ന റോബോട്ടിനെ യാവ് വിവരിക്കുന്നു. get_yaw റോബോട്ടിന്റെ യാവ് ആംഗിൾ -180.00 മുതൽ 180.00 ഡിഗ്രി വരെയുള്ള ശ്രേണിയിൽ ഫ്ലോട്ട് ആയി തിരികെ നൽകുന്നു.

താഴെയുള്ള ചിത്രത്തിൽ യാവിന്റെ പോസിറ്റീവ് റൊട്ടേഷന്റെ ദിശ കാണിക്കാൻ അമ്പടയാളങ്ങൾ ഉപയോഗിക്കുന്നു.

റോബോട്ടിന്റെ മധ്യഭാഗത്ത് നിന്ന് താഴേക്ക് ചൂണ്ടുന്ന നീല അമ്പടയാളമുള്ള ഒരു VEX AIM കോഡിംഗ് റോബോട്ട്. നീല അമ്പടയാളത്തിന് ചുറ്റും, ഒരു കറുത്ത വളഞ്ഞ അമ്പടയാളം ഘടികാരദിശയിൽ ചൂണ്ടുന്നു, ഇത് പോസിറ്റീവ് യാവ് ദിശയെ സൂചിപ്പിക്കുന്നു.

Usage:
robot.inertial.get_yaw()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Display the robot's yaw angle as it is rotated by hand
while True:
    robot.screen.clear_screen()
    robot.screen.set_cursor(1, 1)
    robot.screen.print(robot.inertial.get_yaw())
    wait(50, MSEC)

get_roll#

റോബോട്ട് വശങ്ങളിലേക്ക് ചരിഞ്ഞു നിൽക്കുന്നതിനെ റോൾ വിവരിക്കുന്നു. get_roll റോബോട്ടിന്റെ റോൾ ആംഗിൾ -180.00 മുതൽ 180.00 ഡിഗ്രി വരെയുള്ള ശ്രേണിയിൽ ഫ്ലോട്ട് ആയി തിരികെ നൽകുന്നു.

താഴെയുള്ള ചിത്രത്തിൽ റോളിന്റെ പോസിറ്റീവ് റൊട്ടേഷന്റെ ദിശ കാണിക്കാൻ അമ്പടയാളങ്ങൾ ഉപയോഗിക്കുന്നു.

AI വിഷൻ സെൻസറിന്റെ മധ്യഭാഗത്തായി, റോബോട്ടിന്റെ മുൻവശത്തേക്ക് പുറത്തേക്ക് ഒരു പച്ച അമ്പടയാളം നീണ്ടുനിൽക്കുന്ന ഒരു VEX AIM കോഡിംഗ് റോബോട്ട്. പച്ച അമ്പടയാളത്തിന് ചുറ്റും, ഒരു കറുത്ത അമ്പടയാളം എതിർ ഘടികാരദിശയിൽ വളയുന്നു, ഇത് റോളിനുള്ള പോസിറ്റീവ് ദിശയെ സൂചിപ്പിക്കുന്നു.

Usage:
robot.inertial.get_roll()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Display the robot's roll angle as it is tilted by hand
while True:
    robot.screen.clear_screen()
    robot.screen.set_cursor(1, 1)
    robot.screen.print(robot.inertial.get_roll())
    wait(50, MSEC)

get_pitch#

പിച്ച് എന്നത് റോബോട്ട് മുന്നോട്ടോ പിന്നോട്ടോ ചരിഞ്ഞിരിക്കുന്നതിനെ വിവരിക്കുന്നു. get_pitch റോബോട്ടിന്റെ പിച്ച് ആംഗിൾ -90.00 മുതൽ 90.00 ഡിഗ്രി വരെയുള്ള ശ്രേണിയിൽ ഫ്ലോട്ട് ആയി തിരികെ നൽകുന്നു.

താഴെയുള്ള ചിത്രത്തിൽ പിച്ചിന്റെ പോസിറ്റീവ് റൊട്ടേഷന്റെ ദിശ കാണിക്കാൻ അമ്പടയാളങ്ങൾ ഉപയോഗിക്കുന്നു.

VEX ലോഗോയ്ക്ക് കീഴിൽ റോബോട്ടിന്റെ വശത്തേക്ക് പുറത്തേക്ക് നീണ്ടുനിൽക്കുന്ന ചുവന്ന അമ്പടയാളമുള്ള ഒരു VEX AIM കോഡിംഗ് റോബോട്ട്. ചുവന്ന അമ്പടയാളത്തിന് ചുറ്റും, ഒരു കറുത്ത അമ്പടയാളം എതിർ ഘടികാരദിശയിൽ വളയുന്നു, ഇത് പിച്ചിന്റെ പോസിറ്റീവ് ദിശയെ സൂചിപ്പിക്കുന്നു.

Usage:
robot.inertial.get_pitch()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Display the robot's pitch angle as it is tilted by hand
while True:
    robot.screen.clear_screen()
    robot.screen.set_cursor(1, 1)
    robot.screen.print(robot.inertial.get_pitch())
    wait(50, MSEC)

reset_rotation#

reset_rotation റോബോട്ടിന്റെ നിലവിലെ ഭ്രമണം 0 ഡിഗ്രിയിലേക്ക് പുനഃസജ്ജമാക്കുന്നു.

ഈ രീതി ഉപയോഗിച്ചതിനുശേഷം, പുതിയ 0 ഡിഗ്രി ഭ്രമണ മൂല്യത്തിൽ നിന്ന് ഭാവിയിലെ തിരിവുകൾ റോബോട്ട് ട്രാക്ക് ചെയ്യുന്നു.

Usage:
robot.inertial.reset_rotation()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Reset the robot's rotation if it exceeds 180 degrees
while True:
    if robot.inertial.get_rotation() >= 180:
        robot.inertial.reset_rotation()

    robot.screen.clear_screen()
    robot.screen.set_cursor(1, 1)
    robot.screen.print(f"Rotation: {robot.inertial.get_rotation():.2f}")

    wait(50, MSEC)

reset_heading#

reset_heading റോബോട്ടിന്റെ നിലവിലെ ഹെഡിംഗ് 0 ഡിഗ്രിയിലേക്ക് പുനഃസജ്ജമാക്കുന്നു.

ഈ രീതി ഉപയോഗിച്ചതിനുശേഷം, റോബോട്ടിന്റെ നിലവിലെ ദിശ പുതിയ 0 ഡിഗ്രി തലക്കെട്ടായി മാറുന്നു.

Usage:
robot.inertial.reset_heading()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Turn the robot around using a new 90 degree heading
robot.turn_to(90)
wait(1, SECONDS)
robot.inertial.reset_heading()
robot.turn_to(90)

set_heading#

റോബോട്ട് അഭിമുഖീകരിക്കുന്ന ദിശയാണ് ഒരു ഹെഡിംഗ്, 0 മുതൽ 359.99 വരെയുള്ള ഡിഗ്രികളിൽ ഇത് അളക്കുന്നു. set_heading റോബോട്ടിന്റെ നിലവിലെ ഹെഡിംഗ് ഒരു പുതിയ ഹെഡിംഗ് മൂല്യത്തിലേക്ക് മാറ്റുന്നു.

ഉദാഹരണത്തിന്, റോബോട്ട് വലത്തേക്ക് അഭിമുഖമായി തിരിഞ്ഞിട്ടുണ്ടെങ്കിൽ, തലക്കെട്ട് 0 ഡിഗ്രിയിലേക്ക് സജ്ജമാക്കുന്നത് ആ വലതുവശത്തുള്ള സ്ഥാനത്തെ പുതിയ 0 ഡിഗ്രിയാക്കുന്നു. തുടർന്ന് ആ പുതിയ ദിശയെ അടിസ്ഥാനമാക്കി റോബോട്ടിന് മറ്റ് തലക്കെട്ടുകൾ ട്രാക്ക് ചെയ്യാൻ കഴിയും.

Usage:
robot.inertial.set_heading(heading)

പാരാമീറ്ററുകൾ

വിവരണം

heading

റോബോട്ടിനായി സജ്ജമാക്കേണ്ട ഹെഡ്ഡിംഗ് മൂല്യം, ഡിഗ്രികളിൽ. ഇത് 0 മുതൽ 359.99 വരെയുള്ള മൂല്യമാകാം.

# Turn the robot to 90 degrees using its new heading
robot.inertial.set_heading(45)
robot.turn_to(90)

ക്രാഷ്#

crashed#

crashed റോബോട്ട് പെട്ടെന്നുള്ള ഒരു ആഘാതമോ കൂട്ടിയിടിയോ കണ്ടെത്തുമ്പോൾ വിളിക്കേണ്ട ഒരു ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.

ഉപയോഗം:

robot.inertial.crashed(callback, arg)

പാരാമീറ്ററുകൾ

വിവരണം

callback

ഒരു കൂട്ടിയിടി കണ്ടെത്തുമ്പോൾ നടപ്പിലാക്കുന്നതിനായി മുമ്പ് നിർവചിച്ചിട്ടുള്ള ഒരു ഫംഗ്ഷൻ.

arg

ഓപ്ഷണൽ. കോൾബാക്ക് ഫംഗ്ഷനിലേക്ക് കൈമാറുന്നതിനുള്ള ആർഗ്യുമെന്റുകൾ അടങ്ങിയ ഒരു ട്യൂപ്പിൾ. കൂടുതൽ വിവരങ്ങൾക്ക് പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് ഫംഗ്ഷനുകൾ ഉപയോഗിക്കുന്നു കാണുക.

# Define what happens when a crash occurs
def crash_detected():
    # Stop all movement and indicate a crash occurred
    robot.screen.print("Crash detected")
    robot.stop_all_movement()

robot.inertial.crashed(crash_detected)

# Drive forward until crash
robot.move_at(0, 100)

set_crash_sensitivity#

set_crash_sensitivity എന്നത് റോബോട്ടിന് ഒരു ക്രാഷ് കണ്ടെത്തുന്നതിന് എത്രത്തോളം പെട്ടെന്നുള്ള ത്വരണം ആവശ്യമാണെന്ന് ക്രമീകരിക്കുന്നു.

Usage:
robot.inertial.set_crash_sensitivity(sensitivity)

പാരാമീറ്ററുകൾ

വിവരണം

sensitivity

ക്രാഷ് സെൻസിറ്റിവിറ്റി:

  • HIGH — ഏറ്റവും സെൻസിറ്റീവ്; 1G-യിൽ ചെറിയ ആഘാതങ്ങളും ട്രിഗറുകളും കണ്ടെത്തുന്നു.
  • NORMAL — ഡിഫോൾട്ട് സെൻസിറ്റിവിറ്റി; 1.5G-യിൽ മിതമായ ആഘാതങ്ങളും ട്രിഗറുകളും കണ്ടെത്തുന്നു.
  • LOW — ഏറ്റവും കുറഞ്ഞ സെൻസിറ്റീവ്; 2G-യിൽ ശക്തമായ ആഘാതങ്ങളും ട്രിഗറുകളും കണ്ടെത്തുന്നു.

def crashed_callback():
    robot.stop_all_movement()
    robot.sound.play(CRASH)

# system event handlers
robot.inertial.crashed(crashed_callback)
# add 15ms delay to make sure events are registered correctly.
wait(15, MSEC)

# Detect a crash at a slow velocity.
robot.set_move_velocity(35, PERCENT)
robot.inertial.set_crash_sensitivity(HIGH)
robot.move_at(0)

ചലനം#

get_acceleration#

റോബോട്ട് എത്ര വേഗത്തിൽ വേഗത കൂട്ടുന്നു അല്ലെങ്കിൽ കുറയ്ക്കുന്നു എന്നതാണ് ആക്സിലറേഷൻ. get_acceleration തിരഞ്ഞെടുത്ത അക്ഷത്തിൽ റോബോട്ടിന്റെ ത്വരണം -4.00 G മുതൽ 4.00 G വരെ ഫ്ലോട്ട് ആയി തിരികെ നൽകുന്നു.

ത്വരണം അളക്കാൻ ഉപയോഗിക്കുന്ന ഒരു യൂണിറ്റാണ് G നിശ്ചലമായി ഇരിക്കുമ്പോൾ ഗുരുത്വാകർഷണത്താൽ നിങ്ങൾക്ക് അനുഭവപ്പെടുന്ന ത്വരണമാണ് 1 G.

തിരഞ്ഞെടുത്ത അക്ഷത്തിലെ ത്വരണത്തിന്റെ ദിശയെ ആശ്രയിച്ച് മൂല്യം പോസിറ്റീവ് അല്ലെങ്കിൽ നെഗറ്റീവ് ആകാം. AIM-ൽ, റോബോട്ടിലെ ദിശകൾക്കായി അക്ഷ ഓപ്ഷനുകൾക്ക് പേരിട്ടിരിക്കുന്നു: FORWARD, RIGHTWARD, DOWNWARD.

റോബോട്ടിന്റെ മധ്യഭാഗത്ത് നിന്ന് ദിശാസൂചനയുള്ള അമ്പടയാളങ്ങളുള്ള ഒരു VEX AIM കോഡിംഗ് റോബോട്ട്. മുന്നോട്ട് എന്ന് ലേബൽ ചെയ്‌തിരിക്കുന്ന ഒരു പച്ച അമ്പടയാളം റോബോട്ടിന്റെ മുന്നിൽ നിന്ന് നീണ്ടുനിൽക്കുന്നു, താഴേക്ക് എന്ന് ലേബൽ ചെയ്‌തിരിക്കുന്ന ഒരു നീല അമ്പടയാളം റോബോട്ടിന്റെ അടിയിൽ നിന്ന് നീണ്ടുനിൽക്കുന്നു, വലതുവശത്തേക്ക് എന്ന് ലേബൽ ചെയ്‌തിരിക്കുന്ന ഒരു ചുവന്ന അമ്പടയാളം VEX ലോഗോയ്ക്ക് താഴെയുള്ള റോബോട്ടിന്റെ വശത്ത് നിന്ന് നീണ്ടുനിൽക്കുന്നു.

ഉപയോഗം:

robot.inertial.get_acceleration(type)

പാരാമീറ്ററുകൾ

വിവരണം

type

ത്വരണം അളക്കുന്നതിനുള്ള അച്ചുതണ്ട്:

  • DOWNWARD — റോബോട്ടിന്റെ ലംബ ദിശയിൽ ത്വരണം അളക്കുന്നു.
  • FORWARD — റോബോട്ടിന്റെ മുന്നിൽനിന്ന് പിന്നിലേക്കുള്ള ദിശയിൽ ത്വരണം അളക്കുന്നു.
  • RIGHTWARD — റോബോട്ടിന്റെ വശങ്ങളിൽ നിന്ന് വശങ്ങളിലേക്കുള്ള ദിശയിൽ ത്വരണം അളക്കുന്നു.

# Display the acceleration as the robot begins to move
robot.screen.set_cursor(4,1)
sitting_accel = robot.inertial.get_acceleration(RIGHTWARD)
robot.screen.print(f"Resting: {sitting_accel:.2f}")
wait(0.5, SECONDS)
robot.screen.next_row()

robot.move_at(90, 100)
wait(0.1, SECONDS)

robot.screen.print(f"Startup: {robot.inertial.get_acceleration(RIGHTWARD):.2f}")

get_turn_rate#

റോബോട്ട് എത്ര വേഗത്തിൽ കറങ്ങുന്നു എന്നതാണ് ടേൺ റേറ്റ്. get_turn_rate എന്നത് റോബോട്ടിന്റെ ടേണിംഗ് റേറ്റ് സെക്കൻഡിൽ ഡിഗ്രിയിൽ \(dps\) ഫ്ലോട്ട് ആയി നൽകുന്നു, -1000.00 മുതൽ 1000.00 dps വരെ.

തിരഞ്ഞെടുത്ത അച്ചുതണ്ടിൽ റോബോട്ട് കറങ്ങുന്ന ദിശയെ ആശ്രയിച്ച് മൂല്യം പോസിറ്റീവോ നെഗറ്റീവോ ആകാം. താഴെയുള്ള ചിത്രത്തിൽ റോൾ, പിച്ച്, യാവ് എന്നിവയ്‌ക്കുള്ള പോസിറ്റീവ് റൊട്ടേഷന്റെ ദിശ കാണിക്കാൻ അമ്പടയാളങ്ങൾ ഉപയോഗിക്കുന്നു.

റോബോട്ടിന്റെ മധ്യഭാഗത്ത് നിന്ന് ദിശാസൂചനയുള്ള അമ്പടയാളങ്ങളുള്ള ഒരു VEX AIM കോഡിംഗ് റോബോട്ട്. റോബോട്ടിന്റെ മുൻവശത്ത് നിന്ന് ഒരു പച്ച അമ്പടയാളം ലേബൽ ചെയ്ത റോൾ നീണ്ടുനിൽക്കുന്നു, അതിനു ചുറ്റും എതിർ ഘടികാരദിശയിൽ ഒരു കറുത്ത വളഞ്ഞ അമ്പടയാളം ചൂണ്ടിക്കാണിക്കുന്നു. റോബോട്ടിന്റെ അടിയിൽ നിന്ന് Yaw എന്ന് ലേബൽ ചെയ്ത ഒരു നീല അമ്പടയാളം നീണ്ടുനിൽക്കുന്നു, അതിനു ചുറ്റും ഘടികാരദിശയിൽ ഒരു കറുത്ത വളഞ്ഞ അമ്പടയാളം ചൂണ്ടിക്കാണിക്കുന്നു. VEX ലോഗോയ്ക്ക് താഴെ റോബോട്ടിന്റെ വശത്ത് നിന്ന് പിച്ച് എന്ന് ലേബൽ ചെയ്ത ഒരു ചുവന്ന അമ്പടയാളം നീണ്ടുകിടക്കുന്നു, അതിനു ചുറ്റും എതിർ ഘടികാരദിശയിൽ ഒരു കറുത്ത വളഞ്ഞ അമ്പടയാളം ചൂണ്ടിക്കാണിക്കുന്നു.

Usage:
robot.inertial.get_turn_rate(axis)

പാരാമീറ്ററുകൾ

വിവരണം

axis

ഏത് ഓറിയന്റേഷനാണ് നൽകേണ്ടത്:

  • YAW
  • ROLL
  • PITCH
# Display the gyro rate as the robot is rotated by hand
while True:
    robot.screen.clear_screen()
    robot.screen.set_cursor(1, 1)
    robot.screen.print(robot.inertial.get_turn_rate(YAW))
    wait(50, MSEC)

കാലിബ്രേഷൻ#

2 സെക്കൻഡ് കാലയളവിൽ സെൻസർ ശബ്ദവും ഡ്രിഫ്റ്റും അളന്ന് നഷ്ടപരിഹാരം നൽകിക്കൊണ്ട് ഇനേർഷ്യൽ സെൻസർ ശരിയായി തിരിയുന്നുവെന്ന് അളക്കാൻ കാലിബ്രേഷൻ സഹായിക്കുന്നു. ഈ സമയത്ത്, റോബോട്ട് ഒരു സ്ഥിരതയുള്ള പ്രതലത്തിൽ പൂർണ്ണമായും നിശ്ചലമായിരിക്കണം. കാലിബ്രേഷൻ സമയത്ത് ചലനം തെറ്റായ ഫലങ്ങൾ നൽകിയേക്കാം.

സ്റ്റാർട്ടപ്പിൽ തന്നെ VEX റോബോട്ടുകൾ സ്വയം കാലിബ്രേറ്റ് ചെയ്യാൻ ശ്രമിക്കുന്നു, ചലനമൊന്നും കണ്ടെത്തുന്നതുവരെ കാത്തിരിക്കുന്നു. എന്നിരുന്നാലും, സ്റ്റാർട്ടപ്പ് സമയത്ത് റോബോട്ട് കൊണ്ടുപോകുകയോ നീക്കുകയോ ചെയ്താൽ, സെൻസർ ശരിയായി കാലിബ്രേറ്റ് ചെയ്യുന്നതിൽ പരാജയപ്പെടുകയോ തെറ്റായ കാലിബ്രേഷൻ നൽകുകയോ ചെയ്തേക്കാം.

നിങ്ങളുടെ പ്രോജക്റ്റ് കൃത്യമായ ഒരു തലക്കെട്ടിനെയാണ് പ്രധാനമായും ആശ്രയിക്കുന്നതെങ്കിൽ, അല്ലെങ്കിൽ നിങ്ങൾക്ക് സ്ഥിരവും ആവർത്തിക്കാവുന്നതുമായ ടേണുകൾ ആവശ്യമുണ്ടെങ്കിൽ, നിങ്ങളുടെ കോഡിന്റെ തുടക്കത്തിൽ calibrate എന്ന് വിളിക്കുന്നത് സഹായകരമാകും. കാലിബ്രേഷൻ സമയത്ത് റോബോട്ടിന്റെ സ്ക്രീനിൽ “കാലിബ്രേറ്റ് ചെയ്യൽ…” പോലുള്ള ഒരു സന്ദേശം പ്രദർശിപ്പിക്കുന്നത് നല്ല രീതിയാണ്, തുടർന്ന് അത് “കാലിബ്രേഷൻ പൂർത്തിയായി” എന്ന് അപ്ഡേറ്റ് ചെയ്യുക. ഈ കാലയളവിൽ റോബോട്ട് ചലനരഹിതമായിരിക്കണമെന്ന് നിങ്ങളെ (റോബോട്ട് ഉപയോഗിക്കുന്ന മറ്റാരെയും) ഓർമ്മിപ്പിക്കാൻ ഇത് സഹായിക്കും.

calibrate#

calibrate ഗൈറോ കാലിബ്രേറ്റ് ചെയ്യുന്നു. 2 സെക്കൻഡ് കാലയളവിൽ സെൻസർ ശബ്ദവും ഡ്രിഫ്റ്റും അളന്ന് നഷ്ടപരിഹാരം നൽകിക്കൊണ്ട് ഇനേർഷ്യൽ സെൻസർ ശരിയായി തിരിയുന്നുവെന്ന് അളക്കാൻ കാലിബ്രേഷൻ സഹായിക്കുന്നു. ഈ സമയത്ത്, റോബോട്ട് ഒരു സ്ഥിരതയുള്ള പ്രതലത്തിൽ പൂർണ്ണമായും നിശ്ചലമായിരിക്കണം. കാലിബ്രേഷൻ സമയത്ത് ചലനം തെറ്റായ ഫലങ്ങൾ നൽകിയേക്കാം.

സ്റ്റാർട്ടപ്പിൽ തന്നെ VEX റോബോട്ടുകൾ സ്വയം കാലിബ്രേറ്റ് ചെയ്യാൻ ശ്രമിക്കുന്നു, ചലനമൊന്നും കണ്ടെത്തുന്നതുവരെ കാത്തിരിക്കുന്നു. എന്നിരുന്നാലും, സ്റ്റാർട്ടപ്പ് സമയത്ത് റോബോട്ട് കൊണ്ടുപോകുകയോ നീക്കുകയോ ചെയ്താൽ, സെൻസർ ശരിയായി കാലിബ്രേറ്റ് ചെയ്യുന്നതിൽ പരാജയപ്പെടുകയോ തെറ്റായ കാലിബ്രേഷൻ നൽകുകയോ ചെയ്തേക്കാം.

Usage:
robot.inertial.calibrate()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Calibrate the gyro before moving
robot.inertial.calibrate()
robot.screen.show_emoji(THINKING)
wait(2, SECONDS)
robot.screen.show_emoji(PROUD)
robot.move_for(50, 90)

is_calibrating#

is_calibrating എന്നത് ഇനേർഷ്യൽ സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നുണ്ടോ എന്ന് സൂചിപ്പിക്കുന്ന ഒരു ബൂളിയൻ നൽകുന്നു.

  • True — ഇനേർഷ്യൽ സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നു.

  • False — ഇനേർഷ്യൽ സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നില്ല.

Usage:
robot.inertial.is_calibrating()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Move after the calibration is completed
robot.inertial.calibrate()
while robot.inertial.is_calibrating():
    robot.screen.show_emoji(THINKING)
    wait(50, MSEC)
robot.screen.show_emoji(PROUD)
robot.move_for(50, 90)