जड़त्वीय#
परिचय#
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#
यॉ (Yaw) रोबोट के ऊर्ध्वाधर अक्ष के चारों ओर बाएँ या दाएँ मुड़ने का वर्णन करता है। get_yaw रोबोट के यॉ कोण को -180.00 से 180.00 डिग्री की सीमा में एक फ्लोट मान के रूप में लौटाता है।
नीचे दी गई छवि में तीरों का उपयोग करके यॉ के लिए धनात्मक घूर्णन की दिशा दर्शाई गई है।
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 डिग्री की सीमा में एक फ्लोट मान के रूप में लौटाता है।
नीचे दी गई छवि में तीरों का उपयोग रोल के लिए धनात्मक घूर्णन की दिशा दिखाने के लिए किया गया है।
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 डिग्री की सीमा में एक फ्लोट मान के रूप में लौटाता है।
नीचे दी गई छवि में तीरों का उपयोग पिच के लिए धनात्मक घूर्णन की दिशा दिखाने के लिए किया गया है।
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)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट के लिए निर्धारित की जाने वाली दिशा का मान (डिग्री में)। यह मान 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)
पैरामीटर |
विवरण |
|---|---|
|
एक फ़ंक्शन जिसे टकराव का पता चलने पर निष्पादित करने के लिए पहले से परिभाषित किया गया है। |
|
वैकल्पिक। कॉलबैक फ़ंक्शन को पास करने के लिए तर्क युक्त एक टपल। अधिक जानकारी के लिए पैरामीटर के साथ फ़ंक्शन का उपयोग करना देखें। |
# 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)
पैरामीटर |
विवरण |
|---|---|
|
क्रैश संवेदनशीलता:
|
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।

उपयोग:
robot.inertial.get_acceleration(type)
पैरामीटर |
विवरण |
|---|---|
|
त्वरण मापने के लिए अक्ष:
|
# 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 का से 1000.00 डिग्री प्रति सेकंड \(dps\) तक फ्लोट मान के रूप में रोबोट की घूमने की दर को दर्शाता है।
रोबोट के चयनित अक्ष पर घूमने की दिशा के आधार पर मान धनात्मक या ऋणात्मक हो सकता है। नीचे दिए गए चित्र में तीरों का उपयोग रोल, पिच और यॉ के लिए धनात्मक घूर्णन की दिशा दर्शाने के लिए किया गया है।

Usage:
robot.inertial.get_turn_rate(axis)
पैरामीटर |
विवरण |
|---|---|
|
किस दिशा में लौटना है:
|
# 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)