सीटीई आर्म#

परिचय#

arm क्लास CTE वर्कसेल में उपयोग होने वाले 6-एक्सिस आर्म को नियंत्रित करती है। VEX EXP C++ में, 6-एक्सिस आर्म एक एंड इफेक्टर को त्रि-आयामी स्थान में विभिन्न स्थितियों में ले जा सकती है, एंड इफेक्टर को घुमा सकती है, यह जांच सकती है कि गति संभव है या नहीं, और मैग्नेट पिकअप टूल या पेन होल्डर टूल जैसे संलग्न उपकरणों को नियंत्रित कर सकती है।

इस पृष्ठ पर दिए गए उदाहरणों में Arm नामक एक कॉन्फ़िगर किए गए 6-एक्सिस आर्म का उपयोग किया गया है।

कंस्ट्रक्टर्स#

arm#

arm एक 6-एक्सिस आर्म ऑब्जेक्ट बनाता है।

उपलब्ध फ़ंक्शन

arm(int32_t index);

पैरामीटर

प्रकार

विवरण

index

int32_t

6-एक्सिस आर्म जिस स्मार्ट पोर्ट से जुड़ा है, उसे PORTxके रूप में लिखा जाता है, जहाँ x पोर्ट संख्या है। उदाहरण के लिए, PORT1।

उदाहरण

// Create a 6-Axis Arm named Arm on Port 1
arm Arm = arm(PORT1);

नाशक#

~arm#

~arm arm ऑब्जेक्ट को नष्ट कर देता है और संबंधित संसाधनों को मुक्त करता है।

उपलब्ध फ़ंक्शन

~arm();

सदस्य कार्य#

arm क्लास में निम्नलिखित सदस्य फ़ंक्शन शामिल हैं:

कार्य — 6-एक्सिस आर्म को विभिन्न स्थितियों या अभिविन्यासों में ले जाएं।

  • moveTo — एंड इफेक्टर को निर्दिष्ट x, y, और z निर्देशांक पर ले जाता है।

  • moveInc — एंड इफेक्टर को उसकी वर्तमान स्थिति से एक निर्दिष्ट दूरी से स्थानांतरित करता है।

  • moveEndEffectorTo — एंड इफेक्टर को निर्दिष्ट यॉ, रोल और पिच ओरिएंटेशन में घुमाता है।

  • moveEndEffectorInc — निर्दिष्ट यॉ, रोल और पिच राशि द्वारा एंड इफेक्टर को घुमाता है।

म्यूटेटर्स — गति, उपकरण और नियंत्रण सेटिंग्स को कॉन्फ़िगर करें।

  • setSpeed — 6-एक्सिस आर्म द्वारा उपयोग की जाने वाली गति निर्धारित करता है।

  • setEndEffectorType — 6-एक्सिस आर्म से जुड़े एंड इफेक्टर का प्रकार सेट करता है।

  • setEndEffectorMagnet — मैग्नेट पिकअप टूल को सक्षम या अक्षम करता है।

  • setPenOffset — पेन होल्डर टूल के साथ उपयोग किए जाने वाले z-अक्ष ऑफ़सेट को सेट करता है।

  • setControlStop — 6-एक्सिस आर्म के लिए कंट्रोल स्टॉप को सक्षम या अक्षम करता है।

  • setTimeout — 6-एक्सिस आर्म मूवमेंट फ़ंक्शन द्वारा उपयोग किए जाने वाले टाइमआउट को सेट करता है।

गेटर्स — गति की स्थिति, स्थान, अभिविन्यास और कनेक्शन मान लौटाते हैं।

  • isDone — यह बताता है कि 6-एक्सिस आर्म ने चलना समाप्त कर दिया है या नहीं।

  • isCrashed — यह बताता है कि क्या 6-एक्सिस आर्म चलते समय क्रैश हो गया है।

  • getX — एंड इफेक्टर की वर्तमान x स्थिति लौटाता है।

  • getY — एंड इफेक्टर की वर्तमान y स्थिति लौटाता है।

  • getZ — एंड इफेक्टर की वर्तमान z स्थिति लौटाता है।

  • getYaw — एंड इफेक्टर का वर्तमान यॉ लौटाता है।

  • getRoll — एंड इफेक्टर का वर्तमान रोल लौटाता है।

  • getPitch — एंड इफेक्टर की वर्तमान पिच लौटाता है।

  • canArmReachTo — यह बताता है कि क्या 6-एक्सिस आर्म एक निर्दिष्ट स्थिति तक पहुँच सकता है।

  • canArmReachInc — यह बताता है कि क्या 6-एक्सिस आर्म एक निर्दिष्ट दूरी से चल सकता है।

  • canEndEffectorReachTo — यह बताता है कि क्या एंड इफेक्टर किसी निर्दिष्ट अभिविन्यास तक पहुँच सकता है।

  • canEndEffectorReachInc — यह बताता है कि क्या एंड इफेक्टर एक निर्दिष्ट मात्रा से घूम सकता है।

  • isConnected — यह बताता है कि क्या 6-एक्सिस आर्म EXP ब्रेन से जुड़ा है।

  • timestamp — 6-एक्सिस आर्म से प्राप्त अंतिम स्थिति पैकेट का टाइमस्टैम्प लौटाता है।

  • installed — यह बताता है कि 6-एक्सिस आर्म कनेक्टेड है या नहीं।

कॉलबैक — आर्म इवेंट होने पर फ़ंक्शन चलाएँ।

  • controlStopped — कंट्रोल स्टॉप सक्षम होने पर चलाने के लिए एक फ़ंक्शन पंजीकृत करता है।

  • crashed — क्रैश का पता चलने पर चलाने के लिए एक फ़ंक्शन पंजीकृत करता है।

कार्रवाई#

moveTo#

moveTo कमांड 6-एक्सिस आर्म को निर्दिष्ट x, y और z निर्देशांक पर ले जाता है।

x, y और z निर्देशांक त्रि-आयामी स्थान में एंड इफ़ेक्टर की स्थिति का वर्णन करते हैं। यदि लक्ष्य स्थिति 6-एक्सिस आर्म के पहुंच योग्य कार्यक्षेत्र से बाहर हो सकती है, तो इस फ़ंक्शन से पहले canArmReachTo का उपयोग करें।

उपलब्ध फ़ंक्शन

bool moveTo(
  double x,
  double y,
  double z,
  bool   waitForCompletion = true
);

पैरामीटर

प्रकार

विवरण

x

double

लक्ष्य की स्थिति का x-निर्देशांक मिलीमीटर में।

y

double

लक्ष्य की स्थिति का y-निर्देशांक मिलीमीटर में।

z

double

लक्ष्य की स्थिति का z-निर्देशांक मिलीमीटर में।

waitForCompletion

bool

वैकल्पिक। true (डिफ़ॉल्ट) गतिविधि पूरी होने तक प्रतीक्षा करता है, उसके बाद ही आगे बढ़ता है। false गतिविधि शुरू करता है और तुरंत कोड की अगली पंक्ति पर चला जाता है।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — 6-एक्सिस आर्म लक्ष्य स्थिति तक पहुँच गया।

  • false — 6-एक्सिस आर्म लक्ष्य स्थिति तक नहीं पहुंचा, या waitForCompletion को false पर सेट किया गया था।

उदाहरण

// Move the 6-Axis Arm to (200, 0, 100)
Arm.moveTo(200, 0, 100);

// Start moving, then print the y-position while the arm moves
Arm.moveTo(-100, 200, 100, false);

while (!Arm.isDone()) {
  Brain.Screen.print(Arm.getY());
  Brain.Screen.newLine();
  wait(0.25, seconds);
}

moveInc#

moveInc 6-एक्सिस आर्म को उसकी वर्तमान स्थिति से x, y और z अक्षों के अनुदिश एक निर्दिष्ट दूरी तक ले जाता है।

एंड इफ़ेक्टर की वर्तमान स्थिति के सापेक्ष गति करने के लिए इस फ़ंक्शन का उपयोग करें। यदि गति के कारण 6-एक्सिस आर्म अपने पहुंच योग्य कार्यक्षेत्र से बाहर हो सकता है, तो इस फ़ंक्शन से पहले canArmReachInc का उपयोग करें।

उपलब्ध फ़ंक्शन

bool moveInc(
  double x,
  double y,
  double z,
  bool   waitForCompletion = true
);

पैरामीटर

प्रकार

विवरण

x

double

एक्स-अक्ष के अनुदिश तय की गई दूरी (मिलीमीटर में)।

y

double

वाई-अक्ष के अनुदिश तय की जाने वाली दूरी (मिलीमीटर में)।

z

double

z-अक्ष के अनुदिश तय की जाने वाली दूरी (मिलीमीटर में)।

waitForCompletion

bool

वैकल्पिक। true (डिफ़ॉल्ट) गतिविधि पूरी होने तक प्रतीक्षा करता है, उसके बाद ही आगे बढ़ता है। false गतिविधि शुरू करता है और तुरंत कोड की अगली पंक्ति पर चला जाता है।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — 6-एक्सिस आर्म अनुरोधित स्थिति पर पहुँच गया।

  • false — 6-एक्सिस आर्म अनुरोधित स्थिति तक नहीं पहुंचा, या waitForCompletion false पर सेट किया गया था।

उदाहरण

// Move the 6-Axis Arm 100 millimeters along the y-axis
Arm.moveInc(0, 100, 0);

moveEndEffectorTo#

moveEndEffectorTo कमांड 6-एक्सिस आर्म के एंड इफेक्टर को निर्दिष्ट यॉ, रोल और पिच ओरिएंटेशन में घुमाता है।

ओरिएंटेशन यह बताता है कि एंड इफेक्टर किस दिशा में घूमता है। yaw z-अक्ष के चारों ओर घूमता है, roll x-अक्ष के चारों ओर घूमता है, और pitch y-अक्ष के चारों ओर घूमता है।

उपलब्ध फ़ंक्शन

bool moveEndEffectorTo(
  double yaw,
  double roll = 0,
  double pitch = 0,
  bool   waitForCompletion = true
);

पैरामीटर

प्रकार

विवरण

yaw

double

लक्ष्य यॉ कोण (डिग्री में)।

roll

double

वैकल्पिक। लक्ष्य रोल कोण डिग्री में। डिफ़ॉल्ट मान 0 है।

pitch

double

वैकल्पिक। लक्ष्य पिच कोण डिग्री में। डिफ़ॉल्ट मान 0 है।

waitForCompletion

bool

वैकल्पिक। true (डिफ़ॉल्ट) गतिविधि पूरी होने तक प्रतीक्षा करता है, उसके बाद ही आगे बढ़ता है। false गतिविधि शुरू करता है और तुरंत कोड की अगली पंक्ति पर चला जाता है।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — एंड इफ़ेक्टर लक्ष्य अभिविन्यास तक पहुँच गया।

  • false — एंड इफ़ेक्टर लक्ष्य अभिविन्यास तक नहीं पहुँचा, या waitForCompletion को false पर सेट किया गया था।

उदाहरण

// Rotate the end effector to 90 degrees of roll
Arm.moveEndEffectorTo(0, 90, 0);

moveEndEffectorInc#

moveEndEffectorInc 6-एक्सिस आर्म के एंड इफेक्टर को उसकी वर्तमान स्थिति से निर्दिष्ट यॉ, रोल और पिच मात्रा से घुमाता है।

एंड इफेक्टर के वर्तमान यॉ, रोल या पिच के सापेक्ष घुमाने के लिए इस फ़ंक्शन का उपयोग करें।

उपलब्ध फ़ंक्शन

bool moveEndEffectorInc(
  double yaw,
  double roll = 0,
  double pitch = 0,
  bool   waitForCompletion = true
);

पैरामीटर

प्रकार

विवरण

yaw

double

पृथ्वी के झुकाव में परिवर्तन, डिग्री में।

roll

double

वैकल्पिक। डिग्री में रोल का परिवर्तन। डिफ़ॉल्ट मान 0 है।

pitch

double

वैकल्पिक। पिच में परिवर्तन, डिग्री में। डिफ़ॉल्ट मान 0 है।

waitForCompletion

bool

वैकल्पिक। true (डिफ़ॉल्ट) गतिविधि पूरी होने तक प्रतीक्षा करता है, उसके बाद ही आगे बढ़ता है। false गतिविधि शुरू करता है और तुरंत कोड की अगली पंक्ति पर चला जाता है।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — एंड इफ़ेक्टर अनुरोधित अभिविन्यास तक पहुँच गया।

  • false — एंड इफ़ेक्टर अनुरोधित अभिविन्यास तक नहीं पहुँचा, या waitForCompletion को false पर सेट किया गया था।

उदाहरण

// Rotate the end effector -50 degrees in pitch
Arm.moveEndEffectorInc(0, 0, -50);

उत्परिवर्तक#

setSpeed#

setSpeed 6-एक्सिस आर्म द्वारा उपयोग की जाने वाली गति निर्धारित करता है।

उपलब्ध फ़ंक्शन

void setSpeed(uint32_t speed);

पैरामीटर

प्रकार

विवरण

speed

uint32_t

6-एक्सिस आर्म की गति, मिलीमीटर प्रति सेकंड में।

वापसी मूल्य

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

उदाहरण

// Set the 6-Axis Arm movement speed
Arm.setSpeed(100);

setEndEffectorType#

setEndEffectorType 6-एक्सिस आर्म से जुड़े एंड इफेक्टर के प्रकार को सेट करता है।

जब एंड इफेक्टर का प्रकार बदला जाता है, तो 6-एक्सिस आर्म स्वचालित रूप से चयनित टूल से मेल खाने के लिए अपने जेड-ऑफसेट को समायोजित कर लेता है।

उपलब्ध फ़ंक्शन

bool setEndEffectorType(
  endEffectorType type,
  bool            waitForCompletion = true
);

पैरामीटर

प्रकार

विवरण

type

endEffectorType

6-एक्सिस आर्म से जुड़ा उपकरण: magnet (चुंबक पिकअप उपकरण) या pen (पेन होल्डर उपकरण)।

waitForCompletion

bool

यह विकल्प वैकल्पिक है। true (डिफ़ॉल्ट): परिवर्तन पूरा होने तक प्रतीक्षा करता है और फिर आगे बढ़ता है। false परिवर्तन शुरू करता है और तुरंत कोड की अगली पंक्ति पर चला जाता है।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — अनुरोधित प्रकार सेट किया गया था।

  • false — अनुरोधित प्रकार सेट नहीं किया गया था, या waitForCompletion को false पर सेट किया गया था।

उदाहरण

// Set the end effector type to the Magnet Pickup Tool
Arm.setEndEffectorType(magnet);

setEndEffectorMagnet#

setEndEffectorMagnet मैग्नेट पिकअप टूल को सक्षम या अक्षम करता है।

उपलब्ध फ़ंक्शन

void setEndEffectorMagnet(bool enabled);

पैरामीटर

प्रकार

विवरण

enabled

bool

true चुंबक को वस्तुओं को उठाने और पकड़ने में सक्षम बनाता है। false चुंबक को निष्क्रिय कर देता है और पकड़ी गई किसी भी वस्तु को गिरा देता है।

वापसी मूल्य

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

उदाहरण

// Pick up objects and then drop them
Arm.setEndEffectorType(magnet);
Arm.setEndEffectorMagnet(true);
wait(2, seconds);
Arm.setEndEffectorMagnet(false);

setPenOffset#

setPenOffset z-अक्ष ऑफ़सेट सेट करता है जिसका उपयोग तब किया जाता है जब पेन होल्डर टूल को 6-अक्षीय भुजा से जोड़ा जाता है।

इस फ़ंक्शन का उपयोग करने से पहले एंड इफ़ेक्टर प्रकार को pen पर सेट करें। यदि पेन होल्डर टूल चयनित नहीं है, तो इस फ़ंक्शन का कोई प्रभाव नहीं होगा।

पेन ऑफ़सेट, पेन होल्डर टूल के ऊपरी सिरे से ड्राई-इरेज़ मार्कर की नोक तक की दूरी है। धनात्मक z मान, ऑफ़सेट को टूल माउंट पॉइंट से ऊपर की ओर ले जाता है।

उपलब्ध फ़ंक्शन

void setPenOffset(double zOffset);

पैरामीटर

प्रकार

विवरण

zOffset

double

पेन ऑफसेट का मान मिलीमीटर में।

वापसी मूल्य

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

उदाहरण

// Set the end effector type to the Pen Holder Tool and set the pen offset
Arm.setEndEffectorType(pen);
Arm.setPenOffset(25);

setControlStop#

setControlStop 6-एक्सिस आर्म के लिए कंट्रोल स्टॉप को सक्षम या अक्षम करता है।

जब कंट्रोल स्टॉप सक्षम होता है, तो 6-एक्सिस आर्म तुरंत गति रोक देता है और आगे की रैखिक या संयुक्त गतिविधियों को रोकता है।

उपलब्ध फ़ंक्शन

void setControlStop(bool state = true);

पैरामीटर

प्रकार

विवरण

state

bool

वैकल्पिक। true (डिफ़ॉल्ट) नियंत्रण स्टॉप को सक्षम करता है और आगे की रैखिक या संयुक्त गतिविधियों को रोकता है। false नियंत्रण स्टॉप को अक्षम करता है।

वापसी मूल्य

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

उदाहरण

// Stop the 6-Axis Arm and prevent further movement
Arm.setControlStop();

setTimeout#

setTimeout 6-एक्सिस आर्म को घुमाते समय उपयोग किए जाने वाले टाइमआउट मान को सेट करता है।

यदि कोई गतिविधि समय सीमा समाप्त होने से पहले पूरी नहीं होती है, तो प्रोजेक्ट कोड की अगली पंक्ति पर चला जाता है।

उपलब्ध फ़ंक्शन

void setTimeout(
  int32_t   timeout,
  timeUnits units
);

पैरामीटर

प्रकार

विवरण

timeout

int32_t

नया टाइमआउट मान।

units

timeUnits

समय की इकाई: sec या msec।

वापसी मूल्य

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

उदाहरण

// Set the 6-Axis Arm timeout to 2 seconds
Arm.setTimeout(2, sec);

टिककर खेल#

isDone#

isDone यह बताता है कि 6-एक्सिस आर्म ने चलना समाप्त कर दिया है या नहीं।

यह फ़ंक्शन मूवमेंट फ़ंक्शन को कॉल करने के बाद उपयोगी है, जिसमें waitForCompletion को false पर सेट किया गया है।

उपलब्ध फ़ंक्शन

bool isDone();

पैरामीटर

इस फ़ंक्शन में कोई पैरामीटर नहीं है।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — 6-एक्सिस आर्म की गति पूरी हो गई है।

  • false — 6-एक्सिस आर्म अभी भी चल रही है।

उदाहरण

// Display the 6-Axis Arm's y-position while it moves
Arm.moveTo(-100, 200, 100, false);

while (!Arm.isDone()) {
  Brain.Screen.print(Arm.getY());
  Brain.Screen.newLine();
  wait(0.25, seconds);
}

isCrashed#

isCrashed यह बताता है कि क्या 6-एक्सिस आर्म चलते समय दुर्घटनाग्रस्त हो गया है।

दुर्घटना का पता चलने पर, 6-एक्सिस आर्म मोटर की गति रोक देता है और कुछ समय के लिए निष्क्रिय प्रतीत हो सकता है। इससे मोटरों पर तनाव कम होता है और आकस्मिक क्षति से बचाव में मदद मिलती है।

उपलब्ध फ़ंक्शन

bool isCrashed();

पैरामीटर

इस फ़ंक्शन में कोई पैरामीटर नहीं है।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — 6-एक्सिस आर्म क्रैश हो गया है।

  • false — 6-एक्सिस आर्म दुर्घटनाग्रस्त नहीं हुई है।

उदाहरण

// Quickly move to a new location
Arm.setSpeed(100);
Arm.moveTo(-40, 250, 40, false);

// While moving, check for a crash
while (true) {
  if (Arm.isCrashed()) {
    // Indicate a crash with the Signal Tower and Brain screen
    Brain.Screen.print("Crash Detected");
    SignalTower6.setColor(signaltower::green, signaltower::off);
    SignalTower6.setColor(signaltower::red, signaltower::on);
    break;
  }

  wait(5, msec);
}

getX#

getX मिलीमीटर में एंड इफेक्टर की वर्तमान x स्थिति लौटाता है।

इस फ़ंक्शन का उपयोग करके आप यह जान सकते हैं कि एंड इफ़ेक्टर वर्तमान में x-अक्ष पर कहाँ स्थित है।

उपलब्ध फ़ंक्शन

float getX();

पैरामीटर

इस फ़ंक्शन में कोई पैरामीटर नहीं है।

वापसी मूल्य

यह एक float लौटाता है जो मिलीमीटर में एंड इफेक्टर की x स्थिति को दर्शाता है।

उदाहरण

// Print the current x position of the 6-Axis Arm
Brain.Screen.print(Arm.getX());

getY#

getY मिलीमीटर में एंड इफेक्टर की वर्तमान y स्थिति लौटाता है।

इस फ़ंक्शन का उपयोग करके आप यह जान सकते हैं कि एंड इफ़ेक्टर वर्तमान में y-अक्ष पर कहाँ स्थित है।

उपलब्ध फ़ंक्शन

float getY();

पैरामीटर

इस फ़ंक्शन में कोई पैरामीटर नहीं है।

वापसी मूल्य

यह मान मिलीमीटर में एंड इफेक्टर की y स्थिति को दर्शाने वाला float का फ्लोट मान लौटाता है।

उदाहरण

// Print the current y position of the 6-Axis Arm
Brain.Screen.print(Arm.getY());

getZ#

getZ मिलीमीटर में एंड इफेक्टर की वर्तमान z स्थिति लौटाता है।

इस फ़ंक्शन का उपयोग करके आप यह जान सकते हैं कि एंड इफ़ेक्टर वर्तमान में z-अक्ष के अनुदिश कहाँ स्थित है।

उपलब्ध फ़ंक्शन

float getZ();

पैरामीटर

इस फ़ंक्शन में कोई पैरामीटर नहीं है।

वापसी मूल्य

यह एक float मान लौटाता है जो मिलीमीटर में एंड इफेक्टर की z स्थिति को दर्शाता है।

उदाहरण

// Print the current z position of the 6-Axis Arm
Brain.Screen.print(Arm.getZ());

getYaw#

getYaw एंड इफेक्टर के वर्तमान यॉ को डिग्री में लौटाता है।

उपलब्ध फ़ंक्शन

float getYaw();

पैरामीटर

इस फ़ंक्शन में कोई पैरामीटर नहीं है।

वापसी मूल्य

यह एंड इफेक्टर के वर्तमान यॉ को डिग्री में दर्शाने वाला float मान लौटाता है।

उदाहरण

// Print the current yaw of the end effector
Brain.Screen.print(Arm.getYaw());

getRoll#

getRoll एंड इफेक्टर के वर्तमान रोल को डिग्री में लौटाता है।

उपलब्ध फ़ंक्शन

float getRoll();

पैरामीटर

इस फ़ंक्शन में कोई पैरामीटर नहीं है।

वापसी मूल्य

यह एक float एंड इफेक्टर के वर्तमान रोल को डिग्री में दर्शाता है।

उदाहरण

// Print the current roll of the end effector
Brain.Screen.print(Arm.getRoll());

getPitch#

getPitch एंड इफेक्टर की वर्तमान पिच को डिग्री में लौटाता है।

उपलब्ध फ़ंक्शन

float getPitch();

पैरामीटर

इस फ़ंक्शन में कोई पैरामीटर नहीं है।

वापसी मूल्य

यह एक float एंड इफेक्टर की वर्तमान पिच को डिग्री में दर्शाता है।

उदाहरण

// Print the current pitch of the end effector
Brain.Screen.print(Arm.getPitch());

canArmReachTo#

canArmReachTo यह बताता है कि क्या 6-एक्सिस आर्म एंड इफेक्टर को निर्दिष्ट x, y और z निर्देशांक पर ले जा सकता है।

moveTo का उपयोग करने से पहले लक्ष्य स्थिति की जांच करने के लिए इस फ़ंक्शन का उपयोग करें।

उपलब्ध फ़ंक्शन

bool canArmReachTo(
  double x,
  double y,
  double z
);

पैरामीटर

प्रकार

विवरण

x

double

लक्ष्य की स्थिति का x-निर्देशांक मिलीमीटर में।

y

double

लक्ष्य की स्थिति का y-निर्देशांक मिलीमीटर में।

z

double

लक्ष्य की स्थिति का z-निर्देशांक मिलीमीटर में।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — 6-एक्सिस आर्म वांछित स्थिति तक पहुँच सकता है।

  • false — 6-एक्सिस आर्म अनुरोधित स्थिति तक नहीं पहुंच सकता।

उदाहरण

// Move the 6-Axis Arm to (100, -20, 50) if it can reach
if (Arm.canArmReachTo(100, -20, 50)) {
  Arm.moveTo(100, -20, 50);
}

canArmReachInc#

canArmReachInc यह बताता है कि क्या 6-एक्सिस आर्म एंड इफेक्टर को उसकी वर्तमान स्थिति से निर्दिष्ट x, y और z दूरी तक ले जा सकता है।

moveInc का उपयोग करने से पहले सापेक्ष गति की जाँच करने के लिए इस फ़ंक्शन का उपयोग करें।

उपलब्ध फ़ंक्शन

bool canArmReachInc(
  double x,
  double y,
  double z
);

पैरामीटर

प्रकार

विवरण

x

double

एक्स-अक्ष के अनुदिश तय की गई दूरी (मिलीमीटर में)।

y

double

वाई-अक्ष के अनुदिश तय की जाने वाली दूरी (मिलीमीटर में)।

z

double

z-अक्ष के अनुदिश तय की जाने वाली दूरी (मिलीमीटर में)।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — 6-एक्सिस आर्म अनुरोधित गति कर सकता है।

  • false — 6-एक्सिस आर्म अनुरोधित गति नहीं कर सकता।

उदाहरण

// Increment the 6-Axis Arm 100 mm along the x-axis if possible
if (Arm.canArmReachInc(100, 0, 0)) {
  Arm.moveInc(100, 0, 0);
}

canEndEffectorReachTo#

canEndEffectorReachTo यह बताता है कि क्या एंड इफेक्टर निर्दिष्ट यॉ, रोल और पिच ओरिएंटेशन में घूम सकता है।

moveEndEffectorTo का उपयोग करने से पहले लक्ष्य अभिविन्यास की जाँच करने के लिए इस फ़ंक्शन का उपयोग करें।

उपलब्ध फ़ंक्शन

bool canEndEffectorReachTo(
  double yaw,
  double roll = 0,
  double pitch = 0
);

पैरामीटर

प्रकार

विवरण

yaw

double

लक्ष्य यॉ कोण (डिग्री में)।

roll

double

वैकल्पिक। लक्ष्य रोल कोण डिग्री में। डिफ़ॉल्ट मान 0 है।

pitch

double

वैकल्पिक। लक्ष्य पिच कोण डिग्री में। डिफ़ॉल्ट मान 0 है।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — एंड इफ़ेक्टर अनुरोधित अभिविन्यास तक पहुँच सकता है।

  • false — एंड इफ़ेक्टर अनुरोधित अभिविन्यास तक नहीं पहुँच सकता।

उदाहरण

// Rotate the end effector to 90 degrees of roll if possible
if (Arm.canEndEffectorReachTo(0, 90, 0)) {
  Arm.moveEndEffectorTo(0, 90, 0);
}

canEndEffectorReachInc#

canEndEffectorReachInc यह बताता है कि क्या एंड इफेक्टर अपनी वर्तमान स्थिति से निर्दिष्ट यॉ, रोल और पिच मात्रा से घूम सकता है।

moveEndEffectorInc का उपयोग करने से पहले सापेक्ष अभिविन्यास आंदोलन की जांच करने के लिए इस फ़ंक्शन का उपयोग करें।

उपलब्ध फ़ंक्शन

bool canEndEffectorReachInc(
  double yaw,
  double roll = 0,
  double pitch = 0
);

पैरामीटर

प्रकार

विवरण

yaw

double

पृथ्वी के झुकाव में परिवर्तन, डिग्री में।

roll

double

वैकल्पिक। डिग्री में रोल का परिवर्तन। डिफ़ॉल्ट मान 0 है।

pitch

double

वैकल्पिक। पिच में परिवर्तन, डिग्री में। डिफ़ॉल्ट मान 0 है।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — एंड इफ़ेक्टर अनुरोधित रोटेशन कर सकता है।

  • false — एंड इफ़ेक्टर अनुरोधित रोटेशन नहीं कर सकता।

उदाहरण

// Increment the end effector by 10 degrees of pitch if possible
if (Arm.canEndEffectorReachInc(0, 0, 10)) {
  Arm.moveEndEffectorInc(0, 0, 10);
}

isConnected#

isConnected यह बताता है कि क्या 6-एक्सिस आर्म EXP ब्रेन से जुड़ा है।

यह एक संगतता फ़ंक्शन है जो installed के समान मान लौटाता है।

उपलब्ध फ़ंक्शन

bool isConnected();

पैरामीटर

इस फ़ंक्शन में कोई पैरामीटर नहीं है।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — 6-एक्सिस आर्म EXP ब्रेन से जुड़ा है।

  • false — 6-एक्सिस आर्म EXP ब्रेन से कनेक्टेड नहीं है।

उदाहरण

// Print whether the 6-Axis Arm is connected
Brain.Screen.print(Arm.isConnected());

timestamp#

timestamp 6-एक्सिस आर्म से प्राप्त अंतिम स्थिति पैकेट का टाइमस्टैम्प लौटाता है।

उपलब्ध फ़ंक्शन

uint32_t timestamp();

पैरामीटर

इस फ़ंक्शन में कोई पैरामीटर नहीं है।

वापसी मूल्य

मिलीसेकंड में अंतिम स्थिति पैकेट का टाइमस्टैम्प uint32_t के रूप में लौटाता है।

installed#

installed यह दर्शाता है कि 6-एक्सिस आर्म कनेक्टेड है या नहीं।

उपलब्ध फ़ंक्शन

bool installed();

पैरामीटर

इस फ़ंक्शन में कोई पैरामीटर नहीं है।

वापसी मूल्य

यह एक बूलियन मान लौटाता है।

  • true — 6-एक्सिस आर्म जुड़ा हुआ है।

  • false — 6-एक्सिस आर्म कनेक्टेड नहीं है।

कॉलबैक#

controlStopped#

controlStopped एक फ़ंक्शन को पंजीकृत करता है जो कंट्रोल स्टॉप सक्षम होने पर चलता है।

उपलब्ध फ़ंक्शन

void controlStopped(void (* callback)(void));

पैरामीटर

प्रकार

विवरण

callback

void (*)(void)

एक फ़ंक्शन जो कंट्रोल स्टॉप सक्षम होने पर चलता है।

वापसी मूल्य

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

उदाहरण

// Called when the 6-Axis Arm is control stopped
void onControlStopped() {
  Brain.Screen.print("Arm control stopped");
}

int main() {
  vexcodeInit();

  Arm.controlStopped(onControlStopped);
}

crashed#

crashed एक फ़ंक्शन को पंजीकृत करता है जो तब चलता है जब 6-एक्सिस आर्म चलते समय क्रैश हो जाता है।

दुर्घटना का पता चलने पर, 6-एक्सिस आर्म मोटर की गति रोक देता है और कुछ समय के लिए निष्क्रिय प्रतीत हो सकता है। इससे मोटरों पर तनाव कम होता है और आकस्मिक क्षति से बचाव में मदद मिलती है।

उपलब्ध फ़ंक्शन

void crashed(void (* callback)(void));

पैरामीटर

प्रकार

विवरण

callback

void (*)(void)

एक ऐसा फ़ंक्शन जो तब चलता है जब 6-एक्सिस आर्म चलते समय क्रैश हो जाता है।

वापसी मूल्य

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

उदाहरण

// Called when the 6-Axis Arm crashes while moving
void onArmCrashed() {
  Brain.Screen.print("Crash detected");
  SignalTower6.setColor(signaltower::green, signaltower::off);
  SignalTower6.setColor(signaltower::red, signaltower::on);
}

int main() {
  vexcodeInit();

  Arm.crashed(onArmCrashed);
}